|Home Screen||Detail Screen|
|Bookmark Screen||Collection Screen|
To run the application, an API key from Unsplash should be supplied.
inside local.properties file add this line and Rebuild project.
apiKey="Your API Key Here"
How to store API key? - Stackoverflow
- Single Activity No Fragment
- MVVM Pattern
View: Renders UI and delegates user actions to ViewModel
ViewModel: Can have simple UI logic but most of the time just gets the data from UseCase.
UseCase: Contains all business rules and they written in the manner of single responsibility principle.
Repository: Single source of data. Responsible to get data from one or more data sources.
For more information you can check Guide to app architecture
- Kotlin - First class and official programming language for Android development.
- Ktor Client - Ktor includes a multiplatform asynchronous HTTP client, which allows you to make requests and handle responses, extend its functionality with plugins (formerly known as features), such as authentication, JSON serialization, and so on. In this topic, we'll take an overview of the client - from setting it up to making requests and installing plugins.
- Jetpack Compose - Jetpack Compose is Android’s modern toolkit for building native UI.
- Coroutines - For asynchronous and more..
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- Compose Destinations - A KSP library that processes annotations and generates code that uses Official Jetpack Compose Navigation under the hood. It hides from you the non-type-safe and boilerplate code you would otherwise have to write.
- Material Components for Android
- Modular and customizable Material Design UI components for Android.
- Dagger - Hilt - Dependency Injection Framework
- Coil - Image loader library.
. . . ├── di # Hilt Dependency Injection ├── feature_bookmark ├── feature_collection ├── feature_detail ├── feature_home ├── feature_splash | ├── data # DTOs and repositories implementation | | | ├── domain # Models, repositories and use cases | | | └── presentation # UI Components ├── ui | ├── theme # Compose Theme | | | └── animation # Animation Utils | ├── utils # Useful classes | └── WallUpApp.kt # @HiltAndroidApp
If you want to contribute to this app, you're always welcome!
Copyright 2022 Enes-Kayiklik 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.