Weekend Coder: The app making process

By Brian Scheirer on 25 Aug 2013 12:26 pm EDT
-
loading...
-
loading...
-
loading...

Regardless of platform or coding language, to successfully create an app there is a general process I like to follow. When most people think of coding apps, they focus on the coding aspect, however that it just one piece of the process. So let’s take a look at my four steps of creating an app.


Planning


Step one of almost any good process involves planning. In the case of apps and games you want to decide some core features and functions. Once features are decided it is a good idea to start creating mock ups. This can be accomplished in a few ways. BlackBerry offers two great solutions; first they have a Wireframe design PowerPoint slides that have all the core components. Next if you are using Cascades and proficient at Photoshop you can use the Exporter Tool to create your UI in Photoshop. This will act as mockups and once you are complete you can import those mock ups into your QML and it will write the UI code for you. But my favorite method, and probably the most low tech solution imaginable, is good old pen and paper. I keep a few notebooks with design sketches and notes.


Also during this planning phase, is where you should decide things like what language, platform, price point, timing, and scope. Platform and language go hand in hand because if you want cross platform, something like Cascades may not be the best idea. Price point, timing and scope are less for the hobbyist and more if you are looking at it from a return on investment point of view. But even for a hobbyist, you should decide if something will be paid/free before going into it to know the level of support you may need to eventually provide. Timing is important especially in the case of time specific app. Probably not much sense to release an app for the Rio de Janeiro 2016 Olympics right now. And finally scope is to define the exact features that will be included. This is to prevent feature creep which could ultimately delay timing/release of your app indefinitely (more on this below).

Coding


This is the most obvious step of the process. Few things to consider here is to remember to review as you go. If you start ending up somewhere you didn’t want to be, you can go back to the planning phase and reassess. Then on the flip side of that, when you start coding you might start coming up with more ideas to make your app better, more in depth, feature rich, etc. And often times you can add in those features as you go. But in the case of big new features it may be best to shelf some of those ideas for a future update. If you fall into the phenomenon known as feature creep you may never end up releasing your app.

Testing


Obviously as you are coding, you check code for errors and see if the app operates how you intended. But at the end of the day, for usability testing, you are terrible tester. You know where all the buttons are; after all, you put them there.


So what I try to do is find a wide range of testers. I have a 9 year old niece (child), my wife (adult in the tech generation), and mother/mother-in-law (pre tech generation). Not only are they a wide range of ages but I pick people who aren’t afraid to hurt my feelings. Additionally, they all have different levels of technical backgrounds. Getting tester like the ones above will help you get a well-rounded product that has mass appeal.
One thing you may be asking yourself is why not test in the planning phase? I have come to the conclusion that nobody wants to look at sketches and notes, but everyone wants to play on phones. I have gotten much better feedback this way, even if it meant rewriting a lot code.

Updating

The final phase, updating, is an ongoing process. Even after you take in internal feedback and make those updates you will get a lot more feedback from end users. It is always a good idea to give your end users what they want to keep them happy. Plus often times they are your best means of marketing. Also remember all those great ideas you shelved for future releases as to actually release your product in a timely manner. After all, doesn’t everyone love version 2.0 of apps?


In closing, there are a few other things you should consider during you app making process beyond the four steps mentioned above. Throughout the full process it is a good idea to tease/market your app. Once you have released your app, reach out the BlackBerry fan blogs to see if they will do a review. Finally and most importantly have fun while doing all of this. Apps are meant to be fun (even if they serve a serious purpose). Feel free to sound off in the comments below with your app making methodology.
 

Reader comments

Weekend Coder: The app making process

36 Comments

Excellent article. Although I don't code apps (yet) i remember when I took a python coding course how important the planning phase was. For some reason i also found it easier to visualize if I first put my plan down on paper.

Posted via CB10

A good article!
I usually do things just a tiny bit differently - usually I write the bulk of my logic first, because I find that features always seem different when I'm done than I originally plan. Then, when coding is finished, I write the UI specifically for the code :)

Same here. Regardless of platform, I usually write either an HTML5 version or .Net version of my applications to test logic and make sure the features work. That way I have a working prototype is very little time.

The development methodology presented in this tutorial is known as agile and is well-suited to mobile application development.

Posted via CB10 from the BlackBerry Z10

Me too. I'm a very creative person. I'm into motion graphics and all that. But I just don't know how to code. And I'm really interested.

Lots of good resources out there to get you started coding (in general) and I like to think I've created quite a bit of BlackBerry specific stuff here in the Weekend Coder series.

I suggest setting aside a weekend and really dig deep into it all with no distractions and keep at it until it starts to make sense.

Posted via CB10

I find Inkscape is also a great (and free) application for prototyping screens and app flow. It's basically a vector drawing software like old-school Corel draw, but with tons of features.

I prefer Illustrator over Inkscape. I know there is a huge price difference. Lots of times I will prototype in Illustrator because if I have custom buttons (like my games Visual Connection and Pic Reveal Blitz), I'll need to draw them anyway.

Posted via CB10

Never forget to not validate yourself too often at your wife because she probably won't listen and your borrowing here. Keep your wife happy just telling her you like is support even she's not helping.

Posted via CB10

On the 3rd paragraph, the word "Janeiro" is spelled incorrectly. Rio 2016 Summer Olympics will be held in Rio de Janeiro - Brazil. Very nice article btw. I a fan of this series :)

Posted via CB10

What about graphics? It's one of the biggest if not the biggest part of game and app development

Posted via CB10

Thanks for the article. What I would like to know is, what type of a computer specs does one need? I have 2 laptops, one with 2 GB and one with 4 GB of RAM. Neither seems to be able to run the simulators in VMware. Could someone provide a list a of booth software and hardware. Now I'm also using Linux and not Windows.

ZED-10 for the person on the move. OS 10.2.0.1371

GREAT stuff - good primer of developing an app. I look forward to all of these as a developer. Keep it up Brian.

I would like to see a team of investigators exploit some of these app companies. Why aren't porting over apps to newer OS such as BlackBerry OS10, WindowsPhone 7/8, etc? Put shame to the greedy people who are purposely blocking developers from doing so. Netflix and Instagram make up these poor excuses rather than being upfront. Is Apple/Google paying you an incentive not to port over your app?

Posted via CB10

Good article,
Agile methods seem to be all the rage,

I'm a bbPB user and checked webworks but it has no pb support. However do I code for it or at leased learn to code.

Hello guys I just want to know when the bank of America app is coming out or not for the blackberry Q 10? :-(

Posted via CB10