A fork of LatinIME (by Google for Android), targeting marginalised languages that also deserve first-class status on mobile operating systems.
Note. This project is the place where all the code is kept. It also has som basic configuration, but crucially - you can't open this project in Android Studio and run it (yes, you can. In a way, but it's no good. Look. Stop interrupting me and pay attention).
On one hand, you have all the linguists and other related folks at UiT working on getting spellers and suggestions and reasonable keyboard layouts. They work in one repo per language.
On the other hand you have the android app that's supposed to be one single app that ships many languages.
The linguists don't only make the android app, they make ios, mac, windows etc. They shouldn't have to worry about android stores etc. To facilitate this, they create a yaml layout such as this
If you wanna build an android app though, that won't help you. You need layout xml:s. Introducing - kbdgen. Kbdgen downloads layout files. It does it by cloning this repo and then meta-programming on some layouts and xmls.
To compile the problem slightly, we don't really want to distribute one keyboard per language. Hence, we combine multiple languages per keyboard. There are two repos for this. https://github.com/divvun/divvun-dev-keyboard and https://github.com/divvun/divvun-keyboard . Right? Right.
You're gonna need kbdgen. You can download it from pahkat. Technically.
wget https://pahkat.uit.no/devtools/download/kbdgen\?channel\=nightly\&platform\=macos
The following will download divvun-dev-keyboard and create you a runnable android project.
cd source/divvun
git clone git@github.com:divvun/kbdgen.git
git clone git@github.com:divvun/divvun-dev-keyboard.git
cd kbdgen
cargo run -- fetch -b /Users/srdkvr/source/divvun/divvun-dev-keyboard/divvun-dev.kbdgen #fetches deps since divvun-dev-keyboard is shallow
cargo run -- target --bundle-path /Users/srdkvr/source/divvun/divvun-dev-keyboard/divvun-dev.kbdgen --output-path ~/source/divvun/android_keyboard android build
You might need
brew install imagemagick@6
echo 'export PATH="/opt/homebrew/opt/imagemagick@6/bin:$PATH"' >> ~/.zshrc
If you got this right, you can open ~/source/divvun/android_keyboard
in Android Studio and work on your project. If you make any code-changes, make sure to upload them in this repo and this repo alone. Don't upload all the files kbdgen put in this directory for you.
If you're building locally without kbdgen
, you'll need the DivvunSpell
and Pahkat
libraries.
You can build these libraries from source by:
- Installing NDK 28 (29 works too) via Android studio
- Selecting it in Android Studio > File > Project Structure
- Installing
cargo-ndk
withcargo install cargo-ndk
- Checking out https://github.com/divvun/divvunspell and then inside that dir, running
cargo ndk -t armeabi-v7a -t arm64-v8a -o ./lib build -vv --lib --release --features internal_ffi
- Checking out https://github.com/divvun/pahkat and going to the
pahkat-client-core
dir and runningcargo ndk -t armeabi-v7a -t arm64-v8a -o ./lib build -vv --features ffi,prefix --release
- Moving the output of the above commands to the
jniLibs
dir in thisgiellakbd-android
project
Apache 2 license. See LICENSE.