How to choose the best mobile app development framework?


0

We will be talking about choosing the best mobile app framework when making your first app. It can be difficult, it can be daunting to decide from all the different options that are available for our mobile app framework. And that makes choosing a mobile app framework really hard it’s not easy, there’s a lot of information out there that can lead us down.

On top of that, there’s a lot of considerations outside of the mobile app framework that impacts our app as well such as:

  • How much time do we have to market?
  • What is our current development costs?
  • What is our current maintenance costs?
  • Do we have a team of engineers?
  • Do we need to hire?
  • What features do we need?
  • How performances are apt to be?
  • How performant is our app need to be?
  • What are the risks of going with a third-party solution?

Native Apps:

Let’s start today by talking about the first party native apps now these are the tools created by the creators of iOS and Android or Apple and Google.

Xcode:

Apple makes iOS and they also make the Xcode development toolkit that allows you to create native iOS apps in Objective C and Swift.

Android studio:

Google who makes Android as Android studio that allows us to make native Android apps in Java and Kotlin.

Now the benefits of using first-party native apps are we get a native UI UX so native UI native user experience. Buttons look like iOS buttons on iOS, on Android they look like Android buttons. We can swipe the gestures they’re all baked in we get that for free.

But one downside is that the mobile app development speed is a little slower and that’s because we have to create the same app twice. Apple & Google use different programming languages there are toolsets and so, we cannot reuse the same code between our apps.

Even though our apps look similar to have the same features we will have to rewrite those apps twice in two different code bases with two different engineers. 

So that increases our development costs, it increases our maintenance costs and it slows down our time to market. But the benefit is because we’re using the first-party tools whenever Apple releases a new feature or a new API it’ll be there in Xcode.

The same day whenever Google releases a new feature a new API it’ll be available to us in Android studio that same day. So we never have to worry about falling behind and we never have to worry about whether or not there will be support for these toolsets.

Because they’re made by the creators of the operating system.

Progressive Web Apps:

A Progressive Web App is essentially a website that is running locally on our device. With progressive web apps, we create the UI just like we would for a website and there are many different technologies available from Microsoft’s blazer, Native script, Angularjs, Reactjs, Iconic that are tools that most web developers are already familiar with.

Now the benefit here is you might already have a team of web developers that created your website and we can repurpose those skills for our mobile app now one downside is the UI or the user experience with progressive web apps.

The UI will have to be bespoke on iOS and Android. If we were using the native first-party toolkits like Xcode and Android studio they come with buttons, they come with navigation tools and we essentially get those for free with progressive web apps.

We are recreating those tools, those UI elements in our web frameworks. So, we essentially have to recreate that same look and feel that we would get for free. If we were using a native app one big improvement is the development speed.

Maintenance Costs:

The code we write for our PWA will run on both iOS and Android. So we don’t need to rewrite that code multiple times for the different platforms and that also reduces our maintenance costs.

But we’ve mark maintenance costs here as a medium. Because if we ever need to refresh the UI because that UI is bespoke. We’ll have to rewrite that all ourselves and so that is one risk just like with an apple on iOS7 made everything flat, everything was skeuomorphic, and then everything became flat.

Performance:

Any app created with web technologies had to rewrite their UI whereas if we were using the first-party mobile app framework. All we would have to do is recompile our app to get that native look and feel.

Performance is also a little bit slower than with a native app now. It’s not that much slower, with a native app we’re talking about a 10 millisecond response time for a button click and with a progressive web app we’re looking at about a 100 millisecond response time.

Now 100 milliseconds are still well below with a threshold that a user would even notice. But if we’re creating something that’s fast-moving that needed quick response times like a game. Then maybe a progressive web app wouldn’t be the best choice in that scenario.

Feature Access:

This is also a fairly new technology, now one of the biggest downsides to PWA is the feature access. PWA’s cannot access every feature or every API available to us in a mobile app now.

They do have the ability to access a lot of features like 

  • Bluetooth,
  • Geolocation,
  • Local Notifications,
  • Touch Gestures,
  • Camera,
  • Device Motion,
  • Offline Storage,
  • File Access.

But they don’t have access to a lot of other features like 

  • Vibration, 
  • Push notifications,
  • Battery Status,
  • Geofencing,
  • Augmented reality.

Installing PWA on Mobile without the need of App Store

Now one big benefit is that I can install a PWA from the website. I can navigate to a website in my browser, tap Add to Home screen and this app will appear and run like a native mobile app.

Now typically apps have to be downloaded from the App Store. But with PWA’s without the need of App Store,  we can install apps, because they use web technologies we can download it straight from the website so this allows us to get new features to our users more quickly and ensuring that all of our users stay up-to-date.

Cross-platform native apps:

Now the last category will discuss the cross-platform native apps. These are mobile app frameworks that allow us to still create a totally native application. They give us access to every single iOS and Android API.

But they allow us to write the app in the same codebase so that we can share code between our iOS and our Android apps.

Xamarin:

Xamarin is Microsoft’s cross-platform native solution that we build in Visual Studio using the programming languages of .NET which are C-sharp and F-sharp

Our UI and UX totally native, we have fast development speeds because we are writing the app in one language. So, we don’t have to rewrite it like we would have to if we were using the first-party toolsets.

Performance is just as high and just as fast as if we did create it in Xcode or Android studio. Xamarin is also a mature technology it’s been around for over a decade and it features complete meaning every time Apple and Google release updates Microsoft will release those same updates through Visual Studio and it’s also open source.

React Native:

React Native is Facebook’s cross-platform native framework similar to xamarin. Facebook also gives us access to every single iOS and Android API, so our UI and our UX is totally native.

We have faster development speeds because again we only have to write the code once and it’ll run on both iOS and Android. Our maintenance costs are low because we only need to fix the bug once in our codebase. Performance is still high because these are native apps we create in JavaScript and just like Samaria.

React native is also a mature language or mature framework that is open source and feature-complete as anytime Apple and Google come out with updates, Facebook will also release updates via NPM.

Flutter:

The last tool we will discuss is flutter. Flutter is Google’s cross-platform native solution that is pretty new. Now flutter is different from xamarin and react native in one way and that is flutter does not use the native UI in the UX app is provided by Apple and Google.

Flutter uses a bespoke method to draw their own UI on the screen, now there is a benefit to that. Because it is faster but one downside is that whenever iOS and Android come out with new UI updates, flutter will also have to come out with their new libraries to mimic those updates as well.

It is feature complete they also release updates via NPM, very fast high-performance apps and they are all created in Dart. Now Dart is a new programming language created by Google not that many developers are already familiar with it. But it has many similarities to Java and c-sharp and a lot of those developers will take to Dart very quickly.

Flutter is new it was just released within the last year or two and it is also open source.

Scenarios:

Now let’s look at a couple of scenarios that our company may be in to help us to choose which app would be best in this scenario.

Simple Mobile App:

  • We’re creating a simple mobile app, 
  • Our company has an existing website created in angularjs, 
  • We have an engineering team of web developers, 
  • The app we’re creating doesn’t require a lot of features. 

in this scenario and makes a lot of sense to create a PWA for our mobile app, a progressive web app and specifically because we have existing developers familiar with angular js we can use that for our PWA.

Augmented Reality App:

In this scenario, we want to create an augmented reality app.

  • We have venture capital funding,
  • We have a leadership team who are weary of third-party frameworks,
  • Risk Adverse.

So in this scenario, it makes a lot of sense to use the native toolkits. We don’t mind the extra mobile app development cost of having one teamwork on our iOS app and another team working on our Android app. Because we don’t want to take the risk of using third-party frameworks.

Conclusion:

In conclusion, which mobile app framework is best, it’s the one that’s best for your team. Every team is going to have different scenarios, every team is going to have different capabilities and as long as we understand the trade-offs between native first-party and PWA and cross-platform native. We can ensure that we choose the best mobile app framework for your team.


Tags:

Like it? Share with your friends!

0
Kalyan Pavan