Picking a Web Technology Stack as an iOS Developer
About four years ago I was at a crossroads in my career. I was working for a big consultancy in England, surrounded by some really smart people, where we had some time to play around with different programming languages and figure out what we actually enjoyed doing. The choice were clear: web or mobile development. I had already been mobile development for a few years before then, but I didn't want to let go of web. All of my projects before had been web apps built from scratch using PHP and a WAMP server (yes, I was a windows user back then). I loved the web, and still do, so it was difficult for me to make the decision to concentrate on one aspect of development.
Fast forward four years and I'm in New York City, working on an idea called PocketLab. What's exciting for me is that it's a web and an iOS app, so I once again get to delve back into developing for the web.
Twitter Bootstrap (or so it was called back when) was around when I had been developing web apps, so choosing this as the front end framework seemed to make sense. I had been using Parse as the backend for two of my own iOS apps, and I knew they had an equally great javascript SDK, so that was another comfortable choice.
What's interesting is that although there may have been a better choice than Parse as a back end for PocketLab (Firebase, I'm thinking of you), I'm developing a prototype, a minimal viable product (MVP), so the only criteria really is how fast I can put it together to start showing it to people. Although I'm putting together an MVP, Don't get me wrong though, I'm ensuring the code is modular, so if I do need to swap out the back end, I can do it easily without changing much of the code.
I had chosen the web front end framework and back end for the web and iOS app, all that was left to do was find what javascript framework to use. Man, was this a big task.
I spent weeks researching all of the different frameworks, playing with them, building very simple apps to get a feel for how they work. It feels like a new javascript framework is released every week, and it's weird to think that only four years ago there really wasn't many to choose from, if any at all. I began with Ember.js for PocketLab - it seemed like the right choice for me: clear docs, out of the box functionality and a hamster as their mascot. However, I had to forget everything I had learnt about the model-view-controller design pattern (MVC). It felt too much. I'm building two things with PocketLab, a web and iOS app, so I don't have time right now to delve so deep into one aspect of the development.
That's where AngularJS came in. Right from the get go I felt comfortable with it, especially using Yeoman to scaffold a new angular app. I had the basis of an Angular app up in minutes using Yeoman, and had the app served on my local machine in less than that with Grunt.
I'm going to make this post a two parter, and explain in the next part more about why I chose those technologies, and why they fit well together for PocketLab.
PocketLab makes it really easy for researchers to design and conduct behavioral studies in the real-world, and collect data from participants using their smartphones.









