Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

raison

macrumors member
Original poster
Nov 13, 2009
83
4
I have the urge to sit down and start coding right away and I end up never finishin a product. I'm getting used to do some design materials in others languages such as Java but I wonder if you guys do the same with iPhone apps. I want to have an idea on what classes I'll use from the sdk, use cases, etc. Is that worthwhile doing it?
 
I'm no expert but it's best to think of a good idea, then put some pen to paper before coding it all. You need to have a basic layout of the app in your head at least first of all so that you don't have massive headaches later on trying to change everything.

Think carefully about how is the simplest, best way of acheiving what your app's objective is. Where should the buttons go? Which buttons are needed, which aren't? Have a look at other apps (including the built-in ones) so that you can use paradigms from similar functionality there so as to keep the same experience.

Then experiment a bit and once you think you have completed it, tweak until you are happy with the product.
 
That's what I am going to do. I usually start to develop and try to figure out what classes I need to use while I am developing and that wastes a lot of time and sometime (quite often) I give up.
Thanks for the reply.
 
All depends on what the app is supposed to do. That's like asking "I'm going to bake a pie and want to have an idea on what ingredients I'll use..."

Exactly. That's why I want to write down beforehand all the classes the program will need before I start to implement. Something like a class diagram and use case.
 
Most iPhone apps are UI-driven. So I start implementation of major features or a new app with UI diagrams. I draw out the screen on paper with controls, navbar, toolbar etc. Then I draw more screens based on what actions the user can do. I use arrows to indicate the flow of user actions.

I also write out a description of how the UI works and what happens in response to user actions. Basically I write down anything I think is important related to the feature to be implemented.

Once the appearance is done I can start with the design of the implementation. It's usually on paper also. I draw diagrams representing the various classes that will be needed. I add important ivars and methods. I also write out anything that seems important to remember for the implementation.

My purpose in all this isn't to completely document every detail of the implementation. Rather it's to write down enough so that I can do the implementation without thinking about it too much more. I know that some things will change and some things I write down will never actually be implemented so I don't want to spend too much time thinking about it.

Everything requires some design and some thought up front but how much depends on the complexity of the feature and your own familiarity with the technology to be used. If I'm implementing a view controller that's similar to one that I've already done then little design is required.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.