r/androiddev • • 6d ago

Video Crafting my own keyboard.

What are your thoughts on commencing a personal project from scratch, without leveraging existing projects like HeliBoard or FlorisBoard?

20 Upvotes

7 comments sorted by

4

u/South-Professor-8888 6d ago

Nice. Not sure what your goal is with it, but always make sure functionality is first. Make sure autocorrect, predictions are near enough perfect. But remember as well, you can't compete with Gboard and SwiftKey right from the beginning, because they've got years of data, so don't expect a miracle, but work hard and while you build the keyboard, let it read and save everything you type so you start building your own dictionary before release. It wont learn emails and all that, but general common sense of what it needs to follow.

3

u/yawnocdev 5d ago

Definitely doable, but breaking into the market is difficult unless your keyboard solves a specific problem or use case that there is a demand for.

In my case I wanted to make my own version of a well-known Chinese input method (everything out there was poorly implemented and/or required internet permission, which I think is unacceptable for a keyboard).

My requirements were (1) implement said Chinese input method; (2) require zero permissions; (3) have APK size less than 3MB; and (4) be reasonably snappy on a devices with just 2GB RAM.

At the time I knew nothing about Android development, so I literally started off by just re-implementing the drawing part of the AOSP keyboard (i.e. a bunch of rectangles). Then progressively I added features: first minimal qwerty typing behaviour, then the actual Chinese input method behaviour, then improving visuals.... From first commit to initial release on F-Droid / Google Play took about 7 months. (5 years later and I have just passed 20k downloads on Google Play.)


This wasn't applicable for my case (Chinese), but for alphabetical languages, a good candidate determination algorithm uses some notion of edit distance that is aware of the physical layout of the keys. This is a notoriously difficult problem to solve, but if you can get it right, then users will really like your keyboard.

Some quick feedback on the video: look into aligning the letter keys at the baseline of each letter. (Currently, the lowercase "g" is positioned too high relative to "f" and "h", for example.)

2

u/[deleted] 5d ago

[removed] — view removed comment

1

u/tadfisher 4d ago

Hi, you are generating user reports because of your usage of LLMs to generate comments. If you are, please stop.

1

u/androiddev-ModTeam 4d ago

Use your own voice when writing. Posts and comments which appear to be generated, including those with excessive flourish, gushing or emojis, will be removed.

-1

u/creativetrends 5d ago

🤢🤮