Wijayanto 2023 Ijca 923197
Wijayanto 2023 Ijca 923197
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.
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.
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.
26
International Journal of Computer Applications (0975 – 8887)
Volume 185 – No. 39, October 2023
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
27
International Journal of Computer Applications (0975 – 8887)
Volume 185 – No. 39, October 2023
28
International Journal of Computer Applications (0975 – 8887)
Volume 185 – No. 39, October 2023
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