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:
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:
Submodules like :models
or :presentation
, :domain
, :data
are not shown to keep diagram clear enough.
- 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
andlibs.versions
control
You can check my Figma design for this app: