Skip to content

Latest commit

 

History

History
128 lines (78 loc) · 4.26 KB

README.md

File metadata and controls

128 lines (78 loc) · 4.26 KB

Base for Android Application using Kotlin

An enterprise-level Kotlin MVVM boilerplate to help you start building Android applications in minutes.

Overview

This repository is designed to provide developers with a clean and scalable base for starting new Android applications using Kotlin. The project utilizes modern architecture patterns and libraries, enabling rapid development while ensuring maintainability and scalability.

Architecture

This project follows the MVVM (Model-View-ViewModel) architecture pattern, offering separation of concerns, easier testing, and the use of Jetpack components.

MVVM Architecture


Technology Stack

This boilerplate includes an extensive technology stack that allows developers to build robust and scalable Android applications.

Language

  • Kotlin 1.3.61 - Modern programming language designed to improve productivity, readability, and safety.

Architecture

  • MVVM - Ensures separation of business logic from UI components, promoting maintainability and testability.

Database Layer

  • Room 2.2.2 - A persistence library that provides an abstraction layer over SQLite, making database operations more manageable.

Dependency Injection

  • Dagger 2.15 - A powerful dependency injection framework to help manage and inject dependencies efficiently.

Flow Management

  • Coroutines 1.2.1 - Provides asynchronous programming capabilities with a simpler and more efficient API.
  • RxKotlin 2.4.0 - Reactive programming support for Kotlin.
  • RxAndroid 2.1.1 - Reactive Extensions for Android’s main UI thread.
  • Lifecycle 2.1.0 - Android architecture component to handle lifecycle-aware components.

Networking

  • Retrofit 2.7.0 - A type-safe HTTP client for Android and Java.
  • OkHttp 3.12.0 - An efficient HTTP client that supports HTTP/2, connection pooling, and more.
  • Socket.IO 0.6.0 - Provides real-time, bidirectional communication between the client and server.

Image Loading & Processing

  • Picasso 2.71828 - A powerful image downloading and caching library for Android, making image handling simple and efficient.

JSON Parsing

  • Moshi 1.9.0 - A modern JSON library for Android and Java, offering full support for Kotlin.
  • Gson 2.8.6 - A widely used library for converting JSON to Java objects and vice versa.

Logging

  • Timber 4.7.1 - A flexible logging library, improving upon Android's default Log class.

UI Testing

  • Espresso - A UI testing framework that allows you to simulate user interactions and test your application's behavior.

Getting Started

Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • Android Studio (latest version)
  • Gradle (as per Android Studio configuration)
  • Android SDK (API 21 or higher)

Setup

  1. Clone the repository:

    git clone https://github.com/HaneetGH/KotlinAndroidBase.git
  2. Open in Android Studio: Open the project in Android Studio, then allow it to sync the Gradle files.

  3. Build the project: Build the project to download dependencies and set up the development environment.

  4. Run the app: Use an emulator or a physical device to run the app directly from Android Studio.


Contributing

We welcome contributions from the community! Here's how you can get involved:

  1. Fork the repository by clicking the "Fork" button at the top of the page.
  2. Create a new branch for your feature or bug fix:
    git checkout -b feature-branch
  3. Make your changes and commit them:
    git commit -m "Description of the feature or fix"
  4. Push your branch to GitHub:
    git push origin feature-branch
  5. Create a Pull Request to the main branch of this repository.

Please ensure that your code follows the project's standards and includes appropriate tests.


License

This project is licensed under the MIT License - see the LICENSE file for details.


Contact

For any questions or support, feel free to open an issue on GitHub.