100% Free, Open-Source, Quick and Friendly Bible App.
Get the apps on Google Play: Alkitab (Indonesian version) or Quick Bible (non-Indonesian version). You can also download them from the Releases page.
Alkitab is the Indonesian word for the Bible.
This app natively uses .yes files for the Bible text. You can create a .yes file easily by preparing a plain text file. See this page for instructions.
You can also convert PalmBible+ PDB files using the built-in converter in the app for your own use.
Tools for converting PalmBible+ PDB files to .yet files, and from .yet files to .yes files and internal app files, are available at in this folder.
Bible for Android is not only open-source, but also designed in a flexible manner. You can:
- Create and distribute your own Bible translation
- Create and make publicly available your favorite Song Book
- Create and publish a Reading Plan
- Open specific verses from your app
- Make your own app that gives further insight regarding specific verses callable by Alkitab / Quick Bible
See the Developer page for more information.
The main app module is :Alkitab. For local development, the supported open-source build is the plain flavor.
Build a debug APK:
./gradlew assemblePlainDebug
Build a debug App Bundle:
./gradlew bundlePlainDebug
Run the unit tests used in CI:
./gradlew testPlainDebugUnitTest testPlainReleaseUnitTest
For working with the codebase, see CLAUDE.md (architecture overview, module structure, ARI encoding, code conventions, and build instructions) and the docs/ folder:
Architecture & infrastructure
- Architecture Deep Dive — singleton patterns, data flow, module dependencies
- Build System — flavors, signing, CI/CD, release process
- Storage & Database — SQLite schema, preferences, file storage
- Backend Communication — API endpoints, download flows
- Text Rendering — verse formatting pipeline and codes
- Binary Formats — YES2, Bintex, RPB file format specs
Feature modules
- Songs — song book browsing, search, audio playback
- Reading Plans — RPB binary format, daily progress tracking
- Versions — Bible version management, download, YES2 format
- Markers — bookmarks, notes, highlights system
- Sync — cloud sync protocol and FCM push
- Devotions — daily devotional articles
- Audio Playback — ExoPlayer/MIDI controllers
- Search — full-text verse search engine
- Daily Verse Widget — home screen widget
- Data Transfer — JSON export/import of user data
Tech debt
- Tech Debt & Known Issues — known problems with file/line references
- Tech Debt Remediation Plan — prioritized fixes with BRICE scores
- The repository contains placeholder Bible data in
Alkitab/src/plain/assets/internaland a placeholderAlkitab/google-services.json, so the open-sourceplainDebugbuild works out of the box once the Android SDK and NDK are installed (Firebase features won't actually function with the placeholder, but the build and the rest of the app do). - Release packaging is pure Gradle. Production flavors expect the signing env vars (
SIGN_KEYSTORE,SIGN_ALIAS,SIGN_PASSWORD) andALKITAB_PROPRIETARY_DIR, which must containoverlay/<applicationId>/text_raw/(Bible text) andgoogle-services.json(real Firebase config covering every production applicationId). With those set,./gradlew assembleYuku_alkitabRelease(or any other production flavor) builds and signs the APK directly. SetBUILD_DISTto override thedevsuffix in the output filename. - Product flavors currently include
plain,yuku_alkitab,yuku_quick_bible, andsabda_alkitab.
Copyright 2009-present The Alkitab App Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
This project is tested with BrowserStack.