Hello And welcome friends.today i’m going to talk about if someone going to start mobile development what is we should do where to start.Because there is so many things today .Native Android Development with java and now most of people developing Android apps using Kotlin .And also uses React Native . Google recently launches google flutter. So beginners get confusing because what are we suppose to do .what we start native development with Java or Kotlin or should we start with react native .Should we start with flutter or should we build web apps using ionic framework and use as mobile app.There is lots of question going around your head now.
We will discuss all the things in this article.we are discussing what are these platforms and how they work and which is the one we should fluent .
Different Cross platform Frameworks And Languages Are Using
In this section we are discuss which language is using when we use these platforms
Native Development :-
Android is using Java to build native android apps . Lets talk about Android Operating system .Android Operating system use Linux kernel on top of Linux kernel android Operating system is build.Android OS containing buttons,Defaults apps like caller app sms app UI interfaces are written in Java.Android runs on java based run time.This is called android run time. previous name is dalvik run time. It is based on java run time JRE.
Kotlin is a language Uses java run time. kotlin language that compile to the java byte code and execute inside the java run time .As example java code is complied to java byte code that can run on java run time. same as kotlin also compiled to byte code can identified with java run time environment. Both are similar but syntax is different. Kotlin is easier to use syntax is much more nicer than java.you can achieve more things with less code.it is strictly object oriented language . kotlin also have classes and objects and variables.
Native IOS Development:-
Native IOS app development method is using way apple recommend to build for apple devices is using Objective C ,but later Apple developed a language called swift.Swift is language that can interpolate with objective C .That means swift can code similar to objective c and objective c can write code similar to swift.both can work together because these two languages can interface to each other .in binary level both languages converted to same instructions.you can write your IOS app in objective c or swift .Biggest drawback of native development is you have to develop your ios app separately and android app separately.it would be more costly and more time consuming.And maintaining and bug fixing is take more time and money.Solution for these problem is the cross platform framework.
Cross platform Frameworks :-
There is lots of cross platform frameworks to solve these problems in different different approaches.Lets talks about one frame work.It is Xamarin frame work that was popular around 2015 but nowadays it is not much popular.xamarin is a separate company before it own by microsoft.In xamarin we can create apps in C# and apps UI should design separately for android and IOS but same business logic is written on c#. Android and IOS uses the same code for business logic.C# code is converted to native code.which directly runs on CPU.
Basically cross platform framework is same app code is running on the android devices and IOS devices .This will be huge advantage to small scale startups because.you don’t have to maintain separate android development team and separate IOS development team.and its hard to get people who have both android and IOS development in fluent .you need people have good experience with both platforms. If you want to do changes on app you can do simultaneously on both apps in one code.
React Native :-
Company called telerik created developer tools.they did the same thing but they use angular instead of react.they called it native script.different between react native and native script is inside the native script there is UI layer.if we created one UI layer it can be use in IOS and android .React native is not like that react native have different UI parts should implement differently for the IOS and android.as example there is widget,list view but they should implement differently in IOS and android.in other words ios list view and android list view is not similar in react native.But the business logic is the same.if you are web developer native script is a good option to become a mobile developer.in 2018 native script also support vue js also.if you are web developer more like angular and vue js then native script would be preferred to you. If you prefer react then it would be good option to go with react native.
If you prefer react then it would be good option to go with react native.
Native script and vue can go together.But this will most of time considering about how the UI looks like.one codebase hadeling the UI of android and IOS.but there is limitation because.background process is different in IOS and android.as example how the camera is work functionality in android is different from how the camera works in IOS.
But if there is API services like medium API , quora API or github API you can created beautiful apps using react native and native script because.these type of api provide the data that you want to build the app.you can use same code to build same code for both platforms.
But if you are creating app like augmented reality related ,virtual reality related or working with system level (Android system internal ,IOS system internal ) it is not preferable to use with react native or native script to build your app.But you can write some part of the application with java/kotlin or Objective C/swift and the rest of the part of the app ex:- UI parts you can develop with React native or native script.
Flutter and the Fuchsia OS
Flutter is created by google using language Dart.Dart is not a widely used language.Similar syntax to java script.without data type you can create objects in dart.Google is building a operating system called Fuchsia OS.so instead of Android OS Fuchsia OS will come one day.Fuchsia OS kernel is not using linux kernel .Fuchsia OS kernel build from scratch by the google and its UI layer is build using Flutter.Flutter is Hype today because it is taking different approach than the React native,Native script or the other cross platform frameworks in the today.
Game Development frameworks like Unreal,Unity they are cross platform game development framework.they create single code base for the came that can run on Android,IOS,windows or even desktop os also .These game development engines approach is different Than React native or native script.Mobile Operating system have graphic layer according to os mechanism pixels draw top of the screen.These type of approach is gain access to the graphic layer of the operating system and generate pixels of the screen.it is different from react native and nativescript.
Android and IOS devices have mechanism according to that operating system to how to generate views of the button how to generate list according to that os type.That mechanism is using by the react native and native script to draw images on the screen and generate the UI elements.if we created button with react native it will show the button how the android show the button as it is.also similarly ios show the button how the ios show the button as it is.UI is renders how the OS suppose to render the UI.
But the flutter does this as game development engines approach.Flutter by pass the how the Operating system render the UI element phase and get access to graphic layer of the OS.get the full screen access and generate the all the pixels according to flutter.This approach has its own pros and cons.App looks both the same on the both Android and IOS devices.in react native and native script you have to develop the UI element looks and feel the way looks in android and IOS.But using flutter both ios and android material design are the same.if you want to looks like ios app and android app you have to design the UI differently otherwise same code UI looks like the same in both devices.
Problems with flutter
Flutter is not support runtime reflection.that means find out the data fields of the object at the runtime.flutter does not support that in 2019 feb.Because of that you can not use serialization libraries like gson.or ORM libraries rightnow.it is not available.
Flutter ecosystem is new so you can not get every library you need right now.if you are making apps with java,kotlin,objective c and swift there is tons of libraries for your need.React native also have huge amount of libraries comparing to flutter right now.in future you will get the answer for the ll problems in flutter.Flutter code lesser things to debug.because flutter code directly run on native.it is more cleaner architecture.
If you are building part of the code in android native code base and ios native code base other part is building with flutter is much more easier than using react native or native script.flutter helps you to integrate android native code base or ios native code base than using react native or native script.
Key Words to Search