Mobile App Framework 2020
Today we'll 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 use 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 the good pass and bad pass and on top of that, there's a lot of considerations outside of the framework that impact our app as well such as how much time do.
We have to market what is our current development costs 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 and what are the risks going with a third-party solution.
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 Apple makes iOS and they also make the Xcode development toolkit that allows you to create native iOS apps in Objective C and Swift 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 development speed is a little slower and that's because we have to create the same app twice Apple in Google use different programming language there are toolsets and so we cannot reuse the same code between our apps so 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 increased s-- our development costs it increase 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 another option is progressive web apps.
Now 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 angular js react to 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 mobile app framework and 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 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 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 iOS 7 made everything flat everything was skeuomorphic and then everything became flat any app created with web technologies had to rewrite their UI whereas if we were using the first-party mobile app frameworkall we would have would have had 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 hundred millisecond response time now 100 milliseconds is 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 progressive web app wouldn't be the best choice in that scenario this is also a fairly new technology now one of the biggest downsides to pwace is the feature access pwace 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 and geolocation but they don't have access to a lot of other features like vibration geofencing and augmented reality now one big benefit is 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 peace 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 now the last category will discuss is the cross-platform native apps.
These are mobile app framework that allows 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 Zam Rijn is Microsoft's cross-platform native solution that we build in Visual Studio using the programming languages of dotnet which are C sharp and F sharp our UI and our 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 and 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 up those same updates through Visual Studio and it's also open source react native is Facebook's cross-stage local structure like xamarin Facebook likewise gives us access to each and every iOS and Android API so our UI and our UX is absolutely local we have quicker improvement speeds in light of the fact that again we just need to compose the code once and it'll run on the two iOS and Android our upkeep costs are lowbecause we only need to fix the bug once in our codebase performance is still high because these are native apps we create them in JavaScript and just like xamarin react native is also a mature language or mature mobile app frameworkthat is open source and feature complete as anytime Apple and Google come out with updates Facebook will also release updates via NPM and the last tool 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 api 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 now let's look at a couple scenarios that our company may be in to help us choose which app would be best in this scenario we're creating a simple mobile app our company has an existing website created in angular js we have an engineering team of web developers and the app we're creating does require a lot of features in this scenario and makes a lot of sense to create a PWA for our mobile app framework a progressive web app and specifically because we have existing developers familiar with angular js.
We can use that for our PWA in this scenario we want to create an augmented reality app we have venture capital funding and we have a leadership team who are weary of third-party mobile app framework so in this scenario it makes a lot of sense to use the native toolkits we don't mind the extra 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 the third-party frameworks 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 framework or our team.

No comments:
Thanks for visiting!