Pawix
Regular Member
- Apr 2, 2017
- 370
- 205
There are a few different ways of developing the mobile app. How is your experience with it, which one is the best and which one has the best cost to stuff done ratio?
1. Native Android and iOS development.
This has the most resources available, has the best support and will last as long as Android and iOS are there.
For Android, for a few years Kotlin language is the main language of Android development, Java isn't relevant anymore, so the logic part is written in Kotlin
The UI is written in XML files representing the components. This might change soon as there is Jetpack Compose in development which is a kind of reactive framework similar to what we got used to when working with modern web app frameworks.
For IOS, logic is written in Swift, which is more pleasant than the language used before -- ObjectiveC.
For the UI, Apple has it's own solution UIKit, but there is a new thing incoming -- SwiftUI which is similar to what JetPack is doing in Android.
To me, writting the code natively is the best way to have top quality app, but it's also the most expensive way.
2. React Native
This uses react framework to handle the logic written in JavaScript/TypeScript and represent the UI using native components of Android and iOS. The good thing about it is that developer doesn't have to know about how React Native displays the UI with native Android and iOS components as long as it's a simple UI.
This might be a quick way for web developers to develop a mobile app that feels native as the UI is native. It seems cheaper to develop smaller apps handling 1 code for both Android and iOS, but not as flexible in terms of UI.
3.Flutter
Flutter uses Dart for the logic and it's own rendering engine for displaying the UI. The benefits of the 1 shared code of React Native, but without limitations of UI.
Dart language is typed and null safe which makes developers make less mistakes when writting the app.
The problem with it that for some users the UI doesn't feel native, because it's not native as it doesn't use native rendering
1. Native Android and iOS development.
This has the most resources available, has the best support and will last as long as Android and iOS are there.
For Android, for a few years Kotlin language is the main language of Android development, Java isn't relevant anymore, so the logic part is written in Kotlin
The UI is written in XML files representing the components. This might change soon as there is Jetpack Compose in development which is a kind of reactive framework similar to what we got used to when working with modern web app frameworks.
For IOS, logic is written in Swift, which is more pleasant than the language used before -- ObjectiveC.
For the UI, Apple has it's own solution UIKit, but there is a new thing incoming -- SwiftUI which is similar to what JetPack is doing in Android.
To me, writting the code natively is the best way to have top quality app, but it's also the most expensive way.
2. React Native
This uses react framework to handle the logic written in JavaScript/TypeScript and represent the UI using native components of Android and iOS. The good thing about it is that developer doesn't have to know about how React Native displays the UI with native Android and iOS components as long as it's a simple UI.
This might be a quick way for web developers to develop a mobile app that feels native as the UI is native. It seems cheaper to develop smaller apps handling 1 code for both Android and iOS, but not as flexible in terms of UI.
3.Flutter
Flutter uses Dart for the logic and it's own rendering engine for displaying the UI. The benefits of the 1 shared code of React Native, but without limitations of UI.
Dart language is typed and null safe which makes developers make less mistakes when writting the app.
The problem with it that for some users the UI doesn't feel native, because it's not native as it doesn't use native rendering