Skip to content

AnerysRynz/AnKeyboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AnKeyboard - Smart Multilingual Keyboard

AnKeyboard is a modern, minimalist smart keyboard for Android with intelligent word learning, real-time translation, multi-language support, and Material Design 3 aesthetics.

🌟 Key Features

Core Keyboard Features

  • Smart Learning: Learns from your typing habits and predicts words
  • Autocorrect: Intelligent auto-correction with visual suggestions
  • Emoji Picker: Complete emoji collection with quick access (50+ emojis)
  • Text Editing: Full editing toolbar with cut, copy, paste, select all
  • Gesture Typing:
    • Swipe left: Delete word
    • Swipe right: Add space
    • Swipe down: Hide keyboard
    • Swipe up: Show emoji picker

Translation Features

  • Google Translate Integration: Real-time text translation using MyMemory API
  • 7 Languages Supported:
    • Indonesian (Bahasa Indonesia)
    • English
    • Spanish (EspaΓ±ol)
    • French (FranΓ§ais)
    • German (Deutsch)
    • Chinese (δΈ­ζ–‡)
    • Japanese (ζ—₯本θͺž)

UI/UX Features

  • Modern Design: Material Design 3 with clean, minimalist interface
  • Dark Mode: Full dark theme support with auto-detection
  • Responsive Layout: Optimized for all screen sizes
  • Smooth Animations: Polish and feedback with Material transitions

Personalization

  • Multi-Language UI: Select your preferred interface language
  • Theme Selection: Light, Dark, or Auto (system) theme
  • Sound & Vibration: Toggle keyboard feedback options
  • Advanced Settings: Customize learning and autocorrect behavior

πŸ“² Installation & Setup

Prerequisites

  • Android 5.0 (API 21) or higher
  • 50MB free storage space

Installation Steps

  1. Download & Install

    • Download the APK or clone the repository
    • Install the app on your Android device
  2. Enable Keyboard

    • Open Settings β†’ Language & input β†’ Virtual Keyboard
    • Search for "AnKeyboard"
    • Toggle the enable switch
  3. Set as Default

    • Open AnKeyboard app
    • Click "Select AnKeyboard" button
    • Choose AnKeyboard from the keyboard picker
  4. Configure Settings

    • Long-press any text field and select "AnKeyboard"
    • Or open the AnKeyboard app and adjust settings in "Settings" tab

πŸ”§ Configuration

Language Settings

Open the AnKeyboard app and navigate to Settings to:

  • Change UI language (7 languages supported)
  • Select keyboard language
  • Enable/disable translation feature
  • Choose translation target language

Theme Preferences

  • Light Mode: Clean white interface (default)
  • Dark Mode: Dark background with light text
  • Auto Mode: Follows system settings

Keyboard Behavior

  • Enable/disable sound feedback
  • Enable/disable vibration feedback
  • Control word learning (Learning)
  • Control autocorrect suggestions
  • Adjust translation behavior

🎯 Advanced Features

Word Learning System

  • Learns from every word you type
  • Maintains frequency counts for smarter predictions
  • Shows top suggestions in real-time
  • Auto-suggests based on typing patterns

Translation

  • Powered by MyMemory Translate API (free, no API key needed)
  • Translates as you type (when enabled)
  • Supports all UI languages for translation
  • Asynchronous translation to avoid latency

Gesture Recognition

  • Left Swipe: Delete entire word (50 characters max)
  • Right Swipe: Add space character
  • Down Swipe: Hide keyboard
  • Up Swipe: Show emoji picker

πŸ“± Screenshots & Usage

Main Activity

  • Setup buttons for easy first-time configuration
  • Test input field to try keyboard features
  • Language selector (4-language quick toggle)
  • Theme toggle (Light/Dark/Auto)
  • Translation settings panel

Keyboard View

  • Clean and minimal key layout
  • Real-time word suggestions
  • Candidate bar with autocorrect suggestions
  • Full QWERTY layout support

πŸ” Privacy & Security

  • No Cloud Sync: All data stored locally
  • No Collection: User typing is never sent to servers
  • Translation Only: Only text sent for translation (when enabled)
  • Open Source: LGPL-3.0 licensed code
  • No Tracking: No analytics or tracking code

πŸ› οΈ Development

Technologies Used

  • Android SDK 34
  • Jetpack (AppCompat, Preferences, ConstraintLayout)
  • Material Design 3
  • OkHttp 4 for networking
  • Retrofit 2 for API calls
  • Gson for JSON parsing

Project Structure

AnKeyboard/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”‚   β”œβ”€β”€ java/com/ankeyboard/app/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ MainActivity.java (Setup & Settings)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ AnKeyboardService.java (Core Keyboard)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ SettingsActivity.java (Advanced Settings)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ LanguageManager.java (Language & Theme)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ TranslateManager.java (Translation API)
β”‚   β”‚   β”‚   β”‚   └── LearningDictionary.java (Word Learning)
β”‚   β”‚   β”‚   β”œβ”€β”€ res/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ layout/ (UI Layouts)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ drawable/ (Icons & Shapes)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ values/ (Strings, Colors, Arrays)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ values-xx/ (Multilingual strings)
β”‚   β”‚   β”‚   β”‚   └── xml/ (Keyboard layouts & preferences)
β”‚   β”‚   β”‚   └── AndroidManifest.xml
β”‚   β”‚   └── build.gradle
β”‚   └── settings.gradle
β”œβ”€β”€ build.gradle
└── README.md

Building from Source

# Clone the repository
git clone https://github.com/AnerysRynz/AnKeyboard.git
cd AnKeyboard

# Build the project
gradle build

# Install on device
gradle installDebug

πŸ› Troubleshooting

Keyboard doesn't appear

  • Ensure keyboard is enabled in Settings β†’ Language & input β†’ Virtual Keyboard
  • Check "Enable AnKeyboard" toggle is ON
  • Restart the device

Translation not working

  • Enable translation in AnKeyboard settings
  • Check internet connection
  • Ensure target language is selected
  • MyMemory API should be accessible from your region

Words not learning

  • Enable "Learning" in advanced settings
  • Type longer words (minimum 2 characters)
  • Words are saved automatically

App crashes

  • Clear app cache: Settings β†’ Apps β†’ AnKeyboard β†’ Storage β†’ Clear Cache
  • Update to latest version
  • File an issue on GitHub with crash logs

πŸ“Š API Reference

TranslateManager

// Translate text to target language
String translated = TranslateManager.translate(text, "es");

LanguageManager

// Get/Set language preferences
LanguageManager manager = new LanguageManager(context);
manager.setUILanguage("id");
manager.setTranslateLanguage("en");
manager.setTheme("dark");

LearningDictionary

// Learn new word
LearningDictionary brain = new LearningDictionary(context);
brain.learnWord("keyboard");

// Get predictions
List<String> suggestions = brain.getPredictions("key");

πŸ“ License

AnKeyboard is released under the GNU Lesser General Public License v3.0 (LGPL-3.0).

Copyright (C) 2026 AnerysRynz

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.

🀝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ž Support

For issues, feature requests, or questions:

  • Open an issue on GitHub
  • Check existing issues for solutions
  • For security issues, please email directly

πŸŽ‰ Changelog

Version 1.0 (Initial Release)

  • Modern Material Design 3 UI
  • Smart word learning system
  • Google Translate integration
  • Multi-language support (7 languages)
  • Dark mode with auto-detection
  • Full text editing features
  • Emoji picker with 50+ emojis
  • Gesture typing support
  • Comprehensive settings panel
  • LGPL-3.0 license

πŸš€ Roadmap

  • Cloud sync for learned words
  • More emoji categories
  • Custom dictionary support
  • Gesture customization
  • Keyboard themes
  • Haptic feedback improvements
  • Voice input integration
  • Swipe keyboard layout option

Made with ❀️ by AnerysRynz

GitHub | Issues

Contributing

Contributions are very welcome! Please create an issue or pull request.

Developer

  • AnerysRynz - Main Developer

Developed with ❀️ using Android Studio

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages