loading...

Help! I'm A Mobile Developer Now!

twitter logo github logo ・1 min read

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?

twitter logo DISCUSS (13)
markdown guide
 

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.

 

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.

 

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.

 

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 :)

 

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.

 

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.

 

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/...

 

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.

 

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

 

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

 

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

 

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

 
Classic DEV Post from Jun 28 '18

Laying the ground for your career as a software developer

Michael Cain profile image
Minnesota-made I'm a musician-now-software developer in Philadelphia (Ruby on Rails). I love making things, playing things and teaching.