Skip to content

ErenMlg/InsuranceApp

Repository files navigation

Insurance App


I voluntarily participated in the internship program initiated by Ada Software. During this process, each intern was asked to create an insurance application. I developed mine using Jetpack Compose. The project primarily demonstrates the use of MVVM, Coroutines, Flows, and related technologies.


Project Screens

Screenshot_1

Project Tech Stack

  • This project developed with %100 with Kotlin
  • Made with Android Architecture Components for the Collection of libraries that help you design robust, testable, and maintainable apps.
  • ViewModel: The ViewModel class is a business logic or screen level state holder. It exposes state to the UI and encapsulates related business logic. Its principal advantage is that it caches state and persists it through configuration changes. This means that your UI doesn’t have to fetch data again when navigating between activities, or following configuration changes, such as when rotating the screen.
  • Kotlin CoroutineOn Android, coroutines help to manage long-running tasks that might otherwise block the main thread and cause your app to become unresponsive. Over 50% of professional developers who use coroutines have reported seeing increased productivity. This topic describes how you can use Kotlin coroutines to address these problems, enabling you to write cleaner and more concise app code.
  • Dependency Injection with Hilt: Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project. Doing manual dependency injection requires you to construct every class and its dependencies by hand, and to use containers to reuse and manage dependencies.
  • Navigation: Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app. Android Jetpack's Navigation component helps you implement navigation, from simple button clicks to more complex patterns, such as app bars and the navigation drawer.
  • Retrofit: Retrofit is the class through which your API interfaces are turned into callable objects. By default, Retrofit will give you sane defaults for your platform but it allows for customization.
  • Kotlin KSP: Kotlin Symbol Processing (KSP) is an API that you can use to develop lightweight compiler plugins
  • OkHttp: OkHttp is an open-source HTTP client developed by Square and is widely used for handling network operations in Android apps.
  • Repository: This located in data layer that contains application data and business logic.
  • Use Case: Located domain layer that sits between the UI layer and the data layer.
  • Pager: Horizontal pager for swipeable view.

Architecture

This app uses MVVM (Model View View-Model) architecture structure.

Project Graph

This app uses MVVM (Model View View-Model) architecture Core layer have 5 sub layer as common, data, di, domain, navigation, presentation;

  • Extension: Hold Map extensions for the response to entity, other extension for the view, network response, modifier etc.
  • Api: Hold api services
  • Dto: Hold database objects for the response
  • Repository: Hold repository for the application data and business logic.
  • Source: For the remote data source to listen result and convert flow.
  • Di: Hold di objects and works
  • Model: Hold used models on screens.
  • Repository: Hold repository interfaces for the clean view.
  • Navigation: Hold navhost, route objects and bottom app bar
Presentation layer have 7 sub layer as components, customer, home, login, payments, policies, splash, theme. They hold own fragments, viewmodels and detail pages.

End Note

I may have mistakes, you can contact me for your feedback. 👉 📫 eren.mollaoglu@outlook.com

License

Designed and developed by 2024 ErenMlg (Eren Mollaoğlu)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

Insurance app for the Ada Yazilim Internship

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages