Skip to content

This project serves as a demonstration of best practices in modern Android development. As the industry evolves and new trends emerge, the aim is to continually refine and improve the architectural model to ensure that it remains relevant and effective.

Notifications You must be signed in to change notification settings

subwilven/NewsApp

Repository files navigation

News App

News Android is a fully functional Android app built entirely with Kotlin and Jetpack Compose. It follows the official architecture guidance and development best practices.

Why this project ?

The objective of this repository is to illustrate the application of Clean Architecture principles in Android development. This project serves as a demonstration of best practices in modern Android development. As the industry evolves and new trends emerge, the aim is to continually refine and improve the architectural model to ensure that it remains relevant and effective. Ultimately, the goal is to provide a solid and scalable foundation for building robust, maintainable, and efficient Android applications that can meet the demands of even the most complex business requirements.

Screenshots

🌚 Dark Mode

Home Details Filter

🌞 Light Mode

Home Details Filter

UI

The app was designed using Material 3 guidelines.

The Screens and UI elements are built entirely using Jetpack Compose.

The app has two themes:

  • Dynamic color - uses colors based on the user's current color theme (if supported)
  • Default theme - uses predefined colors when dynamic color is not supported

Each theme also supports dark mode.

Essential Libraries

The following third-party libraries were used in this project:

Future enhancements for the next releases

Our goal is to continuously improve and expand upon this project. Here are some of the planned additions for future iterations:

  • Implement Unit tests.
  • Implement UI tests.
  • Apply Detekt for checking code style.
  • Use Git Hooks to run Detekt on run pre-commit.
  • Use GitHub Actions as CI/CD.
  • Use Core-splashscreen to replicate the splash screen behavior from Android 12
  • Add Animation to compose layouts.
  • Use Benchmark to inspect and monitor the performance.
  • Use JankStats to track and analyze performance problems.
  • Support Tablet Devices.

Features

News app is designed to provide a seamless and user-friendly experience for reading articles from News API. Key features include:

  • Displaying a comprehensive list of news articles
  • Efficient loading of data through on-demand loading (Paging), reducing network usage and system resource consumption
  • The ability for users to preview article details and read them in full by opening the article URL
  • The option for users to filter articles sources (Providers) within the app
  • Offline access to previously viewed articles, ensuring that users can access the information they need even without an internet connection
  • An attractive and intuitive user interface, including a built-in dark theme for comfortable reading in low-light conditions

Requirements

News API key

News app uses the News API to fetch the articles. To use the API, you will need to obtain a free developer API key. See the News API Documentation for instructions.

Once you have the key, add this line to the gradle.properties file

API_KEY="your newsapi access key"

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐

About

This project serves as a demonstration of best practices in modern Android development. As the industry evolves and new trends emerge, the aim is to continually refine and improve the architectural model to ensure that it remains relevant and effective.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published