File this under “Lessons Learned.” I’m not a programmer and don’t personally develop mobile apps, however I have completed design of one “game” and am nearing completion of a second for a “game platform”.
Each platform has its strengths and weaknesses, some things it can do more easily than others, some things that it may not do as well as others, and so on – whether it is iOS or Android, HTML5, Java or otherwise. Some are better suited for new developers, others require more experience to get full performance.
Regardless of whether you are a novice developer or an experienced developer, the key factor for developing a commercial product is to stick to what you know works. Keep it simple. Everything you are not 100% confident about requires testing. Testing A vs. B is a simple matter, but if your routine generates multiple possible outcomes and branches out further – the more difficult that testing becomes.
For a programmer, some of this may sound ridiculously basic if not truly BASIC. In the game platform I work with, the most important components are handled by a wide range of IF/THEN statements. When trying to express a series of related events tied to one outcome, it takes on the form of something like:
If A and If B, Then C, but not If D or E.
That would require between 10 and 16 lines to implement. That’s a fairly simple example. Consequently, it is worth looking at what you are trying to do by finding something that it is common to A and B, but mutually exclusive to D and E. For my purposes, that would require only 4 to 6 lines to implement. It reduces program size and potential for error. This approach might look something like:
If A Then C but not If F.
Continuously expanding what you know will work comes from examining how other programs work that do things that close to what you have in mind coupled with continuous testing – preferably outside the commercial product you are working on now.
For as basic as all of this is, it stands amply evident in a wide range of product releases with broken features and functions. Whether operating systems, games or utilities, untested complexity frequently and severely impacts performance and popularity. Reducing the number of things you have to test for equally applies to being more confident about everything else actually working as intended.