How we code once and ship to both iOS and Android devices

While development is being feverishly completed on the next version of the app, I wanted to take a moment to take you on a stroll through our technological landscape.


This is a companion discussion topic for the original entry at https://www.genuineimpact.io/news/how-we-code-once-and-ship-to-both-ios-and-android-devices
1 Like

That’s quite a busy stack with many languages, and frameworks.

Interesting to see the choice to use Firebase over something dedicated like Okta, Auth0, or AWS Cognito.

Similarly to see Cordova over React Native. From what I can see you have AngularJS ( old ) rather than Angular ( new ), and VueJS. I know there is some cross over but each still has its own unique concepts.

Thinking longer term, wouldn’t it be costly, and time consuming to maintain, or transition from that?

1 Like

Whoops!

I’ve updated that. That was my brain on auto pilot after correcting Vue.JS and replacing it for Angular I kept the JS :see_no_evil: We are using Angular along with Ionic, that has completely replaced our old Vue.JS app.

We’ve found working with Ionic has really helped us, that and wider adoption made us switch from Vue to Angular.

With Firebase we are doing a lot more than just auth, we also use it for analytics, event tracking, push notifications, crash analytics, a database to monitor your subscription status and watchlist. There are very good solutions out there for each of the dedicated pieces but for right now using more of a generalist solution keeps the integrations down.

The real summary of what we have is LAMP stack, Angular webapp that is package with Cordova/Ionic, and supported by Firebase, then there is a python algorithm for security analysis.

In terms of repositories we have three. Backend code, app code, and the algorithm.

Longer term the technologies will be merged and reassessed. While it may sound a lot we do have the benefit of the languages being adjacent to one another in terms of style and skillset, this massively helps reduce the human cost of maintaining and working with the code.

Transition wise, moving the frontend from Angular into something like React wouldn’t be a huge step. Our backend can easily be broken up as we progress, and the algorithm can be transitioned into the backend when we move into more of a microservice architecture.

I did try and cover every little detail which may have made it seem a bit more overbearing than it is!

3 Likes

Another important issue we consider is how flexible the stack can in future ship a PC based product and in another language as well. I’m not an engineer myself but in my opinion, a stack for an early stage startup like us should be able to ship products as fast as possible now and also set up well for medium term future which for us includes PC as well as other languages.

3 Likes