Research Paper
Research Paper
ISSN 2229-5518
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
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.
IJSER © 2022
http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 585
ISSN 2229-5518
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
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
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
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.
IJSER © 2022
http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 589
ISSN 2229-5518
IJSER
PROD = NOP/ Person-Months
IJSER © 2022
http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 590
ISSN 2229-5518
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
IJSER © 2022
http://www.ijser.org
International Journal of Scientific & Engineering Research Volume 13, Issue 2, February-2022 591
ISSN 2229-5518
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