• Skip to main content
  • Skip to primary sidebar
  • Skip to footer

Andreas Kwiatkowski

14/09/2012

How to build an iPhone app – a step-by-step guide from start to finish

The following piece had originally been guest posted on VentureVillage on 2012–09–14.

A while ago, Alexey Komissarouk posted an article on TechCrunch proposing that founders should learn to code themselves – just as Foursquare founder Dennis Crowley did years ago. In terms of outsourcing product development, he leaves us with a quotation by billionaire James Goldsmith: “If you pay peanuts, you get monkeys”.

In the long-term, outsourcing development in agile environments truly results in poor quality. But this shouldn’t automatically mean spending hours and days desperately trying to get your head into Ruby on Rails before starting an online business. Learning to code might sound easy at first but learning to do it right is hard work, especially for non-techies. Even if you manage to build your own prototype (after lots of costly hours), you’re probably still far away from efficiency and knowing best practices how to develop and set-up a rock solid environment.

So what to do? Finding a technical co-founder is far from easy, especially when you are not living close to the MIT/KIT campus. I say – forget about trying to find a co-founder for long-term development, at least for now.

Instead, focus on defining a simple, customer-oriented minimum viable product (MVP) to be built with the help of outsourcing. Learn how to specify software with well-written user stories and leave the make-and-trash-development to low-cost resources before getting serious with software engineers.

If writing beautiful code is not something that turns you on in the long-term, use this MVP to verify your idea, get some tiny traction and find a well-fitting technical co-founder to take over the technical half – or, if you are lucky, have them find you.

Building Eisenhower, the prototype

Last November, we had time management training at work, which allowed me to refresh basic task prioritisation principles such as the Eisenhower matrix. While trying to find a simple and well-designed web application incorporating this strategy afterwards, I started to realise this might still be an inadequately covered niche.

Remembering earlier difficulties in finding a fitting developer with the same passion and timeline to develop an early protoype, I started out with initial sketches and basic HTML protoypes based on Twitter’s Bootstrap framework (which everyone with a will to succeed can learn to do). After compiling a draft specification, I immediately filed a request for proposal on freelance marketplace oDesk:

Request
I am looking for an experienced PHP developer to build a tiny to-do management web application in the style of an Eisenhower 2×2 matrix, allowing users to manage their to-dos by importance and urgency. I will be providing a HTML5 template with different header states and overlays, CSS and graphics (please see preview attached).

Background
Using oDesk, I wish to create a minimum viable product to collect early adopter feedback and further develop this concept towards market needs. Nevertheless, I prefer a clean and smart technical solution, because I would like to have the code maintained as the product scales.

Scope
The site itself consists of a navigation header, a form which stores all to-dos in a MySQL database any time a save button is clicked, and a static footer. On page reload or login, a user’s saved data will be retrieved from the database. Users are able to use, sign up for the service, log in and log out on a single page.

Sign-up
Following sign-up with e-mail address and password, an e-mail confirmation request is sent to the new user. The e-mail address needs to be confirmed before the corresponding user account is finally set-up and the ability to save the to-do list gets enabled.

Use case
1. Guest visits page
2. Guest enters first to-do in form
3. Guest hits save button
4. Overlay appears, requesting sign up to save
5. Guest enters e-mail address (must not be in database already) and chooses a password
6. Overlay says, that e-mail address needs to be confirmed to enable save button
7. Guest confirms his e-mail address by clicking a link in a confirmation request e-mail
8. User account is created, the user is logged in with the ability to save to-do list
9. User enters to-dos and saves them
10. User leaves page by navigating away or logging out

Technical solution
I wish to get a deployment-ready PHP solution with database configuration file. When running, I expect a user’s save operations to be performed using Ajax without the need to refresh the page. The same is true for the sign up overlay. Using proven frameworks for PHP (f.e. CakePHP) or JavaScript (f.e. jQuery) to speed up development time is appreciated.

Deployment scenario
Linux server, running Ubuntu, Apache and MySQL”

After sifting through roughly 20 applications and choosing the most promising yet affordable contractor, I sent out a refined specification including relevant screenshots  and a package of finished HTML5 templates.

The assigned contractor delivered most of the requested scope within only two consecutive days. Including minor tweaks and bug fixes based on our ongoing e-mail conversations, I spent $US155 USD altogether (15.5 hours at $US9 each plus oDesk commissions).

Shortly before deploying the final application to my shared web server, I figured out a plain “Eisenhower” as best describing the service, renamed all brand placeholders and purchased eisenhower.me as a suitable domain. As a last step, I added simple web tracking (below) to better understand early customers’ behaviour by watching the acquisition funnel and their interactions with functions like the site’s manual save button. Metrics measure the impact of product changes – or allow you to sometimes just enjoy daily visits, sign-ups and their sources.

Finding a technical co-founder

Soon after referring Eisenhower to a few people in my network, I talked to a friend and developer who – all by himself – promptly suggested building an Eisenhower iPhone app, if I could contribute the necessary design work. While having lunch together the following day, we decided to split future profits and since then are investing night shifts and weekends to soon finish our part-time project which has already grown far beyond both our both expectations.

Meanwhile, rebuilding the web application with focus on quality and scalability has already begun. This time developed from the ground up by – simfy collegue and then co-founder – Tim.

Over the last two weeks, we have rebuilt our web front-end and the underlying back-end from the ground up using Ruby on Rails. Tim is currently refactoring the iPhone client’s synchronization module, while I’m integrating recent web designs into our project.

Our source code repository and hosting is powered by Heroku. Such full-service infrastructure service providers might be a bit pricey but means we’re free to care about our product not hardware issues. And when success hits hard, it is easier to hire a professional to migrate the application to Amazon Web Services or dedicated server hardware and middleware.

Building Eisenhower: The takeaways

Instead of trying to talk developers you know – or those you don’t – into joining your company based on some idea or pitch you might have every once in a while, build something first. Just as with venture capital, it is always easier to recruit collaborators with both a grown concept and a working prototype. This gives you the opportunity to better explain and sell yourself and your ideas and also provides a solid basis for valuable discussion.

All takeaways, in short:

If you are more passionate about business, product management or design than software development while planning to launch your own start-up, invest your valuable time in sharpening your product’s specification and design, target market and value proposition.

Only bother learning to code yourself if you either have plenty of time and money or plan to pursue a career as a CTO or lead engineer in your future start-up.

Before desperately searching for a programming co-founder to help you get your business off the ground, outsource development of a throwaway prototype offshore.

At least before spending more than $US400-500 on your minimum viable product, try to first use other tools such as pen-and-paper UI sketches, presentations, click dummies or different concepts taken from the pretotyping philosophy.

Leverage a working prototype and early traction to find a passionate technical co-founder, then re-built all critical parts. Do so incorporating gained customer insights and with an eye to long-term software quality through well-documented, maintanable code and test-driven agile development.

Filed Under: Various

Primary Sidebar

Recent Posts

  • Where to Get Content Ideas for Ebooks, Papers and Blog Posts
  • I Want To Build A Startup/Product/App … Now What?
  • Virality Is Not About Buttons: How to Get Users to Share Content and Invite Others
  • The 8 Ingredients of Great Mobile Apps, or How to Get Featured by Apple
  • How to build an iPhone app – a step-by-step guide from start to finish

Categories

  • General
  • Various

Footer

Elsewhere

Twitter
LinkedIn

Goodreads
YouTube

ArtStation
Dribbble

Copyright © 2023 Andreas Kwiatkowski · Impressum