Mobile Messaging Using Bangla

Similar documents
Bangla Text Input and Rendering Support for Short Message Service on Mobile Devices

DAY 3 J2ME Aalborg University, Mobile Device Group. Mobile. Mobile Phone Programming

Who am I? Wireless Online Game Development for Mobile Device. What games can you make after this course? Are you take the right course?

Mobile Application Development. Introduction. Dr. Christelle Scharff Pace University, USA

DAY 3 J2ME March 2007 Aalborg University, Mobile Device Group Mobile Phone Programming

Accessing DB2 Everyplace using J2ME devices, part 1

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

The Grid 2 is accessible to everybody, accepting input from eye gaze, switches, headpointer, touchscreen, mouse, and other options too.

Copyright

Series 40 6th Edition SDK, Feature Pack 1 Installation Guide

Mobile Information Device Profile (MIDP) Alessandro Cogliati. Helsinki University of Technology Telecommunications Software and Multimedia Laboratory

Copyright

Developing Mobile Applications

ST.MARTIN'S ENGINEERING COLLEGE Dhulapally,Secunderabad-014

All about the new SCMAD Certification Exam

Wireless Services in Faculty Information System

Lab Exercise 4. Please follow the instruction in Workshop Note 4 to complete this exercise.

WEB MINING FOR BETTER WEB USABILITY

Software Development & Education Center. Java Platform, Micro Edition. (Mobile Java)

Enhancing Viewability of Images of Text in PDF in Mobile Devices

Copyright

Radical GUI Makeover with Ajax Mashup

Bluetooth Scatternet Application. Sun Code for Freedom

Homework 9: Stock Search Android App with Facebook Post A Mobile Phone Exercise

WPF and MVVM Study Guides

Software Development for Mobile Devices

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Client Side JavaScript and AJAX

WELCOME : OVERVIEW Mobile Applications Testing. Copyright

PTViewerME: Immersive Panoramas for PDA and Smartphone

Remote Security Camera Monitoring System

Getting started 7. Setting properties 23

Sortware Comprehension and Μaintenance

Mobile Blogger. Project Guide : Dr. M. B. Srinivas. Submitted By : Anurag Singh Rana ( ) Md. Shakeeb ( ) Parag Agrawal ( )

JSR 248: Taking Java Platform, Micro Edition (Java ME) to the Next Level

Introduction to Mobile Application and Development

Fundamental C# Programming

(Refer Slide Time: 1:12)

David Dylegowski CS 188/297 Final Project Report SocialDialer

Mobile Application Design and Development With the use of J2ME Technology & UML m.khlaif Computer Science Dept Garyounis University

Copyright

TECkit version 2.0 A Text Encoding Conversion toolkit

Introduction to IBM Rational HATS For IBM System z (3270)

A Smart App for Mobile Phones to Top-Up User Accounts for Any Network Service Provider in SriLanka

AppForge MobileVB Samples. December 19, 2002

Oracle Mobile Application Framework

Quick Start. 2.1 Hello World Project Template. 2.2 Running Carbide.c++ IDE

Phony Programming (Series 60 Symbian Phones)

Chapter 1 Getting Started

Mobile Game Programming. Just that facts.

Mobile Computing Professor Pushpedra Singh Indraprasth Institute of Information Technology Delhi Activity Logging Lecture 16

Early Access Program User Guide

University of Maryland at College Park Department of Geographical Sciences GEOG 477/ GEOG777: Mobile GIS Development

Vision Document. Online E-commerce Music CD Store Version 2.0

Reach the Next Billion with Engaging Apps: Full Developers

Create new Android project in Android Studio Add Button and TextView to layout Learn how to use buttons to call methods. Modify strings.

CM0256 Pervasive Computing

Project Overview. Readings and References. Initial project motivation. Opportunity. References. CSE 403, Winter 2003 Software Engineering

Script for Visualization of Algorithms: Framework for Animation Environment and Composite Structures

CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM

Petr Suchomel Architect, NetBeans Mobility

National College of Ireland BSc in Computing 2017/2018. Deividas Sevcenko X Multi-calendar.

Computational Applications in Nuclear Astrophysics using Java Java course Lecture 1

INTERNATIONALIZATION IN GVIM

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0. L J Howell UX Software Ver. 1.0

Software Applications for Cultural Diversity

C++Builder - Frequently Asked Questions

Microsoft Excel - Macros Explained

EMCO MSI Package Builder Professional 7. Copyright EMCO. All rights reserved.

Phone Works Kingston Ltd.

Java Concurrency in practice Chapter 9 GUI Applications

Solution overview VISUAL COBOL BUSINESS CHALLENGE SOLUTION OVERVIEW BUSINESS BENEFIT

Mobile Game Programming

User Task Automator. Himanshu Prasad 1, P. Geetha Priya 2, S.Manjunatha 3, B.H Namratha 4 and Rekha B. Venkatapur 5 1,2,3&4

CPS122 Lecture: Detailed Design and Implementation

Universal Inbox Application for the Series 60 Platform

Extensible Rendering for Complex Writing Systems

Mensch-Maschine-Interaktion 2

Know which Edition is right for you by using this sales tool!

Java 2 Micro Edition: Professional Developer's Guide By Eric Gigu?re

customization tools!

Developing Games for J2ME Technology- Enabled Mobile Devices

Programming In Java Prof. Debasis Samanta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

IT322 Software Engineering I Student Textbook Exchange System Software Requirements Specification. Prepared by

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview

Midterms Save the Dates!

Note 8. Internationalization

Karlen Communications Track Changes and Comments in Word. Karen McCall, M.Ed.

Android project proposals

ASSESSMENT COVER SHEET FOR Subject: COMPUTER PROGRAMMING Subject Code:BMM1312 PROJECT REPORT UMMU KULTHUM BINTI JAMALUDIN

Introduction to Computers and Java. Objectives. Outline. Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich.

Introduction to Computers and Java

Opera Mini Manual For Pc Latest Version Windows 8

Phony Programming (Series 60 Symbian Phones)

Getting Started. Chapter 1. Java Programming FROM THE BEGINNING. Chapter 1: Getting Started

Top Producer SellPhone Quick Setup

The Development of Mobile Shopping System Based on Android Platform

Introduction to Computers and Java

Distributed Gaming using J2ME. By Rekha Vaddepalli

Introduction to Mobile Development

Transcription:

1 Mobile Messaging Using Bangla Tofazzal Rownok ID# 01101040 Department of Computer Science and Engineering December 2005 BRAC University, Dhaka, Bangladesh

2 DECLARATION I hereby declare that this thesis is based on the results found by myself. Materials of work found by other researcher are mentioned by reference. This thesis report, neither in whole nor in part, has been previously submitted for any degree. Signature of Supervisor Signature of Author

3 ACKNOWLEDGEMENTS Special thanks to Dr. Mumit Khan, Associate professor, Department of Computer Science and Engineering, BRAC University, who suggested and encouraged me highly to pursue this project and also provide me all sorts of assistance that has really made it possible for me to accomplish this project. Special thanks to Shadid haque, Lecturer, Department of Computer Science and Engineering, BRAC University, who familiarized me with J2ME.

4 ABSTRACT Mobile messaging using Short Message Service (SMS) is a popular way to communicate easily and in short time. There are an estimated five million mobile users in Bangladesh and the number is increasing by the day. The majority is however unable to communicate in English, and without Bangla language support in the messaging system, they are unable to use SMS. Unfortunately, none of the mobile operators in Bangladesh provide native Bangla language support. The challenges in adding Bangla support to SMS include an input method for Bangla as well as a rendering system capable of rendering the Bangla script on the mobile display. The input method can be implemented by creating a key map a reasonably straightforward task. The rendering system is much more complex as most mobile devices do not include support for rendering Indic scripts such as Bangla. As part of my thesis, I will address both of these challenges and design a mobile application that will allow the users communicate in Bangla via SMS. The application will be developed for the Symbian OS, and will be tested on Nokia Series 60 mobile phones.

5 TABLE OF CONTENTS TITLE PAGE DECLARATION 2 I ACKNOWLEDGEMENTS 3 ABSTRACT 4 TABLE OF CONTENTS 5 LIST OF FIGURES 6 CHAPTER 1:INTRODUCTION 1 CHAPTER 2: ANALYSIS 3 2.1 KEY MAP... 3 2.2 RENDERING... 4 CHAPTER 3: PLANNING 5 3.1 REQUIREMENT... 6 3.2 DESIGN... 10 3.3 IMPLEMENTATION... 16 3.4 TESTING... 21 CHAPTER 4:FUTURE IMPROVEMENTS 26 CHAPTER 5: CONCLUSION 27 LIST OF REFERENCES 28

6 LIST OF FIGURES FIG 2.1: KEY MAPPING TECHNIQUE.... 3 FIG 3.1: USE CASE DIAGRAM OF THE SYSTEM... 7 FIG 3.2: SYSTEM SEQUENCE DIAGRAM OF THE USE CASE -TYPE MESSAGE IN BANGLA... 13 FIG 3.3: SYSTEM SEQUENCE DIAGRAM OF THE USE CASE DISPLAY BANGLA TEXT.... 14 FIG 3.4: MODEL VIEW CONTROLLER OF THE SYSTEM... 15 FIG 3.5: KEYPAD LAYOUT FOR THE APPLICATION.... 20 FIG 3.6: DEPLOYMENT PROCESS WITH APPFORGE CROSSFIRE.... 22 FIG 3.7: INITIAL SCREEN WITH BUTTONS USING APPFORGE CROSSFIRE... 23 FIG 3.8: TEXT AREA TO TAKE INPUT FROM USERS AND TO SHOW USING APPFORGE CROSSFIRE.... 23 FIG 3.9: INITIAL SCREEN WITH BUTTONS USING C#.... 24 FIG 3.10: TEXT AREA TO TAKE INPUT FROM USERS AND TO SHOWS USING C#... 24 FIG 3.11: INITIAL SCREEN WITH BUTTON USING J2ME.... 25 FIG 3.12: TEXT AREA TO TAKE INPUT FROM USERS AND TO SHOW USING J2ME... 25

7 CHAPTER 1 1. INTRODUCTION Technology is the most important thing that involve in our everyday life. It is involving in almost every aspect of life like communication, work, shopping, recreation etc. Communication through mobile phone is the most effective and easy way now a day. It is faster, easier and you can communicate whenever you want from anywhere. There are approximately 8-9 million mobile users in Bangladesh and it is only 7% of our total population. Mobile users are increasing rapidly but problem is more than 60% of them are unable to operate their mobile properly and for this they are unable to use all the features that are included in their mobile phones. Mobile messaging or short message service is one of the popular ways to communicate. It is instant and also we can send message from Bangladesh to almost all other countries but sometimes we may not use our mobile phones to make a phone call in other countries. Though many of our mobile users are unable to take facilities we need a language preference so that we can understand the features and use them properly. There is no language preference to send or receive messages. So users who are unable to understand English they have the facility of sending messages but they are unable to use it. Language preference for those people may increase the usability of SMS.

8 Now a days the idea of Bangla messaging is spreading there are some application developed and still developing. One of the applications in which user use English letters to write Bangla words and then it is convert into an image and send to the receiver, some limitations of this application is user using English letters so user can not see what is he/she writing, user needs to remind all the English key words of corresponding Bangla words, another limitation is the converted image is displayable only specific mobiles. Other application developed using java so only java enable mobile phone can run these applications. There are also some other problems like user writing a message in bangla but the receiver must have a viewer application in his/her mobile phone other wise receiver will unable to see the received message. Also both the sender and receiver mobile phones need to be a java enable mobile phone. To develop such application we don t have so many choices. So what we can do we can use more platforms like we can use java for java enable mobile phones and Microsoft Visual Studio.net(c#) for mobile phone based on Windows CE. There are very few mobile phone users in Bangladesh, which has cell phones with java or windows CE; the number is increasing day by day So to write a SMS using bangla and displayable it to users when they are writing and also displayable it to receiver is important to make the SMS facility usable to those people who are unable to understand English.

9 CHAPTER 2 2. ANALYSIS The challenges in adding Bangla support to SMS include an input method for Bangla as well as a rendering system capable of rendering the Bangla script on the mobile display. The input method can be implemented by creating a key map. The rendering system is much more complex as most mobile devices do not include support for rendering Indic scripts such as Bangla. 2.1 Key Map Now to implement the input method what we can do is we can use a data structure where there will be an assigned english letter for each bangla letter. Like when user presses a button to write অ (first bangla letter) what he/she is pressing english letter but we will take that english letter and we will come up with corresponding bangla letter. A B C অ আ ই User see অ User Press A Fig 2.1: Key mapping technique.

10 2.2 Rendering Now to displayable these bangla letters to user in their mobile device s screen we need to render our text. Rendering means process of generating text Bangla is an Indic script. There are some rules, features of Indic script to render it in a screen. There are vowels and consonants, vowels are written in specific position relative to consonant like- ক ক it is knows as reordering. Then we have splitting sometimes in one vowel we have two components so according to consonants we have to place these components in a way so that it take place appropriately with consonants like- ক ক Then we have our bangla ligatures. It is one of the most important features of bangla language. Some times we have to combine multiple characters into a single character. In contextual shaping the shape of a character is depends on its neighbor characters or sometimes position within the word. Then we have diacritic placement it is about smart positioning there are few characters which placed together like- So how will it shown in mobile screen? Now to render text with these Indic script features we have to generate some rules so that we can show specific bangla characters in mobile screen.

11 CHAPTER 3 3. PLANNING In Planning phase now we have to come up with scopes of the project the required requirements for the project,design of the project, Implementation,testing of the project. Requirement Design Implementation Testing

12 3.1 Requirement In requirement phase of developing the application we have to come up with- Features Use-case name, Actors Briefly written use case and some specification analysis Features The Name of the Thesis is Mobile Messaging in Bangla So two main features will be Type Message in Bangla. Display The Message in mobile screen [Bangla letters]. Then - Send the message. - Save the message. So according to our features the two main Use case will be Type Message in Bangla Display Bangla Text

13 Our Actor will be the User Type Message in Bangla Display Bangla Text Mobile Messaging in Bangla Fig 3.1: Use Case diagram of the system. Brief Use cases: Use Case: Type Message in Bangla. Primary Actors: User. Stakeholders: User Wants to write message in Bangla. Precondition: User must have knowledge of how to write Bangla. Post condition: Input character within 160 characters. Some scenario: User will open the editor to write. To write specific word user will enter some letter from mobile keypad. After user enters letters Process will take the specific key s Unicode value and give to system to come up with the Bangla letter within that Unicode value.

14 Use Case: Display Bangla text. Primary Actors: User. Stakeholders: User Wants to see what he is typing. Precondition: type something. Post condition: Display as written. Some scenario: Now process has the Unicode value. Check if there is any rule within this key value about its positioning or other features like- is it dependent on next character or not. After analysis all rules related with that key value we have to come up with a glyph data or the actual character to show Then show the character according to rules and its Unicode value.

15 Specification C# with Appforge Crossfire Appforge.Fuser Namespace Provides classes that allow functions from an external system library (dll) to be accessed from within an Appforge application. Appforge crossfire also support some.net CLR [common language runtime] Like- System. Text Namespace Under this CLR there are some classes for Unicode help like Encoding Class Unicode Encoding Class UTF8Encoding Class J2ME Provides j2me default classes as well as java standard edition classes. Support for Indic script rendering.

16 3.2 Design In Design phase of developing the application we have to come up with- Fully dressed use case, UML SSD then MVC Implement some example programs.

17 Use Case: Type Message in Bangla. Primary Actors: User. Stakeholders: User Wants to write message in Bangla. Precondition: User must have knowledge of how to write Bangla. Input character within 160 characters. Post condition: Characters are correctly formatted. Main Success scenario: 1. User will open the menu from his/her mobile. 2. Then choose write message option from menu. 3. An editor will open to type message. 4. To write words user will enter some letters from mobile keypad. 5. System will take the letter given by the user and come up with the specific Bangla letter within the information system has. Extensions: *a. At any time system fails 1. Restart the system. 4a. Typing Error: 1. System signals error and reject entry. Special Requirements: None Technology and Data Variations List: Mobile keypad will use to write the text.

18 Use Case: Display Bangla text. Primary Actors: User. Stakeholders: User Wants to see what he/she is typing. Precondition: User must type something to display. Post condition: Display text as written. Main Success scenario: 1. System has the specific information and key values. 2. System check the rule within this key value about its positioning or other features like- is it dependent on next character or not, splitting etc.. 3. After analysis all rules related with that key value system has to come up with a glyph data or the actual bangla character to show. 4. Then show the character according to rules and its key value. Extensions: *a. At any time system fails 1. Restart the system. 4a. Error in Displaying: 2. Find out the error is it problem with positioning or anything else then solve it according to the problem. Special Requirements: None Technology and Data Variations List: Indic rendering rules will use to display the text.

19 SSD : User Type Message in Bangla openmenu() : System openwritemessage() showtextbox() write() Return a textbox property so that user can write message System will take each character of the textbox and will come up with the specific key value for that character Fig 3.2: System Sequence diagram of the use case -Type message in Bangla.

20 Display Bangla Text : User : System showtext () Return Bangla text according to the characters user writes so that user can see the message System has the specific key value and rules according to the character position, its dependency on next character etc. System will generate bangla characters within that information it has. Fig 3.3: System Sequence diagram of the use case Display Bangla text.

21 MVC Model View Controller Model Data representation. View User Interfaces. Controller- Event Handling. Write View Click Button Controller OnClick () - MessageBox Text Box Text Box Write TextBox.show TextChange () Module MapChar () Render () Fig 3.4: Model View Controller of the system.

22 3.3 Implementation In implementation phase of Mobile messaging in Bangla I am using Java [J2ME] and also C#. Java is for mobile phones which are using Symbian OS and other mobile phones, which are not using Symbian OS, but Java enable. C# is for mobile phones which are using Windows CE [Microsoft Windows for mobile and handheld devices] and other mobile phones which are using Palm OS. To implement the concept Three classes will be use BanglaUi BanglaController BanglaModel

23 BanglaUi public class BanglaUi extends MIDlet { Display display; // Object of Display Class to display the form. Form form = null; // Object of Form Class where all displayable object like-text field etc will take place. TextField msg = null; // Object of Text Field Class where user will write. BanglaControl send=null; // Object of BanglaController Class which will handle events of user interface. public BanglaUi() { } public void startapp() { // after starting the application what will given to user will add here. } public void pauseapp() { // If there is any interrupt from the device what will the application do will add here. } public void destroyapp(boolean unconditional) { } // after user close the application if anything to do, will add here.

24 BanglaController public class BanglaControl { BanglaModel mapper=new BanglaModel(); // Object of BanglaModel Class. BanglaUi message=null; // Object of BanglaUi Class. Char text_char []; public BanglaController(TextField a){ //Text field Item will be come from the BanglaUi and Item State Listener Interface is used for change the text. ItemStateListener listener = new ItemStateListener() { public void itemstatechanged(item item) { // Text field Item will be come from the BanglaUi TextField f = (TextField) item; f. getchars(text_char); // Copies the contents of the Text Field into Character array. } } }; message.form.setitemstatelistener(listener); // to set the event handler for the BanglaUi Class

25 BanglaModel public class BanglaModel { char vowels[ ][ ]; char consonants[ ][ ]; // for holding the English characters and corresponding Bangla Character. Public void CharMap(char keys[ ]){ // It will get the every character of the text field from controller and then check the character in the character array it has (Vowels, Consonants)and will give the corresponding bangla character. public BanglaModel () }

26 For mapping all the characters we need to follow a keyboard layout. Avro keyboard layout is followed to develop this application Fig 3.5: Keypad Layout for the application. A data structure is implemented which have both bangla letters and english letters. User press an english letter and system come up with specific bangla letter according to Avro keyboard layout.

27 3.4 Testing In testing phase now we have the application we have to deploy it in an emulator to see the desired output. There are several emulator based on Symbian OS Nokia Series 60 Microsoft windows CE J2ME Symbian Symbian OS Nokia series 60 has several version of emulator. Also it has different features included like for java application development or for.net application development. To deploy Mobile messaging in Bangla I used Series 60 2nd Edition SDK for Symbian OS, Supporting Feature Pack 3. This emulator is for.net application development. Now for develop an application in.net and deploy it in Symbian OS emulator we need softwares called Appforge Crossfire and crossfire Client. Appforge Crossfire is a software which create environment same as.net but for Symbian OS specific features and also through Appforge crossfire we can use Symbian OS system libraries. Now we have to install crossfire client in Symbian OS emulator and then we can direct deploy it from Appforge Crossfire. When we deploy the application through crossfire and crossfire client it creates some files from the source file that are known to emulator files like- sis, rsc, app etc. It also creates a series 60 specifications by which we can use the keypad.

Fig 3.6: Deployment process with Appforge crossfire. 28

29 Fig 3.7: Initial screen with buttons using appforge crossfire.. Fig 3.8: Text Area to take input from users and to show using appforge crossfire.

30 Microsoft Windows CE Deploy an application in Windows CE emulator is as easy as deploy it in Windows XP. In.NET IDE (Integrated development Environment) we can debug the source file of an application that is written in C#. When we create a project in.net it gives us options to choose the platform. So if we initially choose it windows CE then it will debug our source file as windows CE specification. Fig 3.9: Initial screen with buttons using c#. Fig 3.10: Text Area to take input from users and to shows using c#.

31 J2ME J2ME (Java 2 Micro Edition) is light version of java to develop application for mobile devices. In J2ME wireless toolkit we can create a project and also we can run MIDP (Mobile information device profile) applications. When we create project toolkit create some folders in its application folder like rsc, class, source etc. then when we run an application it use java interpreter to read a specific class files and act according to that. We also can build jad and jar file to install it in a java enable mobile phone. Fig 3.11: Initial screen with button using j2me. Fig 3.12: Text Area to take input from users and to show using j2me.

32 CHAPTER 4 4. FUTURE IMPROVEMENTS The application developed wills only work in mobile phones based on Symbian OS, Microsoft Windows CE or Java enable. So there is a restriction for users. But to develop such an SMS based application with native language support we need many features like-rendering Indic script, are available only in update or next generation mobile phones. So to get benefit we need to be update with technological improvements. The application does not include any intelligent input system or spell checking. Writing bangla in a mobile device is much more complicated then writing in a computer. Because to find a desire character we need to press a key several times also we have ligatures. So in future an intelligent input system like T9 can add with the application so that user can find desire word more easily. T9 is an input system through which we can find a word with less key pressing like in normal writing to write ত ম we have to press 8 two times, 3 one time, 6 one time and 3 three times but if we have a imput system which has a data structure with a word and specific code like for ত ম it may 8363 then when user press 8,3,6,3 keys in his/her mobile input system take those numbers and check the specific word and shows it to users. It will reduce key pressing and also time to write a SMS. We also need to concentrate to the receiver end of SMS. Because in receiver end there is also need an application to view the content of the SMS that is bangla. To implement such application we can use character to image or bitmap conversion logic. If we can use character to image or bitmap convert processing to send SMS then receiver may able to see the content from mobile phones, which support image or bitmap. All most all of the mobile phones support image that are available in Bangladesh

33 CHAPTER 5 5. CONCLUSION One of the Challenges of send and receive Bangla SMS is that mobile phones with support of rendering Indic script, Java etc. has high price. Most of the mobile phone users in Bangladesh are unable to buy a mobile phone that has such features. For this such application may not a good solution but as technological improvement is increasing and everybody is looking forward we also have to cope up with improved technology to be beneficial. This application also can be integrated by mobile providers through which deployment process can be omitted.

34 LIST OF REFERENCES [1] Symbian OS official website http://www.symbian.com [2] Appforge official website http://www.appforge.com [3] Helps, tutorials to develop application for Symbian OS http://www.newlc.com [4] Information on Microsoft windows for mobile http://www.microsoft.com/windowsmobile/default.mspx [5] Java official website http://java.sun.com [6] Michael juntao Yuan Enterprise J2ME Developing mobile java Applications Prentice Hall PTR

35