Skip to content

This is an application to understand Clean Architecture and Kotlin technologies.

License

Notifications You must be signed in to change notification settings

sahinkaradeniz/DisneyCharactersApp

Repository files navigation

DisneyCharactersApp

This is an application to understand Clean Architecture and Kotlin technologies.

Project Screens

HOME SCREEN DETAİL SCREEN DETAİL SCREEN
Uygulama Ekran Görüntüsü Uygulama Ekran Görüntüsü Uygulama Ekran Görüntüsü

Project Tech stack

MVVM

MVVM and the interface work and background studies are separated and the complexity of the code is minimized. Each class only defines and performs its tasks. MVVM has a more common use than other design patterns, and offers more modularity, easy tested and layered structure is a good functioning task among display and model layers.

Clean Architecture

Clean Architecture is a form of code development approach and is a structure that adopts SOLID principles. The purpose of Clean Architecture is to minimize the complexity of code, the complexity of the application. Although it does not matter in small projects, it has a vital value in large projects. Thanks to Clean Architecture, we can write clean, tested and maintained, rearranged codes. With the MVVM, the most used architecture used by Android developers, we can easily apply Clean Architecture rules. But Clean Architecture is only. It can be used not with MVVM, but also with all other design patterns.

1__-3tHh_mgOo9tpc58alMjA

  • Use Casses: Clean Architecture approach is thought to be considered independent of business logic and business processes, system components and technical details. Therefore, Use Case is used. Each usage situation performs a function in the system and is for a particular purpose. Use Case conducts a task for business logic and business processes and plays an important role in system design.

  • Repository : The Repository pattern helps to make the application code more modular, tested and easy to maintain by abstracting access to the data source from other layers of the application (user interface, business logic, etc.). For example, when the application needs to change its access to a data source (for example, when it decides to use a web service instead of a database), it can only make this change in the repository class in the data access layer and do not need to change other layers of the application

Project Graph

Main packages of this project

Ekran Resmi 2023-03-18 11 13 55

  • This layer performs operations to retrieve data from data sources and to write data to data sources. When retrieving data from data sources, it may process, filter, sort, and organize the data as necessary. The data layer typically includes data access objects (DAOs) and data source processing classes. This layer is completely independent from the other layers of the application and acts based on requests from other layers.

Data Layer (1)

  • This layer contains the core business logic and entity models on which the application functionality is focused. In this layer, application features and functionalities are identified, and their requirements and use cases are analyzed. Usually, the business processes and rules are defined in the classes and methods of this layer. The domain layer does not include interaction with the external world (user interface, database operations, etc.) and is completely independent, so it can be integrated or replaced with another application.

Data Layer (3)

  • This layer provides the design and functionality of the user interface. The user interface typically collects input from the user to process and displays results to the user. The user interface can communicate with other layers of the application and pass user actions to the application layers. This layer includes user interface components (activity, fragment, view, adapter, etc.) and classes that handle user events.

Data Layer (4)

API

Disney Character Api

License

MIT License

Copyright (c) 2023 Sahin Karadeniz 

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

 

About

This is an application to understand Clean Architecture and Kotlin technologies.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages