When it comes to development, many Android developers will say Native is the way to go, but others will say using a framework to develop apps, so they can be run in both Android and iOS is much better, so let’s discuss some of the ins and outs of each approach.
App development is a common occurrence nowadays, and while there are only two main platforms to consider: Android and iOS, if you want to reach all the possible audience, that would mean developing two apps, identical apps, one for each platform. That, in the worst case, means having to do twice the work, and for that reason, many frameworks surfaced that offered a solution to this very same problem, by letting developers code the app one time and then translating that code to both platforms creating two apps from one source code. This, as you can imagine is a great thing to have, it’s like having two developers in one! And is one of the reasons that cross-platform development is ever-growing.
Faster development times, more audience, less code to maintain, using cross-platform development seems like the best idea, right? Let’s take a look at some key features
- Less development time: the most important one for many people, building one app instead of two is the biggest pro. But remember, most likely, we won’t be saving much time when testing and debugging, even if our framework translates our code to native apps, we still have to test each environment independently because each platform has its own way of running apps and how apps interact with the OS and other apps, one bug present in the Android version might not be present in the iOS version
- Needing just one language: developing native apps, when you need to create one for Android and one for iOS, you need to have two developers, one that can code in Java/Kotlin for the Android App and one that can code in Swift/Objective C for the iOS App, developing cross-platform, we just need one developer that can code in whatever language the framework uses. Two of the most notable being JavaScript for React.js and Dart for Flutter, we’ll talk about these frameworks in a bit.
This, of course, means learning one of the framework languages if you’re thinking of going from Native to Cross-Platform, so it would require some investment.
- User Experience/Interface: when we think of how an Android or iOS app looks, when developing a cross-platform app, we have to take care how we use each component, and how the components will look and behave in each platform, this can quickly turn into creating and managing two different sets of components, easily removing one of the most important advantages of even using cross-development tools!
So really there is no clear winner, if budget or time constraints are not a problem then Native is probably the way to go, as you have more control over the app, and using native you can always access the latest features.
If your objective is to make apps faster and reach a wider audience, then cross-platform will probably be your best option.
So, of course, both Android and iOS offer their own tools and IDEs to develop apps, but what about the cross-platform development, let’s take a quick look at two prominent ones.
- React.js: this is the big one, many people think about this one when talking about cross-platform development, and there are good reasons why, first of all, it uses JavaScript, which is a very well known and widespread programming language, so if a js specialist wants to develop apps, this is much simpler than learning another language to develop native. This is of course also true the other way around, a native developer would have to learn JavaScript to use react.
React Native, was soon released after react, and it creates native apps from javascript code.
React is developed and maintained by Facebook
- Flutter: Flutter is an interesting one, it’s first stable release was launched Dec. 2018, but it’s very fast growing and has a lot of support from both the community and the developers, of course it has been available much earlier, early adopters of the alpha and beta versions are one of the core reasons there is a big community for Flutter, Flutter is developed and maintained by Google.
Something even more interesting is that Flutter uses Dart as it’s language, Dart is a language developed by Google, instead of using Java or Kotlin.
Good news for Android Developers is that Android Studio has support for Flutter, which means that, to get started you only need to install the plugin on Android Studio.
Of course, whichever you work with, it has its own set of advantages and disadvantages, but be sure to explore the other options, you never know, the solution you’re using may not always be the best one.
Author: Ing. Erwin Gonzalez