Professional Documents
Culture Documents
com/blog/flutter-vs-react-native-what-to-choose-in-2021#f8
Flutter React Native
What is it? A portable UI toolkit for building natively- A framework for building native applications
compiled apps across mobile, web, and using React
desktop* from a single codebase
UI Flutter apps look as good on the up-to-date Application components look just like native
operating systems as they do on older versions. ones (e.g. a button on an iOS device looks just
like a native iOS button, and the same
Since they only have one codebase, the apps look on Android).
and behave similarly across iOS and Android –
Flutter React Native
but thanks to Material Design and Cupertino The fact React Native uses native components
widgets, they can also imitate the platform design under the hood should give you confidence that,
itself. How’s that possible? after any OS UI update, your app’s components
will be instantly upgraded as well.
Flutter contains two sets of widgets which
conform to specific design languages: Material That said, this can break the app’s UI but it
Design widgets implement Google’s design happens very rarely.
language of the same name; Cupertino widgets
imitate Apple’s iOS design. If you want your app to look near-identical
across platforms – as well as on older versions
This means that your Flutter app will look and of an operating system (as Flutter achieves)
behave naturally on each platform, imitating – then consider using third-party
their native components. libraries (like this one). They will enable you to
use Material Design components, in place of
native ones.
Sharing code With Flutter 2 (announced in March 2021), we iOS and Android – but there are select libraries
can use the same codebase to ship native apps to that allow you to use the same code to build iOS,
five operating systems: iOS, Android, Windows, Android, web, and Windows10 apps.
macOS, and Linux; as well as web experiences
targeting browsers such as Firefox, Chrome, You can also extract shared code in mobile,
Safari, or Edge. desktop, and web apps, to a separate repository;
treat it as a separate project; then inject it in the
Flutter can even be embedded in cars, TVs, and same way as another dependency.
smart home appliances. (source).
This allows a developer to focus on writing code
Perhaps the single largest announcement in Flutter for a specific platform without having to
2 is production-quality support for the web. It can consider compatibility with another one.
be used for:
However…
potential for one codebase across mobile Code can be easily reused for both web
and web platforms app and desktop app development.
Difficult to beat time-to-market length
• The design of your app is platform-specific • You require custom communication via
Bluetooth (which can be tricky to implement
• Your app requires multiple interactions with an using React Native)
OS; or requires rare, little-known native libraries
• You want to create an app for Android only
• You need a minimalistic UI, but rely on
significant use of the phone hardware (e.g. an In truth, if you want to build an iOS app and you
application that plays music, or only takes know JavaScript, consider React Native – but if
pictures) you want an Android-only app, it’s likely better
to build natively with another team. Why? Right
• You want to create an instant app (small-sized now, iOS has better support than Android.
app)
If your app sounds like any of the above, it’s
If your app sounds like any of the above, it’s probably better you consider choosing native app
probably better you choose native app development.
development.
https://www.jianshu.com/p/85a77bb8d926
Flutter is comparatively a new language for developers, therefore it required additional learning efforts whereas React Native is based
on JavaScript and developers are familiar with it.
https://ieeexplore.ieee.org/author/37394446700
https://www.researchgate.net/profile/Binod-Vaidya-2