About a year ago, my wife approached me with an idea. It was the new year, 2014, and she was lamenting over the fact that she felt that we had not achieved the goals we had set out for ourselves back in 2013. "Wouldn't it be nice" she said, "if there was an app that would let us set some goals, then allow us to track our progress towards those goals, and perhaps pop up a reminder from time to time to let us know we are on track...".
We searched around the app store, and while there were apps there that came close, none seemed to fit the bill. "We should write that app!" she declared. I nodded in agreement, but in the back of my mind, I know that my current 'real' work schedule didn't give me much spare time to even contemplate such a project. We put together some vague specs for the app in a Google Doc, but it basically just sat there gathering dust.
Fast forward to the beginning of December, and I caught myself remembering that conversation from earlier in the year. I realised that once again, we had fallen into the old habits of letting goals slip by in 2014. After all, wasn't the idea to write a goal tracking app a goal in itself?
I had the usual end of year madness upon me, with clients wanting projects finished before the Christmas closure, but I looked at the vague specs my wife and I drew up earlier, and decided "Right!".
I was going to do this.
Not only was I going to do this, but I was going to do it before the end of the year, so that the app would be ready to go out to the masses for the New Year 2015. That gave me 30 days. Factoring in the 2 week average approval period for the Apple App Store, it meant I would have to submit the final product for approval by mid December. Time to get to work.
My first question was "Which platform?". Both my wife and I are iPhone users, but my son has an Android phone and I wanted to cover both bases. We decided iOS and Android would be the main platforms. Windows, Blackberry etc. may have to come later.
Second question was "Which technology stack?". I already had some familiarity with jQuery Mobile and PhoneGap etc., but I wanted a little more. Then, I came upon a framework called Ionic, which is a mobile development framework based upon AngularJS. When I first saw the demos for AngularJS, I went "Whoa!" in an excited way as I saw two way data binding etc. in action. Then I delved deeper and looked at the code behind the scenes and went "Whoa!' in a kind of horrified, opening Pandora's box kind of way.
It certainly wasn't going to be an easy framework to get to grips with. New methodologies and protocols such as Directives, Services, Factories, Promises etc. would be a completely new way of thinking about app development than what I was used to.
Nevertheless, I rolled my sleeves up and dived in head first. Being a relatively new framework, Ionic questions and tips were hard to find on Google or StackOverflow. Lots of things were trial and error. Also, being on the 'bleeding edge' of current app development tools, there were a lot of incomplete things or things that would change literally overnight. I would be in the middle of a late night coding session and would get a message saying that a new release was available. Sometimes twice in the same evening!
One of the saving factors was the excellent community around Ionic, AngularJS and Cordova. Plenty of REALLY smart people who are also generous with their time and knowledge. I found some great blog posts which covered the areas I got stuck in, such as using SQLite databases on a mobile device via Cordova and Ionic.
Well, not 9 days later, we had an app ready to submit to the two app stores. Not even I could believe it. In reality, I had finished the first 1.0 version in about 6 days, but then when my wife and I tested the early version, we realised we wanted a few more things in there, so I went back to work to add more features.
Some 'simple' sounding features, like local notifications, proved to be a lot trickier than I imagined. But once again, the Ionic forums came to the party and I found the answers there. I even managed to improve on one of the answers a bit myself, and contributed back on the forums, so hopefully someone else in the same boat can get through the issue quickly.
Finally, on the evening of the 13th December, we submitted the app to both stores. It is called BlissBank (which is the name my wife came up with) and hopefully will be approved by Apple by the 31st December. There are still lots of things that I wanted to add to the app, and to clean up within it, but for now it appears to be stable, and will at least give us the chance to get a small user base together and get some feedback before we develop the next version.
It's been a long time since I went 'heads down' with such intensity on a project. But being a personal project, and the brainchild of my own wife made it special and added a lot of incentive. Kudos to my wife for giving me total support and allowing me as much time as I needed to go hard at this project too. She took care of the other normal distractions around the house, like taking the kids out for long outings etc. to give me space and quiet. Especially seeing as she was in the middle of launching her first art exhibition.
Now, I just have this one other idea for an app that would be useful for the New Year... Hmm... wonder if I can squeeze that in...