## 3 Design and Implementation of a Cross-Platform Application  
The Olea app implements the above SAW method for selecting the trees and the olive groves that are going to be evaluated and VIKOR theory to perform the final evaluation and select the olive groves that are considered the best to be promoted. The Olea app is a cross-platform application and was implemented in Flutter. The choice of Flutter as the framework for Olea app development represents a forward-thinking approach, aligning with modern trends in technology. Flutter's cross-platform capabilities ensure that the application is accessible across diverse devices and operating systems, including Windows, macOS, Linux, iOS, and Android. This versatility streamlines the user experience, allowing seamless interaction regardless of the platform.  
A distinctive feature of cross-platform applications is the efficiency gained through writing a single set of code applicable to various platforms. This not only accelerates development but also reduces costs, enhancing the overall accessibility of the application. The consistency in user interface and experience ensures a seamless interaction for users across diverse platforms.  
The development of a cross-platform application means building software that functions seamlessly on various types of devices and operating systems. This approach is beneficial because it enables developers to utilize a single codebase for multiple platforms, including mobile (such as iOS and Android), desktop (including Windows and Linux), and web platforms. For web platforms, developers often employ frameworks like React Native for Web, Flutter for Web, and technologies such as Electron. For example, using React Native for the Web allows developers to use the same React components for both mobile and web applications. The implementation of the Olea app was carried out using Microsoft's Visual Studio Code 1.75 (January 2023), and the application is designed to run on Windows 10, Android, and Ubuntu (Linux). Therefore, the app can run both in desktop and mobile mode.  
Like any software system, the initial step in developing a database system involves the collection and analysis of requirements [30]. According to [PERSON] and [PERSON] [31], requirements fall into two categories:  
Functional Requirements: These describe what the system should do from the user's perspective, often referred to as capabilities.  
Nonfunctional Requirements: These encompass characteristics that the system must have but do not relate to specific functionality. Essentially, they represent constraints on the implemented system.  
Functional Requirements of the Application:  
* Olive tree details, whether known or unknown, should be insertable into a database.
* Grove details should be insertable into a database.
* The application should calculate the value of each olive tree and grove using the simple additive weighting (SAW) method.  
After entering data for a tree or a grove, the application should display a data entry report with the option to save it as a PDF file.
* After entering data for a tree or a grove, the application should determine if the tree or grove is perennial.
* The application should be capable of comparing olive trees using the Vlsekriterijumska Optimizacija I KOnpromisno Resenje (VIKOR) model.
* After comparing trees or groves, the application should display a comparison report with the option to save it as a PDF file. The ranking of the comparison is a crucial element in the report. Nonfunctional Requirements of the Application:
* All fields and text in the application's user interface should be in English.
* The application should run on more than one operating system.
* The selection of a tree or grove location should be performed through a widget.
* The result of comparing a tree or a grove should dynamically appear after each selection of the object.