4 years ago I moved to San Francisco to begin employment at Apple; my first job out of school. I knew that I wanted to be a developer, but I was at a platform crossroads. Should I focus on the web’s promise of “build once” ubiquity. Or should I focus my attention on building native mobile apps. At the time, centering a career around Apple’s iPhone ecosystem felt like a bit of a gamble. People will always need websites. Would knowing how to build iPhone apps be a sought after domain of knowledge in five or ten years? In hindsight the decision seems obvious, but just four years ago was a decidedly different state of the mobile world. For example, the most used iPhone app on the planet, Facebook’s app, still existed as a Cocoa wrapper around their website.
Fortunately, the offer I accepted at Apple gave me an opportunity to participate in the rotation program within my division. This program gave me the incredible opportunity to do three or four, six-month rotations with different teams and technologies. At the end of the program, I was free to pick the team I wanted to be a part of long term. The allure of multi-device support was very appealing, so I decided to specialize in web development. My first rotation was with the Apple Online Store team.
After a few weeks on the team, the promising nature of the web gave way to the realities of the process of web development. I detested building a feature that worked great in Safari, and behaved dramatically different in Internet Explorer. I wanted to focus on the product, not have an intimate understanding of the quirks and workarounds for Internet Explorer. So much for the ability to “write once,“ and have my code “just work” everywhere.
Disenchanted with web development, in my spare time I began reading Steven Kochan’s Programming in Objective-C 2.0. Then I picked up Aaron Hillegass' iPhone Programming book, and started tinkering with Xcode’s simulator. At some point I was able to borrow a test device from work; that’s when I fell in love with mobile development. So throughly did I enjoy creating my first button, hooking it up to code that performed on tap. The tactile feedback and sensory ability to interact with something I made felt unprecedented. I quickly rotated to a group that made iPhone apps, and have since never considered moving to another platform.
Reflecting on my career has made me realize that it never mattered what the pros or cons of a particular technology were. I chose to create native iPhone apps because I enjoyed the development process, not because the industry realized the inherent limitations of mobile web apps. I started with a pragmatic approach to figuring out what I wanted to do with my professional life, and finished with an emotional decision.
Over the next four years, I hope to continue making iOS apps, now with Swift! I also want to continue to challenge myself with goals that seem improbable or make me uncomfortable. I’ve found that striving for them is the best way for me to grow. Along the way I want to maintain my curiosity, desire to learn, and focus on the work that truly inspires me.