/anchr-android

📱 Android client for Anchr.io link collections, built with Flutter

Primary LanguageDartGNU General Public License v3.0GPL-3.0

Anchr for Android

Android client for Anchr.io link collections, built with Flutter

Prerequisites

  • A hosted instance of Anchr and a registered account.
  • Java >= 11 (JDK path defined in android/gradle.properties)
  • Flutter >= 2.5.3
  • Dart (tested with 2.14.4)
  • Android SDK (tested with v31)
  • Android Studio (or VSCode)
  • An Android device or emulator

How to run?

  1. Check out repository
  2. Make sure flutter doctor has no errors
  3. flutter packages get
  4. flutter run

Developer notes

  • State handling architecture inspired by vanilla.
  • Generate launcher icon: flutter packages pub run flutter_launcher_icons:main

Release

  • Have your keystore and password ready, e.g. ~/.android/keystore.jks
  • Make sure you have android/key.properties, which looks like so
storePassword=shhh
keyPassword=shhh
keyAlias=some_alias_eg_anchr
storeFile=/home/you/.android/keystore.jks
  • flutter build apk --release --flavor fmain to build an APK
  • flutter build appbundle --release --flavor fmain to build an AppBundle (recommended)

F-Droid

flutter build apk --flavor fdroid

To Do

There is still plenty of space for improvements. Those include:

  • Add ability to sign up
  • Add ability to share collections
  • Improve database helpers (e.g. hide one-to-many relation between collections and links from the outside)
  • Enhance offline mode
    • Show cached content while initial request is pending
  • Implement refresh tokens (requires backend changes)
  • Add tests
  • Clean up code

Feel free to contribute!

License

GNU General Public License v3 (GPL-3) @ Ferdinand Mütsch