Why should embedded developers learn to program iPhone? | Cypress Semiconductor
Why should embedded developers learn to program iPhone?
I have been intrigued with programming for a mobile platform for quite awhile, but before the iPhone SDK was released to the public, it only remained intrigue. When I saw the velocity that applications were begin developed for iPhone (and iPod Touch, since they share most of the same capabilities), intrigue inched its way towards action (or perhaps millimetered its way). I began watching (passively) the Stanford lectures on iTunes, even collected them all. Then during the last Cypress shutdown for Thanksgiving, I jumped in, got a couple "Hello World" apps out of the way and began reading Apple's voluminous documentation. That led to actively participating in the Stanford iTunes lectures and finally seeking out books.
After several books, I found for me the best one is Head First iPhone Development (oreilly.com/catalog/9780596803551/). What is different about this one is that it starts right away doing a real app (and gently tips its hat at "Hello World") and eventually starts to build up an application, chapter by chapter, to include database and even the camera along with other iPhone staples like navigation controllers, data pickers, button actions, and animation. Another great thing about this book is how they present the material (it is a "Head First" characteristic) where there isn't just "lecturing" and "examples" but many different ways to get to the point (questions, interviews, try-it examples, even some that crash).
But back to the big question, why should an embedded developer whose mainstay is "C" and assembly and board support packages care about learning to develop for the iPhone? There are three reasons for an embedded developer to learn to program the iPhone:
1) It stretches your gray cells,
2) it is the future of development, and
3) it is the future of embedded.
Stretch your gray cells: One way to guarantee you get stale (less-marketable) is to do the same thing over and over. As a contractor, when I had a choice I always picked my next assignment as different from what I had done before. Develop sometimes, test sometimes, 8-bit sometimes, 32-bit sometimes, different languages, different industries, etc. And by doing this I have gotten comfortable with the idea of change (and a little restless, too). The iPhone/iPod Touch offers a reasonably priced publicly available platform with readily available extensive tools (free SDK from Apple). And the patterns in iPhone are certainly different from those most embedded projects employ. Which breaks your mind out if its rut and might just give you a new perspective on your next embedded project. Besides, showing off an iPhone app you developed surely leads to a date faster than describing your latest 8051 interrupt handler.
iPhone development is the future of software development: Objective C is the basis of iPhone development, but that isn't all there is to iPhone development - it is the frameworks. Cocoa Touch, Core Data, UI Kit, Quartz and Open GL are just some of the pieces that are combined by the iPhone SDK. What this does to an embedded developer is force you to learn how to use what's been done already rather than inventing it yourself (you know who you are). And there are many rules to learn in order to allow the frameworks to evolve as devices and features also evolve. This kind of development may be less foreign to PC app developers, but for a typical embedded guy/gal this is like learning Latin, at first. But as development devices increase in capability and design cycles shrink, it isn't hard to see that this style of development WILL come to your local embedded project.
iPhone demonstrates the future of embedded: The iPhone is a powerful computing platform masquerading as an embedded device. But it is the apps available that show the real future of embedded, where every little (or large) device is providing data and controls to the "cloud" and an app on a device like the iPhone (or iWatch) can access or control it from any corner of the globe (even when a sphere cannot have corners). By working on the app side of the iPhone the embedded developer can gain new insight into how his/her product might need to play in the future.
Reason 4 - $$$: Of course, flirting with iPhone (or iOS now that there are 3 different devices with iPhone, iPad and iPod Touch) development just might lead to a profitable extra-curricular activity: there are 100 Million iOS devices out there and already 250,000 apps in the App store.