Are you faced with the programmer’s equivalent of writer’s block or have a great idea but think you are eons away from a Minimal Viable Product? This blog post offers four ideas that can get you started and moving you into your MVP quickly.
1) Capture and Share Screen Shots of Existing Apps
When talking with folks about app ideas the discussion often starts with some vague references to other apps and the interactions these apps support. Your client might say something like “it should be like Messenger, but can share photos easier.” Gather screen shots from the mentioned apps and other ones you would like to emulate. Having these available to focuses the discussion which allows you to get specific. Lay them out on the table or if your collaborating on-line, place them in a google doc. When the available screenshots don’t express all of your idea do a bit of cut and paste and mark-up to get them to express what the app will look like and how it will behave.
Once you start creating visual mockups of new screens you are prototyping. Prototypes are used to help answer questions while it is still easy to make changes. It is much easier to change a mockup then to change a Storyboard and some code. The questions you can answer with prototypes include: 1) Does the data fit on the screen with the design ideas we also have? 2) How will the user navigate from one set of screens to another? 3) What will they see first? 4) What affordances do we present, so they understand what to do. Use a tool like Pop (Prototype on Paper) to put your mockups into an interactive package so you can see how it works on the device. Give the prototype to a potential user, have them use the app to answer questions and see if they can figure out how to make your prototype respond to the scenario. A lot of formally “good ideas’ bite the dust when you hand it to a potential user, and they do not understand what to do. Remember you only have a couple of minutes to win over a user after they download the app.
From the prototype, start understanding what data elements are presented and where are they going to live in your app and/or supporting server infrastructure. Answer question like can you store your data in blobs on S3, will a RESTful interface to the server work or do you need something more active like XMPP or web sockets. Once you get specific, you can start thinking about how to gather and manage the data, present data to the user, how the user interacts with that data and navigates around your app. You can start to understand what you’ll need to do to support the other design elements. All of which is very very necessary step before you can put keyboard to code.
There are many other more sophisticated prototyping tools. I found that unless you design new apps regularly they aren’t worth the investment to learn how to use them. For example, if you are a graphics designer and already have skills with Photoshop or Designer there are a number of device-specific templates that will allow you to quickly drop in design elements. However, the time spent learning to navigate around one of these sophisticated design tools for a newbie is better focused on working with the ideas of your own app with paper, markers, scissors and tape.
With an active prototype, you have now moved well beyond the dreaded blank screen of code.
3) Third Party Controls and App Templates
Now you have a prototype you may still have a bit of coders block. Not blocked on what to do, but overwhelmed by too much to do, you don’t know where to start. The first step maybe to throw a bit of reality back into the prototype. That new great way to flip a photo is easy to draw on paper. When a little investigation shows that there is no available control to do that, it might require a bunch of work on the CoreGraphics level and your not ready to invest the time. Go back to the prototype and show your users how you can do it with a standard control.
Can’t find the desired interaction in the standard controls provided Apple’s SDK, look in CocoaControls.com. There are all types of custom controls and ideas that you can drop into your project to have a leg up or if that is not possible you can look at the code for implementation ideas. The “hamburger” icon leading to a slide out menu is in so many apps, you might think it was in the standard SDK. Not to worry, there are several option to choose from in CocoaControls.com. In addition, there are commercially available collection of components as well, if you have something specific in mind and a budget, take some time to find out what you can buy off the shelf. For example, http://www.infragistics.com has Grid and Chart controls you can drop into your app for a price.
If your more of a coder than the design aspects of a new app might be more daunting. You don’t have to settle for apple SDK standard look and feel either. There are sites that sell design templates and themes. Similar to WordPress themes. Look at http://www.appdesignvault.com and myapptemplates.com for a good head-start with a stunning design.
4) Buy an Existing App
You can catapult yourself down the road of publishing an app, by purchasing the full source code of an existing app. It can be an original property or an app that has been resold many times and is intended to be re-skinned and republished. In my post on App Templates I discuss how I did this and got a game app up in the app store within a week with only a few hours work and a bit of design help purchased on fiver. Besides getting an app published there are many advantages of this approach. You get the source code and have a working example of a complete app, usually with support screens, advertising networks and social media interactions already programmed.
Going through the app publishing process with this first app can give you the experience to better plan for the roll out of a more significant project. You might get luckily and find an existing app in one of these markets that has 80% of the features you need. Minimum viable product in a week not 10 or 20.
With these ideas, overcome your programmers block, take some screenshots, munge them into your own image and start showing them around. Welcome to the world of app publishing!