In today lives, mobile application can be increasing vital. In flutter is a cross platform framework and other native mobile application is one particular operating system.
The time of 2015 year mobile application development increasing day by day. and also, the time of COVID-19 mobile application was very popular there was huge competition between the mobile application that available in a market. flutter can support both iOS and Android platform application.
The main focused on the paper highlight the comparison between flutter mobile application and other native android mobile application. In this we can comparison on flutter SDK and android SDK on the basic of compilation, memory consumption, CPU usage, app size, etc.
The paper provides an analysis of flutter architecture, Wight’s system and its unique programming language known as DART. This paper indicates the benefits of flutter over the other mobile development platform.
Introduction
I. INTRODUCTION
Flutter is an open based user interface UI framework that develops by Google for creating a natively compiled application for a single codebase. It is used by developer to create a flutter application on web, IOS, MacOS, Linux or windows on it. It is developed by Google developers in 2017. Flutter platform includes Android, ISO, web, Windows, Desktop, MacOS, Linux, etc. Flutter use Dart language as other native language JavaScript.
Mobile application is rapidly growing day by day. Now days, mobile applications that unlock their value are the most popular ways to peoples and organization, businesses that they are connect over the internet. To stay responsive, efficient and relevant, organization essential to develop the mobile application that their customers, partners and employees demands.
To overcome the cross-platform problem, Google had been developed platform that known as flutter in 2017 which is open-source mobile User Interactive Framework. It can well native application with the single code. The reason for creating flutter was to evaluate if Layout models were ignored.
II. RELATED WORK
In our research work the comparison between the cross-platform application between native application. The comparison between on the basis of CPU usage, visual studio complexity of both flutter and native apps. Flutter is a portable User interface software development kit (SDK) for creating android, web, Desktop application. Flutter can offer to create an app using these framework, widgets, and tools. It is open source and free to use and can be modified by developer to their needs. Combined these tools and widgets to create an efficient and quickly app.
Flutter as a framework that is very assurance has a big pub dev community. Some Complex apps that are based on flutter i.e., Alibaba, Google Ads, Xianyu , etc.
In this table we can conclude that the performance of Android app and flutter app-
Aspect
Android App
Flutter App
CPU usage
11% -47%
20%-36%
Size
Large
Small
Memory Usage
132MB-150MB
418MB-504MB
FPS Render
58 Frames per seconds
66 frames per second
III. WHY FLUTTER
Flutter SDK is open-source framework for building cross platform mobile application and there are several reasons that developer choose flutter
It is Single codebase. In flutter you can write a single codebase that works on both Android and iOS platform, that can save time and also maintaining separate code base for each.
It is Open source and free to use and Clear open and honest development process which means you can implement or access it source code.
Hot Reload feature allow developers to Instantly See the result of code changes. And making the process faster and more efficient.
Flutter offers a consistent user interface Across different platforms, that your app. Looks and feels the same on both Android and iOS devices, etc.
Aspect
Flutter SDK
Android SDK
Cross-Platform Development
It can support Android, iOS, web, and desktop
Primarily for Android
Language
Flutter uses the dart programming language.
Android Studio uses Java and Kotlin for Android app development.
User interface development
Flutter has its own UI Development framework that uses its own set of digits and design elements.
Android Studio. Uses the native Android UI toolkit.
Performance
Compiled to native ARM code.
Compiled to bytecode, run on ART.
Development environment.
Flutter CLI, plugin for IDE.
Android Studio, other IDE.
CPU usage.
Efficient native ARM code generation.
Efficiency depends on the developer practice.
App Size
Large initial size due to Flutter engine. It is possible to reduce the app size using technique like code Splitting.
Small initial size but vary with Assets.
Memory consumption.
Memory efficient with darts GC.
Memory usage depends on the developer practices.
IV. DART
Dart stand for Dynamic Analytical Re-planning tool. It is a general-purpose language that develops by Google and high-level programming language. It is also an object-oriented programming. It is similar to C, Java and JavaScript. Flutter itself is not a programming language. To develop any app using flutter, you need developers to code in dart. It is open source and freely available and has an active developer community.
A. Features of Dart
Open Source:It is open source and easy to learn on Internet.
Platform Independent:It can support on any platforms like Window, iOS, Mac, Linux.
Object Oriented Programming:It can support Oops features like Class objects, inheritance, data abstraction, polymorphism. Encapsulation.
Browser Support:It can support on any platform like Firefox, Google Chrome, Edge, etc.
B. Advantage of Flutter
Open Source:It is free to use and can be modified by developer to their needs.
Fast Development: In this Hot load feature that enables Developers to see changes in the app code immediately. It is increasing the speed of development.
Cross-platform Compatibility:It is a code base that can be used to Developer for any other platform, for example Android and iOS apps.
Easier to Learn:It is easy to learn. Even for developers with no experience in a mobile app development. Dart is the basic language of flutter.
C. Disadvantage of Flutter
Large App Size: Inclusion of Flutter engine and other component affect the app performance and UX.
Limited Third-party Libraries: In this lack of some third-party libraries that are available. For other framework making development more challenging.
Learning Curve: It is requiring developers to learn a new language dart and a new set of development tools which can be a challenge for a some well developers to create or building new application.
D. Flutter Architecture
Flutter Engine:It is a runtime i.e., portable for high-quality mobile application and based on the C, C++ language. The application of flutter is developed using Flutter core libraries that include volatility and graphics, file and network I/O, plugin architecture, accessibility support, and a dart runtime for developing, compiling, and running Flutter applications. Google’s open-source graphics library is known as Skia, to render low-level graphics.
Foundation Library:These features defined in this library are the lowest level utility classes and used for creating basic building block of writing flutter application in it. It can contain all packages to create flutter application. It can also use Dart language to write these libraries.
Widgets:It is core concept of the Flutter framework is the widgets. In Flutter, everything is a WIDGTS. Widgets Are basically user interface component used to create the user interface of the application. It can affect and controls the view and interface of the application. In Flutter the application is itself a visit that contain many subs widget. In this the application is the top-level widget and its user interface (widgets), which again build using its children widgets. This feature helps us to create a user interface of any complexity.
4. Design Specific Widgets:Flutter has a widget to specify a particular platform like an Android or iOS. Some of the most used material budgets are as follows. Scaffold, SafeArea, appbar, text, icon, bottom navigation bar, stack, grid, Row and Column, Listile , listview , slider, alertdialog, raised Button, Icon Button, bottomnavigationbar , card, Getx , etc.
a. Gestures: Gesture is a widget that used for interaction in a Flutter using Gesture detector. Gesture Detector Is used to interactions of tapping, dragging and scaling of a child widgets is included in the gesture detector with is an individual widget.
b. State Management: The state of flutter widgets is maintained by a special widget known as Stateful widget. Stateful widget is a widget that can change on runtime with user interaction on it.
c. Layers:The core concept of Flutter architecture are layers that are divided into several categories in the terms of complexity and arranged in the top-down approach. This layer is particularly to Android platforms and iPhone operating system platforms.
5. Flutter Packages:Apackage is a container that consist of a collection of related type of classes., interface, and a sub packages within a Namespace. Flutter Packages is a set of reusable code modules. These packages improve your flutter app by adding specific functions. They are created and maintained by the Flutter community. These packages can be easily accessed and integrated into your project using the pub.dev Repository.
6. Pubspec.yaml:The Pubspec.yaml file is the configuration file used in flutter project. It can specify the essential information about the project Such as-
Name, description, various dependencies and other settings.
Project dependencies like Getx, https, Slider, etc.
Project assets (e.g., images, icons)
E. Types of some Flutter Packages
Http:A package that includes a set of high-level function and classes to assess HTTP resources across the mobile, desktop, and Browser home.
SQLite:A package that allow you to access the database on both Android and iOS.
Package Info: A plugin that helps you retrieve the application version and other related information on both Android and iOS.
URL Launcher: A plugin that launches URL on multiple platforms like Android, iOS. Window Mac Linux.
Path Provider: A plugin that helps you to find commonly used location on iOS, Android, Mac and Linux file system.
Conclusion
Today in Flutter, Is the one of the most technology available in the market Which is Essentially the fastest framework of the cross-platform mobile application development. Flutter Offers developers a bright future and much more opportunities in it. The decision between flutter and native app development comes down to a particular project requirement, available resources, and desire user experience. Flutter offers Quicker development cycle and the single code base for both iOS and Android. On the other hand, native development may offer better performance and access to platform specific feature. Flutter is the best option for a business looking to create an application on both iOS and Android. It is the useful toolkit that creates a new application Easy and efficient. It is the best. It is also the. Best option for creating app with amazing user interface and high performance.
References
[1] Flutter development tools and packages -https://pub.dev/
[2] Smartphone users 2020 | Statista, https://www.statista.com/statistics/330695/ number-of-smartphone-users-worldwide/.
[3] Conference: KSII The 13th International Conference on Internet (ICONI) 2021
At: Jeju, South Korea.
Available At: https://www.researchgate.net/publication/361208165
[4] Flutter Tutorial: https://proxify.io/articales/flutter-2-null-safety
[5] Dart dev. Dart programming language Available at: https://dart.dev/
[6] React Native vs Flutter, Cross-Platform Mobile Application Framework, Thesis March 2018- Wenhau Wu
[7] Aakanksha Tashildar,2020.” APPLICATION DEVELOPMENT USING FLUTTER\". Available At:
https://www.irjmets.com/uploadedfiles/paper/volume2/issue_8_august_2020/3180/1628083124
[8] Flutter for Cross-Platform App and SDK Development, Metropolia University Thesis May 2019- Lucas Dagne.
[9] Number of monthly Android app releases worldwide 2021 | Statista https://www.statista.com/statistics/1020956 /android-app-releases-worldwide