
Enables cross-platform Bible-related functionality with powerful verse search and database access. Integrates seamlessly with iOS, macOS, and Android, utilizing a shared database schema.
BibleKit KMP is a Kotlin Multiplatform library that provides Bible-related functionality for iOS, macOS, and Android platforms.
dependencies {
implementation("com.aarkaystudio.biblekit:biblekit:0.2.1")
}Add the following to your Package.swift file:
dependencies: [
.package(url: "https://github.com/VerseWell/biblekit-kmp.git", from: "0.2.1")
]If you prefer using native Swift instead of Kotlin Multiplatform, we maintain a dedicated Swift library alongside this one:
As a Swift developer first, I am actively maintaining both libraries. This KMP version allows me to explore cross-platform development potential while providing a solution for teams that need Android support. Both libraries provide the same core functionality, so choose the one that best fits your project's architecture and team preferences.
[!IMPORTANT] Your app must include a file named
bible.dbin its bundle. This SQLite database file contains the Bible content and is required for the library to function. You can find:
- Example database file: bible.db (World English Bible with translation modifications)
- Database schema: database.sq
You can replace the
bible.dbfile with your preferred translation as long as it follows the same database schema.
// Copy bible.db from assets to app directory if it doesn't exist
val dbFile = File(applicationContext.filesDir, "bible.db")
if (!dbFile.exists()) {
applicationContext.assets.open("bible.db").use { input ->
FileOutputStream(dbFile).use { output ->
input.copyTo(output)
}
}
}
// Initialize with the database file path
val provider = BibleProvider.create(
dbFactory = BibleDatabaseFactory(context = applicationContext),
filePath = dbFile.absolutePath
)
// Search
val results = provider.search(
query = "love",
verseIDs = null
)// Get the bible.db path from the app bundle
guard let dbPath = Bundle.main.path(forResource: "bible", ofType: "db") else {
fatalError("bible.db not found in bundle")
}
// Initialize with the database file path
let provider = BibleProvider.companion.create(
dbFactory: BibleDatabaseFactory(),
filePath: dbPath
)
// Search
let results = try await provider.search(
query: "love",
verseIDs: nil
)For detailed API documentation, visit BibleKit KMP Documentation
The example database included with BibleKit uses the World English Bible translation (Protestant, US English) with modifications.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
BibleKit KMP is a Kotlin Multiplatform library that provides Bible-related functionality for iOS, macOS, and Android platforms.
dependencies {
implementation("com.aarkaystudio.biblekit:biblekit:0.2.1")
}Add the following to your Package.swift file:
dependencies: [
.package(url: "https://github.com/VerseWell/biblekit-kmp.git", from: "0.2.1")
]If you prefer using native Swift instead of Kotlin Multiplatform, we maintain a dedicated Swift library alongside this one:
As a Swift developer first, I am actively maintaining both libraries. This KMP version allows me to explore cross-platform development potential while providing a solution for teams that need Android support. Both libraries provide the same core functionality, so choose the one that best fits your project's architecture and team preferences.
[!IMPORTANT] Your app must include a file named
bible.dbin its bundle. This SQLite database file contains the Bible content and is required for the library to function. You can find:
- Example database file: bible.db (World English Bible with translation modifications)
- Database schema: database.sq
You can replace the
bible.dbfile with your preferred translation as long as it follows the same database schema.
// Copy bible.db from assets to app directory if it doesn't exist
val dbFile = File(applicationContext.filesDir, "bible.db")
if (!dbFile.exists()) {
applicationContext.assets.open("bible.db").use { input ->
FileOutputStream(dbFile).use { output ->
input.copyTo(output)
}
}
}
// Initialize with the database file path
val provider = BibleProvider.create(
dbFactory = BibleDatabaseFactory(context = applicationContext),
filePath = dbFile.absolutePath
)
// Search
val results = provider.search(
query = "love",
verseIDs = null
)// Get the bible.db path from the app bundle
guard let dbPath = Bundle.main.path(forResource: "bible", ofType: "db") else {
fatalError("bible.db not found in bundle")
}
// Initialize with the database file path
let provider = BibleProvider.companion.create(
dbFactory: BibleDatabaseFactory(),
filePath: dbPath
)
// Search
let results = try await provider.search(
query: "love",
verseIDs: nil
)For detailed API documentation, visit BibleKit KMP Documentation
The example database included with BibleKit uses the World English Bible translation (Protestant, US English) with modifications.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.