At first, the client pushed really hard to build this in Ionic 2 (using Angular 2). At the time, Angular 2 was still in beta and I strongly suggested we wait. We had some back and forth and ended up settling on the plan to build the app with Ionic 1 but augment it with Typescript in hopes that migration to Angular 2 will be easier in the future. I warned them that using Typescript would increase the price (turns out it added about 30% to the time used) and they were fine with that.
It was fun to get some experience in Typescript and I definitely like some aspects of it, but I don’t see the 10X benefit that I typically look for in a new technology. I’m not closing the book on it yet, but I wasn’t wow’ed.
We started the project with a thorough study of how to implement the app and our planning paid off. Using Ionic 1 with Firebase saved a lot of money. In the end, we added 12 views, 5 services (authorization, Oauth, etc.), 3 models (for Firebase), 3 reusable components (directives).
I’m really happy with the final project. The code is solid; it is setup to easily add features and views, and it went through some rigorous tests. We should be launching the beta early this week.
One challenge was implementing Oauth in Ionic. There weren’t many options and I ended up using ng-cordova-oauth. This opensource package isn’t setup to interact with any given endpoint, so I needed to add a package specifically for our desired api. I enjoyed contributing back to the open source community that helps me so much.
It is hard to think of only one highlight for this project because there were so many. I’d never created an app in Ionic and I was pleasantly surprised by how many time-saving features it comes with out of the box. It is definitely a 10X piece of technology. I also loved getting more experience with Firebase and time-series data.