Skip to content

Android version of application that is used to compare mobile app performance across native Android and Flutter

Notifications You must be signed in to change notification settings

kovaccc/FlutterCompareAppAndroid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

FlutterCompareAppAndroid

Android version of application that is used to compare mobile app performance across native Android using Jetpack Compose and Flutter through defined test cases to determine the best development approach based on speed and responsiveness.

Related Flutter Application

Related Documentation

Supported Features

  • Users can register and log in to the app if they are already registered.
  • Users can also log out of the app.
  • Users can browse a list of images, which is also accessible offline.
  • Users can click on an item in the list to view its details.
  • Users can open a map to track their current location.

App Architecture

The app is composed by three main layers.

Data Layer

The data layer includes repositories, mappers, models, datasources, and DAOs. In the photos feature, data is fetched from the JSONPlaceholder API. The data is then parsed (using Gson Converter) and saved to local database (using Room) utilizing the type-safe entity class Photo.

Domain Layer

The domain layer contains interfaces for repositories (e.g. PhotosRepository) implemented in the data layer and defines entities (e.g. Photo) central to the application's business logic. In some applications it also includes use cases that encapsulate business rules, making them reusable across the application for improved modularity and maintainability.

UI Layer

This layer contains all the widgets and screens that interact with data through ViewModels. An example includes observing state from PhotosViewModel which maps the results from the data/domain layers to the appropriate UI state attributes, such as photos, isLoading, and error.

Packages in use

  • Kotlin: Used for core app programming.
  • Jetpack Compose: declarative UI Toolkit for creating screens and other UI elements.
  • Google Maps Compose: For integrating interactive maps within the UI.
  • Google Play Services: For location functionalities in the app.
  • Navigation Components: Utilized for managing in-app navigation.
  • AndroidX Components: Supports lifecycle management and UI layer composition.
  • Room Database: Manages local database storage and operations.
  • Hilt: Provides dependency injection to facilitate scalability and maintainability.
  • Firebase: For analytics, authentication, and real-time database services.
  • Retrofit, OkHttp: Handles network requests and data serialization.
  • Glide: For efficient image loading and caching in the app, used in composable functions.
  • GSON: Utilized for JSON serialization and deserialization.
  • Firebase Performance Monitoring: Monitors and optimizes app performance in real-time. Also used to run test cases and compare performance between Android native and Flutter version of application.

About

Android version of application that is used to compare mobile app performance across native Android and Flutter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages