Thanks for the response. Lot’s of great questions in there, quite a few for which I don’t have answers for :)
The 3 options I’m considering for the mobile version are Ionic 2 (with PWA), React Native and Nativescript.
The factors that need to be taken into account are performance, native look and feel, the learning curve, and the amount of effort it takes to build and maintain.
If you consider PWA only and not deploy to the app store you might constrain yourself with limited cross-browser support and non-technical factors such as discover-ability on app store. (Open-source) community support, documentation and long-term viability of the platform might also be among the factors you might need to consider.
I’m leaning towards Nativescript for this app, as I’m skeptical about Ionic’s UI performance especially with an app like ours where we might have several animations and other visual aspects of our trivia game. Add to that Nativescript’s support for Angular will make it a better choice over React Native for our application
A line of business app on the other hand might be ok with using the Ionic platform.
For me, PWA only is not a viable option at the reasons above. Add to that I feel there is a great resistance from Apple to support PWA as it’ll limit their ability to monetize and control this, like they currently do with their App Store. They might eventually support but doesn’t look like in the near future.
If we architect the application right, the only layer we would need to re-write will be our view layer (templates/css). We should be able to leverage our components, services, store, back-end access, etc with minimal code changes. No matter which route we go, we still have to make the UI render well on the platform and accommodate for the screen sizes. We also need efforts to understand the interfaces with device feature such as GPS or camera or in-app purchases, regardless of the above choices, which will add to our development effort.
While the initial learning curve will be greater for going with Nativescript or React Native, I think no matter which route you go, there will be some platform specific or mobile-app specific code we would need to write and maintain.
As far as your other comments/questions, they’ll be accounted for as we move forward. We still have a long way to go. We’ve added all the infrastructural pieces of our core app and we can now focus on building out the features. I’m slowed down as I do work full-time and am able to dedicate only part of my time to this project and the blog. The goal certainly is to add the functionality and deploy it to the store as I originally laid it our in Part 1 of the series.