אתה צריך מקלדת עם פריסת תווים ייחודית למסד נתונים רפואי? או כזו עם תמיכה בהחלקה לשפה ספציפית? המקלדת המוגדרת כברירת מחדל של אנדרואיד לא תספיק כשאתה צריך מחוות מותאמות אישית, קלט חיזוי לשפה נדירה, או אינטגרציה עם מערכת backend. כתיבת IME משלך באנדרואיד קלה יותר מאשר ב-iOS, אבל יש מלכודות: בעיות insets, אי-תאימות לשדות קלט מסוימים, ודרישות אבטחה מחמירות של Google Play. אנחנו נטפל בהם עבורך. הזמינו פיתוח מקלדת מותאמת אישית עכשיו — אנחנו מוכנים לקחת על עצמנו פרויקטים בכל רמת מורכבות. הניסיון שלנו: מעל 5 שנים בפיתוח IME ו-30+ פרויקטים מוצלחים.
למה המקלדת המוגדרת כברירת מחדל לא עובדת
ה-Gboard הסטנדרטי או מקלדת סמסונג חסרות גמישות: אי אפשר להוסיף מילון חיזוי משלך, להתאים אישית את הפריסה למשתמשים שמאליים, או לשלב סנכרון ענן. מקלדת מותאמת אישית פותרת את הבעיות האלה. היא מעבדת קלט 40% מהר יותר ממקלדות סטנדרטיות בזכות אלגוריתם קלט חיזוי אופטימלי. חסכו עד 30% בזמן פיתוח ובתקציב על ידי שימוש ברכיבים מוכנים.
איך לפתח מקלדת מותאמת אישית לאנדרואיד
מחזור החיים של InputMethodService
המקלדת קיימת כשירות מערכת. קריאות חוזרות מרכזיות:
-
onCreateInputView()— יוצר את תצוגת המקלדת, נקרא פעם אחת -
onStartInputView(EditorInfo, Boolean)— נקרא בכל פעם שהמקלדת מופיעה; כאן אנו קוראים אתEditorInfo.inputTypeכדי לקבוע את סוג השדה (סיסמה, אימייל, מספרים, טקסט רגיל) -
onFinishInputView(Boolean)— השדה איבד פוקוס -
onComputeInsets(Insets)— קריטי לניהול offsets
EditorInfo.inputType הוא bit mask. שדה סיסמה: inputType & InputType.TYPE_MASK_VARIATION == InputType.TYPE_TEXT_VARIATION_PASSWORD. אם לא מטופל במפורש, תיקון אוטומטי וחיזוי מילים יופיעו בשדות סיסמה — דחייה מובטחת מ-Play Store.
בעיות גובה ו-Insets
התלונה הנפוצה ביותר: המקלדת מכסה את ה-EditText. סיבה: יישום שגוי של onComputeInsets. כברירת מחדל, המערכת לא יודעת את כיסוי המסך של ה-IME ולא מזיזה את התוכן.
@Override
public void onComputeInsets(InputMethodService.Insets outInsets) {
super.onComputeInsets(outInsets);
outInsets.contentTopInsets = outInsets.visibleTopInsets;
}זה עובד רק אם אפליקציית המארח משתמשת ב-@Override public void onComputeInsets(InputMethodService.Insets outInsets) { super.onComputeInsets(outInsets); outInsets.contentTopInsets = outInsets.visibleTopInsets; } או adjustResize בתוך adjustPan. אם היא משתמשת ב-windowSoftInputMode — שום דבר לא עוזר, זו האחריות של אפליקציית המארח. יש לתעד זאת.
שליחת טקסט לשדה
קלט תווים: adjustNothing. מחיקה: getCurrentInputConnection().commitText("a", 1). ביצוע commit לטקסט ב-composing (עבור IMEs עם מצבי ביניים, כמו יפנית/סינית): getCurrentInputConnection().deleteSurroundingText(1, 0) + setComposingText().
finishComposingText() יכול להיות InputConnection — זה קורה כשהפוקוס אובד בין קריאות. כל קריאה חייבת להיבדק:
val ic = currentInputConnection ?: return ic.commitText(text, 1) היתרונות של מקלדת מותאמת אישית
| קריטריון | מקלדת אנדרואיד ברירת מחדל | היישום המותאם שלנו |
|---|---|---|
| מהירות קלט | ממוצעת, עד 50 תווים לדקה | עד 70 תווים לדקה באמצעות קלט חיזוי והחלקות |
| תמיכה במחוות | מוגבלת | סט מלא: החלקה, ריבוי מגע, ניתן להתאמה אישית |
| אינטגרציה עם שירותים | לא | API ל-backend, אנליטיקה, סנכרון מילון |
| עיצוב | Material You ברירת מחדל | כל התאמה אישית, אנימציות, מיתוג |
המקלדת המותאמת אישית מעבדת קלט 40% מהר יותר מהסטנדרטית בזכות אלגוריתם קלט חיזוי אופטימלי.
מה כלול בעבודה
בהזמנת פיתוח מקלדת מותאמת אישית turnkey, אנו מספקים:
- עיצוב UX: אבות טיפוס, תרחישי משתמש, בדיקות A/B
- יישום IME ב-Kotlin/Java מאפס או על בסיס קוד פתוח קיים
- פריסות מרובות, שפות, ותמיכה בקלט חיזוי
- אינטגרציה עם Firebase/Supabase לסנכרון ענן
- תיעוד מפתחים מלא (API, אינטגרציה לאפליקציות צד שלישי)
- סיוע בפרסום ב-Play Store, כולל מילוי טופס Data Safety
- הכשרת הצוות שלך על בסיס הקוד ותמיכה לאחר השחרור
שלבי הפיתוח המרכזיים
| שלב | משך | תוצאה |
|---|---|---|
| ניתוח ועיצוב | 2-3 ימים | מפרט טכני, אב טיפוס UI |
| פיתוח IME | 5-10 ימים | מקלדת עובדת עם פונקציונליות בסיסית |
| אינטגרציה ובדיקות | 3-5 ימים | פעולה יציבה במכשירי יעד |
| פרסום ב-Play Store | 1-2 ימים | אפליקציה מוכנה בחנות |
מדריך יישום IME שלב אחר שלב
- צור מחלקה המרחיבה את
null. - יישם את
val ic = currentInputConnection ?: return ic.commitText(text, 1)— החזר את תצוגת המקלדת הראשית. - בתוך
InputMethodService, קרא אתonCreateInputView()כדי להתאים לסוג השדה (סיסמה, אימייל, מספרים). - השתמש ב-
onStartInputView()עבורEditorInfo.inputType,InputConnection,commitText(). - הגדר כראוי את
deleteSurroundingText()כדי להימנע מכיסוי שדות. - בדוק על Android 8+ (API 26).
איך אנחנו בודקים את המקלדת
אנחנו בודקים על מכשירים אמיתיים עם גרסאות אנדרואיד שונות: מינימום Android 8 (API 26) אם לא משתמשים ב-API חדשים של IME. אנחנו בודקים ב-Chrome לאנדרואיד (עם setComposingText() נפרד), Gmail, ושדות עם onComputeInsets(). ניתן להשתמש באמולטור לבדיקות ראשוניות, אבל התנהגות ה-insets שונה. אנחנו מוודאים פעולה תקינה עם אפליקציות מערכת ואפליקציות צד שלישי, כולל רשתות חברתיות ומסנג'רים. מטריצת תאימות נוצרת עבור כל פרויקט.
לפי תיעוד המפתחים של אנדרואיד, InputMethodService הוא הבסיס לכל ה-IMEs.
לוח זמנים ועלות
זמן פיתוח: 1 עד 3 שבועות. תלוי אם נדרשים קלט חיזוי, תמיכה רב-לשונית, ועיצוב מותאם אישית. צרו קשר להערכת עלות וחיסכון בתקציב. קבלו ייעוץ באותו היום.







