Professional Documents
Culture Documents
R -evolution
Newsletter for the Developer Community
For Private Circulation only
February 2005
Editorial
Dear Developers, 'I have never allowed my schooling to interfere with my education,' said Mark Twain, commenting on the lack of fun in learning in schools. Education is serious business but it can be made fun. To approach learning as an onerous task renders the same dull and dreary. The future belongs to children and adults who adapt themselves to the new environment where creativity is valued. One can learn a lot from solving problems that are game-like in their content. That's why interactivity forms an essential part of the new learning process. The ubiquitous mobile phone is an ideal platform where edutainment and interactive applications can transform serious activity like education to a fun filled experience. In our Application of the Month section, read more about the 'Ncyclopedia' application developed by Itellix, where a voluminous encyclopedia is squeezed into your hand phones for easy and interactive reference. In order to encourage participation of the DADP member community in R-evolution, by way of articles, tips, feedback and suggestions, we welcome you to write in to our 'Interactive' section. In our Technology Tips section, we continue with our articles on Reliance APIs. In this issue, you will find illustrations for use of the Util API package for creating Reliance specific applications. Looking forward to receiving your useful feedback and valuable suggestions.
- S P Narayanan
Interactive JDTS
Quiz
R-evolution
www.dadp.com
EN/2005-2
Lead Story
R-evolution
www.dadp.com
the application accessible to a much larger population in India. The application design is flexible - making it possible to support other language dictionaries in future without change in code. 'Kidzworld' is another such application on R World for kids, which informs in an entertaining way. Features such as 'FactMonster' in the application provide information on favorite pastimes like P o k m o n a n d H a r r y P o t t e r. Whiz Kid' tests childrens' knack for math, cartoons, wildlife, and more. To make it engaging and interactive, there is a scoring system, which allows one to see his/her name on the Whiz Kid Top Scorer List. The 'Word Wizard' section allows kids to know the meanings of words. As a result of the increased use of mobile communications, it is expected that the use of edutainment in mobile environment will be very significant in the future. tutorial where one can learn different languages in a step by step manner can be quiet popular in a developing country like ours. Initiatives by Reliance Reliance has already launched a couple of applications in its R-World suite of data services that fit the 'edutainment' definition. Two of the most popular of such applications are Mobile Dictionary and Mobile Encyclopedia. With these two applications, the RIM user can now boast of a miniature 'pocket dictionary' and a 'pocket encyclopedia' - always available and anywhere. The Encyclopedia is a digital archive for information seekers of all ages. Users can do a search on various topics like science, politics, geography, sports, etc and can find out required information in a jiffy. The Mobile Dictionary helps a consumer find the meaning of any English word, with the ability to have the meaning displayed in English, Hindi, French, German or Spanish. The reverse is also possible. Itellix, a mobile application developer from Bangalore with technical support from DADP, developed both these useful applications. Both were three-tier, J2ME based applications, specially designed to handle heavy loads of over 100 simultaneous requests and more than a million requests per day. A key feature of the solution is the ability to display the results in Indian scripts such as Hindi, making Clearly, the potential for educational applications is huge; and with improvements in technologies, transmission speeds, advanced mobile devices and a burgeoning mobile population, it is one area, which promises 'good times' for mobile developers in India.
Hilmi Quraishi
For developers and operators, the challenge is to gather sufficient feedback from consumers, in order to understand their expectations of edutainment content. The future of providing compelling edutainment services on the wireless environment depends to a significant extent on the development of technologies, and consumer's behavioral patterns. The propect for edutainment applications in the coming days can be best summed up in the words of Hilmi Quraishi, Chief Learning Technology Officer, ZMQ S o ft w a r e S y s t e m s , a D A D P developer. Mobile handset is the device and edutainment is the style. The blending of the two can revolutionize education, especially in rural India, where there is a greater need to train and educate semiliterate and under-privileged communities. And R-World is the right channel to disseminate these edutainment solutions.
R-evolution
www.dadp.com
Tech Tip
he Util package consists of utility classes that can be of use to developers while developing the client side of any application.
Util package consists of two classes, namely ResourceBundle and ProgressScrn. Out of these, ResourceBundle is more important from the functional point of view. This is a utility class, used in multi-languages to enable an application, while Class ProgressScrn is important from the feature point of view and is used to display the progress screen on the client when the client is waiting for something to happen - like getting a response from the server. ResourceBundle class dynamically determines the language enabled on the device and loads the corresponding resource class. If the resource class for that language does not exist on the device, it switches to English language and loads the English resource class. Resource bundles contain locale-specific objects. When the application needs a locale-specific resource, a String for example, the application can load it from the resource bundle that is appropriate for the current user's locale. In this way, one can write a program code, which is largely independent of the user's locale, isolating most, if not all, of the locale-specific information in resource bundles. This class can be said to be a scaled down version of ResourceBundle class available in the java.util package of JDK (Java development kit). The members of the ResourceBundle share a common base name, but at the same time have additional components that individually identify them. ResourceBundle consists of a field named resource and two methods, namely getBundle() and get(). The Application using resource bundles can get a ResourceBundle object using the getBundle() method. The Reliance.language property helps the application to determine the enabled language on the device. The method getBundle() needs two string input parameters, namely resource name and locale. The method throws up a MissingResourceException, if the resource class does not exist. The method get() is used to get the value from ResourceBundle for the specified key, which the method takes as input. If a MIDlet does not contain the resource class for the currently enabled language on the device, the getBundle method returns the ResourceBundle object with the English resource. If the developer uses resource bundles for enabling languages in his/her applications, then the application jar must contain at least the English resource class. ProgressScrn is a class used to display the progress screen when the application is busy in performing some activity that needs time and the user has to wait for a response. The class extends javax.microedition.lcdui.Canvas and implements java.lang.Runnable. The class has four methods in it, namely start(), stop(), run() and paint(). As the name itself signifies, start, stop and run are used to control the animation and paint is used to paint the screen. The sample code of the ResourceBundle is given below. Further details can be obtained from the documentation of the APIs available in the resource section of the DADP website (www.dadp.com).
String currLanguage = System.getProperty("reliance.language"); try { rd = com.reliance.util.ResourceBundle.getBundle("com.reliance.someapp.Resource", currLanguage); str[0] = rd.get("MSG_ID1"); // option A str[1] = rd.get("MSG_ID2"); // option B // add option A, B in a list main = new List(rd.get("MSG_ID8"),Choice.IMPLICIT,str,null); } catch(Exception e ) { e.printStackTrace(); }
R-evolution
www.dadp.com
ince information holds the key to the success of an offering like the R World, Encyclopedia and Dictionary have always been on the radar of Reliance.
key-word and the results are fetched. 3. A random l i n k f e a t u r e (link of the day) that allows for a different entry to be shown each time a query is made. The search mechanism has been refined to the extent that in case a user in unable to remember the exact name of the article he wants to find he can still get the same by typing a few key words. Care was taken to find suitable content to incorporate the database for all categories and sub categories. This was very important as otherwise the user could end up with multiple unrelated search results without finding what he was looking for. A suitable database has been put in place, courtesy www.wikipedia.org. As the content size is huge and the customer can search for any keyword, which can throw up numerous results, the logic of searching became very complex. This was tackled by defining the frequently used categories and subcategories. Pradnyesh Naik Besides, there were several other challenges. The application size was a crucial aspect as mobile devices have a limited memory. A few modifications were incorporated in the screen shots to increase the performance speed in fetching records from the huge database. Another challenge was the offshore development and testing. All these were successfully accomplished and managed by both, Reliance and Itellix teams, whose combined efforts made this application a success, says Pradnyesh Naik, Product Manager for the application. Encyclopedia is one of the popular applications on R World and receives a good number of hits every month.
Encyclopedia is a comprehensive digital archive designed for both depth of content and simplicity for information seekers in all age groups. Users of this application can search for information on varied subjects like science, politics, geography and sports, as well as learn about historical events from its vast database. The application also allows subscribers to make queries in plain English, and can search a billion words and quickly return with the requested information. As the Encyclopedia application had to provide the user with information related to any particular topic of the users' interest, the f o l l o w i n g requirements were incorporated. 1. A searchable encyclopedia that returns a fixed number of matches that can be viewed to get the detailed text of an article. For this the user has to choose the option and type in the key-word. The results are fetched from the database matching the key-word. For example, if the user wants information on Sachin Tendulkar he can key in Sachin Tendulkar and the required information will be displayed on the screen. 2. A category based lookup on articles. The menu contains a fixed number of major categories (Culture, Sciences, Arts Sciences, Sports, Social Sciences, etc) and a fixed number of sub-categories for e a c h c a t e g o r y. T h i s information helps to refine the search. Once the user chooses a sub-category he/she again types in a
R-evolution
www.dadp.com
Interactive
Developer Forum
An Introduction to Java Device Testing Suite
By Avinash Mangipudi
Part - 1
2ME is one of the most popular platforms for mobile devices. All major device manufacturers have embraced this platform to enable developers realize new possibilities in computing. Thanks to Sun Microsystems, this is an open platform, allowing implementation of J2ME to pervade into these gadgets. To ensure that standards are maintained in such implementation, Sun has developed a Technology Compatibility Kit (TCK) that has to be adhered to and validated by developers. As a part of these initiatives, Sun has also developed a new Java Device Testing Suite (JDTS), which is a J2ME based device testing tool released for all network operators and device manufacturers to validate the quality of services provided to end-users. Mobiles differ from one another by virtue of their hardware, as well as their functionality and features. To add to the complexity, the features of the Operating System running on these mobiles widely differ. To standardize application development in a diversified business like this, Sun has introduced the J2ME, which is a mobile application written in Java and which interacts with the KVM (a miniature version of JVM). The KVM in turn interacts with OS of the mobile. Such a program can run on any mobile device that is Java enabled. These programs can be downloaded on to the handset from the network service provider. It may sometimes happen that an end-user buys a Java enabled mobile device, downloads an application hosted by the Network Service Provider and finds that the application does not work. To trace the cause of this problem, it is required to identify the actors involved in this exercise. 1. End User: a) The end user might not have established the specific configuration required to download the application. 2. Network Provider: a) Failure in network b) The application may have been removed from the network and not exist when the user tried to download it.
c)The application might not have been tested for a particular device before being hosted on the network. 3. Device Manufacturer: a) The hardware/software to run the particular application does not exist on the device. 4. Device OS Provider: a) The J2ME implementation for the particular device has not been completely made, though the TCK has been satisfied. JDTS can be used in the scenario mentioned in point 2c, 3a and 4a, as explained below: In the case of (2c) With a large number of applications getting ready to get into the network, the overall time to test a particular application across all the devices is reduced and may cause the quality to deteriorate. The role of JDTS is vital in such a situation. JDTS is a conglomeration of around 9000 mobile tests that have been written to check the functioning of all aspects of a device. This is a superset of all the J2ME applications that are being developed in the world. Testing each device with JDTS will clearly display the limitations of the device. This report can be juxtaposed with the features of the mobile application and can indicate on how an application would perform with a device, thereby helping improve its quality. In the case of (3a) When the device hardware does not support a feature and the mobile application is trying to use it, it results in an Application Error, eventually halting the program. Here, JDTS can be used to get a concise list of all the unsupported hardware features of the device. Usually the device manufacturers only list the supported features, whereas this particular report can help Application Developers by giving a list of devices for which their application is not supported. In the case of (4a) JDTS can detect unsuccessful J2ME implementations on a particular device and improve their KVM so that J2ME implementation can be completed.
This article has been contributed by Avinash Mangipudi, a DADP developer. He can be contacted on panchadara@yahoo.com
(This is the first of the two-part JDTS tool featured in the Developer Forum. The second part will follow in next issue of R-evolution.)
Disclaimer: DADP is not responsible for the validity of the contents of this article.
iscuss y on DADP Discussion Forum DADP! Post your quer rise gift from and win a surprise gift from an in
If your query is selected by the DADP technical team, as the most innovative and challenging of all postings in a month, you will win a surprise gift. And yes, your query along with your photograph will be published in 'R-evolution' as well! So visit www.dadp.com, register (if not registered already) and start sending in your queries.
R-evolution
www.dadp.com
'These games are unique, very simple to play and highly addictive'
itish Mittersain, 24, the founder and CEO of Nazara Technologies, has been actively involved with the Indian IT industry for the last several years. He has been a recipient of many awards, including the Young Achievers Award of the Indo-American Society. Till recently, he was also the Co-Chairman of the National IT Committee of the Indian Merchants Chamber. As one of India's leading mobile content developer and publisher, Nazara works with several mobile operators, both in India and abroad. The company develops mobile entertainment products, including games based on well-known brands and distributes them to millions of mobile phone users nationally and internationally. In an exclusive interview with R-evolution, Nitesh talks about his association with Reliance Infocomm, as well as mobile games developed by his company:
Nitish Mittersain
Can you tell us something about your experience on working with Reliance? Working with Reliance has been a very fruitful and pleasurable experience. The Reliance team has provided us with all the support that we have needed without fail. Thanks to this kind of spontaneous cooperation, we have decided to create further applications for Infocomm. We are in the process of perfecting these applications and will be launching them on the Reliance network very soon. Which games have you developed for Reliance Infocomm? We have deployed X-Change, Hyper Typer and Magnetron, which are currently live on the R World platform.
Super Bloc Bloc, Bubbletris, Arrowbot and Ben Chase. These games are developed from a variety of categories like Action, Arcade, Adventure, Puzzle, etc. Any interesting or memorable event during this association you would like to share with the readers? I remember this incident when we were trying to solve some handset related issues. We visited DAKC to seek the DADP team's help to address these issues. The DADP team sat with us till late in the night and ensured that the bugs were ironed out. This is an example of high standards of commitment and professionalism and I wish that other carriers would take a leaf out of the DADP team's book. What are your views on the mobile gaming / applications
How are these games unique? Any special features? These games are unique in the sense that they are very simple to play but are highly addictive. For example, Hyper Typer is an edutainment game, which involves typing of words. With this game, the user is gaining in two ways. First, by having fun playing this game and secondly by improving typing skills on the handset, which help to SMS, messages faster. Which other games are you currently developing for Reliance Infocomm? We are in the process of creating new games like Enigma,
business in India and on future trends in this space? Mobile gaming has just started to evolve in India. With carriers like Reliance, who are aggressively pushing contents to their subscribers, and the availability of high-end handsets at low prices, one is going to witness a sharp up trend for downloads. User awareness on handsets and data services is also increasing day-by-day. Customers are looking to their handsets for something more than just voice communication. Handsets are fast becoming entertainment / business devices and proving to be an integral part of people's daily lives. Developers like us are recognizing these facts and are designing applications to take the industry forward.
R-evolution
www.dadp.com
Feedback
Dear DADP team, We should have a Weather Update and Disaster Warning System which will serve as a useful guide in times of emergency. No doubt it is a huge task for even after so much scientiffic efforts it is difficult to predict nature's moods. Nevertheless, a simple RIM handset backed by its large network would certainly come handy at critical junctures and save many precious lives. Yours Truly Pankaj Jha
Sir, I am a regular reader of the R-evolution. The support provided to the Developer Community through the DADP program is very beneficial to students. Thanks, Gautam Arora
1. Which of the following most closely matches the description of a Java Map?
A) A vector of arrays for a 2D geographic representation. B) A class for containing unique array elements. C) A class for containing unique vector elements. D) An interface that ensures that implementing classes cannot contain duplicate keys.
Quiz
Monthly Poser
Which software company in
association with DADP was instrumental in creating Call Minder the first-ever application for the blind? a) ZMQ b) Tinfo Mobile c) Dhruva Interactive d) Daffodil Software
D) 1 and 2.
5. Reliance Infocomm announced a tie-up with which of the following SMS services in January 2005?
A) 7333 (Rediff) B) 7827 (Star)
Answers : 1. D) 2. B) 3. D)4. D) 5. C)
Answer to last months poser: D) Mumbai Winner of the last month's poser (through a lucky draw is): Gautam Arora Winner will receive the prize by courier.
Answers to the Monthly Poser should be sent to dadp.newsletter@relianceinfo.com mentioning Monthly Poser - February 2005 as the subject with the senders location stated. The winner will be decided on the basis of a lucky draw and walk away with a prize from DADP.
You can contribute ideas and information to R-evolution at the following e-mail address: dadp.newsletter@relianceinfo.com. Please note that contributions may be edited for clarity, style or length.
Editorial Team : S P Narayanan, Saurabh Chakrabarti, Siddarth Arora, Amit Chandra, Suresh Dabbara, Nitin Saksena, Vikram Vishwanath, Lakshman S Aiyar, Vijayam Raghunathan Design By: Jaydeep Gholap Published by the DADP and Corporate Communications Teams, Reliance Infocomm, DAKC, Navi Mumbai
R-evolution
www.dadp.com