Jay Graves, Double Encore

jay graves

  • What do you currently do?

I am the CTO at Double Encore which means I am responsible for the engineers on both the iOS and Android teams. I speak at conferences and blog for the Double Encore Insights.

  • How did you get started in Mac and/or iOS programming?

I was primarily a web developer and was very interested in building new social networks. When the iPhone was released it was apparent that that was the way people were going to be interacting online. I started building iOS apps to support the social networks I was building.

  • What was the first app you created and what did it do?

The last social network I built was geared towards fashion. It was called Coathangr and it really needed a mobile app so people could post pictures of their clothes while on the go. So I built the Coathangr iOS app as my first mobile project.

  • Where did you get the idea for the app?

My friend, Dave Wiskus, came up with the idea one night. He said “Twitter asks, what are you doing? Brightkite asks, where are you? We need to ask, What are you wearing?”

  • What went well? What could have gone better?

Building this app taught me a lot. Having a real life project to drive you to learn and solve problems is a huge advantage. I really wish I had built this app “the right way”. I took shortcuts because getting something out quicker was more important than learning how Objective-C really worked.

  • What is your favorite among the apps you’ve developed?

I love the MLS MatchDay app for iPhone and iPad. It has been so fun to architect and design a Universal application that delivers so much to fans.

  • What advice do you have for young people who want to make apps?

Learn “the right way” to do things and try not to cut corners. Seek out people who have gone before you and learn from them. Get involved in structured learning like AppCamp4Girls or Pragmatic Studio (where I learned) or just pick up a good book and read it all the way through. This was my first one.

Follow Jay on Twitter and App.net.

Help more girls learn software development at App Camp For Girls.

Jonathan Schwarz, Black Pixel

jonathan schwarz

  • What do you currently do?

I work at Black Pixel as an iOS and Mac developer, largely working on client projects and occasionally contributing to our internal products.

  • How did you get started in Mac and/or iOS programming?

I got my first taste of programming with Logo when I was in middle school. I was hooked as soon as I realized I could make the turtle change colors. I learned Java and C in classes I took in high school, but I didn’t start using a Mac until I went to college. All my college courses were in C or Haskell, but I taught myself Cocoa on the side – I knew I wanted to make beautiful apps, not what I thought were boring command line programs that parsed strings or implemented various search algorithms.

  • What was the first app you created and what did it do?

The first real software I wrote was a Space Invaders clone. It wasn’t very good, but I spent a really long time creating the graphics, adding sound effects, and tweaking the game play. Each level the aliens just got progressively faster until there was no way to win.

  • Where did you get the idea for the app?

We weren’t allowed to install games on the computers at school – writing my own seemed like a great way around that!

  • What went well? What could have gone better?

The game was surprisingly fun to play. I spent hour after hour finding glitches in the game, thinking of new features to implement, playing some, writing new code, and on and on.

I don’t think when I started I realized just how deceptively complex an application can be. You think, “Oh, that looks pretty simple”, and then you get started, and the further along you get the more you realize how many little moving pieces there are that you didn’t notice. So you figure that all out, make it happen, and then there’s a whole other layer of complexity you didn’t see the time before.

  • What is your favorite among the apps you’ve developed?

My favorite would probably be OneNote for iPhone. That was the first real iPhone app I had the chance to work on, and I worked on it from the start of the process through shipping it. It was really challenging to develop for many reasons, but it was amazing to see so many people download it and know that I helped create something that was useful for all of them.

  • What advice do you have for young people who want to make apps?

Learn by doing. I used to get frustrated when I’d try to learn a new topic because I’d read a book or an article about something, then feel that I hadn’t really learned anything in the process because everything was so abstract. I learn much better by reading just enough to get something working, maybe copying some sample code, fiddling with it until it does what I want, and moving on. Once I’ve actually worked with something in code I find it’s easier to read about how it works because I know what the pieces are – it’s more concrete to me.

Learn from everyone. I believe everyone has something they can teach us, whether they’ve been programming for decades more than you or not. Some people know so much about everything, so it’s great to learn all the valuable lessons from them that they had to learn the hard way. Sometimes you learn the most from people without much experience, though. You’ve gotten so set in your ways and you don’t realize it until they ask why you’re doing something a particular way.

Don’t be afraid to try. I think sometimes we’re so self conscious of our work that it keeps us from doing our best or sharing what we can do. You think maybe people will judge you or think you’re not very smart because your code isn’t perfect, and so you don’t write that app or share that code you’ve written. Put yourself out there, and learn from the feedback. By the same token, if you see someone starting out, be nice, help them out, and stay positive. Remember that you had no idea what you were doing once upon a time.

Follow Jonathan on Twitter and App.net.

Help more girls learn software development at App Camp For Girls.

Gwynne Raskind, Chaotic Moon Studios

  • What do you currently do?

I’m currently employed at Chaotic Moon Studios as a Senior Software Developer. I also do freelance work on the side, and I’m working on a second edition of Amit Singh’s famous, but unfortunately outdated, internals tome, “Mac OS X Internals: A Systems Approach”.

  • How did you get started in Mac and/or iOS programming?

I got started in programming very young, though I didn’t do much in the way of real development until much later. Until a few years ago, I was purely a hobbyist, but I finally began working professionally based on an offer from a friend and found out, hey, it’s still fun!

  • What was the first app you created and what did it do?

The first app I created that had any real function at all was a preference pane for OS X called “MusicImage”; it grabbed the currently playing iTunes track, built a small PNG image with the track info and an optional background, and made it available on my VPS for use in forum signatures – this was back in the mid-2000s, when signatures on sites such as Gaia Online were all the rage. I only kept it updated for a year or so, and it never had more than about 20 users, but it was fun.

  • Where did you get the idea for the app?

One day while I was posting on Gaia Online and noticing how everyone had “dynamic” signatures on a decidedly static (at the time) forum system, I thought it’d be neat to put my current music in my signature. I didn’t realize at the time how terrible a PHP script backed by a MySQL database would have been for scalability if more than a few people had ever used it! 🙂

  • What went well? What could have gone better?

Really, it all went well; it was a learning experience and I had fun doing it. The main thing that could’ve gone better was me paying more attention to it once it was up and running; I tended to leave it to its own devices and only find out much later that it was down or broken for the few users it had, often because I’d made assumptions or changes that worked only for my computer and configuration.

  • What is your favorite among the apps you’ve developed?

Not having done many actual “apps”, it’s hard to say! But my favorite project to date was working on PLCrashReporter, a backend framework used by developers for detecting and reporting crashes in their apps. It required a lot of research into the internal functioning of the system, also known as the “nitty gritty details”; I love the nitty gritty details :).

  • What advice do you have for young people who want to make apps?

Never assume you know everything you need to know about what you’re doing, because you don’t; there’s always something you didn’t consider, something you weren’t aware of, or something that will change, even after you’re done. Always be ready and willing to continue learning.

Follow Gwynne on Twitter and App.net.

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.

Jaimee Newberry, Speaker + Writer + Consultant

  • What do you currently do?

These days, I’m working for myself from my home in Las Vegas, NV.
I kinda define myself as a speaker, writer, mom-in-tech -or- as an experience design + strategy consultant for web, mobile + physical environments.

That’s a mouthful. My focus is mostly on single-momming two little girls, speaking and writing right now but I’m also working on a couple personal projects with some close friends, and a couple awesome client projects..

  • How did you get started in Mac and/or iOS programming?

So… I’m actually an experience designer/strategist. But I got into all this about 15 years ago by teaching myself how to design and code websites. Photoshop and BBEdit, baby!

  • What was the first app you created and what did it do?

My foray into mobile apps was working with an incredible small team to create the first iPad, iPhone and Android apps for Zappos.

  • Where did you get the idea for the app?

While there were a ton of potential ideas for what the app could and should do, the foundation for an entity like Zappos was fairly straight forward. We took the approach of focusing on the simplest version of allowing people to browse and buy Zappos goods. We put as much effort as we could into focusing very specifically on tailoring everything toward the individual devices we were creating for. They turned out pretty ok.

  • What went well?

The team: one UX designer (me), one visual designer, three developers, one project manager and one quality assurance engineer. We worked collaboratively from beginning to end, on all the projects. We had incredible camaraderie, we had fun and laughed a lot, we worked really hard and we launched a completely awesome iPad app in 8 weeks, then trucked along to crank out the rest in similar timeframes.

Hands-off management: Our leaders used a hands-off approach. They gave us an objective, a timeline and support, and they trusted us. We checked in weekly but ultimately, they got out of our way and let us run. We delivered. There was much celebration.

  • What could have gone better?

I really don’t know. I definitely wanted to throw everything away and start again after we launched each product, you learn so much just by “doing” but for a first go at things, I’m not sure things could have gone any better than they did. Make stuff, throw it out there, observe/learn, do it again!

  • What is your favorite among the apps you’ve developed?

I can’t talk about a lot of the stuff I’ve been able to work on in the mobile apps realm due to many strict NDAs. Of the things I can talk about in this moment, Zappos still may be one of my favorite projects to have worked on.

Pretty soon I’ll be able to share some stuff that really takes the cake on my favorite projects, so keep an eye out for those announcements!

  • What advice do you have for young people who want to make apps?

Always follow your passion. Dig in and DO IT.

The app-makin’ community is one of the most encouraging, helpful and welcoming communities I’ve ever had the pleasure of being a part of. If you get stuck on anything, there are people willing to help.

And, even though I ended up following the design path more than the coding path, learning to code as a web designer has always helped me be a stronger designer and a better communicator with the programmers I get to work with.

Follow Jaimee on Twitter.

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.

Evadne Wu

image

 

  • 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.

I started out building business software on the Web with Cappuccino, a framework built on top of the Objective-J language which is a port of Objective-C atop JavaScript.

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.

Follow Evadne on Twitter and App.net.

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.

Paul Kafasis, Rogue Amoeba

  • What do you currently do?

I’m the CEO of Rogue Amoeba, a Mac audio software company I co-founded back in 2002 with my partners Quentin Carnicelli and Alex Lagutin.

  • How did you get started in Mac and/or iOS programming?

It all started with writing, actually. Back in the late 90s, my friend Misha Sakellaropoulo got me set up writing software reviews for MacNN. I stumbled on a small tool called StripAmp. I wrote a positive review of the product, and before it was published, I contacted the author to suggest he should charge a few bucks for it, rather than giving it away. That author was the aforementioned Alex Lagutin. Well, back in the late 90s taking payments online was a bit tougher, particularly if you lived in Russia as Alex did. Casting aside all journalistic integrity, I offered to partner up with him to sell the app (hey, I’d already written the review!). He was amenable, and we started a tiny company called PK Industries (the domain is now owned by a janitorial company who kept our color scheme) to sell the app.

  • What was the first app you created and what did it do?

The first tool we sold was StripAmp. It was a software remote control for one of the first MP3 players, MacAmp. It was a tiny app which sat in the Control Strip (the what?! http://en.wikipedia.org/wiki/Control_strip), which was sort of like the menu bar is now – a place for fast access to all sorts of status information and controls. StripAmp provided a quick way to control MacAmp, the most popular MP3 player on the Mac at the time. It was small but elegant, and we sold it for a whopping $5.

  • Where did you get the idea for the app?

When I stepped in we polished the app up together, but Alex gets all credit for the application idea itself, as he made it before we even met. He made it to scratch his own itch – he wanted an app which did what StripAmp did, so he made it. That said, it’s useful to talk about where ideas for our apps have come from in general. Scratching our own itches has often been the starting point for our apps. Then, once we’ve released a basic application, we’ll hear from customers who need a slightly different tool.

Customer feedback has led to the much of the stable of Rogue Amoeba products. We started with audio capture, because Alex wanted to add an Equalizer to movies played in other applications. After users saw that, they told us they wanted to be able to record audio, rather than just add effects, so we made Audio Hijack. Well, once audio capture and recording was out there, people told us they wanted to broadcast audio across the Internet, which led to Nicecast, our Internet radio tool. And when the AirPort Express debuted back in 2004, it could only receive audio from iTunes. People immediately came to us to help them send any audio to it, which resulted in Airfoil. Those are just a few examples, too. Literally dozens of additional features and even full-fledged products have been the result of customer requests and desires.

So, to sum all that up? Pay attention to what you want, and pay attention to what other people want. It’s a pretty good way to make products that will find an audience.

  • What went well? What could have gone better?

Let’s start with what could have gone better: we could have sold more copies! At $5 a pop, it’s very difficult to make a sustainable business. That’s as true now as it was then – perhaps even more so, as there’s far more competition now. A low-volume, low-priced app is not a recipe for success, and most apps will be low volume.

As for what went well, our partnership certainly did. Jump ahead almost 15 years, and we’ve worked together at 4 different companies, including our current one for over a decade. It’s been a heck of a ride together, all because Alex made a great little app and I thought he should get paid for it.

  • What is your favorite among the apps you’ve developed?

That’s a fascinating question, because it can be answered in so many different ways. Our audio streaming tool Airfoil is by far our most popular app, and it’s thrilling to know we’ve helped fill a hole for hundreds of thousands of users. But popularity isn’t the only factor in determining what my favorite will be. Really, I think the answer should usually be “our latest”, because we’re always improving and building off what we’ve learned. Fission 2 was our most recent major update, and it came together really well. Audio editing is often difficult, but Fission makes it easy for users to do what it promises. There are a whole lot of things it doesn’t do, and that’s part of its design as well, and part of why I like it. But hopefully in another 6 months or a year, we’ll have another major release and I’ll have a new favorite.

  • What advice do you have for young people who want to make apps?

I generally encourage anyone getting started, young or old, to find a partner. Developing on your own can work out great, and I know plenty of successful one-man shops. Still, having a partner to work with is hugely beneficial. It means you have someone to share the workload with, someone to bounce ideas off of, and someone who can either reel in your crazy impulses, or encourage you to go even further.

Whether you go it alone or with a friend, the single most important thing is to actually GO! Ideas without implementation are nearly worthless. So get to it and get your app out there. Don’t be timid – learning by doing is practically required here, and the only real mistake is not trying at all. Your app may not be great, or successful, but it will teach you a great deal, and that experience and knowledge is invaluable. After you’ve developed software for a couple years, you’ll be leaps and bounds ahead of where you started.

Then come find me at Rogue Amoeba – we may just have a great job for you!

Follow Paul on Twitter and App.net.

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.

Rich Siegel, Bare Bones Software

rich siegel thinkpascalicon

Rich operates Bare Bones Software, Inc., a company which develops OS X and iOS apps.

  • What do you currently do?

I run a software company: Bare Bones Software, Inc. We’re the developers and publishers of BBEdit, TextWrangler, Yojimbo, and many past products.

rich siegel AboutBBEdit

  • How did you get started in Mac and/or iOS programming?

I got started in Mac programming in 1985, with a copy of the Macintosh Pascal interpreter. It was a very simple environment for programming, but there were some secret tricks under the hood that you could use to reach into the innards of the Mac toolbox and get started with all the cool stuff.

Not long after, THINK Technologies, the developer of Mac Pascal, released a product called THINK Pascal, which could compile native Mac applications (not just interpreted code) and made the full power of the Mac available to users. Together with LightspeedC from the same company, it was one of the first products that we today recognize as IDEs.

  • What was the first app you created and what did it do?

Apart from just randomly messing around, the first “real” applications I wrote that were used by other people were purpose-built tools for controlling and reading scientific instrumentation. I also wrote a graphing and numeric analysis program that was fairly popular as shareware.

The product that really started my indie career, though, was BBEdit. It started as a high-performance general purpose text editor.

rich siegel HTML Glamour

  • Where did you get the idea for the app?

In one of life’s funnier twists, I actually ended up working at THINK, on their IDE products (LightspeedC and Lightspeed Pascal). While I was there, one of the recurring needs was for a general-purpose editor that was usable outside of the IDE. LightspeedC wouldn’t let you open a file unless you also had a project open; and Lightspeed Pascal’s editor was purpose built for editing Pascal source files, so it would try to format anything you opened as Pascal.

At the time, the only editor around was TeachText (later rewritten as SimpleText), the editor that was supplied with the system software installation. This was limited to 32K (that’s 32,768 *bytes*) of text in a file, and the bigger the file, the slower it was to type in.

However, the editing engine that THINK had developed was purpose-built for editing big files without slowing down, and could handle files up to a theoretical 32-bit size limit (2GB), as long as you could read the whole thing into memory.

At the same time, I was trying to demonstrate some simple Mac programming concepts with an example program that was intended for a new version of Mac Pascal (which ended up not shipping); and that program was a text editor which used the OS editing engine (limited to 32K) but had a nice basic set of features: searching, printing, and so forth.

So, I took the THINK editor engine, hooked it up to my example program, and suddenly I had a simple but very powerful text editor. This attracted intense interest from my colleagues, who started using it for all sorts of work alongside their development environments, and I got huge quantities of feature requests, bug reports, and all sorts of other feedback that helped move this little editor forward.

Eventually, it reached a point where I thought it was something the rest of the world might find useful, and so I did a release as freeware; and when the need to provide documentation and support reached a level that needed funding, I made a commercial release. Eventually that became self-sustaining, and I was able to do it full time.

  • What went well? What could have gone better?

BBEdit grew *remarkably* quickly in its early days. If I had it to do all over again, and I had the faintest idea that I’d be working on some of the same code twenty years later, I certainly would have made some different decisions early on in how I architected certain parts of the product. But the best part of the life cycle of BBEdit (of all of our products, really), is the feedback that we get from customers who are using it to make their own careers, and that helps us make a better product.

  • What is your favorite among the apps you’ve developed?

…it’s hard to pick favorites — each one I’ve worked on has had something special about it, a unique set of challenges and rewards. I do miss the days of working on Lightspeed Pascal, but nowadays I find that BBEdit is the one where I spend most of my time, because there’s always something new to explore.

  • What advice do you have for young people who want to make apps?

The fundamentals are important: math science, logic, language skills, organizational ability. However, along with all that, I encourage you to look at app development as an art form, and an app as the artistic expression of an idea within you. If you do that, I think you’ll find that the code just pours out of you. And look within yourself for ideas, too — the best solutions you will ever come up, and the best products that you ever make, are the ones that you create to solve problems that are of personal importance to you, or to people who are close to you (personally or professionally).

Follow Rich on Twitter and App.net.

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.

Michael Simmons, Flexibits

michael simmons

Michael is one half of the OS X and iOS software development company, Flexibits.

  • What do you currently do?

I’m 50% of Flexibits and our apps are Fantastical and Chatology. I love designing user interfaces, user experiences, and ultimately make apps that help make people’s lives better.

Michaels Simmons Fantastical_for_iPhone_512

  • How did you get started in Mac and/or iOS programming?

Even though I did programming back in the 90s with the Commodore 64 and Amiga, it was primarily hacking around and creating what were known in those days as “demos”. In 2000, I attended the Big Nerd Ranch and it inspired me to write an app, so I wrote an app called PiXel Check for OS X that checked LCD pixels. I stopped coding to focus on design and business development, but I keep a strong passion in maintaining my knowledge and education of the latest and greatest frameworks and technologies. This helps me to know how long something might take or what’s (easily or not easily) possible.

  • What was the first app you created and what did it do?

The first app I created was when I was around 12 years old and was written in BASIC, on a Commodore 64. It was an app that solved basic math equations.

  • Where did you get the idea for the app?

I wanted to learn how to make the computer do something and solving a math problem seemed like a fun thing as I recall.

  • What went well? What could have gone better?

I remember it worked the first time because I kept it simple. Having it work right away inspired me to add more functions and I remember eventually having it do advanced equations.

  • What is your favorite among the apps you’ve developed?

Fantastical, for sure. It saves people time, helps them manage their businesses and lives, and the feedback we’ve received is so rewarding and inspiring.

michael simmons screenshot-1-dayticker

  • What advice do you have for young people who want to make apps?

Never give up! Programming isn’t something that can be learned right away. Ask any good programmer and he or she will tell you that it’s trial and error. LOTS AND LOTS of trial and error. If something is confusing or not clear, try again. And again. And again. And use documentation and Google. Using Google to search for an answer is a good way to find an answer because most likely someone else had the same problem and there’s never anything wrong with learning from an answer. But that’s the key: learn from the answer. If you just search, find the answer, and don’t try to understand how the answer works, you won’t learn and you won’t improve your skills.

Follow Michael on Twitter.

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.

Doug Russell, Freelance Mac & iOS Developer

doug russell

Doug develops Mac and iOS apps as a freelancer.

  • What do you currently do?

I’m a freelance Mac and iOS developer specializing in Accessibility.

  • How did you get started in Mac and/or iOS programming?

I was going to school to become an Electrical Engineer and I had some medical complications that meant that I had to stop taking medication for ADD. I had to find something to do that I liked enough that I could do it even when shiny things were distracting me. I had started writing a podcast client for iOS on a lark and it turned out I was good at it, so I decided to dig in and see if I could get better. I dropped out after a semester of mostly neglecting class while I wrote code to start a small iOS consulting shop with two friends (a designer and a web guy.)

  • What was the first app you created and what did it do?

A podcast app for streaming and listening to old episodes of a show I was a fan of.

It could:

    • play a live shout cast stream
    • submit feedback to the hosts during the live stream
    • show a list of upcoming live shows
    • show old episodes of the show including show notes, pictures and playback
    • show tweets from the hosts of the show and tweets from fans of the show
  • Where did you get the idea for the app?

At the time the App Store was only 6 months old and there were no good apps for streaming audio or downloading podcasts.

  • What went well?

The first release was definitely crude, but I was able to go from never having written any Objective-C at all to shipping an app that had thousands of users in about 4 months.

I was really lucky to have a lot of volunteers testing things and making suggestions and when it did launch the success of the podcast guaranteed a decent sized user base that was friendly about reporting bugs to me instead of leaving bad reviews.

I was also very lucky that the show had a great server guy who was really helpful about getting me feeds for everything I wanted.

  • What could have gone better?

In retrospect, the feature set was way to big for a 1.0 and I would have saved myself a lot of sanity if I’d rolled out these features gradually instead of trying to take them on all at once.

The code was basically glued together samples from tutorials I had found through google. I didn’t really understand anything about code quality so I’d just punch whatever I wanted to do into google and then rummage around trying things until something worked. The amount you can get done without really understanding how any of it works is pretty surprising.

  • What is your favorite among the apps you’ve developed?

On iOS I’m pretty proud of an app I made called Science 360, for The National Science Foundation. It’s a science discovery and exploration app with a completely custom UI that I think is pretty fun. It was the first time I got to really flex my accessibility know how in making a UI that’s highly customized play well with VoiceOver. It hasn’t been revved in a while, so it’s a bit long in the tooth (needs a retina update for one thing), but last I checked it still works reliably and is still accessible.

On OS X my favorite app I’ve worked on was definitely Kaleidoscope 2. It was a huge technical challenge and a huge design challenge and a really aggressive timeline. A total pressure cooker into which we placed what is easily the most talented group of developers I’ve ever worked with.

I was the technical lead, but I was by no means the most experienced developer, especially with AppKit. This meant that my job was mostly to make sure these incredibly smart people weren’t blocked by anything. To get the right assignments into the right hands and make sure they felt like they could do the work and that I’d be around to help them if they couldn’t.

  • What advice do you have for young people who want to make apps?

Concentrate on outcomes.

The thing that matters the most is producing software that people can actually use.
Yes, knowing the frameworks inside and out matters.
Yes, code quality matters.
But first and foremost ship something good and ship it as soon as humanly possible.

If you’re a contractor your clients will love you for this, if you’re making a product your customers will love you for this.

Bad code has a natural feedback loop where doing the wrong thing causes you real pain. Late nights unwinding bad decisions are a big part of getting better.

But not shipping doesn’t hurt, in fact often it’s the opposite. Tinkering forever feels great. Getting everything just so feels great. And holding onto the code puts off the scary part where you actually put your work in front of people. So you have to remind yourself everyday that code you haven’t released doesn’t count and create a sense of urgency around getting this great thing you’ve been cooking out the door.

Follow Doug on App.net.

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.

Saul Mora, Magical Panda

Saul founded Magical Panda and develops iOS apps. He also writes a blog at http://saulmora.com/

  • What do you currently do?

I’m a freelance iOS developer working for myself as the Magical Panda. I started the Magical Panda so that I could produce quality apps for myself and clients. I’m very excited to tell you that I’m currently developing the Panda’s first major app release. I don’t have any details to release just yet, but it is just me doing all the work, so when a few more things are ready to be announced, we’ll be telling everyone about our app.

I also spend my time contributing to the iOS and Mac developer community by producing a podcast called NSBrief (http://nsbrief.com). NSBrief is a collection of interviews with members of the Cocoa, Mac and iOS developer community doing interesting things. We talk about all things indie developers want and need to know, from some nifty new tools or frameworks, to people’s stories about running their business or selling apps in the store in general.

And, if that weren’t enough, I help out here in the Denver area with organizing iOS DevCamps and the local Cocoaheads chapter. If you’re in the area, we’d love to have you out and meet the local developers. They’re a great group of people!

  • How did you get started in Mac and/or iOS programming?

This takes me back to the days when I was working as a C# developer at Intel. It was neat to work on web apps that performed calculations to help with factory equipment analysis (those words don’t make it sound fun, but it was). At that time, Macs were still on PowerPC chips. There was no iPhone. I remember watching a live stream from Macworld and seeing that Macs had switched to Intel processors. This allowed me to try out a Mac, and maybe still use Windows. When I bought my first MacBookPro with 10.4 Tiger on it, I knew the Mac was more my style. I set out to learn how to code on this new (to me) platform, installed Xcode and was completely lost. Then the iPhone was announced. I knew I had to move to this strange new world of Mac and iOS development. I needed help, and fast.

Eventually, I sought some help in the form of local user groups. I found two, the Phoenix Cocoaheads chapter, and the Phoenix iOS Developer Group (Pi). I attribute much of my knowledge of the iOS and Mac platforms to the super awesome people I met at these groups. The first few months I attended the Phoenix Cocoaheads group, I didn’t know anyone, and didn’t really speak…I just listened; just being around these people was inspiring enough. I eventually started to get to know people, started asking questions, started answering questions and eventually started a small app of my own.

And thus, my amazing journey began because of the amazing people in the community who didn’t laugh at my questions in those early days. I try to keep my early days in perspective as so many new developers are still coming to the iOS (and even Mac) platform.

  • What was the first app you created and what did it do?

The first app I developed was a podcast player, of which there are now plenty good ones on the AppStore. It was really basic, and I was only able to even try to develop the app once Apple had added iPod programmability support into iPhone OS 3.0. All it did was let me have continuous playback of podcasts and shuffle them according to certain attributes. The iPod audio player did not do that back in the day, so it was breaking some early ground.

Even though I never really got too far with it, I learned all about the Objective C syntax, and how it was different to C#. I learned about the built in collections, and studied other code to learn about the conventions of the community and Apple. There was a lot to learn, and while I finished the app in 2 weeks, I had only learned a small bit of the framework, but it was enough to get me familiar with the platform. I should also mention that I did have a full time job while I wrote this app. I was writing it on evenings and weekends in my spare time. Sometimes I have to remind even myself of this to remember what I was able to accomplish with so little familiarity with the platform, but obviously, iOS has grown astronomically since those early days.

  • Where did you get the idea for the app?

I rode my bike to work often, and on the way, I would keep up with news and learn things through audio podcasts. I wanted an app that would play things in a continuous manner to help keep me up to date. The podcast playing app was an app born out of necessity.

  • What went well? What could have gone better?

The first version was pretty basic, and getting it out into the AppStore was great, but I was unprepared for the support that came with it. This is a process that I should have ironed out a bit more in the beginning, even if it wasn’t perfect, it could have been better than what I started out with.

  • What is your favorite among the apps you’ve developed?

Back when I started working with an app agency, I helped create a comic book reader app. I think I look somewhat fondly on this app not only because of the technical challenges of what we were able to do on a first generation iPad, but because of the people I worked with while writing the app. Overcoming adversity on a team is a special feeling, and I tend to remember the great teams I’ve had the privilege of working with. Our struggle on the comic book app was to ship this app in 3 weeks with a team of 4 developers. That sounds like a lot, but when we take into account the time in which we wrote the app, everything was new, we were inventing the future. We designed a custom comic book store, we had to get comic book downloading and purchasing working right, and the reading experience had to blow people away. We invented and shipped the future in 3 weeks. It wasn’t easy with very long days of solving problems that today might seem trivial. But it was fun, and I know our hard work as appreciated, despite the fact that the app is no longer available on the AppStore these days.

  • What advice do you have for young people who want to make apps?

Making apps will be hard.

Always be learning. Making apps is unlike any industry I know. You have to keep on your toes and not only learn what has changed in the developer world from day to day, but you also need to learn about solutions that already exist. I see so many developers these days reinvent the wheel because they simply didn’t know that the wheel had existed in the first place. This knowledge comes with constant learning of new and old concepts and every day I incorporate some form of learning either from reading blogs, looking up specifications of APIs or reading up on some computer or programming language history or algorithms.

Follow Saul on Twitter and App.net.

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.