0% found this document useful (0 votes)
21 views8 pages

Wijayanto 2023 Ijca 923197

Uploaded by

franklin.dev237
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)
21 views8 pages

Wijayanto 2023 Ijca 923197

Uploaded by

franklin.dev237
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/ 8

International Journal of Computer Applications (0975 – 8887)

Volume 185 – No. 39, October 2023

Implementing Flutter Clean Architecture for Mobile


Tourism Application Development

Ristu Aji Wijayanto RR. Hajar Puji Sejati


University of Technology Yogyakarta University of Technology Yogyakarta
Yogyakarta, Indonesia Yogyakarta, Indonesia

ABSTRACT over 250 tourism spots and attracted a visitor count over 5
The rapid advancement of technology has been a catalyst for million [3]. The proliferation of tourism locations has the
several innovative developments across diverse disciplines. potential to significantly contribute to the area economy. The
The tourism sector is being actively promoted as one of the use of the E-Tourism idea is promoted as a method for
fields of focus. An increasing number of vendors are currently disseminating information via mobile applications. E-Tourism
exploring the development of applications that have the refers to the use of technology for the purpose of disseminating
capability to present comprehensive information regarding information and facilitating communication in order to attract
tourism sites. One issue arises when several vendors engage in tourists. This is achieved by the provision of accessible media
application development, as the programs frequently encounter services to consumers [4]. However, the advancement of this
interruptions and upgrades are subject to prolonged durations. technology is now limited by challenges related to scalability
Despite the implementation of maintenance practices, the code and application maintenance. The creation of applications is a
remains unreadable, exhibiting deficiencies in both its overall significant challenge, as it requires continuous adaptation to
pattern and the organization of individual units of code. In the market demand, technological advancements, competitive
context of existing applications, there exist some limitations, business landscapes, and organizational priorities [5].
like the absence of enhancements in the authentication The undeniable influence of mobile technology applications is
functionality and the non-functionality of the maps feature. seen across several demographics, including millennials,
This study aims to explore the principles of designing explorers, and experimental travelers. Despite the increasing
applications with a well-organized structure and implementing popularity and significance of mobile applications, a study
clean architecture as a structural pattern to enhance the revealed that over 50% of travelers exhibited a lack of interest
scalability and maintainability of systems. The implementation in utilizing such programs for their travel purposes [6]. The
of a clean architecture facilitates the long-term development development and rapid advancement of mobile technology
and targeted testing of applications. By implementing a have significantly transformed the human experience. Mobile
segregation of data layers, domains, and clean presentation devices are utilized by individuals for the purposes of engaging
architecture, the process of categorizing unit code based on its in activities such as reading news articles, accessing social
functionality will be facilitated. By employing Test-Driven media platforms, and playing games. In addition to this,
Development (TDD), a software development approach that numerous organizations and institutions employ mobile
prioritizes testing over producing code units, the frequency of devices as a means of promotion, in response to the rapid
errors can be significantly reduced. expansion of smartphone users. Mobile applications are
executed on portable handheld devices that are compact, user-
General Terms friendly, and capable of being accessed from any location [7].
Clean Architecture, E-Tourism, LCOV Thus, mobile applications are regarded as effective platforms
for advertising in the sector of tourism [8]. The mobile e-
Keywords tourism application is designed to offer a range of beneficial
Mobile Application, Tourism, Flutter, State Management, Unit functionalities, including access to event details, the ability to
Testing locate tourist attractions, curated lists of recommended
1. INTRODUCTION destinations, interactive maps, and the option to save preferred
locations for future reference. These elements aim to enhance
The concept of Smart Tourism is closely bound up with the use
the whole holiday experience by providing users with
of digital technology, since it enables organizations to
convenient tools and resources.
efficiently access an extensive range of information resources.
In contemporary businesses and institutions, the integration of This research identifies and utilizes a scalable and maintainable
technology has become universal. As a result, a location is able mobile tourist application development technique. Flutter clean
to improve its overall visitor experience by using technology architecture is used to construct this research application. An
and social components in a synergistic manner [1]. According architecture design strategy that helps organize, maintain, and
to statistics obtained from the Central Statistics Agency (BPS), test application development across time is needed. In this
it is evident that there has been a consistent upward trend in research, a clean development architecture that leverages
the number of tourist arrivals in Indonesia. According to dependency inversion to segregate high-level and low-level
available data, the quantity of international visitor arrivals in components is preferable. This architecture also promotes
Indonesia surpassed 7 million visits in 2010 and shown a software flexibility and maintainability [9]. Clean architecture
consistent upward trend until 2019, when the number exceeded guides code structure and layer dependencies. Clean
16 million visits [2]. Tourism is a highly popular destination architecture in flutter includes data, domain, and presentation
for both domestic and international travelers, owing to its layers. Since each layer has separate duties, structure separation
special attraction and appeal. In 2019, Bantul Regency, a makes the codebase modular and manageable [10].
constituent of the Special Region of Yogyakarta, documented Development with a clean architecture requires dart and flutter

23
International Journal of Computer Applications (0975 – 8887)
Volume 185 – No. 39, October 2023

state management and research support. It generates a simple The achievement of increased portability is realized via the
dart class, using optional arguments, a factory, an interface, and development of business logic that is not reliant on any
dart to write its functions. Thus, programmers' familiar particular framework. This methodology facilitates the
language and usability make it suitable for complicated system utilization of Dart code in web applications and its
implementation [11]. Application system design requires code subsequent transformation into JavaScript [14]. When
knowledge and appropriate architecture. Continued developers decide to transition from Flutter to an alternate
development is planned. framework such as React Native, they may quickly convert
the framework-agnostic business logic to JavaScript,
2. CLEAN ARCHITECTURE enabling the reuse of both the code and the logical flow of
In general, develop an application using flutter can be uses a the application.
single code base. Otherwise, there are a lot of architecture Furthermore, by employing a framework-agnostic
design patterns that programmers use for Flutter. They are all architectural model, frameworks may be utilized as mere
different ways of managing an app's state. The goal of a design instruments, rather than occupying a central role inside the
pattern is to provide a clean standard for how our work will be application, as the business logic of the application will not
organized, how the components will interact with each other, contain any code specific to the framework [13]. However,
separate layers so that a change in one is transparent to the the application ensures that the framework stays separate
others, and most importantly, promote the reuse of blocks of from the business logic levels, offering just interfaces and
code [12]. This can be done by using a clean architecture that abstract classes. By maintaining a pure Dart layer within the
separates components separately and has their own application, it would offer barrier to the frequent changes
responsibilities, according to predefined logic and flow. Even that occur at the framework level.
so, clean architecture is a relative architecture, it does not have
a fixed standard, mainly because each state management has its 2.2 Testability
own clean architecture suitability, but still has the same Testing is flexible using Flutter's Clean Architecture.
workflow of separating business logic for easy testing and Business logic is clearly separated from UI and database
maintainable applications. components, making testing easier [13]. Business rules and
the UI can be tested separately, simplifying testing. The
inheritance of abstract classes in the core layer simplifies
dependency replication during testing. This allows
independent, precise evaluation of business rules regardless
of implementation. Separate tests for authentication rules
can be run independently of the authentication
implementation. Software product development requires
application testing. Flutter has unit, widget, and integration
testing. Unit tests check one function or method under
different scenarios. Integration tests complete apps or parts
to ensure widgets and services work. Automatic functional
testing verifies business logic implementation [15].

2.3 Isolation
The Clean Architecture is a system where the business layer
Fig. 1 Flutter Clean Architecture Folder Structure is at the center, isolated from the implementation, allowing
Clean architecture in the context of Flutter typically consists of for the swapping of outer modules without affecting the
three fundamental layers: the data layer, the domain layer, and business logic. This structure is structured like an onion,
the display layer, which are organized within a features folder with inner layers consisting of more abstract parts and outer
[10]. The clean architecture employed in this study is founded layers being more verbose and implementation-specific.
on the author's assumptions and afterwards verified with the Data and Platform layer is the outermost layer, consisting of
relevant stakeholders. This study involves a collaboration with platform-specific implementations of enterprise and
the Head of Marketing at the Bantul Regency Tourism Office, business logic [13]. It includes the GUI, classes that interact
who serves as the primary stakeholder and supplier of data. The with the iOS or Android platform, and classes that interact
primary objective of this architectural design is to achieve a with databases locally and through the web [15].
clear separation of concerns and enhance scalability. According Repositories in this layer implement interfaces from the
to the source cited as [13], the separation of a system into layers Domain layer, which are injected into the inner layers and
that protect business logic from platform-specific used polymorphically to abide by dependency rules.
implementation can uphold three essential concepts in Software
Engineering. These principles include External Modules
Framework Agnosticism, Testability, and Isolation.

2.1 Framework Agnosticism


The continual evolution of the mobile application features a
design architecture that enables it to operate autonomously
without reliance on any particular framework. This is achieved
via the implementation of a layered design approach. The
application's business logic operates autonomously, without
reliance on other libraries or frameworks. Within the realm of
Flutter, the business layers of the application are implemented
only in Dart, devoid of any cognizance regarding their Fig. 2 Flutter Clean Architecture Layer Diagram
integration within a Flutter application.

24
International Journal of Computer Applications (0975 – 8887)
Volume 185 – No. 39, October 2023

Application layer, consisting of Flutter widgets, widget states, informative content regarding various tourist attractions,
event handlers, view controllers, presenters, and navigation including comprehensive details about each attraction.
controllers, handles all user events issued from the GUI and Furthermore, the incorporation of clean architecture in the
redirects them to their appropriate use cases in the inner layers. development process of Bantul Tourmate would enhance the
The controllers either update the UI or pass it to the presenter, ease of application maintenance and testing for developers. The
which executes the appropriate usecases and prepares the result hypothesis of this study proposes that the Bantul Tourmate
appropriately for the UI [13]. In summary, the Clean application can effectively present information about tourist
Architecture is a system where the business layer is at the attractions in the Bantul area through the implementation of
center, with the UI and other elements being outer modules that clean architecture and the utilization of unit testing within the
do not impact the business logic. project.

3.2 Implementation
During this phase of implementation, the researchers will
explain the process of implementing a clean architecture, as
seen in (Fig. 1), by utilizing the Flutter framework and
employing GetX state management for data and UI control. The
initial phase of implementation involves organizing the folder
structure and dividing it according to the levels described in the
previous section.

Fig. 4 Main Layer Clean Architecture


Fig. 3 Flutter Clean Architecture Workflow
The provided visual representation (Fig. 4) illustrates the clean
The Domain layer is a crucial part of an application
architecture, which comprises two primary components: the
architecture, divided into two parts. The outer part is the
feature layer and the infrastructure layer.
business rules layer, which contains the main business logic and
orchestrates data flow throughout the application [16]. It should 3.2.1 Infrastructure Layer
not be aware of any outer layers or platform, and can use Within the context of Clean Architecture, the Infrastructure
language-specific libraries like RxDart or the Dart language. Layer serves as a boundary between the internal core, which
The domain layer also contains repositories, interfaces that encompasses the business logic and entities, and the external
outline behavior needed by usecases. These repositories allow environment. The major objective is to ensure the integrity of
for dependency injection from the outermost layer into the the application's core by keeping it free from irrelevant
business rules layer, allowing usecases to call methods through variables, hence facilitating its maintenance, testing, and
polymorphism. The inner layer, the enterprise rules layer, is adaptability to evolving technologies. This layer additionally
comprised of enterprise entities used throughout the facilitates the application's high modularity and pluggability,
application. These entities only interact through usecases that hence enabling the seamless replacement or update of external
connect them, and are unaware of any other layer. The only dependencies while minimizing any adverse effects on the core
reason to modify this layer is if enterprise rules change, as it can functionality.
be used without being aware of the platform. Inner layers are
neither aware of nor dependent on outer layers, but both are
aware of and dependent on inner layers. Outer layers represent
the concrete mechanisms by which business rules and policies
operate, while inner layers are completely independent from
implementations. This rule is vital for the success of the
architecture, as inner layers are not aware of any classes,
functions, names, libraries, etc., present in outer layers [13].

3. RESULT AND DISCUSSION


3.1 Assumption and Hypotheses
The program will provide users with data in the form of

25
International Journal of Computer Applications (0975 – 8887)
Volume 185 – No. 39, October 2023

3. Repositories
The function of this component is to facilitate the
exchange of information between the presentation,
domain, and data layers. The system manages user input,
directs it to the domain layer's business logic, facilitates
data transfers, and governs the flow of information,
encompassing navigation and routing. It effectively
coordinates the many architectural components of an
application.

3.2.2.2 Domain Layer


For maintainable and scalable applications, the domain layer is
crucial. Without disrupting other system components,
developers can adjust and improve the application's functioning
by centralizing the important business logic under this layer.
Code reuse, testability, and business adaptability are improved
by this architectural approach.

Fig. 5 Layer Infrastructure layer contains core folder or


building block for dependencies

3.2.2 Feature Layer


The feature layer is a component within the program that serves
to organize and separate distinct features. It specifically
separates components such as data, domains, controller, and
presentation. The features layer comprises of several Fig. 7 The domain layer has entity, repositories, and use
architectural layers, including controller, data, domain, and case folders. The layer encapsulates the data layer model.
presentation, which are designed based on clean architectural 1. Entities
principles. These layers serve the purpose of dividing the code Entities are essential elements or abstract ideas inside the
base into separate components. context of business. They contain both data and behavior
3.2.2.1 Data Layer that connects with a certain concept.
This layer is responsible for the management of datasources, 2. Repositories
repositories, and models. The system is responsible for Repositories are conceptual structures that establish the
managing the retrieval and storage of data. formal agreement for accessing and storing data
pertaining to the domain entities. The abstraction of data
storage and retrieval is employed to ensure the decoupling
of the domain layer from the actual data source.
Repositories facilitate efficient data retrieval and
contribute to the preservation of the principle of separation
of concerns.
3. Usecases
Use cases are a means of representing discrete actions or
procedures that an application has the capability to
accomplish. Software components are responsible for
encapsulating the essential business logic necessary to
Fig. 6 Three folders in the Data Layer allow network and accomplish a certain job or objective.
local data access and administration.
3.2.2.3 Presentation Layer
1. Datasources The Presentation Layer functions as the primary interface via
Data sources establish a connection between the which users access the program, and their initial perceptions of
application and various data repositories, such databases, the application are frequently shaped by the quality of
application programming interfaces (APIs), or local interaction facilitated by this layer. Thus, it is crucial to provide
storage. They are responsible for managing data retrieval intuitive and captivating visual elements and interactive
and storage processes. features within the Presentation Layer.
2. Models
This layer is responsible for the management of data
sources, repositories, and data models. The system is
responsible for the retrieval and storage of data. The
model consists of two components, specifically the answer
and request. In the response layer, it is necessary to
establish the definition of variables that are reliant on data
gained from the API. Meanwhile, the request layer
encompasses a model that is used as a parameter for
transmitting to the API in order to acquire a response.

26
International Journal of Computer Applications (0975 – 8887)
Volume 185 – No. 39, October 2023

extent to which our unit code is functioning.

3.3.1 User Interface


3.3.1.1 Login Screen
The Login page serves as the primary mechanism for verifying
the user's identity, determining if they have registered
previously. Additionally, it offers a create account functionality
for users who do not possess an account.

Fig. 8 All folders in the presentation layer display domain


and data layer data
1. Contents
Within this particular layer, the component is responsible
for the processing of data received from the controller.
Subsequently, it presents this processed data in the form
of a user interface (UI).
2. Widgets
The Widget is charged with the task of presenting the
processed display on the levels of information and
displays.

3. Screens
The screen layer primarily receives data that has been
processed by the content layer, which functions as a user Fig. 9 Login Screen Bantul Tourmate Application
interface (UI). This data is further refined at the screen
layer to provide more particular information. 3.3.1.2 Home Screen
The homepage will exhibit the user's name and salutation,
along with their location and profile picture. In addition, there
3.2.2.4 Controller Layer are numerous features accessible, including explore, event,
The controller assumes a crucial position within the broader weather, and support functionalities. In addition, there are
framework of an application as it assumes responsibility for suggested destinations available to assist users who may be
managing user input, facilitating interactions between the uncertain in selecting a tourism location.
model and view components, managing UI-related logic, and
assuring the application's responsiveness and maintainability.
The promotion of a clear separation of concerns facilitates the
development of a codebase that is characterized by modularity
and testability

3.3 Testing Method


The utilization of clean architecture is closely aligned with a
development approach that prioritizes the preservation of code
maintainability, scalability, and testability. The process of
testing serves as a valuable tool for assessing the functionality
and performance of our code. Flutter encompasses three
commonly utilized types of testing: unit testing, widget testing,
and integration testing. Each test possesses unique capabilities.
The TDD (Test-Driven Development) approach was employed
by the researchers. Test-driven development (TDD) is a
component of agile development. However, academics
employing this approach do not primarily emphasize agile
development itself, but rather its execution. TDD also
constitutes a component of the implementation process for
application development. Test-driven development (TDD) is a Fig. 10 Home Screen Bantul Tourmate Application
software development approach in which unit tests are written
before the corresponding unit code. The primary objective of 3.3.1.3 Explore Screen
TDD is to provide a systematic and quantifiable development A page that displays various tourist attractions which are the
process that yields well-functioning systems that are main features in the application. This feature makes it easier for
straightforward to maintain. LCOV is also utilized in the users to find interesting tourist attractions that suit their tastes.
process of testing. LCOV is a valuable tool that facilitates
comprehensive coverage of testing outcomes and presents them
in a user interface format, hence enhancing the visibility of the

27
International Journal of Computer Applications (0975 – 8887)
Volume 185 – No. 39, October 2023

Fig. 11 Explore Screen Bantul Tourmate Application


Fig. 13 Maps Screen Bantul Tourmate Application
3.3.1.4 Profile Screen
Users can view their entire name, username, email, and city on 3.3.1.6 Bookmark Screen
their profile. Settings includes an account logout button. The bookmark page shows data about favorite tourism
attractions to help people plan trips.

Fig. 12 Profile Screen Bantul Tourmate Application


Fig. 14 Bookmark Screen Bantul Tourmate Application
3.3.1.5 Maps Screen
The page includes geographical markers and provides 3.3.2 LCOV Experimental Testing
information about various areas using maps. The experiment was conducted utilizing the previously
outlined methods. LCOV provides a thorough summary of all
tests, encompassing unit tests, widget tests, and integration
tests. The author presents information using tabular data
derived from tests conducted on the key features, displaying the
collected results in the following manner.
Table 1 Compilation of unit testing outcomes categorized
by characteristics utilizing LCOV

Featured Total Case Result


Auth 164 93,57%
Maps 78 100%
Profile 22 98%

28
International Journal of Computer Applications (0975 – 8887)
Volume 185 – No. 39, October 2023

Bookmark 23 100% facilitating regular and systematic testing.


Home 119 97,6%
3.4 Analysis
Total 406 97,83% The clean architecture pattern is popular. Clean Architecture
has been shown to improve code understanding, scalability, and
application maintainability. This application uses TDD to
According to the data presented in (Table 1), the LCOV report arrange its architecture. The architecture has three layers: data,
indicates that a total of 406 successful tests were conducted, domain, and display.
encompassing integration testing, unit testing, and widget Data layer testing verifies application-server communication.
testing. The ultimate outcome achieved was 97.83% when Data validation and user interface business logic control are
measured as the proportion of tasks executed accurately. handled by the domain layer. Finally, the presentation layer is
Despite the imperfect nature of the acquired results, the tested to ensure the displayed information satisfies
implementation of this clean architecture has proven to be expectations.
effective in terms of functionality, and the anticipated interface Several auxiliary modules are checked, including the repository
is suitable. module, which verifies the application-server and data layer
connections. Module controller testing checks the controller's
operation, which is the application's business logic and
connects the user interface to the repository's data. Unit test
results showed 97.83% passing.
Fig. 15 Classification of Code eligibility indicator on
To analyze program authoring and testing efficacy after
LCOV
implementing clean architecture, the author collected
The test percentage achieved a value of 97.83% based on the questionnaire data from 5 proficient programmers who had
given parameters, placing it in the high category. The findings expertise with Flutter or mobile apps. The data showed 17 yes
are highly gratifying since they fall into the green category, and 8 no answers to 5 questions from 5 developers. This shows
signifying that the code is functioning correctly and is prepared that it can help developers improve code quality, manage
for utilization. applications, and test them easily.
3.3.3 Questionnaire Data Sampling 4. CONCLUSION
Taking questionnaires to programmers was carried out
The Bantul Tourmate initiative serves as a means to facilitate
randomly with programmers who were in accordance with their
the transition towards e-governance and to bolster the
profession and were related to using Flutter.
development of Bantul city as a smart city. The Bantul
Tourmate program offers a range of features that assist users,
Table 2 List of programmer questionnaire questions
particularly travelers, both local and international, in
discovering tourist attractions within Bantul Regency. This task
No Questions Answer
is facilitated by the presence of several features, including but
1 Does adopting Clean Architecture aid in Yes/No
not limited to tourism exploration, event information, maps,
isolating business logic from
and more supportive functionalities. The adoption of Clean
infrastructure code better than not using
Architecture has emerged as a prevalent software development
Clean Architecture?
paradigm, which has been effectively applied. Empirical
2 Does the adoption of Clean Architecture Yes/No evidence, obtained through the utilization of Test-Driven
allow for easier code maintenance Development and LCOV methodologies for test outcome
compared to not utilizing it? visualization, indicates a success rate of 97.83% for unit tests,
3 Does applying Clean Architecture demand Yes/No widget tests, and integration tests. According to the Indicator,
more time and effort in the initial the application reaches a state of moderate development,
development compared to not using it? indicating its potential to transition into the production category
4 Can code be tested more effectively with Yes/No with continuous maintenance. The successful execution of
Clean Architecture than without it? clean architecture is seen in its ability to effectively present the
5 Does the adoption of Clean Architecture Yes/No intended data. In the context of application development, there
considerably reduce the complexity of is an expectation that the implementation of Lean UX
your project compared to not utilizing it? methodologies will enable the delivery of a user interface that
optimizes the user or client experience. Additionally, it is
Table 3 Result of Questionnaire desirable for the application to be accessible to a wide range of
users.
User Q1 Q2 Q3 Q4 Q5
Joko Yes Yes No Yes No
5. REFERENCES
[1] A. S. Dasuki, M. Djamin, and A. Y. Lubis, “The strategy
Herlambang Yes Yes Yes Yes Yes of photovoltaic technology development in Indonesia.”
[Online]. Available: www.elsevier.com/locate/renene
Nurjaman No Yes Yes Yes Yes
Difa No No No Yes No [2] A. Mun’im, “PENYEMPURNAAN PENGUKURAN
KONTRIBUSI PARIWISATA: ALTERNATIF
Retno Yes Yes Yes Yes No
PERCEPATAN PERTUMBUHAN EKONOMI
INDONESIA Improvement on the Measurement of
From Based on the acquired results, developers predominantly
Tourism Contribution: An Alternative to Accelerating
opt for the affirmative choice from the range of responses
Indonesia’s Economic Growth,” 2022.
between yes and no. Based on these findings, the use of clean
architecture can enhance the quality of code development by [3] D. Widiyastuti et al., “Analisis Tingkat Perkembangan
promoting tidier and more organized code structure, as well as Destinasi Wisata Kabupaten Bantul, Daerah Istimewa

29
International Journal of Computer Applications (0975 – 8887)
Volume 185 – No. 39, October 2023

Yogyakarta,” Spatial Development Journal, vol. 02, no. [10] “Flutter — Clean Architecture. Clean Architecture is a
01, p. 2023. software design… | by Samra Khan | Medium.”
https://medium.com/@samra.sajjad0001/flutter-clean-
[4] S. Saniati, M. A. Assuja, N. Neneng, A. S. Puspaningrum, architecture-5de5e9b8d093 (accessed Sep. 11, 2023).
and D. R. Sari, “Implementasi E-Tourism sebagai Upaya
Peningkatan Kegiatan Promosi Pariwisata,” International [11] I. Firman Ashari, M. Fazar Zuhdi, M. Tyaz Gagaman, and
Journal of Community Service Learning, vol. 6, no. 2, pp. S. T. Denira, “Kolepa Mobile Application Development
203–212, Jul. 2022, doi: 10.23887/ijcsl.v6i2.45559. Based on Android Using SCRUM Method (Case Study:
Kolepa Minigolf and Coffe Shop),” 2022. [Online].
[5] C. Chen, R. Alfayez, K. Srisopha, B. Boehm, and L. Shi, Available: http://jurnal.polibatam.ac.id/index.php/JAIC
“Why is it important to measure maintainability and what
are the best ways to do it?,” in Proceedings - 2017 [12] S. Y. Ameen and D. Y. Mohammed, “Developing Cross-
IEEE/ACM 39th International Conference on Software Platform Library Using Flutter,” European Journal of
Engineering Companion, ICSE-C 2017, Institute of Engineering and Technology Research, vol. 7, no. 2, pp.
Electrical and Electronics Engineers Inc., Jun. 2017, pp. 18–21, Mar. 2022, doi: 10.24018/ejeng.2022.7.2.2740.
377–378. doi: 10.1109/ICSE-C.2017.75.
[13] S. Boukhary and E. Colmenares, “A clean approach to
[6] N. Alif Amri Nik Hashim, N. Abu Bakar, E. Noreni flutter development through the flutter clean architecture
Mohamad Zain, N. Dalila Mat Yusoff, and N. Hafizah package,” in Proceedings - 6th Annual Conference on
Muhammad, “Travel Mobile Applications Technology: Computational Science and Computational Intelligence,
Examining the Reliability and Validity of Instruments,” CSCI 2019, Institute of Electrical and Electronics
International Journal of Advanced Science and Engineers Inc., Dec. 2019, pp. 1115–1120. doi:
Technology, vol. 29, no. 6s, pp. 3882–3885, 2020. 10.1109/CSCI49370.2019.00211.
[7] M. R. Islam and T. A. Mazumder, “Mobile Application [14] “Dart overview | Dart.” https://dart.dev/overview
and Its Global Impact,” 2010. [Online]. Available: (accessed Sep. 12, 2023).
https://www.researchgate.net/publication/308022297
[15] N. Kuzmin, K. Ignatiev, and D. Grafov, “Experience of
[8] X.-S. Yang and Institute of Electrical and Electronics Developing a Mobile Application Using Flutter,” 2020,
Engineers, Proceedings of the World Conference on Smart pp. 571–575. doi: 10.1007/978-981-15-1465-4_56.
Trends in Systems, Security and Sustainability (WS4
2020) : July 27-28, 2020, virtual conference. [16] “Flutter Clean Architecture [1]: An Overview & Project
Structure - DEV Community.”
[9] D. Esteban, S. Rodriguez, A. E. Rojas, H. Florez, and D. https://dev.to/marwamejri/flutter-clean-architecture-1-an-
Sanchez, “Towards a Clean Architecture for Android overview-project-structure-4bhf (accessed Sep. 13, 2023).
Apps using Model Transformations.” [Online]. Available:
https://developer.android.com/jetpack

IJCATM : www.ijcaonline.org 30

You might also like