NYTimes-Compose

Additional

Language
Kotlin
Version
v1.0.1 (Jun 6, 2021)
Created
Nov 14, 2020
Updated
Jan 9, 2022
Owner
Akshay Sharma (akshay2211)
Contributors
Akshay Sharma (akshay2211)
Basi (e4basil)
2
Activity
Badge
Generate
Download
Source code

Advertising

The NewYork Times App

An offline first application in Jetpack Compose with MVVM architecture, representing a minimalistic implementation of Top Stories API. Built with components like DataStore, Coroutines, ViewModel, LiveData, Room, Navigation-Compose, Coil-Accompanist, koin etc.

This sample showcases:

  • UI state management
  • Basic Material Design theming (Light & Dark)
  • Offline First Functionality
  • Integration with Architecture Components: Navigation, ViewModel, Room
  • Minor features like Pull-to-refresh, dedicated settings screen, Time-bounded refresh, Dialogs etc.

Getting Started

To try out this sample app, you need to use the latest Canary version of Android Studio.

This project uses the Gradle build system. To build this project, use the gradlew build command or use "Import Project" in Android Studio.

For more resources on learning Android development, visit the Developer Guides at developer.android.com.

New York Times API key

NY Times-Compose uses the Top Stories API from New York Times to load stories on home screen. To use the API, you will need to obtain a free developer API key. See the New York Times API Documentation for instructions.

Once you obtain the api key create a file apikey.properties in the root folder and add this line

API_KEY=<your api key>

Screenshots

Upcoming features

Updates will include incorporating additional Jetpack components and updating existing components as the component libraries evolve.

Interested in seeing a particular feature of the Android Framework or Jetpack implemented in this app? Please open a new issue.

License

Licensed under the Apache License, Version 2.0, click here for the full license.

Author & support

This project was created by Akshay Sharma.

If this project help you reduce time to develop, you can give me a cup of coffee :)