Skip to content

feat: rewrite the app as native Android (Kotlin + Jetpack Compose) - #20

Merged
PerretWilliam merged 3 commits into
mainfrom
feat/native-android
Nov 8, 2026
Merged

PerretWilliam merged 3 commits into
mainfrom
feat/native-android

Conversation

@PerretWilliam

Copy link
Copy Markdown
Owner

What and why

Replaces the Expo / React Native / TypeScript app with a native Android app (Kotlin, Jetpack Compose, raw SQLite). All screens and features are ported: decks, folders, cards with Markdown + KaTeX and cloze, swipe study sessions with haptics, history and dashboard, JSON import/export, AI prompt generator, and the en/fr/es/de translations. The non-native stack (Expo, npm tooling, TypeScript sources) is removed.

  • Same application id and database file, so an update keeps existing decks.
  • minSdk 26. The in-app language and session size settings are reset.
  • Version is now version.txt (release-please simple type); the CHANGELOG is generated on release.
  • CI and the release workflow build with Gradle; Dependabot also tracks Gradle.

How it was tested

  • ./gradlew testDebugUnitTest lintDebug assembleRelease passes (21 unit tests)
  • Tried on a device or emulator: not done, the UI has only been compiled, not run

Checklist

  • PR title follows Conventional Commits
  • Code, comments and UI text are in English
  • Pure logic has a test in app/src/test/
  • Docs updated (README.md, CONTRIBUTING.md, CLAUDE.md, docs/FORMAT.md)

Replace the Expo / React Native / TypeScript app with a native Android app.
All screens, the SQLite storage, the JSON exchange format, cloze cards, weighted
card sampling, the offline Markdown + KaTeX rendering and the four UI languages
are ported. Haptic feedback is kept.

- Same application id and database file, so an update keeps existing decks
  (the APK is still signed with the debug key).
- minSdk 26. The in-app language and the session size setting are reset.
- Version now lives in version.txt (release-please "simple" type).
- CI and the release workflow build with Gradle; Dependabot also tracks Gradle.
- scripts/build-icons.mjs now writes into app/src/main/res/drawable-nodpi.
@PerretWilliam
PerretWilliam merged commit 7af9a29 into main Nov 8, 2026
2 checks passed
@PerretWilliam
PerretWilliam deleted the feat/native-android branch November 8, 2026 01:00
PerretWilliam added a commit that referenced this pull request Nov 8, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.6.0](v0.5.0...v0.6.0)
(2026-11-08)


### Features

* rewrite the app as native Android (Kotlin + Jetpack Compose)
([#20](#20))
([7af9a29](7af9a29))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: William PERRET <115732287+PerretWilliam@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant