The year of 2019 is coming to an end, and these are my reflections of the past year.
We managed to get a lot of stuff done this year on the Forks Meal Planner product:
- We successfully rewrote the complete frontend from AngularJS to Vue.js/Vuex. The issue that we had in the old product, which was developed by another team, is that the data was dispersed all over the app, root scope was massively polluted because of it, and we just ended up with too many watchers which made AngularJS slow. And the old code was also very hard to test/write unit tests for.
- Our users have been asking for native apps for a long time. Sure, our web app is responsive and looks good on any device and browser, but you can’t beat having a nice icon on the desktop of your phone accessible when you need it. Yeah, I know, there are ways to put a shortcut to web-app on your phone’s desktop, but our user base is not so tech-savvy. So there we were… looking at options. Surely, for the best user experience, it’s always better to write everything in platform-specific language. But this takes time, you end up with 3 different codebases, and it’s hard to keep changes across all platforms in sync. Plus, you are giving up on already tested and proven code.
So… NativeScript-Vue was a very sensible option for us. I quickly mocked up a quick demo, to show how easy it would be for us to create both iOS and Android apps from our existing Vue codebase. We could reuse all API calls, the Vuex store, almost everything except the UI part. The UI would have to be rewritten with NativeScript components and we would create a few of our own. And so we did. With me and one other fulltime and one part-time engineer, we managed to prepare and release both iOS and Android versions in just 6 months. This includes in-app subscriptions for both platforms, with server-to-server notifications (btw. Apple could do a better job with their S2S notifications), push notifications, Google sign-in, Apple sign-in and more…