• Home
  • Submit Paper
  • Check Paper Status
  • Download Certificate/Paper
  • FAQs
  • Contact Us
Email: ijraset@gmail.com
IJRASET Logo
Journal Statistics & Approval Details
Recent Published Paper
Our Author's Feedback
 •  ISRA Impact Factor 7.894       •  SJIF Impact Factor: 7.538       •  Hard Copy of Certificates to All Authors       •  DOI by Crossref for all Published Papers       •  Soft Copy of Certificates- Within 04 Hours       •  Authors helpline No: +91-8813907089(Whatsapp)       •  No Publication Fee for Paper Submission       •  Hard Copy of Certificates to all Authors       •  UGC Approved Journal: IJRASET- Click here to Check     
  • About Us
    • About Us
    • Aim & Scope
  • Editorial Board
  • Impact Factor
  • Call For Papers
    • Submit Paper Online
    • Current Issue
    • Special Issue
  • For Authors
    • Instructions for Authors
    • Submit Paper
    • Download Certificates
    • Check Paper Status
    • Paper Format
    • Copyright Form
    • Membership
    • Peer Review
  • Past Issue
    • Monthly Issue
    • Special Issue
  • Pay Fee
    • Indian Authors
    • International Authors
  • Topics
ISSN: 2321-9653
Estd : 2013
IJRASET - Logo
  • Home
  • About Us
    • About Us
    • Aim & Scope
  • Editorial Board
  • Impact Factor
  • Call For Papers
    • Submit Paper Online
    • Current Issue
    • Special Issue
  • For Authors
    • Instructions for Authors
    • Submit Paper
    • Download Certificates
    • Check Paper Status
    • Paper Format
    • Copyright Form
    • Membership
    • Peer Review
  • Past Issue
    • Monthly Issue
    • Special Issue
  • Pay Fee
    • Indian Authors
    • International Authors
  • Topics

Ijraset Journal For Research in Applied Science and Engineering Technology

  • Home / Ijraset
  • On This Page
  • Abstract
  • Introduction
  • Conclusion
  • References
  • Copyright

Review on Detail Information About Flutter Cross Platform

Authors: Sakshi R Uplenchwar, Urmila S Denge, Anurag S Bajoriya, Prof. Sudesh A Bachwani

DOI Link: https://doi.org/10.22214/ijraset.2022.39977

Certificate: View Certificate

Abstract

Now a days The Rapid growth of wireless technology and Mobile devices in this era is creating a great impact on our lives. Due to which many things going digitalized with time. Hence to reduce the manual work we are doing work through application. For Making application now the developer use cross platform framework. Flutter is a popular UI framework for developing mobile applications by Google. This library consists of various reusable UI(User Interface) elements, such as sliders, buttons, and text inputs. Developers building mobile applications with the Flutter framework will do so using a programming language called Dart.

Introduction

I.  INTRODUCTION

Flutter is an open-source iOS and Android mobile application development framework. Flutter’s first release was on May 2017 [6].   Instead of attempting to replace native iOS and Android applications, Flutter introduces a new way of developing applications, allowing developers to write their applications entirely using Flutter or embedding them into existing native applications [6]. This allows developers to write native iOS and Android code if needed, removing framework specific limitations when it comes to native functionality. Flutter is powered by Dart, an object-oriented, class-defined, garbage collected language that can be compiled ahead-of-time (AOT) to native 32-bit and 64-bit ARM code for iOS and Android [4].

Flutter offers many ready to use widgets (User Interface) to create a modern application. These widgets(tools) are optimized for mobile environment and designing the application using widgets is as simple as designing HTML.

To be specific, Flutter application is itself a widget. Flutter tools also supports animations and gestures. The application logic is based on reactive programming. Widget may optionally have a state. By changing the state of the widget, Flutter will automatically (reactive programming) compare the widget’s state (old and new) and provide the widget with only the necessary changes instead of re-provide the whole widget.

 This paper aims to explain detail information about Flutter framework.

II. CROSS PLATFORM DEVELOPMENT

  1. What is Cross Platform Development?

 Cross-platform apps are riding the reputation of mobile application development. It is a skill to run on several mobile platforms allows startups to save costs and decrease development time. Cross platform development is about to build a single application that can run on many operating systems, instead of developing different app versions for each and every platform [3]. The driving force for cross-platform development is to create software that work well in more than one definite digital environment, with the key purpose of selling it to a wider customer [6].

Cross platform applications have a native look and feel due to the combination of native code with independent code that suitable for multiple platforms [4]. Developers write the code one time and then reprocess it, thus making it possible to release a product fast. To code cross-platform development software, developers use intermediate programming languages — HTML, JavaScript not native to devices and OSs. Mobile Apps are packaged into built-in containers and combined into platforms [2].

Cross-platform development aims at creating a single application that runs identically on numerous platforms. It uses platform uncertain technologies such as HTML Javascript and CSS and helps businesses cover several end devices at low costs [6].

B. Advantages

  1. Code Reasability: As you read above, with a cross-platform development approach, the teams don’t have to write unique code for different platforms. Instead, the program developed for one app gets leveraged many times because of reusable code.
  2. Cost Effective: Offers a quicker turnaround since there is only one app that needs to be developed. And, rather than having to build multiple apps across each platform, which would take a lot of time, with just one single app, there is a significant reduction in both development time and cost. Even the learning curve essentially is not complex. Also, the development teams don’t have to invest time and money in learning multiple technologies. They have to master a few skills to get started with the development process.
  3. Fast Development Time: App development is much faster, when a single script is deployed. Increase in the development speed, on the other hand, results in the product reaching the market sooner than before. Time can be used up on thinking out and working on codes for a brand new application. A win-win condition for all concerned – Developers, marketers and consumers.
  4. Ability to Reach Target: It is a given fact that with a cross-platform app, you can expect maximum exposure to your target audience. This allows UX design teams to focus, brainstorm and develop an intuitive design that is accessible & works seamlessly across the board.

III. FLUTTER FRAMEWORK FOR CROSS PLATFORM DEVELOPMENT

Flutter is an open source framework by Google for building beautiful, natively compiled, multi-platform applications from a single Code. Flutter has been around ever since 2015 when Google announced it and remained in the beta stage before its official launch in December 2018.[5] Although being the youngest, Flutter cross-platform app frameworks is making its own distinctive image in the present day market.

A distinctive feature that makes Flutter different is that it uses Dart programming language instead of JavaScript, Because of a hot-reload feature, the developers can see changes in code in real-time in Flutter[3]. Along with Android and IOS, the developers can create ground-breaking applications for the Furchisa Operating System with Flutter.

It  is considered to allow code reuse across operating systems such as iOS and Android, while also allowing applications to interface directly with underlying platform facilities. The aim is to enable developers to deliver high-performance apps that feel natural on different platforms, embracing differences where they exist sharing code as far as possible.

A. What is Flutter used for?

Flutter is one of the best solutions to develop apps for Android and iOS, without having to write in a different codebase for each platform. The smartphone versions of these apps function as true, native apps on Apple and Android devices and are compiled for the respective platform before publication. They do not need a runtime module or a browser. Using the same codebase, it is also possible to create web apps for browsers as well as native programs for Windows, Linux and macOS.

Google itself uses Flutter for several modules of the Google Assistant and for the user interface of the Google Home hub. Well known e-commerce service providers such as eBay, Groupon or Alibaba Group use Flutter to give their mobile and web apps a uniform look.

  1. Architecture: Flutter consists of two major parts – a framework with a UI library based on widgets and a software development kit (SDK). 

a. In a nutshell, a framework is a UI Library based on widgets, which contains various reusable UI elements, such as sliders, buttons, text inputs, and others. These elements can be later personalized based on your needs.

b. An SDK is a set of tools to develop applications and compile your code into the built-in machine code for Android and IOS.

2. Developing Tools

a. Emacs

b. Android Studio

c. VS Code

B. What Programming Language is Flutter based on?

  1. The Flutter SDK is based on the Dart programming language, also developed by Google. It's intent is to supplant classic JavaScript. On a server, Dart programs can be run directly, while in the browser they are converted to JavaScript using the Dart2js transcompiler.
  2. Apps for Google's new platform, Fuchsia, are developed directly with Dart. Its structure is similar to that of well-known object-oriented programming languages such as Java or C#.

C. Advantages of Flutter App Development

  1. One Codebase for all Platforms: Gone are the days of having to write a code for Android and another codebase for iOS devices. Flutter’s code reusability allows you to write just one codebase and use it on not only for mobile Android and iOS but even for web, desktop and more. This cuts development time significantly, removes cost and enables you launch your app that much faster.
  2. “It’s all Widgets” Principle offers Countless Possibilities: Flutter’s custom widgets are an absolute delight when it comes to creating great visuals for your app. At the same time, you don’t have to worry about the UI on different devices.
  3. Rich Libraries: Flutter uses the Skia Graphics Library which is a fast and mature open-source graphics library. It redraws the UI every time a view changes. The result? A quick loading and smooth app experience.
  4. Fast Testing with Hot Reload: The hot reload feature make the app development much quicker. With Flutter there is no need to reload the app to see every single change you make in the code. You can easily make changes in your app in real time, so you have more opportunity to experiment with the code and fix bugs on the go.

IV. DART PROGRAMMING LANGUAGE

Dart is a client-optimized language for fast apps on any platform. Dart is free and open source dart is a programming language designed for client development, [4] such as for the web and mobile apps. It is developed by Google and can also be used to build server and desktop applications Unlike other programming languages, Dart has its own package manager called Pub. Dart started getting more attention in 2017 when Google officially announced Flutter beta for cross-platform mobile app development. Since then, the popularity of Dart has drastically increased, However, developers that have experience with OOPS languages can learn Dart easily. Dart is an object-oriented, class, garbage-collected language with C-style syntax.[6] Dart can compile to either native code or JavaScript. It supports interfaces, abstract classes, reified generics, and type inference.

A. Characteristics of Dart

  1. Object-Oriented: Just like Javascript, Dart is object-oriented, but also provides support for interfaces, static typing, abstract classes, and more.
  2. Portable: No specific hardware configurations or architecture are needed to run Dart, it works on any operating system. Dart runs in all major mobile operating systems and all web browsers.
  3. Easy to Learn: If you already know Javascript, Dart should be very easy to pick up.
  4. Fast: Numerous, huge tasks can be completed in no time with Dart. Even difficult tasks are handled incredibly quickly when using this language.

B. Advantages of Dart

  1. Open-source
  2. Backed by Google and runs easily on Google Cloud Platform.
  3. Dart is approximately two times faster than JavaScript.
  4. Dart is type-safe and compiled with both AOT and JIT compilers.
  5. Dart is very scalable across projects.
  6. Dart is very similar to Javascript and easy to learn if you already know Javascript.
  7. Dart is used extensively for the Flutter mobile UI framework..

C. Developing Tools

  1. Aqueduct
  2. Dart Webdev
  3. Angular Dart
  4. Flutter

V. WHAT IS FIREBASE?

Firebase is a software development platform launched in 2011 by Firebase and acquired by Google in 2014. Started as a realtime database, now it has 18 services (4 of them currently in beta), and dedicated APIs. Google Firebase is a Google-backed application development software that enables developers to develop iOS, Android and Web apps. Firebase provides tools for tracking analytics, reporting and fixing app crashes, creating marketing and product experiment.

A. Services Provided by Firebase

B. Authentication and Hosting

  1. Firebase Authentication: Is a Google Authentication feature tailored for apps using Firebase. It allows you to use pre-built or create custom UI for user-authentication, and login users via custom credentials, emails, or social media.
  2. Hosting Service: If you are building a web-app, progressive web app, or mobile landing page, you would definitely need hosting. Firebase offers static web hosting for applications built with HTML, CSS, and JavaScript. In terms of security, it uses standard HTTPS and SSL protocols to deliver files and other types of data.
  3. Cloud Function: Cloud Functions is another integration of the existing Google product into Firebase. It’s a tool for running back-end code from the cloud on the event-driven basis.
  4. Machine Learning Kit: ML Kit. This product is currently in beta, but what it does is actually provides machine learning capabilities to your mobile applications (Android and iOS). As it’s product page suggests, ML Kit is tailored for most common use cases you may find in Google   products (e.g. Google lens). Think of bar code scanning, face detection, image labeling/recognition, text recognition, barcode   scanning, etc. ML Kit is provisioned both for cloud and on-device usage with dedicated APIs 

C. Firebase Testing Services

Test Lab is a service that provides virtual and physical device access to test your app in real environment. It can be integrated into existing testing environment like Android Studio, or browser testing tools. Test Lab will provide you with crash reports, screenshots as test results. As a test result. If you do not have tests, some bots can crawl your application, find bugs and supply reports. The downside is that test lab isn’t integrated with iOS test tools. But hey, Google.crashlytics may be a real-time crash reporting tool for quickly and simply troubleshooting app stability.

Crash reports are converted into a structured, prioritized list of issues that correspond to the basics of the difficulty in making it easy to arrange the fix process. Performance monitoring automates real-time performance tracking for your app. This tool provides performance insights supported root cause, tracking app performance also as server connection quality and reaction time across different network types. Distribution of apps. This tool is currently a trial distribution service in beta. symbolic.

App Distribution helps you create one hub for 2 versions of your application (iOS and Android) and use the CLI to manage your pre-release builds.

D. Firebase Analytics

When your app is live, there’s also variety of ordinary and specific Google services which will assist you manage how users interact together with your app during a business aspect. Google Analytics comes first as it’s a well known tool integrated into Firebase platform. Google Analytics provides valuable metrics about your user retention, user engagement rates, or the other sort of user behavior data. In terms of Firebase, the reporting capabilities are unlimited and free. You will choose which events to trace, and integrate it with analytical partners that names 52 companies on the mixing page

E. Configurations and Improvements

Cloud Messaging may be a messaging service that permits you to send notifications between the server and user-devices. You will customize the kinds of messages you send to specific groups of individuals based subscriptions, behaviour patterns, profile settings, etc. Cloud messaging is integrated into Firebase Google Analytics, so you will instantly track mailing results, also as configure messaging without coding.

Dynamic links. It’s pretty hard to predict where a user will search for a particular content, once you have your product on multiple platforms. Let’s say a user is browsing your web app, and searches for a particular item. After a couple of clicks, he leaves a touch of a private data, but next time decides to use your mobile application. Here you would have possibly experience bounce rate, because a newly installed app would require ranging from scratch. Dynamic links can assist you transition users between the platforms, saving personal data and showing users exactly what they were browsing before.
Remote Config.

This tool suggests a handy choice to update your application, without republishing it. E.g. this will be a change of colour scheme, or content updates across the app.

Firebase Predictions. Prediction service may be a machine learning extension, which will basically use your analytical data to define user groups and supply you with insights on possible user groups. This may assist you to predict possible churn or conversion rate, calculate revenue, or increase user retention.

Firebase A/B testing may be a tool for conducting marketing experiments within the sort of A/B tests. As all the services are connected with Google Analytics, you'll instantly measure the results of tests, and define if they even interest your users. For the present moment, this service is merely in beta.

In-app messaging. This tool will assist you to conduct targeted and personalized messaging to the users that use your app often. Basically it’s a targeting instrument, that helps you incline users to finish required actions within the app. In-app messaging is additionally in beta-phase, but it can already be utilized in pair with Google Analytics and Firebase Predictions to conduct smart targeting.

As you'll see, Firebase may be a really huge platform that means services for any purpose. For an extended time, it had been considered pretty limited and unable to exchange the entire backend. But with the last releases, Firebase made it possible to create serverless applications, and opened the ASCII text file of its SDKs. But still it's its downsides

F. Advantages Of Firebase

  1. Database Capabilities: While it always depends on your budget, Google suggests pretty robust databases to use with your apps. Both Realtime and Firestore can be scaled in terms of the size, suggesting a fully secure managed solution, that still provides you easy access to your data via Firebase console. Data updates and offline access make databases usable for real time application, as well as keeping multiple DBs in sync.
  2. Wide Number of Services: Firebase suggest a lot of products to make your application work. You can choose between two databases (Realtime database and Firestore), store media in the cloud, and even build serverless applications with the help of integrated Cloud Functions.
  3. Free Start: As you begin, Firebase will require no payments for most of its services, and would be totally free as you start with it. This will allow you to understand whether it fits your application, and understand all the peculiarities. Once you reach a certain amount of database memory or need a specific service, you can always choose between the plans. The pricing page contains a price calculator, that can be regulated by different parameters, as it’s a usual practice for cloud services.
  4. Concise Documentation: The whole platform is documented with diligence. Good technical documentation, API documentation, SDK references, all that makes any product easier to use and accessible for the user. Exploring Firebase product page you will find that it contains all the required information concerning integrations, available platforms, guidances, and lists of supported technologies. Moreover you can check Firebase YouTube channel that seems pretty active in terms of releasing new videos and news.
  5. Accessible UI and Ease of Integration: In most cases, Firebase requires minimal programming language knowledge, and suggests integrations via its user interface. While somebody can call it a downside for flexibility, on the other hand it eliminates the need for complex configurations, so nearly anyone can set up the application.
  6. Static Hosting Capabilities: Firebase hosting comes with a Content Delivery Network (CDN) in-built with Google Cloud platform. Basically, a CDN is a network of distributed servers, that guarantee fast content delivery across the globe. In the case of Firebase, using its static hosting makes it easy to build one-pagers or web-apps with ease.

Conclusion

In this paper we study in detail about the flutter cross platform framework for mobile application development as well as dart programming language and firebase technology. Flutter is Google\'s free and open-source UI framework for creating native mobile applications Flutter allows developers to build mobile applications for both iOS and Android with a single codebase and programming language. dart is a programming language designed for client development such as for the web and mobile apps. Unlike other programming languages, Dart has its own package manager called Pub. Firebase provides tools for tracking analytics, reporting and fixing app crashes, creating marketing and product experiment.

References

[1] \"Cross Platform Development Using Flutter,\" International Journal Of Engineering Science & Computing ,, vol. 9, no. 4, p. 6, April,2020. [2] A. D. Wiriasto GW, \" Design and Development Of Attendance System Application using Android-Based Flutter,\" In 2020 Third International Conference On Vocational Education And Electrical Engineering (ICVEE), p. 7, 3 Oct, 2020. [3] \"A Clean Approach to Flutter Development Through The Flutter Clean or Architecture Package,\" International Conference On Computational Science And Computational IEEE Intelligence(CSCI)., p. 8, 2019. [4] J. Y. J. X. Ebone A, \"A Performance Evaluation Of Cross- Platform Mobile Application Development Approaches,\" . In 2018 IEEE/ACM 5th International Conference On Mobile Application Software Engineering And System(MOBILES SOFT), pp. (pp 92-93 IEEE), May 28,2018. [5] \"Conference Room Booking Application Using Flutter,\" International Conference On Communication and Signal processing ,July 28-30, 2020, India.

Copyright

Copyright © 2022 Sakshi R Uplenchwar, Urmila S Denge, Anurag S Bajoriya, Prof. Sudesh A Bachwani. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

IJRASET39977Sakshi

Download Paper

Paper Id : IJRASET39977

Publish Date : 2022-01-17

ISSN : 2321-9653

Publisher Name : IJRASET

DOI Link : Click Here