Dave is a published author and entrepreneur.
- I know you’ve written a lot of books. Do you think of yourself primarily as a writer?
More than anything else, I’m an entrepreneur. I invent, I tinker, I write, and I really try to help. That means most of my time is spent with startups, in some form or another. One particular startup, http://soundshareapp.com, is bringing social to music. These guys have a brilliant idea and the emergence of iOS 7 is clearing the playing field, offering a brand new set of footholds for startups like ours. Very exciting!
- How did you get started in Mac and iOS programming?
I cut my teeth developing for the Apple II. Beagle Brothers, Graphics Magician, peeking and poking, all that good stuff. When the Mac was announced, back in 1984, I knew I had to have one. I saw that iconic Superbowl ad, had one in my hot little hands within a month.
In those early days, development was very difficult. Tools were limited and, even worse, the documentation was either spotty or nonexistent. There was very little public sharing, so if you wanted to build, you had to figure it out yourself. One of the first things I built was a 68000 assembler. At least the 68000 came with detailed documentation!
Fortunately for me, I collected all my development notes. At some point, I approached a publisher about writing a book to explain how to build a Mac app. There was a huge demand for that information and response to the book was incredible. That completely changed my life. I knew that writing, that explaining complex things, was going to be a big part of what I did from then on.
- Your book Beginning iPhone Development was one of the very first books on iPhone programming. How did that come about?
Back in 2007, the iPhone SDK had been made available under NDA, but was not publicly announced. I had created a startup called SpiderWorks that published eBooks. We were in discussions with Apress (who eventually bought SpiderWorks) and Jeff LaMarche and I pitched them on the idea of an iPhone SDK book. Seems silly now, but at the time there was a lot of resistance to the idea. Remember, back then, many people thought the iPhone was a fad, that it would fail.
Jeff and I worked together on a series of apps that exercised the pieces of the SDK. We banged ideas back and forth, Jeff would build a prototype, I would pick it apart, make interface suggestions, Jeff would retool the app. Over time, we had a really good sequence established, one that formed the backbone of the Beginning iOS Development series of books. Interestingly, a number of the earlier apps in the App Store were built on top of those sample apps.
- What advice would you give someone who wanted to learn how to build an app?
That is one of my favorite questions! I see programming as a path. Where you enter the path depends on what you already know. Assuming you are just getting started, I would start by learning C. The C language is the most popular programming language in the world (really, look it up!) and many other programming languages are based on C. Java and Objective-C are both based on C. Java is the programming language of Android and Objective-C is the language of iOS. So learn C, then learn Objective-C. You’ll want to download Xcode, the free development environment available from the Mac App Store (the app store on your computer, as opposed to the app store on your iOS device).
Once you know Objective-C, you are ready to embrace the iOS Software Development Kit (SDK). The iOS SDK is the set of programming frameworks that allow you to add all the iOS goodies to your own programs, things like icons, buttons, nav bars, tables, and the like.
- What do you think makes for a good app?
As an entrepreneur, I always look for a need and fill it. The world changes every day, and change breeds opportunity. Look for something new, find a way to appify that new thing. For example, when app.net came out, someone wrote a nice little iOS app.net client and it sold very well. When Apple ships iOS 7, later this year, there will be a host of new features, a host of new additions to the SDK. Opportunity! Find one of the new SDK additions that appeals to you and appify it. Another approach is to just start playing with a part of the SDK and look for the nooks and crannies you can exploid to make your iPhone or iPad do something different. Learn, explore, have fun!
- Of the books you’ve written, is there one in particular you’d recommend for a beginner?
There are a lot of excellent books out there, and some excellent tutorials on-line. If I had to pick a book I’ve written, I’d sayLearn C on the Mac. It assumes zero programming experience and teaches you the basics of programming. By the time you finish the book, you’ll know your way around the C language. That’s a good start. But picking a book for someone is hard, since everyone’s taste and learning style varies. I would definitely recommend finding a programming group that meets in your neck of the woods. There are just so many of them. Check out nscodernight.com and cocoaheads.org to find a group near you. Very friendly folks, always welcoming of beginners. I wrote a blog post (http://www.davemark.com/?p=1829) on resources for developers. Tuck that link away somewhere.
- Finally, what’s the best way for people to get in touch with you?
By far, the best way to reach me is via @davemark on Twitter. Follow me, and please do let me know when you get your app up on the app store!
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.