The evolution of iOS development: Better tools and a lot more to think about

Dan and Tracey Pilone on iOS apps and the iPad's influence.

The first edition of “Head First iPhone Development” came out in 2009, which feels like decades ago in app years. Now, with “Head First iPhone and iPad Development” arriving earlier this summer, I checked in with the authors of both editions, Dan Pilone (@danpilone) and Tracey Pilone (@traceypilone), to get their take on the maturation of the iOS world, how the iPad has changed development patterns, and what they hope to see in iOS down the road.

Our interview follows.

Has the learning curve for iPhone/iPad development improved?

Dan Pilone: That’s a really tough one to judge after spending so much time working with iOS. I think the fundamentals are still the same: you still need to learn Objective-C, you’re still dealing with memory management, you still need to learn the core Cocoa Touch patterns. In some ways it definitely has gotten easier. For example, Xcode 4 is a huge step forward. Provisioning and iTunes App Store submission have been streamlined as well.

However, iOS has gotten harder in some ways. There are a lot more devices in the mix and iOS as a platform is bigger than ever. You have Game Kit, Map Kit, Store Kit, Grand Central Dispatch (GCD), fully capable audio and video frameworks, and more, all under the umbrella of iOS. There are entire parts of the iOS SDK that you might never bump into depending on what kind of apps you’re writing. It’s a great platform to develop for, but I don’t know if I’d describe it as “easy” just yet.

Tracey Pilone: Actually, I’d say it’s gotten worse! When iPhone development started, it was just one iPhone, with fairly limited developer access to parts of the OS, like multitasking. Since the last time we wrote the book, we have multiple iPhones, different displays, iPads, different OS versions to support, etc. You can start in the same place, but the topics for us to cover have expanded.

How have iOS development tools evolved since you wrote the first edition of your book?

Tracey Pilone: The tools have evolved a lot, which is part of why it took us a while to print an update. Xcode 4 was announced and in developer preview for months, and we struggled over when to print the new edition. We finally went ahead when Xcode 4 became public.

Xcode 4 integrated Interface Builder and dramatically changed the workflow, mostly for the better. You can link outlets and actions directly to code, unlike in previous versions. The editor for the views is completely integrated. Git support is included and there’s better support for coding with features like code completion.

Dan Pilone: The provisioning and signing tools have significantly improved and you can now do application validation prior to submission, which saves on needless round-trips trying to get your first application in the App Store. Testing tools have improved a good bit with Unit Tests being a first-class part of Xcode. Automated UI testing through Instruments is a big win as well.

Head First iPhone and iPad Development, Second Edition — Learn how to design for Apple’s devices and master the iOS SDK tools — including Interface Builder, Xcode, and Objective-C programming principles — to create eye-catching apps.

Have you noticed any iOS development trends tied to the popularity of the iPad?

Tracey Pilone: What we have seen is that clients come to us looking for completely different experiences out of the iPad verses the iPhone. The iPad has opened up lots of possibilities for extended user interaction. The iPhone is always with you, but the interaction time frame is significantly shorter. It’s been fascinating for us to see so many different types of uses for the devices.

Dan Pilone: I love the way iPad application UIs have evolved since the iPad first came out. Apple has gone to great lengths to get developers to think differently about iPad application UIs, and this has resulted in some really stunning apps. The integration of iPad applications and UIs with the real world is the most fascinating aspect. The virtual game board in “Scrabble” and Adobe’s applications for working with Photoshop are examples.

What technical issues does iOS need to address?

Dan Pilone: Provisioning and certificate management are still harder than I think they should be, but my biggest issue is the lack of a garbage collector. I understand the constraints of a mobile device and I’m willing to put up with it, but right now, to the best of my knowledge, garbage collection is the biggest hurdle to getting MacRuby as a viable development platform for iOS. I like the Cocoa Touch framework, and GCD is absolutely unmatched by anything else I’ve used. But I’m still lukewarm on Objective-C. If Apple makes iOS development more approachable through something like Ruby with real garbage collection, I think the application rush will start all over again.

At this point, do developers have to choose one mobile platform over another?

Dan Pilone: Unfortunately, yes. Either that or they’re choosing both iOS and Android and basically writing their applications twice. There are some mobile applications that are great as HTML5/CSS3/JavaScript and those are cross-platform, but I still think nothing beats a true, native application. As a great example, try ordering pizza from Papa Johns through their web application — it’s well-done, pretty straightforward, and it looks a lot like an iOS application. Then use Chipotle’s native iOS app. It’s phenomenal. It doesn’t do a whole lot more than Papa John’s mobile web app, but the Chipotle app’s user experience is dramatically better.

Papa Johns web app and Chipotle native app

We went through the whole “cross-platform development” thing with desktop apps, then again with web apps, and I guess we still need another round with mobile devices. In the end, HTML5/CSS3/JavaScript might be the cross-platform solution, but I don’t think it’s there quite yet.

Tracey Pilone: The overlap for iOS and Android is there, but it’s limited. UI and graphics work can be used for both, but they won’t share any code. There are a lot of mobile developers out there who can do Android and iOS, but our experience has been that the iOS market is significantly stronger than Android.

What aspects of app development — or types of apps — are you most interested in?

Tracey Pilone: I’m most excited about the prospects for education with iPads. The ability to integrate video, audio, reading, and tactile exercises into teaching topics is a great area for growth and it has the potential to deliver good teaching even to those students who can’t physically be in the classroom.

Dan Pilone: For me, it’s the idea of mobile devices acting as entry points for users into an always-connected network of information. We do Rails development in addition to iOS development, and I’m much more interested in applications that present me with exactly the right UI to plug into and take advantage of interconnected back-end systems. Combine heavy lifting on the server side with the location awareness and always-on connectivity of a mobile device and you have a pretty amazing change in how people interact.

Web 2.0 Expo New York 2011, being held Oct. 10-13, showcases the latest Web 2.0 business models, development tools and design strategies for the builders of the next-generation web. Save 20% on registration with code WEBNY11RAD.


tags: , , , , ,

Get the O’Reilly Programming Newsletter

Weekly insight from industry insiders. Plus exclusive content and offers.

  • UnleadedAndRegular

    At this point of the technical curve, with mobile processors still being “relatively” limited, Apple not having Garbage Collection in iOS is still a technical advantage. Furthermore, smarter compilers through Apple’s investment in LLVM and things like Automatic Reference Counting makes the lack of GC a relative non-issue.

    The biggest challenges facing developers are two non-technical issues:

    * How do you ensure that your App will get accepted in the AppStore? Any truly interesting ideas are at risk for not getting by Apple’s filters.

    * How do you ensure that your App will get noticed in the AppStore? With literally hundreds of thousands of Apps, getting your software in front of people and promoting your App can be a challenge. Facebook has developed a large advertising ecosystem with hundreds of companies promoting Apps on there through any of the companies listed at BuyFacebookFansReviews and other sites. The Apple ecosystem needs to evolve in a similar way and make it so that there are more options for promoting iOS apps as well.

    Apple development has continued to get better and better over the years and I’m excited about continuing on this platform. However, it’s not without its warts and there are some issues: but it’s still a better alternative (at least for now) than Android or any other ecosystem.

  • Henk Schotel

    Speaking about education …

    How about supporting App Inventor (abandoned by Google)
    and extending it to iOS? See:


  • For more complex apps, it makes sense to custom make versions for Android and iOS, but for relatively basic apps such as ordering food, I think the slight gains in performance don’t outweigh the costs in extra time. Perhaps more emphasis should be placed on a base that can easily build cross-platform apps. Google and Apple might not like it as much, but users and developers surely would!