Different developers take different approaches to development but here recently, I've create a few new ideas for products and I've settled on something I call the development square.
The first thing I do is generally mock up the interface. This might be in HTML, a graphic design tool or within Interface Builder (Xcode). Whatever the technology, I need to walk through the screens and get a sense for the workflow of the application. I am less concerned about how pretty the app is as much as I'm getting a feel for the function and flow.
The second thing I do is populate that interface dynamically with data from a datastore. This gives me a chance to tweak the database schema to make the UI easy to develop against.
Next, I implement add, edit and delete functionality. This gets tricky since, at times, I don't even have such named buttons or methods in the interface but it really pulls the whole thing together as at this point, the interface becomes a working application.
The final step is to sweeten up the graphics and polish the app as a whole. This leaves me at the final node of my square - which leaves me at the beginning …
Repeat.