02
Dev.to Kotlin
作者:yramstech
發布:04-24 11:51
How I Built an Android Keyboard in Kotlin for Two Ghanaian Languages
One keyboard, both languages, no language-switching dance, every diacritic accessible in ≤ 1 extra tap.
重點摘要
Built an IME for Ewe and Twi so users could type native diacritics directly
Chose Android Views for the keyboard surface because Compose was too slow on every keystroke
Kept the app local-only with no backend, no accounts, and no text logging
In late 2022, the author set out to build an Android keyboard that would let Ewe and Twi speakers type naturally, without losing letters like ɛ, ɔ, ŋ, ɖ, ƒ, ʋ, and ɣ to English autocorrect or awkward workarounds. After trying existing African-language keyboards, the author found they were either too clumsy, poorly adapted to the languages, or abandoned. The resulting design aimed for one keyboard that served both languages, with every diacritic reachable in a single extra tap. The article also covers the Kotlin-based stack, a Java-to-Kotlin rewrite completed in 2026, why the keyboard itself stayed on classic Views for performance, and how the app launched and grew on Google Play without any backend or text collection.
我如何用 Kotlin 为两种加纳语言打造 Android 键盘
一个键盘同时支持两种语言,无需切换语言,每个变音符号最多只需一次额外点击。
重點摘要
为 Ewe 和 Twi 设计 IME,让用户能直接输入原生变音字母
键盘主体采用 Android Views,而不是 Compose,以避免每次按键的重组延迟
应用不设后端、不建账户,也不记录任何文字内容
作者在 2022 年底决定开发一款 Android 输入法,让 Ewe 和 Twi 使用者能够像母语一样输入,不必再依赖英文键盘和各种替代写法。试用现有的“非洲语言键盘”后,他发现它们要么操作繁琐,要么没有真正贴合语言需求,甚至早已停止维护。于是他把目标定为:一个键盘同时服务两种语言,所有变音符号最多只需额外点一次即可输入。文章还介绍了应用的 Kotlin 技术栈、2026 年完成的 Java 到 Kotlin 重写、为何键盘本体仍保留传统 Views,以及在没有后端、没有账户、也不采集文字数据的前提下完成上架与持续增长的过程。
我如何用 Kotlin 為兩種迦納語言打造 Android 鍵盤
一個鍵盤同時支援兩種語言,無需切換語言,每個變音符號都能在最多一次額外點擊內輸入。
重點摘要
為 Ewe 與 Twi 設計 IME,讓使用者可直接輸入原生變音字母
鍵盤本體採用 Android Views,而非 Compose,以避免每次按鍵的重組延遲
應用程式不設後端、不建帳號,也不記錄任何文字內容
作者在 2022 年底決定打造一款 Android 輸入法,讓 Ewe 與 Twi 使用者能像母語一樣輸入,不必再依賴英文鍵盤與令人困擾的替代寫法。經過測試現有的「非洲語言鍵盤」後,他發現不是操作繁瑣,就是對語言理解不足,甚至已長期停更。於是他將目標定為:一個鍵盤同時支援兩種語言,所有變音符號最多只需多按一次即可輸入。文章也回顧了應用的 Kotlin 架構、2026 年完成的 Java 轉 Kotlin 重寫、為何鍵盤本體仍使用傳統 Views,以及在沒有後端、沒有帳號、也不蒐集文字資料的前提下上架與成長的經驗。