The mobile market is envisioned as the next technological wave by leading industry experts. With approximately 150 million mobile phones – roughly 3 times the user base as that of desktop computers – it might well be the case. Due to the fragmented nature of the mobile market, with various manufacturers competing to get their share of the pie, Java is once again poised to be the best programming language for the mobile market with its Write Once, Run Anywhere technology.

The specifications around the Java for Wireless Technology initiative have been proposed and backed by most of the leading mobile phone manufacturers (Nokia, Sony Ericsson, Siemens, T-Mobile, to name a few) and hence, one can expect device support and continued innovation.

The Java 2 Platform, Micro Edition (J2ME) offers a highly optimized virtual machine which can be used to run Java applications on devices ranging from resource constrained devices like smart cards, pagers, and mobile phones to high end devices like handheld computers and set-top boxes.

Keeping the limitations of the mobile devices – both in size and in memory – in mind, the Java Community Process has developed a series of standards constructed in a modular fashion to ensure that various features are standardized while keeping the architecture at an abstract level.

While the J2ME itself includes a lot of other features and is also not limited to mobile phones, the certification concentrates on the developer’s ability to create and install programs for mobile devices, such as cell phones and Personal Digital Assistants (PDAs).

You might want to consider taking this exam

If you are already into writing J2ME applications for mobile devices and want to be recognized for your skills.

If you are a developer who has already written a few programs for wireless devices, the preparation will give you in-depth knowledge of various concepts.

If you are a seasoned J2SE/J2EE developer and want to start writing highly optimized Java applications for mobile devices, this certification is a jump-start for achieving the same.

If you do not have too much of an idea about technologies like Wireless Programming or Game Programming, preparing for this certification will be a great incentive to get a foothold in this technology.

If you want to learn and master the cutting-edge technologies that are round the corner.

This article will provide a basic understanding of the scope of the certification and will also give details about the certification along with the useful resources to get started.

What you need to know?

The Sun Certified Mobile Application Developer (SCMAD) tests the developer’s knowledge in the following five specifications.

You should have passed the Sun Certified Java Programmer (SCJP) – any version – to appear for this exam.

Objectives

Details of the certification objectives can be found at the Sun website. The major objectives are

JTWI (JSR 185) and Overview / JTWI-compliant Wireless Applications

CLDC 1.0/1.1

Security (both CLDC and MIDP)

Networking

Application Model/ Delivery/Lifecycle/Provisioning

MIDP Persistent Storage

Push Registry

MIDP UI API

MIDP Game API

Media using MIDP 2.0 and the Mobile Media API 1.1 (MMAPI)

Wireless Messaging API 1.1 (WMA)

Passing Score & Time

The exam consists of 68 questions, and the pass percentage is 55%. The time allotted for the exam is 150 minutes. The fee for the exam is $150 for U.S. candidates and might vary for other countries. Please visit the Sun certification website for more details.

What you need to do?

This exam might be slightly tougher than the other exams since the technology is fairly new and the community support is limited.

Since the API set is relatively small, you can cover the topics quickly. On an average, it should take you around a week to cover each topic if you are familiar with Java and have written or attempted to write a few programs using J2ME. If you are new to wireless programming, you might want to allocate around 2-3 months (2 hours a day at least) for preparation.

To prepare for the exam, it we recommend that you do the following:

Download the Java Wireless Toolkit (2.0 or above).

If you have a J2ME enabled cell phone, download the toolkit from that vendor. For example, Nokia and Sony provide free toolkits and emulators that will help you program in those devices.

Download the PDF versions of the specifications mentioned above.

The best way to get an idea about wireless programming is to actually write some programs and deploy them to a cell phone. This will go a long way in your preparation, since the creation and delivery of wireless applications is quite different from that of the standard or enterprise applications. You should develop at least one program for each specification to get a feel of the API. Some of the programs you might want to develop are

A program that takes a name and prints out “Hello ” (tests the UI API)

A simple game or a drawing, like the traditional Paddleball game or various geometric shapes moving in the screen (tests the Game API)

A program to read an image off a website and display it on the phone (tests networking)

A ‘signed’ Hello World! Application (tests security)

A program that plays a simple tune (tests MMAPI)

A program that displays a text message (tests WMA)

A program that calculates tip for various pre-defined scenarios (tests RMS)

To understand the concepts of J2ME programming, you can read the official J2ME tutorial, which is very comprehensive. Some useful books are also listed in the resources section.

Most of the questions will be code-based and hence, it is very important that you understand how the code is structured for various specifications.

You might want to consider purchasing the SCMAD exam simulator by Whizlabs, which contains numerous questions of varying difficulty levels spread across five mock exams and a quiz and also lots of useful tips for the exam.

Assuming that you have Whizlabs SCMAD Exam Simulator, {available at http://www.whizlabs.com/articles/scmad-article.html} you can use the table below as a starting point for developing your preparation timeline.

WeekObjectiveNotes

0Diagnostic ExamGives you a feel of what to expect

1CLDC 1.0/1.1Basics of the VM and its requirements

2Application Lifecycle/ProvisioningBasics of MIPD and its requirements

3-4MIDP UI APIDevelop and deploy Program 1 after this

5NetworkingDevelop and deploy Program 3 after this

6MIDP Persistent StorageDevelop and deploy Program 7 after this

7-8MIDP Game APIDevelop and deploy Program 2 after this

9MMAPIDevelop and deploy Program 5 after this

10WMADevelop and deploy Program 6 after this

11Push RegistrySmall, but complicated, and is related to WMA

11SecurityHelps in packaging applications securely

12JTWIGives an understanding of how the technologies are tied together

12Mock ExamsTest your preparation. Revise weaker sections.

Finally, you can take some mock exams to prepare yourself from a certification standpoint.

Tips and pitfalls

Understand the conceptual difference between a J2ME configuration (like CLDC) and a J2ME profile (like MIDP).

Memorize the software and hardware requirements of the various specifications.

Memorize the class hierarchies of important APIs like Generic Connection Framework, High level and low level UI API, Media classes of MIDP 2.0 and MMAPI 1.1.

The exam tests the understanding of the features and differences between low level and high-level API for UI programming. So, learn them well.

Understand that differences between the media support of MIDP 2.0 and the MMAPI 1.1.

Apart from the knowledge of writing proper J2ME code, the exam also tests the ability to write valid Java Application Descriptor (JAD) and manifest files that are used to markup the deployment details of an application. So, practice writing the descriptors well and deploy the application in the toolkit to understand the behavior of various deployment tags.

Remember that the exam is a vendor neutral exam. So, you can safely ignore learning the vendor APIs (like the APIs provided by Nokia, Sony Ericsson, and so on).

The best reading material for this exam is the specification document. So, allot enough time to go through these documents and learn the concepts and API well.

Make sure what you read is relevant to the exam objectives. A common pitfall is reading and spending time on things that you may not require for the exam.

As mentioned earlier, try to develop a practical example for each concept as this will help in a better understanding of the concepts.

Conclusion

With a huge customer base and vast popularity, wireless devices are here to stay. As the wireless technology improves and as the next generation devices come into the market with increased bandwidth, the demand for interactive and feature-rich wireless applications will greatly increase. Having a know-how of wireless programming will give you a competitive edge and will prepare you for the future.

Resources

J2ME tutorial by Sun Microsystems, Inc.

SCMAD.com provides a comprehensive list of preparatory resources for the certification exam.

Exam notes by Sathya Srinivasan, to get you started on the certification

There are many ways to prepare for certification exams, one of them being through the use of exam simulators. With these you cannot just identify your weak areas, but also get a feel of the test environment.