This app has since been rebuilt as a fully native experience for both iOS and Android, however this technique may still work for those looking for a rapid route to market to prototype an idea. Your milage may vary however as with modern standards native development is less cumbersome than it used to be.
Developing iOS and android apps can be challenging, cross compiling or “transpiling” for a wide variety of devices at the same time is one way to achieve development from one central code base.
Several years ago, we developed an app for calculating Tyre pressures for road cyclists. Made for fun as a professional development project, sold on the app stores for a minimal fee.
Sales were low as the target market is quite small.
There is now a free alternative, however it is primary function was to sell a pressure measurement gadget and its’ recommendations didn’t seem consistent with our research.
App store policy review
Recently we recently we received an email from apple –
“Your app, Tyre Pressure, does not follow the App Store Review Guidelines”
Intrigued as to why this might be, we reviewed the guidelines. The spectre of imminent expulsion from the app store was raised. This was because we had not published any updates to this app since its original release.
This app is exceptionally simple, requires no external access to the phone or service, is entirely self contained and still functions perfectly fine on the current iPad Pro and iPhone X models; it does beg the question why update an app for the sake of it?
It was time to either negotiate with apple directly and get approval to continue to list the current app, drop the project all-together, or update the app anyway.
Time to update
We were also exploring many options at the time including a fully native build – this we did embark on but as a short term fix we updated the legacy app anyway – to prevent our de-listing from the app store.
The updated version featured an improved UI and fun graphical pressure gauge control – however the amount of work required to make this work well did make us question the validity of this approach – how long would it take to make this work natively?
The process of updating was a little painful, with many packages having been updated – some no longer supported so needed changing out, despite our app doing something pretty simple it did feel like we were carrying a lot of baggage with the cross platform framework and tooling.
The update, while it looks reasonably smart – it does have some limitations, the consistency between devices, capabilities and the compromises you make to find one size to fit all isn’t a perfect fit.
Furthermore some of the features that are readily available to native developers are not easy to tap into and vary significantly between devices.
Ultimately these cross platform approaches typically embed a webkit view into a native app enabling you to use web-app-based code in your app, this is adding layers of bloat and limitations to your app from the get-go, but it does simplify many aspects of your application build enabling you to work in a common way.