I’m a mobile dev now?

Cody Stewart
4 min readMar 6, 2016

--

Originally when someone would ask me if I could make them a mobile app I’d laugh and say, “Nope, I make websites and that’s completely different.” I’d then question myself. Should I try to learn mobile? Instantly, I’d arrive at a no. Why? Simply, because I’m impatient. It took me five years to get here and there’s no room to slow down now. Building things fast is what I enjoy, usually bugging my teammates to ship code as soon possible (sorry guys). So learning a new language and new ways doesn’t sound fun to me.

What changed? The team I’m a part of, CallRail, decided it was time for a mobile app and got the ball rolling with a consultancy. Getting something out to our clients was the goal, something simple. For whatever reason, two months turned into five months. We didn’t have anything in the app stores yet. Fearing that five months would turn into ten, we cut our losses. We walked away with the source code. Now we needed a new strategy.

A few ideas were thrown around and one of those was to ask me to pick up where the consultancy firm left off. I said sure and spent about a week looking into it. The consultancy firm decided to use Xamarin. It’s a platform that allows you to have one code base written in C# that compiles and works on both iOS and Android devices. Remember what I said about moving fast? I’ve never touched C# or any sort of mobile development. I ended up saying that I wasn’t interested. I knew I’d be 100% more productive continuing to wrangle Ruby, JavaScript (Angular), HTML, and CSS.

Two or so weeks went by and we were still standing with our pants down and no strategy. I was approached again, this time with a slightly different question, “Would you be interested if you could start over and pick a platform that allows you to build the app using the things you know?” I’d still be using the product work the consultancy firm did, so I had my UI and specs. I said sure and started researching.

I knew there were gripes amongst the community about apps written with JavaScript and HTML, so I wanted to move fast, pick the best possible solution, build a prototype, and decide for myself. After about two days, I ended up with Ionic. It’s platform that would let me write in JavaScript (Angular), HTML, and CSS. My prototype simply allowed users to sign in and view a list of their calls (CallRail tracks these for you!). I was able to write this using my favorite editor and test in the browser. When I was ready, I plugged my iPhone in and launched the app using Ionic’s CLI and did testing there. By this time I was pumped, my prototype was buttery smooth and I knew I could handle this, so I dug in.

Three weeks went by and I had a fully functional app that I shipped to the App Store and Google Play Store. So here’s my pros and cons.

Pros:

  • If you know JavaScript, HTML, and CSS, you can do this.
  • Test in the browser with live reload and build fast.
  • Testing on devices is pretty easy. Launch the app from your command line on iOS and Android devices.
  • Ionic Worldwide is an amazing community on Slack. I can’t count how many questions random people helped me with.
  • Tons and tons of resources around the web to help, including official ionic articles/documentation and resources put together by the community.
  • Out of the box components like pull to refresh are amazing. Drop them in and keep going.
  • Use Ionic’s CLI to upload you app to Ionic View and share progress with anyone. This was amazing for getting quick feedback and iterating.

Cons:

  • If you don’t know Angular, a JavaScript framework, you’re going to need to learn it. I already use this daily, so it wasn’t a pain point for me.
  • Ionic 2 is around the corner, along with Angular 2, so upgrading is going to be something I need to do soon.
  • Shipping to the app stores. I think this could use better official documentation. I ended up having a teammate help out with that and we now have some hooks setup to make sure we are compiling our JavaScript and managing our versions properly.
  • The big one for me, and I feel like it’s kind of silly for me to complain, but since I mentioned I enjoy moving fast, I feel like I should. The App Store’s process of getting your app approved is slow. This is not Ionic’s problem, it’s just part of building an iOS app. Mix this with moving fast and this can be hazardous. The Google Play Store is another story, it’s crazy quick to accept apps. So, I made sure we shipped the Android app first and ironed out any kinks before messing with iOS.

Three weeks may sound impressive to some, but it was an intense three weeks. I feel like people leave this part off when they claim to write a mobile app using a hybrid approach in just a few weeks. I worked on this project instead of sometimes sleeping, helping take care of my kid, and eating. I made this decision myself. I was having a ton of fun learning and really wanted this to go perfectly, so I threw myself in full throttle.

--

--