Science App | Arxiv Summaries

Jetpack Compose Multimodule App for Android. Summarize scientific papers using lates LLM models like OpenAI GPT and Google Gemini with Langdroid Library.

Explore the latest and most influential papers on Arxiv and get main ideas and discoveries made by scientists from the whole world!

Example of app summarization process:

Arxiv App

Architecture

The app is built following :app:feature:shared:core architecture in general. Data handling is implemented with UDF with SSOT (Unidirection Flow with Single Source of Truth) principle. Some situational modules like :navigation one below can be used as the outer level for some non-default behaviors.

Each module can contain up to 3 main submodules: :presentation, :domain, :data, and :models submodule containing above ones' models.

There is simplified architecture diagram for one of features demonstrated in the GIF:

Modules

Submodules like :models or :presentation, :domain, :data are not shown to keep diagram clear enough.

Functionality & Libraries

  • The UI library is Jetpack Compose, DI is Dagger Hilt, gradle files are .kts
  • Scroll and filter papers and science categories requesting Arxiv API with Retrofit and parsing XML responses
  • Save to Room databases and offline/errors handling
  • Using protobuf for setting and encrypted protobuf for storing AI keys
  • Download with Download Manager, and extracting text from PDFs on background.
  • Notifications and Deep Links with Jetpack Compose Navigation.
  • Implementation of Kotlin Coroutines & Listenable WorkManager
  • Custom conventional plugins with :build-logic and libs.versions control

Design

You can check my Figma design for this app: