I haven’t done a mobile app yet and fancy giving it a go at some point - so just wondering what everyone’s thoughts are on the easiest route to making an iOS and Android app that people can download via the respective app stores.
There’s a list of options here:
But which is the quickest/easiest for a relatively simple app - say something like a chat or location based app?
Most bang for your buck and return on the learning investment I’d say stick to the browser and go PWAunless you have a real requirement for access to native features.
I know it’s not a popular opinion with the ES-averse (go ahead, transpile from another language as you’ll be using Babel anyway) but it is what it is.
Also while PWA may seem Google-centric, I view Addy Osmani as one of the driving forces - and he has consistently shown that he knows what he is doing (The Cost of JavaScript in 2018).
Personally I’d look into Flutter as well. I’d really like to propose PWA, but in my opinion the support under iOS is just not good enough to be a real option. You can’t even switch to another app and come back without effectively restarting the whole app.
I’ve always found browser based geolocation has been a bit hit and miss I also heard PWAs and push notifications on iOS isn’t great? Unfortunately both of those are something I wanted to make use of (and some of the greatest benefits of mobile apps imo).
That’s another good aspect of mobile apps! It’s a shame you can’t do that with PWAs.
If the stats can be believed Android already has 75.9% on the global market and 48.3% of the US market. So Apple better get their act together if they want to remain relevant.
At my last company I had to pick one of these to build the companies mobile solution on. I dismissed PWA immediately due to lack of push notifications (and, with our clientele being doctors, over 90% used iOS) plus lack of app store availability (hospitals trust app stores more than random websites). We dismissed Xamarin just because we all developed on Ubuntu. Flutter and Native Script had too small of a user base to feel confident in finding answers or ready made solutions to common problems; so we went with React Native. I do hope both Flutter and Native Script continue growing and maturing to the point that they are viable for more risk adverse projects, as they both intrigue me.
I’d also like to hear more from anyone that has made something from any of these.
Biggest question: only online stuff or offline too?
Online (mobile site? / if not, simple skeleton and a web view):
Do you need an app or does is a mobile site enough?
Very basic (VERY) - flutter. You can learn the language, concept very fast and build an app, but if you use 1 call a little different than expected -> framework crash, spending weeks to find out what’s going on, … - then build a web view as soon as possible and use the mobile site
Use a native sample app and use web views after that - much less trouble than flutter at the moment (will probably change in 1-3 years)
Nice thing with web views -> you can start with almost nothing, update frequently (all on the server), use new technics like LiveView, use 1 for everything or as many as you like, mix them with native views and use everything from the OS via JavaScript calls to your application. You just need a little skeleton app and the knowledge for that (native, flutter, …).
Offline (traditional app + api at the backend):
Check React Native, if not sufficient, check NativeScript, if not sufficient check flutter (same as above)
If you come from web/css development, try ionic - for some apps it’s a nice solution (simple chat, … - like you mentioned) where you can get results very fast
Do you mean create a skeleton app in the native language and use/insert a webview layer into it and then do the bulk of the app in that? That sounds like a good compromise actually - do you have any links to guides, tuts or screencasts on this?
Do you know any good video courses on Ionic? I looked at their forum and it looks quite active which is always a good sign
iOS developer here. Used the Phoenix Swift client which was a bit abandoned when I started using it but a few guys picked up development and I’ve added a few patches to it as well and it’s pretty solid so far. Works about the same as the standard JS client, code I copied over from JS almost compiled even. Didn’t hear complaints from the Android dev so that library should be solid as well.
Swift and Kotlin complement each other pretty well the Android dev could copy over basically all of the functional patterns to the Android app.
I can’t advise you to use native or not but a lot of hybrid or cross-platform solutions can force you to get dirty with native libraries and code after all to get the last 10% of your app done. Depends on the level of polish you’re looking for.
And sometimes (not always, I know), the hard bits are the ones that can be cross-platform naturally in a common language–C++ in the past, considering Rust these days.
Exactly. You can generate a simple app with 1 view for Android with Android Studio. Then google for a webview example. Each of this tasks should not take longer than about 1 day. After that you can work like delivering in a browser. Just google for your first “hello world” app and for a web view example. If you need to call native stuff from the webview: https://www.tanelikorri.com/tutorial/android/communication-between-application-and-webview/ (Android).
Worked with ionic some years ago, there should be plenty of material to find and the community was very helpful. Hope they still are