Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How hard is iPhone/iPad development

Tags:

iphone

I've been developing for quite a while but while I consider myself competent (or better) with C++, Java, C# & AS3/Flex in areas from web-servers to desktop applications to 3D games, I'm aware all these languages are pretty similar; even on the libraries side I know what to look for based on using libraries that do similar things in another language.

But Objective C I understand to be a different kettle of fish, and developing for mobile devices has always struck me as likely to be hard work since you have to develop on your PC and test on the actual device itself - my experience developing for PS2 put me off such things due to poor debuggers and other tools.

What's the reality? Is it a paradigm shift to move from web-servers and desktop apps and rich web-clients to iPhone... or for an experienced developer is it just another language to learn and new libraries to play with? Is there anything to be scared about at all?

edit: My main question on Obj-C specifically was if it's a different way of programming, like it would be moving to Haskell from Java for instance. It sounds this is not the case.

like image 899
Mr. Boy Avatar asked Jul 21 '10 18:07

Mr. Boy


2 Answers

For starters, ObjC is fairly easy to grasp so long as you focus on the fundamentals. Don't worry about the syntax, there's not much there above C which I will presume you already are familiar with. There are excellent books out there this book is the definitive guide I recommend to most new users, Erica Sadun also has a good book on iPhone development, I recommend both of these highly.

Secondly, the tools aren't hard to use, and you will be pleasantly surprised with the debugger and other tool integration. Instruments was a long time coming, but it's indispensable for catching things like memory leaks, cpu time usage, and now power consumption.

But really, nothing to be scared about, and as for another platform to learn; well, yes and no. There is always going to be another thing to learn, regardless of iPhone or something else. Don't resist. :)

like image 144
jer Avatar answered Oct 24 '22 14:10

jer


There's definitely a "paradigm shift" (ugh, buzzwords):

  • You don't have all the memory in the world (and there's no swap either)
  • You don't have all the CPU time in the world
  • You probably don't want a binary bigger than about 20 MB (the size that can be downloaded over the cell network)
  • You can't just change the server backend to make things right.
  • Graphic design is important if you want to be successful (but you don't want to bloat your app)
  • Web requests take a while (a website with redirects feels really slow compared to the desktop beside it).
  • JavaScript animations are painfully slow (ever tried the Google Maps website on an iPhone?)
  • UI design is heavily constrained by the size of the user's finger (even though the iPhone 4 has a comparatively huge screen).
  • UI design is really tedious.
  • The user can do more things than clicking and typing.

I find that the biggest difference is in the UI, not in the language. Languages are easy. Libraries require a little reading/searching/asking around, but then they're easy. UI design and UI programming are very difficult to do well.

like image 28
tc. Avatar answered Oct 24 '22 14:10

tc.