Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Droidcon India 2015 - Android & Indic Languages

Jishnu Mohan
December 17, 2015

Droidcon India 2015 - Android & Indic Languages

Talk about challenges in developing Indic apps for Android. Details about Libindic-android library and Indic Keyboard, both Free and Open Source projects.

Jishnu Mohan

December 17, 2015
Tweet

More Decks by Jishnu Mohan

Other Decks in Technology

Transcript

  1. Android & Indic Languages

    View Slide

  2. View Slide

  3. View Slide

  4. http://j15h.nu/languages

    View Slide

  5. Motorola Moto G1
    Android 5.1

    View Slide

  6. Sony Z3
    Android 5.1

    View Slide

  7. Samsung Galaxy Note 5
    Android 5.1

    View Slide

  8. github.com/jishnu7/Mobile-Indic-Support

    View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. History of
    Android & Indic Languages

    View Slide

  14. languages other than hindi

    View Slide

  15. complex script rendering

    View Slide

  16. harfbuzz-ng in android 4.2

    View Slide

  17. Noto Sans

    View Slide

  18. challenges
    lack of fonts / language support in general
    input support
    rendering issues
    application size

    View Slide

  19. Indic Project
    input
    Indic Keyboard
    Varnam
    Firefox OS Keyboard
    accessibility
    Dhvani
    Ibus Sharada Braille
    data
    Grandham Project
    Development
    Libindic
    Libindic SDK

    View Slide

  20. Indic Keyboard

    View Slide

  21. View Slide

  22. Indic Keyboard Google Indic Keyboard
    free and Open Source proprietary
    23 languages 12 languages
    55 layouts 23 layouts

    View Slide

  23. অসমমযয (Assamese)
    বযবলয (Bengali)
    ગગજરરતત (Gujarati)
    हहिन्ददी (Hindi) ಕನನಡ (Kannada)
    رش
    ش أک (Kashmiri)
    മലയയളള (Malayalam)
    মমততলললন (Manipuri/Methei)
    ममैथथिलली (Maithili)
    मरराठठी (Marathi)
    ननेपरालली (Nepali)
    ଓଡଡଆ (Oriya)
    ਪਪਜਜਬਬ (Punjabi)
    ससंस्क
    कृ त (Sanskrit)
    ससंतरालली (Santali)
    தமமழ (Tamil)
    తలగ (Telugu)
    ودرا (Urdu)
    ة
    ش يبب رر ع
    ر لا (Arabic)
    မမြနန်မြမာစမာ (Burmese)
    ဘသ မြနန်; (Mon)
    සසහල
    (Sinhalese)

    View Slide

  24. solution
    extended version of AOSP keyboard
    20+ languages
    50+ layouts
    free and Open Source
    dictionary based word suggestion

    View Slide

  25. 55 layouts

    View Slide

  26. transliteration

    View Slide

  27. compact

    View Slide

  28. phonetic

    View Slide

  29. inscript

    View Slide

  30. jquery.ime java/android port

    View Slide

  31. dictionary based word
    suggestions

    View Slide

  32. how to get it
    Google Play Store / F-Droid

    View Slide

  33. How to contribute
    testing and feedback
    help on layouts
    more languages
    documentation

    View Slide

  34. https://gitlab.com/smc/indic-keyboard/issues
    https://github.com/smc/Indic-Keyboard/issues

    View Slide

  35. compiling
    $ git clone --recursive [email protected]:smc/Indic-Keyboard.git
    $ cd Indic-Keyboard/java
    $ gradle assembleDebug

    View Slide

  36. Libindic SDK

    View Slide

  37. problem
    lack of Free/Libre and Open Source libraries

    View Slide

  38. solution
    15+ language computing algorithms
    language detection
    cross language search
    script rendering

    View Slide

  39. github.com/libindic/libindic-sdk

    View Slide

  40. View Slide

  41. View Slide

  42. use cases
    support older versions of android
    user input without asking user to install custom keyboard
    & many more!

    View Slide

  43. how to use it in your app
    direcly add in gradle / download source code and add to your project /
    download aar file from maven central and add as a local dependency

    View Slide

  44. // preferred method
    dependencies {
    compile 'org.libindic:sdk-common:1.0.0@aar'
    compile 'org.libindic:sdk-render:1.0.0@aar'
    compile 'org.libindic:sdk-transliteration:1.0.0@aar'
    }

    View Slide

  45. android:id="@+id/editText"
    transliterator:targetLanguage="kannada"
    transliterator:transliteratedTextOutputTo="@+id/editText"/>

    View Slide

  46. how to contribute
    feedbacks
    find bugs
    contribute additional algorithms

    View Slide

  47. $ git clone --recursive [email protected]:libindic/libindic-sdk.git
    $ cd libindic
    $ gradle assembleDebug

    View Slide

  48. What AOSP (Google) can improve
    language tests on CTS
    support libraries

    View Slide

  49. Thank You!
    Jishnu Mohan
    http://j15h.nu
    [email protected]

    View Slide