|
1 | | -<p><i>FlorisBoard</i> is an open-source keyboard aimed at providing you with an easy way to type while respecting your privacy.</p> |
2 | | -<p><b>Note:</b> This project is currently in beta stage. If you want to see a feature being implemented or want to report a bug, please visit this project's repository (linked in the end of the description) on GitHub and file an issue. This helps making FlorisBoard even better! Thank you!</p> |
3 | | -<p><b>Currently implemented and fully working features:</b></p> |
| 1 | +<p><b>SwiftFloris</b> is a privacy-first Android keyboard, forked from FlorisBoard and pushed toward SwiftKey-class multilingual typing without the cloud. It ships under Apache-2.0, holds no <tt>INTERNET</tt> permission, and binds zero accounts.</p> |
| 2 | + |
| 3 | +<p><b>Zero cloud processing. Zero telemetry. Zero account. All features work offline.</b> The no-network promise is pinned by a Gradle build gate (<tt>verifyNoInternetPermission</tt>) that fails the build if any <tt>INTERNET</tt>, <tt>ACCESS_NETWORK_STATE</tt>, <tt>ACCESS_WIFI_STATE</tt>, <tt>CHANGE_NETWORK_STATE</tt>, or <tt>CHANGE_WIFI_STATE</tt> permission is declared in the app manifest.</p> |
| 4 | + |
| 5 | +<p><b>Migrating from SwiftKey?</b> Microsoft retired standalone SwiftKey accounts on 2026-05-31, deleting non-Microsoft-account learned data permanently. SwiftFloris imports your <tt>swiftkey-cloud.json</tt> cloud export directly via Settings → Personal dictionary → Import. See the in-app migration walkthrough.</p> |
| 6 | + |
| 7 | +<p><b>Typing features:</b></p> |
4 | 8 | <ul> |
5 | | - <li>Huge variety of Latin keyboard layouts</li> |
6 | | - <li>Limited support for non-Latin keyboard layouts (Arabic, Persian and Hebrew currently, more are planned)</li> |
7 | | - <li>Easy switching between languages/layouts by defining subtypes in the settings</li> |
8 | | - <li>Full theme customization + theme presets for day/night themes</li> |
9 | | - <li>Automatic day/night theme switching</li> |
10 | | - <li>Keyboard layouts for typing in a (phone) number</li> |
11 | | - <li>Special characters input</li> |
12 | | - <li>Emoji/Emoticon keyboard</li> |
13 | | - <li>One-handed/compact mode for easier typing on large devices</li> |
14 | | - <li>Customization of key press sound/vibration</li> |
15 | | - <li>Customizable actions for gestures: swipe up/down/left/right, space bar left/right, delete key swipe)</li> |
16 | | - <li>Integrated special symbols into character layouts</li> |
17 | | - <li>Clipboard/Cursor toolbar</li> |
18 | | - <li>Clipboard manager/history</li> |
| 9 | + <li>SCOWL 117k English dictionary, SymSpell distance-1 + distance-2, bigram + trigram next-word prediction, capitalization-aware completions, instant-remember user-dictionary overlay</li> |
| 10 | + <li>Bilingual subtype presets (EN+ES, EN+FR, EN+DE), per-token Latin language identification, top-two straddle guard for mid-sentence language switches</li> |
| 11 | + <li>Statistical glide typing with bounded EN / DE / ES / FR / IT / PT dictionaries plus adaptive touch evidence; 7 selectable trail themes (Accent, Rainbow, Fire, Ice, Aurora, Galaxy, Neon)</li> |
| 12 | + <li>Devanagari + Bengali + Tamil + Telugu + 4 more Indic scripts via 63-script transliteration; RTL Arabic shaper; Persian / Urdu / Hebrew normalisers; bundled Noto Nastaliq Urdu for Urdu subtype key labels</li> |
| 13 | + <li>Voice input via FUTO Voice Input handoff (preferred); local Whisper/Vosk catalog and route selector ship preview-only until the local recognizer runtime lands</li> |
| 14 | + <li>Emoji search / history / pinned-groups palette; bundled local sticker packs; user-imported SAF sticker folders for PNG / WebP / JPEG / GIF; rich-content <tt>commitContent</tt> path</li> |
19 | 15 | </ul> |
| 16 | + |
| 17 | +<p><b>Privacy and security:</b></p> |
| 18 | +<ul> |
| 19 | + <li>No <tt>INTERNET</tt> permission — build-gate enforced</li> |
| 20 | + <li>No vendor account — Microsoft, Google, Samsung, or otherwise</li> |
| 21 | + <li>Personal dictionary encrypted at rest (SQLCipher 4.16.0 + Google Tink + AndroidKeystore AES-256-GCM)</li> |
| 22 | + <li>Sensitive-clip and incognito-field guards across cut/copy/paste, voice handoff, and learning</li> |
| 23 | + <li><tt>FLAG_SECURE</tt> on password fields blocks screenshots / screen recording during credential entry</li> |
| 24 | + <li>First-run AI/ML transparency screen + reopenable Settings → About → AI features explainer</li> |
| 25 | + <li>Reproducible-build verification in CI; 16 KB native page alignment for Android 15+; weekly OSV CVE scan; signature-protected addon enrolment</li> |
| 26 | +</ul> |
| 27 | + |
| 28 | +<p><b>21 bundled themes</b> — SwiftKey Pure (Light/Dark + M3 Expressive), SwiftKey High Contrast (AAA), Aurora Animated, Floris Day/Night, Swift Glacier/Slate, M3E Nord (light + dark), Tokyo Night, Dracula, Catppuccin Mocha, plus selectable honeycomb hex layout. Per-app accent (opt-in, no extra permissions).</p> |
| 29 | + |
| 30 | +<p><b>Productivity:</b> calendar quick-insert (explicit <tt>READ_CALENDAR</tt> opt-in, today + next 7 days), task quick-insert to any Intent.ACTION_SEND target (Tasks.org, OpenTasks, Joplin, Notion, Markor), Tasker integration, MCP daemon bridge for local-LLM tool calls.</p> |
| 31 | + |
| 32 | +<p><b>Form factors:</b> floating mode, split mode (tablets ≥ 600dp), one-handed mode, dynamic font scaling, hardware keyboard layout import (Windows KLC, macOS .keylayout, Keyman LDML / .kmp).</p> |
| 33 | + |
| 34 | +<p><b>Distribution:</b> GitHub Releases (canonical), Obtainium one-tap subscribe URL, F-Droid (reproducible-build verification in progress). Not on Google Play by design — Play forces target-SDK churn and Integrity-API tradeoffs that conflict with the no-telemetry posture.</p> |
0 commit comments