- What do you currently do?
I’m a human interface specialist aspiring for world domination and running a consulting business on the side. I design human interface for mobile, web and desktop software, and do some degree of mobile and Web engineering. (Tongue in cheek variant: I help clients build business applications that make them superhuman, in an affordable and profitable way.)
- How did you get started in Mac and/or iOS programming?
I started out working on visual design and digital publishing and was compelled to learn Web design and development to create a street photography portfolio. It kicked off a series of events forming Iridia Productions with a friend of mine and got me started on software development and the business side thereof.
Iridia’s formative months coincided with the launch of the iPad and the explosive period of growth of the iOS platform as a whole, and we shifted from Web consulting to iOS consulting. We built our and my first iOS application around this time.
- What was the first app you created and what did it do?
Tarotie was the application I created with my co-founder at Iridia to explore what’s possible with iOS, when iOS 3 was mainstream and iOS 4 was taking territory. It’s an interactive Tarot deck. You’ll place the phone face-down on the table, then flip it back up. The app picks up device motion, recognizes the rotation and shows a new card with the built-in flip animation.
- Where did you get the idea for the app?
Both of us have a Tarot deck sitting on our respective shelves, and I have an unhealthy level of obsession with replacing ordinary things with convoluted technology. It’s mostly a series of coincidences.
- What went well? What could have gone better?
A professional astrologist praised its apparent accuracy; we were half baffled. For a side project, Tarotie took over a whole year to build, only because we spent very little time on it between client projects. It could have been shipped in weeks if we both knew what to build and were both focused on the project for a very short period of time.
- What is your favorite among the apps you’ve developed?
I once built an engine that used up to seven UIWebViews concurrently in pages to drive an infinite magazine-style layout which scrolls at 60 FPS.
Another app reads and writes WMF-wrapped PNG files natively, handles rich text editing on the iPad, with full RTF reading and writing support, and synchronizes everything with Dropbox while recording or playing back audio at the same time.
- What advice do you have for young people who want to make apps?
Build your own support network by integrating the local and global community. As a novice, the first step is the hardest, and classrooms won’t always work. (Teaching iOS development to absolute novices, drawing from my own experience, is very difficult to do in certain cultures where failure is frowned upon.) Find out where people go and attend these meet-ups, show your progress to other peers, and find mentors early in the process. If there’s no such local community, you can easily create one by providing food, beer and a place to meet regularly. People will come out of altruism, curiosity or boredom, and you get to learn from them in all cases. (Bonus: If you buy people beer, they will like you.)
Rack up your open-source contributions as soon as possible to acquire experience, force exposure and heighten proximity. In certain cases, it’s highly beneficial to start with small tasks that add to an existing framework than to start from scratch. It’ll provide you some structure to learn about specific areas. Interacting with the open-source development community helps you learn more about the craft itself — ways to build usable, solid and performant software — and the meta-craft, which is the way of performing these tasks as an useful participant.
Postpone your “life project” and hedge some time against an initial piece you can finish expediently. It’s imperative that when shipping your first application, you ship it in a matter of weeks by creating very little. A string of small victories is far more beneficial than a long march with no proof of succeeding. Get something on the screen, and worry about product-market fit later on your second or third project when you are technical enough to avoid jumping into rabbit holes.
Find your ten-year and five-year anchors and work towards them. Acquire specific skills, connections and knowledge if need be, and don’t be afraid to eventually get out of building applications if that’s not the best way to manifest your ideas.
Help more girls learn software development. Contribute to the App Camp For Girls Indiegogo fundraiser, get a cool perk, and enjoy the feeling of having helped the next generation of software developers.