Skip to content

Android App for SwahiLib - Kamusi ya Kiswahili: Kiswahili kitukuzwe (Swahili Dictionary)

Notifications You must be signed in to change notification settings

SiroDevs/SwahiLib-Android

Repository files navigation

SwahiLib - Kamusi ya Kiswahili

SwahiLib is a beautifully crafted Android app that lets users explore and search through a rich collection of Swahili words, idioms, sayings, and proverbs, with support for offline access, clean UI, and real-time updates.

This version is built using Jetpack Compose, Room, Hilt, and backed by Supabase for remote data.

🔗 iOS Version Repo: @SiroDaves/SwahiLib-iOS

Get it on Google Play

✨ Screenshots

✨ Features

  • 🔍 Search for Swahili words, idioms, sayings, and proverbs

  • 📘 View details by tapping on any result

    • See synonyms for words and proverbs where available
  • 💾 Offline-first support using Room Database

  • 💉 Dependency injection powered by Hilt

  • 💫 Smooth animations with Lottie

  • ⚡ Uses Supabase + Ktor for fast backend communication

🧰 Tech Stack

UI & Architecture

  • Jetpack Compose (Material 3, Navigation, LiveData, Previews)
  • Hilt for Dependency Injection
  • Room for local database
  • Kotlinx Serialization
  • Jan Tennert’s Supabase Kotlin Client
  • Retrofit & Ktor for HTTP networking
  • Lottie Compose for animations

🚀 Getting Started

1. Clone the Repository

git clone https://github.com/SiroDaves/SwahiLib-Android.git
cd SwahiLibLib-Android

2. Set up Supabase Configuration

Create a .env file at the root of the project by copying the template:

cp .env.example .env

Update the .env file with your actual Supabase credentials (URL, API key, etc.)

3. Open in Android Studio

Open the project in the latest version of Android Studio (Giraffe or later recommended for best Jetpack Compose support).

4. Build the Project

The app uses Gradle version catalogs for dependencies. Android Studio should sync and resolve everything automatically. If not, run:

./gradlew clean build

Or use Sync Project with Gradle Files in the IDE.

5. Run the App

Connect a physical Android device or use an emulator, then click Run or press:

Shift + F10

📄 Notes

  • The app syncs content from Supabase and stores it in Room for offline usage.
  • Data updates are triggered automatically via ViewModel logic.
  • All dependencies are managed using libs.versions.toml for cleaner and centralized version control.

📦 Main Libraries Used

Category Library
UI Jetpack Compose (Material2 & Material3)
DI Hilt
Database Room
Animations Lottie Compose
Supabase Integration Supabase Kotlin (PostgREST)
Networking Ktor, Retrofit, OkHttp
Serialization kotlinx.serialization.json

🛠 License

This project is open-source and available under the MIT License.

About

Android App for SwahiLib - Kamusi ya Kiswahili: Kiswahili kitukuzwe (Swahili Dictionary)

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages