Skip to content

getbible/flutter

Repository files navigation

getBible.live (Flutter implementation)

Cross-platform Flutter implementation of getBible.Life, maintained at getbible/flutter. It targets Android, iOS, web, Windows, macOS, and Linux from one native Flutter codebase. Scripture comes from GetBible API v2 and reader data remains on the device. The reader does not use a WebView.

The React application at getbible/app.getbible.life and its live deployment are the product source of truth. Flutter must reproduce the same reader behavior and data contracts natively. See the web-to-Flutter parity contract.

Development status: the repository contains the native foundation, typed domain model, API client, SQLite persistence, cache verification, reader shell, search/backup/Markdown services, tests, and CI. Store publication still requires complete feature-parity verification, physical-device QA, signing identities, and store-console access. See feature parity.

Supported targets

Target Development/test command Distribution output
Android flutter run -d android APK or Play Store AAB
iOS/iPadOS flutter run -d ios Xcode archive/App Store package
Web flutter run -d chrome Static files in build/web
Windows flutter run -d windows Windows runner bundle
macOS flutter run -d macos macOS application bundle
Linux flutter run -d linux Linux runner bundle

Requirements

  • Flutter stable 3.44.6 or newer
  • Dart 3.12.2 or newer
  • Android Studio/SDK for Android builds
  • macOS with Xcode for iOS builds

Start developing

flutter doctor -v
flutter pub get
flutter run

The application ID and iOS bundle ID are life.getbible.mobile. No API key is required for the public GetBible API.

Test the application

The fastest interactive test is the web target:

flutter pub get
flutter run -d chrome

For Android, enable developer mode/USB debugging or start an emulator, then run flutter devices followed by flutter run -d <device-id>. GitHub Actions also publishes two downloadable artifacts after a successful main build:

  • getBible-live-debug-apk for installation on an Android test device.
  • getBible-live-web, containing the compiled static web application.

Open the successful workflow run’s Artifacts section to download them. Web files must be served by an HTTP server; opening index.html directly is not supported. A permanent GitHub Pages preview can be enabled later after the repository is public and Pages is configured to deploy from GitHub Actions.

pub.dev is not an application testing service. It is Dart and Flutter’s public package registry. This application is not intended to be published there as a reusable package. Test builds belong in GitHub Actions artifacts, GitHub Pages, TestFlight, Play Console internal testing, or locally attached Flutter devices.

Quality checks

dart format --output=none --set-exit-if-changed .
flutter analyze
flutter test
flutter build apk --debug

CI runs the same checks and uploads an unsigned debug APK plus a compiled web build. Consult testing before merging reader, storage, backup, or cache changes.

Release builds

Android:

flutter build apk --release
flutter build appbundle --release

iOS, on macOS:

flutter build ios --release --no-codesign

Signing keys and provisioning profiles must never be committed. Complete instructions are in deployment and distribution.

Architecture

The code is divided into domain models/contracts, data adapters, application state, services, and presentation. SQLite is accessed through Drift's executor; network responses are parsed into strongly typed immutable models. Opened chapters are cached, their SHA endpoints are checked, and usable cached Scripture remains available when verification cannot reach the network.

lib/
  application/       lifecycle and reader state
  core/              errors, JSON validation, starter groups
  data/api/          GetBible API v2 client
  data/database/     local SQLite schema and platform executors
  data/repositories/ cache and persistence implementations
  domain/models/     versioned data contracts
  domain/repositories/abstract persistence contracts
  presentation/      native Flutter reader UI
  services/          backup, search, Markdown

See architecture and data contracts.

Privacy

Notes, markings, preferences, cached Scripture, and reading position are stored locally. The app has no accounts, advertising, analytics, or tracking. Network traffic is limited to resources required for Scripture and daily-passage retrieval. See privacy policy draft.

Branding

All platform launchers, favicons, splash artwork, window icons, and in-app identity use the approved GetBible artwork in assets/branding/. CI validates a committed checksum manifest so generated Flutter template icons cannot silently return. The source artwork must be replaced only with explicitly approved GetBible assets.

Documentation index

License

The existing repository license is retained in LICENSE. Scripture translations remain subject to the license and copyright metadata returned by GetBible API v2; the application license does not relicense translation content.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors