This project serves as a comprehensive Android showcase, demonstrating the implementation of key modern technologies and architectural patterns. Entirely written in Kotlin, it follows the guide to app architecture to ensure best practices in Android development.
Key technologies and tools used in this project include:
- Jetpack Compose: Used for building declarative UIs, enabling more concise and intuitive UI development.
- Kotlin Coroutines: Employed throughout the project to handle asynchronous programming, providing a more efficient and readable approach to managing background tasks.
- Retrofit: A type-safe HTTP client for Android and Java, used for managing network requests and parsing responses.
- Hilt: A dependency injection library for Android, simplifying the process of managing dependencies and improving code modularity.
- Gradle Multi-Module Setup: Organizes the project into multiple Gradle modules to enhance modularity, scalability, and maintainability.
To set up the project, ensure you meet the following requirements:
- Development Environment: Use at least Android Studio Koala for development.
- Java Version: Set the
JAVA_HOMEenvironment variable to point to JDK version 17. - Android Compatibility: The application is compatible with devices running Android 8.0 Oreo (API level 26) and above.
- GitHub Personal Access Token (PAT): To run the project, add the following key in the
local.propertiesfile:github_pat="{pat}"
This github_pat refers to a personal GitHub access token with permissions to create and update issues. The required token will be provided upon request by Significo. Please contact us at dev@significo.com to obtain the necessary token.
For more information on GitHub PATs, refer to the GitHub documentation on granular PATs.
This application provides a seamless way to manage your GitHub issues, leveraging the GitHub API.
- View Issues: Demonstrates how to fetch data using GET operations from the GitHub API. This feature retrieves and displays all open issues in one centralized location, showcasing effective data fetching and UI integration.
- Create Issues: Illustrates the use of POST and PUT operations to create new issues on GitHub. This includes providing all necessary information and the ability to attach files, such as PDFs and images, highlighting file upload capabilities within API interactions.
- Edit Issues: Showcases the use of PATCH operations to update existing issues. This feature ensures that issue data can be modified and kept current, demonstrating efficient data update mechanisms and synchronization with GitHub.
By working directly with GitHub, this app ensures that all changes are reflected immediately, maintaining real-time synchronization with your repositories.
This application is accessible, supporting TalkBack and featuring user-friendly UI components, content descriptions, and compliance with accessibility guidelines to ensure a seamless experience for all users.
To ensure high code quality and maintainability, we have integrated two essential code analysis tools into the project: Spotless and Detekt. These tools help enforce coding standards, detect potential issues early, and maintain a consistent codebase.
Spotless is a code formatting tool that automatically ensures your code adheres to specified style guidelines.
Commands:
-
Check for formatting issues without applying changes:
./gradlew spotlessCheck
This command scans the project and reports any formatting violations based on the Spotless configuration.
-
Automatically format your code according to the defined rules:
./gradlew spotlessApply
This command reformats your source files to adhere to the style guidelines specified in the Spotless configuration.
Detekt is a static code analysis tool specifically designed for Kotlin.
Commands:
-
Run all checks:
./gradlew detektAll
-
Ignore violations in the baseline:
./gradlew detektAllBaseline
The baseline is located at config/detekt/baseline.xml. However, using @Suppress("") in the code directly is preferable so that ignored violations are visible when browsing the code.