Whenever someone hears that you’re an app developer, they say things like “You should write an app!” To which I usually reply “It’s all been done before.” Let’s face it, the Flappy Bird-phenomenon was a fluke, the kind I’m unlikely to chance upon.
Even though I knew all the apps had been written, albeit some very badly, I started thinking about what kind of app I’d write. It would have to be something I would use, and I’m not much of a technophile, despite being an app developer. I think technology intrudes on our lives far too much, and try to limit my use of it as much as possible.
Over time an idea developed, and I went looking on the various app stores to see if it’s been done already. It had, but not the way I envisioned it, and in bored moments my mind started idly sorting through the various issues and challenges.
It was a mental exercise, one I sometimes discussed with others, and it was interesting what ideas other developers came up with. One suggested ways to gamify the app, another suggested various improvements.
It was enjoyable but sounded like too much work, there were too many moving parts, and I have a paying job.
Unexpectedly, though, the urge grew to create this app. It’s not going to be a masterpiece, but I am doing it for myself. It is going to be challenging, because I’ll need to do everything – back-end as well as front-end development, including database, server and API, SQL stuff (shudder!) and design.
See, I once developed an Access database to manage inventory (the Excel sheet just wasn’t cutting it anymore), and I’m convinced I totally nailed the normalisation.
And I once developed an API for an embedded app, and a more experienced programmer afterwards commented on the completeness of my documentation and simplicity of design.
And I once created a website for a company who employed me as a Junior C Developer, because it was a startup and everyone did everything.
And because I once developed embedded code in C, I dealt with networking and various other strange and wonderful protocols. Theoretically, then, I have all the knowledge and skill needed to do write this app.
So, having decided this app is going to happen, I started putting in place the basics.
I contacted an organisation who seemed to have all the data I needed to start with, but they ignored me like a Stop sign. I would have to capture the information myself. This significantly shrunk the initial scope of the app as I sloughed off non-necessary functionality, which is not a bad thing.
I needed to find a host for my app’s database. It was going to be big and complicated, and needed space to grow. I considered Amazon AWS for half a second because I was tempted to try their mobile SDK (software development kit), but I’d heard too many tales of horror about unexpected financial impacts. It also seemed very complicated for a simple-minded person like me. I carefully backed away.
I then queried my domain host and what luck! They allowed me a plethora of databases – well, five – on my site, and promised that increased traffic would not impact my account. I could develop my database and my server code and host it here.
I created my database and downloaded various software apps to assist with accessing and developing the database. Once I’ve figured again out how all of this works, database development will commence.
Next was setting up a blog to document the whole process, to hopefully help organise my thoughts and keep me on track. So far, so good…
Now will come either a web app to interface with the database, to allow me to capture information in a sane way (which means API development first), or just capturing all the information directly in the database. I’m leaning towards the API, as it would be kind of a proof of concept.
As to the server side development, I’ve chosen Vapor, as it allows me to develop in Swift. I’m keen to see what server development entails, but not keen to deal with Java – or rather, all the frameworks around Java.
The app, of course, will be an iPhone app, because this is what I do. It will be a fairly simple app. If there’s one thing I’ve learnt from C and embedded development, it is that there is a simpler and more elegant solution. You’ll know it when you find it.
The journey has started and I’m feeling optimistic. I’ll keep you up to date 🙂