User:Wilderz: Difference between revisions

From SMC Wiki
(Created page with "== Personal information == '''Name ''': Jaydeep Singh '''Email ''': jay.jaydeepsingh@gmail.com '''Phone ''': +919098386505 '''Freenode IRC nick''' : wilderz '''Current Edu...")
 
No edit summary
Line 40: Line 40:


== Details about the project and implementation ==
== Details about the project and implementation ==
=> To add an IME to the Android system, we have to create an Android application containing a class that extends InputMethodService[1] and add it in the Manifest file. In addition, we also create a ''settings'' activity the passes option to the IME service.
=> To add an IME to the Android system, we have to create an Android application containing a class that extends InputMethodService[1] and add it in the Manifest file. In addition, we also create a ''settings'' activity that passes option to the IME service.
   
   
=> The project will be roughly based on default LatinIME[2].
=> The project will be roughly based on default LatinIME[2].

Revision as of 23:38, 18 March 2014

Personal information

Name : Jaydeep Singh

Email : jay.jaydeepsingh@gmail.com

Phone : +919098386505

Freenode IRC nick : wilderz

Current Education : 3rd year Computer Science and Engineering, National Institute of Technology Bhopal

Why SMC : I really appreciate the work this organisation is doing and would love to contribute along with you in empowering our society to learn and use technology in their native language.

Other commitments : My college exams will be held during the last week of April, after which my classes will reopen in second week of July. I assume i'll have sufficient time to work on the project and give the best possible result. I will give at least 40 hours per week to the project and try to complete the milestones managing the time efficiently.

Why me : I have good understanding of C and Java along with android framework which are necessary for the project. I will be involved with the project even after GSOC 2014 adding features and updates to make it better.


Introduction

To create an android IME(Input Method Editor) which uses varnam internally, we must consider a few questions first:

What is the main purpose for creating such an application on android platform? How will we create the proposed IME? What would be its features? How are we going to compile Varman on android ? How will the IME interact with Varnam and give predictions to user.

I will try to answer these questions in best possible way in my proposal.


Need for such IME?

Simply beacuse it would be awesome!

An input method editor(IME) is a user control that enables users to enter text. Once installed the user can select which IME they want to use from the system settings and use it across the entire system.

Varnam is a powerful tool for the purpose of transliteration for Indian languages and can be currently used on Chrome & Firefox with the help of addons and locally using Ibus engine. But there is no way to use Varnam on our phones so that we can interact with friends and family in our native language. The proposed IME would be a predictive transliterator for Indian languages which takes input through a soft keybord and provide best possible results in a View above the keyboard.


Details about the project and implementation

=> To add an IME to the Android system, we have to create an Android application containing a class that extends InputMethodService[1] and add it in the Manifest file. In addition, we also create a settings activity that passes option to the IME service.

=> The project will be roughly based on default LatinIME[2].

=> Basically it would work like the suggestion feature except it would send the key strokes to varnam for transliteration and show results on the View above the keyboard. An android service will be created which would get the string the user is currently typing by Overriding InputMethodService.onKey(). (@Override is a java annotation used to mark methods that override a method declaration in a superclass).

=> Varnam is written in C which would be good for the IME since it will overcome the limitations of Java, such as memory management and performance. Android provides Native Development Kit(NDK) to support native development in C/C++, besides the Android SDK. This application will have its API in Java and transliteration service i.e varnam in C.

=> To compile varnam, it will be placed in a sub-directory jni and a Android.mk file will describe the native source to the NDK build system. Running ndk-build script from projects directory will build the native code.