0% found this document useful (0 votes)
17 views10 pages

Research Paper

The document discusses the advantages of Flutter, an open-source SDK for cross-platform development, highlighting its performance and reliability for Android, iOS, and web applications. It compares Flutter with traditional native development and other frameworks like React Native, emphasizing its efficiency in code production and deployment. Additionally, it outlines a case study on a 'Click and Pick' app, demonstrating the application of Functional Point Analysis for software project estimation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views10 pages

Research Paper

The document discusses the advantages of Flutter, an open-source SDK for cross-platform development, highlighting its performance and reliability for Android, iOS, and web applications. It compares Flutter with traditional native development and other frameworks like React Native, emphasizing its efficiency in code production and deployment. Additionally, it outlines a case study on a 'Click and Pick' app, demonstrating the application of Functional Point Analysis for software project estimation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 583

ISSN 2229-5518

FPA Findings for Flutter against the existing


Development Frameworks
Sana Rizwan, Shoaib Uzair, Zaid Saeed and Abdullah Naveed
Abstract— Rise of web/mobile applications running different operating systems, the problem arises to cater to their needs. The need of cross-platform
development comes into play. These platforms ease the complexity for the developer by allowing them to write a single code that would work on multiple
OS. However, cross-platform development comes at a cost of trading native speed and accuracy for portability. Nevertheless, Flutter is an open-source
Software Development Kit (SDK) that combines high performance and reliability for Android, iOS and now with the advent of Flutter 2.0 Web
Applications into one package. Cost/ budget effectiveness can calculated for the differentiation with Effort calculation, productivity index measurements
by weighting factors in PL size depending upon Functional Point Analysis technique.

Index Terms— Flutter, Google, iOS, Android, Cross-platform Development, React Native, Kotlin, Swift, Functional Point, External Inputs, Internal inquiry

——————————  ——————————
release Web applications [1]. All this with minimal
1 INTRODUCTION performance penalty compared to their native
Contemporary practice in the software world is there are programming languages.
two major mobile application operating systems i.e,
Android and iOS. These two platforms have little to 2 EASE OF USE

IJSER
nothing in common, so developing applications that look,
Taking advantage of its cross-platform framework, flutter
feel and perform the same is very challenging and require
is being used to develop high-speed applications for
different skill sets. For instance, Android Native
mobile devices. Flutter does this by using the OS native
applications are written in Java and/or Kotlin and iOS is
widgets instead of sourcing web views, and then rendering
written in Swift and/or Objective-C. This results in
it using its high-speed rendering engine to render each
companies having to double the production cost in view [2]. This helps in the applications looking similar and
developing their application and having to settle for perform as fast as if they were coded in their respective
performance deficits in order to make the two applications native languages.
look and feel the same. Using a cross-platform framework
is usually slower than native because it has to bridge itself An application written in native code can access the OS
to the OS thus costing performance. However, Flutter uses features directly as shown below (Figure 1). The operating
its Rendering engine to solve this problem. More over system either Android or iOS lets the native code access its
applications, developed using cross-platform frameworks OEM Widgets [3]. If for example, a code written in Java can
have slower releases whenever the main OS updates. The access Android Widgets but cannot under any
framework would have to update itself in order to circumstance access the native widgets of iOS (Figure 2). In
accommodate to the new changes. To tackle this order to do so cross-platform frameworks such as ReactJS
conundrum Google, in August 2017, developed Flutter. uses a bridge that takes care of the communication with the
Written in Dart programming language, Flutter provides OS regardless of which it is (Figure 3), but this creates its
the usability of writing one code that runs on both own problem; a bottleneck. Animations, swipes etc [4].
Android, iOS devices and just recently with its stable 2.0 could slow down the application so Flutter has a slightly
different approach to this that gives it a drastic
————————————————
performance edge over its competitor cross-platform rivals.
 Sana Rizwan, Assistant Professor, Department of Computer
Flutter has a rendering engine that paints over the native
Science COMSATS University Islamabad, Lahore Campus
Pakistan. E-mail: sana@cuilahore.edu.pk widgets that increases performance regardless the OS
 Shoaib Uzair, Student of BSCS, Department of Computer Science (Figure 4).
COMSATS University Islamabad, Lahore Campus Pakistan. E-
mail: fa17-bse-012@cuilahore.edu.pk
 Zaid Saeed, Student of BSCS, Department of Computer Science
COMSATS University Islamabad, Lahore Campus Pakistan. E-
mail: fa17-bse-015@cuilahore.edu.pk
 Abdullah Naveed, Student of BSCS, Department of Computer
Science COMSATS University Islamabad, Lahore Campus IJSER © 2022
Pakistan. E-mail: fa17-bse-018@cuilahore.edu.pk http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 584
ISSN 2229-5518

3 FLUTTER ARCHITECTURE

3.1 Dart

In Flutter, every application written in Dart programming


Figure 1 Native application can access the Native Widgets language. This language is used extensively within Google
and therefore has been developed and maintained by it as
well. Originally Dart was developed to replace JavaScript
that is why it has most of the important characteristics of
that language. It contains Keywords such as ‘async’ and
‘await’ [3]. Moreover, as Dart is a modern programming
language it provides the developers with better memory

IJSER
optimization with the help of Generational Garbage
Collection.

3.2 Flutter
Figure 2 A Java Application can access Android Widgets BUT
NOT iOS Flutter uses Androids Native Development Kit (NDK) and
iOS Low Level Virtual Machine (LLVM) for the
compilation process of the Dart code that compiled into
Native code. Another feature that Flutter has is Hot
Reload. What this does is that it sends the updated code
into the already running Dart Virtual Machine (DVM) [2].
This enables the developer to look at changes made to the
code on the go without having to compile the code every
time after the first compilation of the session.

Figure 3 Cross-Platform with a bridge [4] 3.3 Widgets

In Flutter, every object on the screen is a Widget that


nested inside another widget. That is because all classes are
dependents of the Widget class. Once we nest widgets into
each other, we create a hierarchy known as the “Widget
Tree” which contains parents and children. Text fields,
containers, image boxes, scrolling bars, etc. everything is
classified as a widget.

Figure 4 Flutters Skia Rendering Engine

IJSER © 2022
http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 585
ISSN 2229-5518

4 FLUTTER AGAINST ITS COMPETITION


(NATIVE APPLICATIONS)

4.1 Code
To put in perspective on how the above-mentioned
positives play out for Flutter a comparison was carried
out in which three source codes were created for on
particular application. One was in Flutter the other in
Kotlin (Android Native) and Swift (iOS Native).
According to Figure 5 we can see that both the lines of
Figure 7 CPU Performance
code and the number of files needed to code the same
application is less in Flutter compared to both Android
5 FLUTTER AGAINST REACT NATIVE
Native and iOS native [3].
Flutter and React Native have little similarities; For
starters, two enormous tech companies, Google and
Facebook respectively, back both. Both frameworks are
open source and free to use. However, that is where they
almost end.
The main difference between the two is their performance.

IJSER
Figure 5 Code Comparison Since Flutter does not use a bridge but its own Rendering
C++ Engine Skia, it has an upper hand compared to its
4.2 Development Time React Native rival. React Native has to send JSON
Next comes the coding time. Like mentioned before that messages to establish a connection between the source
Flutter can produce both Android and iOS applications code and OS. Flutter uses in built libraries and
with the same piece of code, it is also faster to produce that Frameworks such as Material Design and Cupertino to
particular code. Both native applications have the establish connection, which is a much more efficient way
advantage of using a drag and drop facility but that is [2].
useful only till a certain extent, linking that drag and Another aspect for better development is
dropped code creates a bit of difficulty to integrate as documentation. The better documented the framework
compared to writing the code out right in the first place. is the more a developer is attracted to it. Flutter
The development time statistics as shown in Figure 6.
Documentation is user friendly and gives good
explanation to the user. This is helpful if the user is a
novice. Whereas the React Native 1 is poorly document
and is more focus on complicated processes that only
people with a good grip with JavaScript (Language
React Native is written in java) [3].
Figure 6 Development Time Then comes the deployment phase. Applications in
Flutter can be publish to the App Store or Google Play
4.3 CPU Performance with the help of one command line code where as in
React Native you need a third-party tool in order to
Like stated before the direct communication between the
deploy the application. With these little things, Flutter
Native applications with their respective OS is the quickest
despite being new has gained much popularity [4]. By
but the performance deficit caused by Flutters Rendering
2020, Flutter has seen an increase form 3.2pc to 7.2pc
Engine Skia is minor [2]. In addition, the average is better
since 2019 as shown in Figure 8.
than both Native versions as shown in Figure 7.

IJSER © 2022
http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 586
ISSN 2229-5518

7 METHODOLOGY / ALGORITHMIC MODEL

Constructive Cost Model algorithmic model will adapt to


find the effort and development time for software project
estimations, these estimations will be accurate as it based
Figure 8 Flutter vs React Native on formula calculations by the initial calculations of
function point analysis scheme (FPA). Formulas for
predication effort based on estimate of project size, KLOC
6 CASE STUDY IMPLEMENTATION AND (if known) and function point.
ANALYSIS
Function point analysis (FPA) is use to make estimate of
“Click and Pick” android app developed to calculate Flutter the software project, including its testing in terms of
and react native with java jdk performance. functionality or function size of the software product.
The app was about to facilitate customer in a different However, functional point analysis may be use for the test
manner, actually the problems faced with conventional estimation of the product. The functional size of the
shopping that it was time consuming and tiring for people. product is measure in terms of the function point, which is
a standard of measurement to measure the software

IJSER
Visiting various stores to find what need and being application.
disappointed when the product want is not available. Then
comes the issue of stores being crowded during prime 7.1 Objectives of FPA
times and in the recent pandemic when people had to
maintain social distance conventional shopping was not The basic and primary purpose of the functional point
going to be feasible. Then the problem of online shopping analysis is to measure and provide the software application
that delivers the items to customer’s doorstep also had its functional size to the client, customer, and the stakeholder
issues. Even though getting your order delivered at door on their request. Further, it will use to measure the
seems continent but there is often a delay in delivery, software project development along with its maintenance,
damaged items or sometimes items being lost in transit. consistently throughout the project irrespective of the tools
Keeping all of this in consideration, we devised a different and the technologies.
approach that was take-aways. If we take a fast-food
restaurant as an example, a customer goes to the restaurant, Measurement parameters identified for the calculation of
places an order in their vehicle and gets their order. This is software interacting prototypes in forms of input, output,
fast and convenient. We implied the same concept to Click queries, internal logical operations in OS and interface
& Pick. The user places their order on their app; the stores interaction and command handling procedure that are
in question pack the order and send it to the collection explained in table 1. These 5 parameters are also called
point. Once their order is ready, the customer just simply functional units of software system as shown in Figure 9.
drives into the collection point and collects their order.
Measurements Parameters Examples
Functionalities were developed and cost-effective impacts 1. External Inputs(EI) Input screen and tables
were calculated. Estimating the software cost and price is 2. External Output (EO) Output screens and
an important aspect for software development. For efficient reports
and effective project management, the software 3. External inquiries (EQ) Prompts and interrupts
development cost estimation accuracy will be the major 4. Internal files (ILF) Databases and directories
feature for budgeting, tracking, planning, tracing and 5. External interfaces (EIF) Shared databases and
control. shared routines
Before the starting of software engineering process, cost Table 1 Measurement Parameters with Examples
and duration for software project should be settle among
customers, financer/s, developers and stakeholders.

IJSER © 2022
http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 587
ISSN 2229-5518

Buyer Screens

Figure 9 Functional Units system

7.2 Functional Prototypes

Software houses and companies can symbolize their


requirement for software product, project idea, real time
scenario simulation with user experience, find new

IJSER
techniques to discover or improve and spot limitations with
functional prototypes [5]. Project budget allocation can
identify before the launch of software product after
gathering the losses and ignoring the problem commands
with the critical analysis of risk details. Although functional
prototypes means simply no reason to ignore the actual
value of software prototyping. Some are the Functional
prototypes with the concern of hi fidelity or low fidelity
shown below in Figure 10;

 View product
 Product details
 Product rating
 Reviews
 Shopping cart
 Search
 Select payment method
 Orders
Seller Screens
 Add Favorites
 Delivers order
 Product in cart
 Pending orders
 Add new product
 Edit product details

IJSER © 2022
http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 588
ISSN 2229-5518

Object points square measures the simplest way of


estimating effort size, almost like supply Lines of Code
(SLOC) or perform Function Points [6]. They are not
essentially associated with objects in Object-oriented
programming, the objects stated embrace screens, reports,
and modules of the language. The amount of raw objects
and quality of every square measure calculable and a
weighted total Object-Point count then computed and want
to base estimates of the trouble required in the form of
efforts needed.

Screens Complexity
Buyers screen Simple
Seller screen Medium
Manager screen Medium
Pricing screen Difficult
Product screen Medium
Sales screen Medium
Table 2 Weighting Factors – Screen complexity

Manager Screens

IJSER
Reports Complexity
User review report Medium
Figure 10 Functional Prototypes
Pending order report Simple
Deliver order report Simple
FP characterizes the quality of the software system Add Favorites report Medium
depending upon the complexity and thus are often wont to Order history report Medium
depict the project time and the force demand as needed in Available rider report Medium
the requirements. The effort needed to develop the project Buyer report Simple
depends on what the software system will do. Manager report Difficult
Function Point is programming language freelance. Seller report Medium
This methodology employed for real time software Rider report Medium
scenarios, processing systems, business intelligent systems Table 3 Weighting Factors – Report complexity
like information systems, MIS etc. The 5 parameters According to the assigned complexity keeping in view the
mentioned higher than also are referred to as information objects of the functional concerns that are simple, medium
domain characteristics [6]. and difficult [7]. Weighting factors are assign depending
All the parameters mentioned above are assigned some upon the screens, reports and 3GL components comparison
weights that have been experimentally determined and are Table 2 and 3 as mentioned;
shown in Figure 11 Function Point Table.

Figure 11 Function Point Table


Figure 12 OPA -- Screen

IJSER © 2022
http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 589
ISSN 2229-5518

Order history Report Medium 5


Available Report Medium 5
rider
Buyer Report Simple 2
Manager Report Difficult 8
Seller Report Medium 5
Extra or Report Medium 5
Pending rider
Total NOP 56
Table 4 Total Number of Object Points

7.4 Calculate Software Productivity and Efforts


Figure 13 OPA -- Reports
Calculate PROD that depends on data receiver past project
data, so that ratio between efforts imposed on total number
of object points calculated in software project for
estimation. Developer past experience and capability and
CASE maturity are the major factors by which estimator
can predict the productivity rate for effort based software
estimations [8].

IJSER
PROD = NOP/ Person-Months

Figure 14 OPA – Complexity Weighting

6.3 Calculate NOP by Weighting Factors

Weighting factors will extract out depending upon the


complexity factors depending upon simple, medium and
difficult complexity measures as shown in Figure 12, 13, 14.
Total number of object points (NOP) [7] will depend upon
the total number of weighting complexity i.e 56 in this case
as shown in Table 4.
Figure 15 OPA – Productivity Rate
In this particular case complexity is nominal of developer
Functional Objects Complexity Weights
experience, whereas high is CASE maturity and capability
Concerns
capture by Figure 15.
Buyers Screen Simple 1
Seller Screen Medium 2
Developers experience is nominal = 13
Manager Screen Medium 2 CASE maturity and capability is high = 25
Pricing Screen Difficult 3
Product Screen Medium 2 Calculated NOP = 56
Sales Screen Medium 2
User review Report Medium 5 Productivity (PROD) = Developers experience and
Pending Report Simple 2 capability + CASE maturity and capability
order
Deliver order Report Simple 2 PROD = 13 + 25 = 38
Add Report Medium 5
Favorites Average = 38/2 = 19

IJSER © 2022
http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 590
ISSN 2229-5518

Effort (Person-Months) = NOP / PROD


= 56 / 19 = 2.94 P-M

Function Point Estimation (FP  KLOC)

Functional External Complexity Function


Requirements User Point
Types
Buyers screen External Simple 4
Output
Seller screen External Medium 5
Output
Manager screen External Medium 4
Input
Pricing screen External Difficult 6
Input
Product screen External Medium 7
Interface
Files

IJSER
Sales screen External Medium 7
Interface
Files
User review External Medium 4
report Input
Pending order External Simple 3
report Inquiry Figure 16 Programming Languages KLOCs
Deliver order External Simple 3
report Inquiry  Published Figure 16 for Java Language show that:
Add Favorites External Medium 5 o 1 FP = 30 LOC in java (Object oriented
report Output languages) [8]
Order history External Medium 5  Estimated size
report Output o 79 * 30 = 2370
Available rider External Medium 5 = 2 KLOC
report Output
Buyer report External Simple 4 Flutter Language with the base java contains 2.94-effort
Output person per months, with estimated 2 KLOC with the
Manager report External Difficult 7 concerned weighting factors having 38 productivity rate,
Output therefore software development language will give good
chances to new project managers as well as new
Seller report External Medium 5
development team to get more and more experiences with
Output
the recurrence procedure in SDLC stack.
Rider report External Medium 5
Output
Total 79
Table 5 Total Function Points Calculation

Total Function Points Calculated in Table 5 = 79

IJSER © 2022
http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 591
ISSN 2229-5518

7. CONCLUSION [2] Marco L. Napoli, Beginning Flutter: A Hands On Guide


to App Development, 2019, ISBN: 978-1-119-55082-2
The Flutter framework provides the user with great ease
due to its cross-platform characteristics. The developer can
[3] Adam Boduch, Roy Derks, “React and React Native: A
write code for both Android and iOS easily with little
complete hands-on guide to modern web and mobile
performance drawbacks compared to its other cross-
development with React.js”, 3rd Edition
platform rivals. Not only has that Flutter possessed a highly
organized documentation that supports amateur
[4] Adam D. Scott, “JavaScript Everywhere: Building Cross-
developers to start their projects. This has resulted in
Platform Applications with GraphQL, React, React Native,
people moving towards the platform quickly, and now
and Electron”, 1st Edition
with the fresh launch of Flutter 2.0, the web version has
now a stable release. However, it cannot be demanded that
Flutter would always be the best choice. If the requirements
[5] Anatoly Kotlyar, “The Role of a Functional Prototype in
of OS specific opting for the Native Framework would be
Software Engineering”, https://medium.com/cxdojo/the-
the best way to go. That said with the current trajectory of
role-of-a-functional-prototype-in-software-engineering-
the growth of Flutter is a promising addition to the
1588a56ce56e
application development industry with debating the cost
Effectiveness, part of effort requirements and productivity
index by emerging development team.
[6] David Garmus, David Herron, “Function Point

IJSER
Analysis: Measurement Practices for Successful Software
Projects (Addison-Wesley Information Technology Series)”,
ACKNOWLEDGMENT
1st Edition
The authors wish to thank Department of Computer
Science COMSATS University Islamabad, Lahore Campus [7] Hareton Leung and Zhang Fan, “Handbook of Software
for the support and help. Engineering and Knowledge Engineering—Software Cost
Estimation”, pp. 307-324 (2002),
https://doi.org/10.1142/9789812389701_0014
REFERENCES

[1] John Wiley & Sons, “Beginning Flutter®: A Hands On [8] Software cost estimation COCMO II, Chapter 26,
Guide To App Development” https://ifs.host.cs.standrews.ac.uk/Books/SE7/SampleChapt
ers/ch26.pdf

IJSER © 2022
http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 592
ISSN 2229-5518

IJSER

IJSER © 2022
http://www.ijser.org

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy