2020-11-26 19:56:15 +01:00
|
|
|
<img align="left" width="80" height="80"
|
|
|
|
src="fastlane/metadata/android/en-US/images/icon.png" alt="App icon">
|
2020-04-08 23:21:33 +02:00
|
|
|
|
2020-12-23 19:36:36 +01:00
|
|
|
# FlorisBoard [![Release](https://img.shields.io/github/v/release/florisboard/florisboard)](https://github.com/florisboard/florisboard/releases) [![Crowdin](https://badges.crowdin.net/florisboard/localized.svg)](https://crowdin.florisboard.patrickgold.dev) ![FlorisBoard CI](https://github.com/florisboard/florisboard/workflows/FlorisBoard%20CI/badge.svg?event=push)
|
2020-07-17 23:57:43 +02:00
|
|
|
|
2020-11-26 19:56:15 +01:00
|
|
|
**FlorisBoard** is a free and open-source keyboard for Android 6.0+
|
|
|
|
devices. It aims at being modern, user-friendly and customizable while
|
|
|
|
fully respecting your privacy. Currently in alpha/early-beta state.
|
|
|
|
|
|
|
|
## Public Alpha Test Programme
|
2020-10-08 19:39:49 +02:00
|
|
|
Wanna try it out on your device? Use one of the following options:
|
|
|
|
|
2021-01-08 09:13:08 +01:00
|
|
|
_A. Get it on F-Droid_:
|
2020-10-08 19:39:49 +02:00
|
|
|
|
2021-01-08 09:13:08 +01:00
|
|
|
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" height="64" alt="F-Droid badge">](https://f-droid.org/packages/dev.patrickgold.florisboard)
|
2020-10-08 19:39:49 +02:00
|
|
|
|
|
|
|
_B. Google Play Public Alpha Test_:
|
|
|
|
|
|
|
|
You can join the public alpha test programme on Google Play. To become a
|
|
|
|
tester, follow these steps:
|
2020-08-04 16:20:14 +02:00
|
|
|
1. Join the
|
|
|
|
[FlorisBoard Public Alpha Test](https://groups.google.com/g/florisboard-public-alpha-test)
|
|
|
|
Google Group to be able to access the testing programme.
|
|
|
|
2. Go to the
|
|
|
|
[FlorisBoard Testing Page](https://play.google.com/apps/testing/dev.patrickgold.florisboard),
|
|
|
|
then click "Become a tester". Now you are enrolled in the testing
|
|
|
|
programme.
|
|
|
|
3. To try out FlorisBoard, download it via Google Play. To do so, click
|
|
|
|
on "Download it on Google Play", which takes you to the [PlayStore
|
|
|
|
listing](https://play.google.com/store/apps/details?id=dev.patrickgold.florisboard).
|
|
|
|
4. Finished! You will receive future versions of FlorisBoard via Google
|
|
|
|
Play.
|
|
|
|
|
2021-01-08 09:13:08 +01:00
|
|
|
With the v0.4.0 release FlorisBoard will enter the public beta in GPlay, allowing to directly search
|
|
|
|
for and download FlorisBoard without prior joining the alpha group.
|
|
|
|
|
2020-10-08 19:39:49 +02:00
|
|
|
_C. Use the APK provided in the release section of this repo_
|
|
|
|
|
2020-11-26 19:56:15 +01:00
|
|
|
### Giving feedback
|
2020-10-28 23:38:27 +01:00
|
|
|
If you want to give feedback to FlorisBoard, there are several ways to
|
2020-11-26 19:56:15 +01:00
|
|
|
do so, as listed [here](CONTRIBUTING.md#giving-general-feedback).
|
2020-08-04 16:20:14 +02:00
|
|
|
|
|
|
|
---
|
2020-04-20 02:47:37 +02:00
|
|
|
|
2020-11-26 19:56:15 +01:00
|
|
|
<img align="right" height="256"
|
|
|
|
src="https://patrickgold.dev/media/previews/florisboard-preview-day.png"
|
|
|
|
alt="Preview image">
|
2020-04-20 02:47:37 +02:00
|
|
|
|
2020-12-13 23:58:51 +01:00
|
|
|
## Implemented features
|
2020-12-21 18:50:09 +01:00
|
|
|
This list contains all implemented and fully functional features
|
|
|
|
FlorisBoard currently has to offer. For planned features and its
|
|
|
|
milestones, please refer to the [Feature roadmap](#feature-roadmap).
|
2020-05-20 01:26:58 +02:00
|
|
|
|
|
|
|
### Basics
|
|
|
|
* [x] Implementation of the keyboard core (InputMethodService)
|
2020-10-08 19:39:49 +02:00
|
|
|
* [x] Custom implementation of deprecated KeyboardView (base only)
|
2020-04-20 02:47:37 +02:00
|
|
|
* [x] Caps + Caps Lock
|
2020-05-20 01:26:58 +02:00
|
|
|
* [x] Key popups
|
2020-10-08 19:39:49 +02:00
|
|
|
* [x] Extended key popups (e.g. a -> á, à, ä, ...)
|
2020-04-28 21:20:46 +02:00
|
|
|
* [x] Key press sound/vibration
|
2020-05-20 01:26:58 +02:00
|
|
|
* [x] Portrait orientation support
|
|
|
|
* [x] Landscape orientation support (needs tweaks)
|
|
|
|
|
|
|
|
### Layouts
|
2020-08-16 22:41:06 +02:00
|
|
|
* [x] Latin character layouts (QWERTY, QWERTZ, AZERTY, Swiss, Spanish,
|
2021-01-17 22:56:24 +01:00
|
|
|
Norwegian, Swedish/Finnish, Icelandic, Danish, Hungarian,
|
|
|
|
Croatian, Polish, Romanian); more coming in future versions
|
|
|
|
* [x] Non-latin character layouts (Arabic, Persian, Greek, Russian
|
|
|
|
(JCUKEN))
|
2020-05-20 01:26:58 +02:00
|
|
|
* [x] Adapt to situation in app (password, url, text, etc. )
|
|
|
|
* [x] Special character layout(s)
|
|
|
|
* [x] Numeric layout
|
|
|
|
* [x] Numeric layout (advanced)
|
|
|
|
* [x] Phone number layout
|
2020-12-13 23:58:51 +01:00
|
|
|
* [x] Emoji layout
|
2020-07-17 23:57:43 +02:00
|
|
|
* [x] Emoticon layout
|
2020-05-20 01:26:58 +02:00
|
|
|
|
|
|
|
### Preferences
|
2020-07-17 23:57:43 +02:00
|
|
|
* [x] Setup wizard
|
2020-04-28 21:20:46 +02:00
|
|
|
* [x] Preferences screen
|
2020-10-08 19:39:49 +02:00
|
|
|
* [x] Customize look and behaviour of keyboard
|
2021-01-17 22:56:24 +01:00
|
|
|
* [x] Theme presets (currently only day/night theme + borderless)
|
2020-09-13 19:15:04 +02:00
|
|
|
* [x] Theme customization
|
2020-06-21 18:02:42 +02:00
|
|
|
* [x] Subtype selection (language/layout)
|
|
|
|
* [x] Keyboard behaviour preferences
|
2020-12-13 23:58:51 +01:00
|
|
|
* [x] Gesture preferences
|
2020-05-20 01:26:58 +02:00
|
|
|
|
|
|
|
### Other useful features
|
2020-05-02 02:33:45 +02:00
|
|
|
* [x] One-handed mode
|
2020-08-16 22:41:06 +02:00
|
|
|
* [x] Clipboard/cursor tools
|
2020-12-13 23:58:51 +01:00
|
|
|
* [x] Integrated number row / symbols in character layouts
|
|
|
|
* [x] Gesture support
|
2020-06-21 18:02:42 +02:00
|
|
|
* [x] Full integration in IME service list of Android (xml/method)
|
|
|
|
(integration is internal-only, because Android's default subtype
|
|
|
|
implementation not really allows for dynamic language/layout
|
|
|
|
pairs, only compile-time defined ones)
|
2020-10-08 19:39:49 +02:00
|
|
|
* [ ] Description and settings reference in System Language & Input
|
2020-05-20 01:26:58 +02:00
|
|
|
* [ ] (dev only) Generate well-structured documentation of code
|
2020-04-20 02:47:37 +02:00
|
|
|
* [ ] ...
|
|
|
|
|
2020-12-13 23:58:51 +01:00
|
|
|
## Feature roadmap
|
|
|
|
This section describes the features which are planned to be implemented
|
|
|
|
in FlorisBoard for the next major versions, modularized into sections.
|
|
|
|
Please note that the milestone due dates are only raw estimates and will
|
|
|
|
most likely be delayed back, even though I'm eager to stick to these as
|
|
|
|
close as possible.
|
|
|
|
|
|
|
|
### [v0.4.0](https://github.com/florisboard/florisboard/milestone/4)
|
2020-12-21 18:50:09 +01:00
|
|
|
- Module A: Smartbar rework (Implemented with #91)
|
2020-12-13 23:58:51 +01:00
|
|
|
- Ability to enable/disable Smartbar (features below thus only work if
|
|
|
|
Smartbar is enabled)
|
2020-12-21 18:50:09 +01:00
|
|
|
- Dynamic switching between clipboard tools and word suggestions
|
2020-12-13 23:58:51 +01:00
|
|
|
- Ability to show both the number row and word suggestions at once
|
|
|
|
- Better icons in quick actions
|
2020-12-21 18:50:09 +01:00
|
|
|
- Complete rework of the Smartbar code base and the Smartbar layout
|
|
|
|
definition in XML
|
2020-12-13 23:58:51 +01:00
|
|
|
|
|
|
|
- Module B: Composing suggestions
|
|
|
|
- Auto-suggestion of words based of precompiled dictionaries
|
|
|
|
- Management of custom dictionary entries
|
|
|
|
- Opt-in only: Learning of often typed word pais to better predict next
|
|
|
|
words over time. Data collected here is stored locally and never leaves
|
|
|
|
the user's device.
|
|
|
|
|
2021-01-17 22:56:24 +01:00
|
|
|
- Module C: Extension packs (base implementation with #162)
|
|
|
|
- Ability to load dictionaries (and later potentially other cool
|
2020-12-13 23:58:51 +01:00
|
|
|
features too) only if needed to keep the core APK size small
|
|
|
|
- Currently unclear how exactly this will work, but this is definitely
|
|
|
|
a must-have feature
|
|
|
|
|
|
|
|
- Module D: Glide typing
|
|
|
|
- Swiping over the characters will automatically convert this to a word
|
|
|
|
- Possibly also add improvements based on the Flow keyboard
|
|
|
|
|
2021-01-17 22:56:24 +01:00
|
|
|
- Module E: Theme rework (Implemented with #162)
|
|
|
|
- Themes are now based on the Asset schema
|
|
|
|
- Dynamic theme creation
|
|
|
|
- Different theme modes (`Always day`, `Always dark`, `Follow system`
|
|
|
|
and `Follow time`)
|
|
|
|
- Define a separate theme both for day and night theme
|
|
|
|
- Adapt to app theme if possible
|
|
|
|
|
2020-12-13 23:58:51 +01:00
|
|
|
### [v0.5.0](https://github.com/florisboard/florisboard/milestone/5)
|
|
|
|
There's no exact roadmap yet but it is planned that the media part of
|
|
|
|
FlorisBoard (emojis, emoticons, kaomoji) gets a rework. Also as an extension
|
|
|
|
(requires v0.4.0/Module C) GIF support is planned.
|
|
|
|
|
|
|
|
### > v0.5.0
|
|
|
|
This is completely open as of now and will gather planned features as time
|
|
|
|
passes...
|
|
|
|
|
|
|
|
Backlog (currently not assigned to any milestone):
|
|
|
|
|
|
|
|
- Theme import/export
|
|
|
|
- Floating keyboard
|
2020-05-20 01:26:58 +02:00
|
|
|
|
2020-11-26 19:56:15 +01:00
|
|
|
## Contributing
|
|
|
|
Wanna contribute to FlorisBoard? That's great to hear! There are lots of
|
|
|
|
different ways to help out. Bug reporting, making pull requests,
|
|
|
|
translating FlorisBoard to make it more accessible, etc. For more
|
|
|
|
information see the ![contributing guidelines](CONTRIBUTING.md). Thank
|
|
|
|
you for your help!
|
|
|
|
|
2020-12-01 16:46:08 +01:00
|
|
|
## List of permissions FlorisBoard requests
|
|
|
|
Please refer to this [page](https://github.com/florisboard/florisboard/wiki/List-of-permissions-FlorisBoard-requests)
|
|
|
|
to get more information on this topic.
|
|
|
|
|
2020-09-13 19:15:04 +02:00
|
|
|
## Used libraries, components and icons
|
2020-04-20 02:47:37 +02:00
|
|
|
* [Google Flexbox Layout for Android](https://github.com/google/flexbox-layout)
|
|
|
|
by [google](https://github.com/google)
|
|
|
|
* [Google Material icons](https://github.com/google/material-design-icons) by
|
|
|
|
[google](https://github.com/google)
|
|
|
|
* [Moshi JSON library](https://github.com/square/moshi) by
|
|
|
|
[square](https://github.com/square)
|
2020-09-13 19:15:04 +02:00
|
|
|
* [ColorPicker preference](https://github.com/jaredrummler/ColorPicker) by
|
|
|
|
[Jared Rummler](https://github.com/jaredrummler)
|
2020-12-31 13:31:50 +01:00
|
|
|
* [Timber](https://github.com/JakeWharton/timber) by
|
|
|
|
[JakeWharton](https://github.com/JakeWharton)
|
|
|
|
* [kotlin-result](https://github.com/michaelbull/kotlin-result) by
|
|
|
|
[Michael Bull](https://github.com/michaelbull)
|
2021-01-16 21:48:35 +01:00
|
|
|
* [expandable-fab](https://github.com/nambicompany/expandable-fab) by
|
|
|
|
[Nambi](https://github.com/nambicompany)
|
2020-04-20 02:47:37 +02:00
|
|
|
|
|
|
|
## License
|
2020-05-02 03:24:19 +02:00
|
|
|
```
|
|
|
|
Copyright 2020 Patrick Goldinger
|
|
|
|
|
|
|
|
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.
|
|
|
|
```
|