What happened since last post

Posted by Thomas on November 19, 2009. / Comments

You may wonder what happened since I announced I was about to rewrite the Web user interface with Cappuccino. In this post, I'll try to summarize the past 3 weeks.

Client work

Both tmk and I are programmers doing client work but wanting to scale back client work to live The Life. We are not founded in any way (nor do we want to).

I still have to write offers for new client projects, I still have to do some maintenance on projects I wrote some months/years ago, I still have to attend meetings, do some accounting and paper stuff. It takes a lot of time/energy. Happily, I'm lucky that the vast majority of my customers are great customers, so I don't have much to complain about.

It's often admitted that you have to embrace constraints, that it's a good thing, but believe me, it's not always that easy.

I'm really trying to get as organized and efficient as possible, but what I'm learning the hard way now is to prioritize and say no to projects I'm not interested in. I'm making good progress.

Cappuccino

Before I kick the tires and start the actual big rewrite, I want to go deeper into Cappuccino. I think that a great way to learn something (and ascertain one's understanding!) is to try to teach it to other people, thus the Cappuccino Casts. I also like to keep up with the latest framework additions, with the This Week in Edge Cappuccino posts. Those two activities take time, but I think it's time well spent.

Learning by coding

Of course, there's nothing's like getting your hand dirty and start coding. But the first real project you write with a relatively new language is rarely the most well written (euphemism ;-). That's why I started coding a very small and focused Webapp (Cappuccino + Rails) that will allow me to get real with those technologies on a fairly simple project. I hope I can release it very soon, though I don't promise anything. I'll surely tweet about this project, so you can follow me if you want to be kept informed.

I'm excited by this adventure, and I just wanted to let you know what keeps me busy.

Regarding the User Interface

Posted by Thomas on October 27, 2009. / Comments

In the last post, I explained that we wanted to rewrite the Cashflow App user interface, and that we were considering 2 frameworks : SproutCore and Cappuccino. I'd like to share our conclusions with you. This post is not meant to be an extensive technical comparison between both frameworks. I will just explain the reason that motivated our choice.

SproutCore

I took some time to play with SproutCore, and I must say that I'm really impressed with what they did, especially the DataStore framework. The framework seems to be very advanced, and there already are several production-level applications online : MobileMe, iWork.com, OtherInbox or Mailroom. Apple is also contributing to the framework, which seems to be a good point for SproutCore's future developments. There is some very good documentation for getting started, and the community seems pretty active. While I really think it is a really good candidate to write such an application, I'll try to explain the reasons why we choose Cappuccino.

Cappuccino

As you may know, Cappuccino implements many Cocoa API. Cocoa has been developed since the late 80's and has proven its robustness. It's conception is very clever, and it is extremely well documented. Cappuccino directly benefits from all the hard work that has been put into the Cocoa conception and our experience with Cocoa allows us not to start from scratch with Cappuccino.

The tools

Cappuccino comes with a handy tool called nib2cib. It allows you to convert Cocoa's nib files to Cappuccino's cib files. In other words, it allows you to use Apple's Interface Builder to create your interface, then to convert them into Cappuccino interface. It also means that you don't have to worry anymore about positioning HTML elements, cross-browser considerations or CSS hacks. You may also have heard about Atlas, 280 North's forthcoming visual development tool for Cappuccino. It will allow you to manage your project files, edit your code, and design your interface with a visual layout tool. Watch Francisco Tolmasky's presentation at FOWA, and you'll understand the potential of such a tool.

The emotional aspect

You can basically create any application with any language. But you won't feel the same pleasure with every language. This is often underestimated, but we find it very important. I will spend a lot of time writing code and maintaining it. I'm convinced I'll do a better job if I truly enjoy the environment. This may not sound very rational, but trust me, it matters to me. I really want to enjoy all the tools I use on an day-to-day basis, life is too short. Don't you think? The computer I use everyday matters, the code editor I user everyday matters, the languages I program daily do definitely matter too.

We'll keep on posting about the future developments here, so stay tuned.

What's going on?

Posted by Thomas on October 23, 2009. / Comments

After many iterations, we finally have a working version of Cashflow that we are comfortable using on a daily basis. We don't consider it to be finished, far from it! But we think we've reached a point where we can expose our work to 'real' users (= other than co-workers, friends and family ;-) and gather their honest feedback. We are extremely eager to get a lot more feedback from our users. To that effect we're gradually opening Cashflow to more users. We will be sending more invitations to those who signed up for email updates and early beta access.

This represents a very exciting milestone for us. In the next couple of weeks, we plan to mainly focus on bug fixes and user interface tweaks based on users input. While we think the current user interface is clean and functional, we're convinced we can do a much better job.

Regarding The User Interface

We want Cashflow to be exceedingly easy to use and super intuitive. It should present as little friction as possible during its daily use. We have a long list of additional features in mind. But we realize that some of those features are difficult to implement up to our standards in traditional HTML/CSS/JavaScript. That's why we are considering re-implementing the UI layer with a new framework that would allow us to release a desktop-class application. As you can imagine, this is no minor undertaking. It will take some time, but we really think it would be well worth the investment.

Right now, we're evaluating 2 frameworks : Cappuccino and SproutCore. As you may know, I've already been involved in the Cappuccino community with some framework contributions, some posts and some screencasts. But I'd really like to take the time to think about which framework will best suit our needs.

We'll write a post here when we've made up our mind. We'll also keep you posted about our progress with the development of the iPhone version.

Introduction post

Posted by Thomas on October 21, 2009. / Comments

We've setup this blog to better communicate with you and tell you what's happening in Cashflow development land. Of course, you can also follow us on Twitter.

When I first started Cashflow App it was a side project around 10 month ago. It was meant to be a simple Web application whose baseline could have been "Keep an eye on your cash flow, the simple way".

A few months have passed and Cashflow App has now grown into a team effort: tmk will mainly work on an iPhone version of the app while I still focus on the Web application development.

Cashflow App is still in closed beta. You can follow us on Twitter and signup for e-mail updates from this blog. We'll keep you posted about the developments and we'll share our experience here too. Stay tuned!