DEV Community

Michael Cain
Michael Cain

Posted on

Help! I'm A Mobile Developer Now!

Help!

So...my very good friend runs a startup and has made the decision to scrap the tech that he has now and asked me to rebuild it for him. I'm super excited to work on it...but I don't know much about mobile-first development.

It needs to be available in the app stores, but doesn't really need much access to the native capabilities of the device (it's a social coupon kind of thing).

How do I decide what technologies in which to build it?

Top comments (13)

Collapse
 
jacobtstaggs profile image
Jacob Staggs

I would recommend just biting the bullet and learning React Native. It may take a little bit more time but it will be better than using something like Cordova or something similar. Not only do I think the customer will be happier, but adding that tool to your belt will be more beneficial in the long run.

Collapse
 
shubhamsinha profile image
Shubham Sinha • Edited

Once a piece of code is written, it's rarely re-visited especially when you're developing for startups. So I'll advice you to choose a technology that is close to native, is used by companies in production, has good plugin / package ecosystem and good developer community. Though every other framework boasts of the same but there's always a leader. For app development it's React Native. If you guys are not targeting IOS you can always take PWA route. It'll save you tons off time.
Otherwise start with React Native / Expo. You can scale the app fairly well and you'll be using Js primarily . I won't suggest you to use Cordova just because it won't feel native enough. There are few design softwares like BuilderX that can help you in protyping React Native UI etc.

Collapse
 
connorphee profile image
Connor Phee

Shubham,

I am curious why you mentioned going the PWA route if IOS is not the target? Is it because Safari lacks support for some things? I am asking because I am trying to learn more about PWAs, including their limitations.

Collapse
 
shubhamsinha profile image
Shubham Sinha • Edited

Basically you can upload a PWA on Google Play but the same isn't possible on Apple Appstore ( will take tweaks ). And PWA are websites so you can iterate very fast. The article below will help you out to figure these things.

debuggerdotbreak.judahgabriel.com/...

Collapse
 
recursivefaults profile image
Ryan Latta

Its interesting that very few answers here mention building the mobile application in their native tech.

My advice is to try to understand how much of what you're building is the product and how much of it is an experiment. The more experimental it gets the more lightweight the tech should be too. This pushes you towards the react native or the hybrid style apps.

A common thing people bring up about these frameworks is how cross-platform they are. I actually recommend you don't put much weight behind this feature. You building an app that runs on both platforms that nobody wants doesn't buy you anything. Also, each platform has unique usability patterns and device/os limitations. The tech won't solve a fundamental design/ux issue. I advocate for targeting an platform that they can have the best chance with, and let the success pay for the 2nd platform.

If you go down that route you'll find Android has the larger market share. If you dig deeper you'll find out that iOS users pay more, and you can't actually support the larger android market share.

The more sure they are that they have the app figured, then the more you'll want to be able to really polish the app towards perfection, which pushes you towards fully native.

Collapse
 
davesneddon profile image
DaveSneddon

Fully native means writing the same app twice in two different languages and frameworks. It also means having to keep both of those code bases in line. That's going to be a serious challenge for a single developer.

Collapse
 
samundefined profile image
Sam Undefined

If you're comfortable on web dev, Cordova (which has a bunch of tools and extensions, like Ionic which is built with Angular) might be a good option for this sort of thing.

I write apps in Flutter, which is extremely productive and fun for me. It also took me a mere few days to be productive in.

If your app is UI heavy, Flutter is perhaps the way to go - it's performant and heavily customizable. I personally don't know much about Cordova save for its friendliness to web developers and occasional performance constraints.

Collapse
 
kayis profile image
K • Edited

Check where you customers are.

I built an document management app for business people they can use in meetings to up and download documents, they use mostly iPads, so I build an iPad app.

I build an health an fitness app for middle aged women, they almost all used iPhones, so I build them an iPhone app.

The technology isn't that important.

First, find out what the customers are using.

Then try to build it with tech that has the best overlap with skills you already have.

If you're a web dev, you'll probably go better with things like PhoneGap if you decide to build an app that needs to end up in one of these apps stores.

Otherwise, you can also build a progressive web app, if app stores aren't important (they cost money, but they are also a marketing instrument)

You can use React-Native, if you already know React.

You can also use Flutter, if wanna try something new.

If you know C#, go for Xamarin.

Whatever you choose, try to get an overlap on skills you already have and the channels (iOS, Android, Web, etc.) your customers use :)

Collapse
 
joeberetta profile image
Joe Beretta

I think you can use Cordova with html, css and js?

Collapse
 
joeberetta profile image
Joe Beretta

Cordova was not so good in the beginning of it... But nowadays, it's good way of creating one app in all OS. It has plugins for OS native APIs even

Collapse
 
drbragg profile image
Drew Bragg

We've used Cordova at work and it seems to work pretty well with Vue.js. I've heard good things about React Native.

Collapse
 
bgadrian profile image
Adrian B.G.

The new trend goes to Flutter, and I could say is the right way, especially for a non-native dev, heres a similar story

Collapse
 
imeriem profile image
Meriem Zaid

Reactnative /Expo would be good.