Tips for Getting Your MIDP Application JavaVerified
August 28, 2006
Passing JavaVerified testing is not difficult, but the testing process is thorough. This article lists some tips I picked up while sending several builds through the JavaVerified process.
JavaVerified is not for everyone. It will not make your mobile application run on every handset out there, and it can be tedious and very expensive if you have many builds to certify, or if your builds are updated frequently. See my earlier post on JavaVerified to determine if testing is right for your application, and to see the steps in the testing process.
Test Categories
- Application Stability
- Application Launch
- User Interface
- Localization
- Functionality
- Connectivity
- Personal Information Management
- Security
Amazon-OnTheGo: Screengrabs & Introduction
August 4, 2006
Amazon-OnTheGo is the result of a vanity project I undertook to port a Bluepulse widget to a full-blown Java ME application. With it, you can experience all of the best things about Amazon.com, on your phone:
- Search for products by keyword, ISBN number, or UPC code
- Access product details, used and new prices, images, user ratings, editorial reviews
- Maintain a shopping cart, and submit it to Amazon for purchase
- Find and review friends’ wishlists
- Get suggestions on similar items to view
Say you’re at the video store trying to determine what to rent. Fire up OTG, type in the UPC code, and check out the online editorial review. Maybe you’re at the local book store, and you can’t decide between two books. Type in their ISBN numbers to view ratings and comments. While you’re at, find out what the cheapest used price is.
Learn more about it and check out a video walk-through at the OnTheGo web site: www.mywebonthego.com (yes, most on-the-go and similar domains were snapped up long ago!). Go to the “Download” section to get it on your phone in any of three ways, or open http://m.mywebonthego.com with your phone’s WAP browser to download it directly.
More screenshots:
Similar products: Scanbuy Shopper, featured on Lifehacker (coincidentally, right at the time OTG was released), except that it offers more search options
MIDP Project: Amazon-OnTheGo
August 3, 2006
Where has this post been lurking? It is incredibly past due, but better late than never.
By way of background, in May, I began a short project to convert a Bluepulse widget into a full-blown MIDP application. Read the project details here. The goals were to exercise the J2ME Polish 1.3 beta, get an application through the Verified process, and port Amazon-OnTheGo.
The project was mostly successful:
- I learned a lot about the 1.3 beta release of Polish, and posted a few experiences I had with some of the new features. Splash Screen | Screen Info | Framed Form
- I ported the Bluepulse widget to Java ME, and built out support for a reasonable number of devices.
- I signed the application for a good number of models, and wrote about application signing and Java Verified signing. Java Verified | MIDP Signing 2
- I built a web site and simple provisioning system around the application.
But I’m still in the midst of the Java Verified process, which takes longer than I anticipated. I’ll continue to post updates if I run across any discoveries during the remainder of this process.
And during this project, J2ME Polish went and released a new beta preview: J2ME Polish 2.0! Polish 2.0 adds Java 5.0 support, floating point support for CLDC 1.0 devices, and better IDE integration. It also adds some utility classes to assist with object serialization and RMS use. Considering some of the unresolved bugs from the 1.3 beta release, I have some doubts about the robustness of 2.0, but I’ll be testing it out in the coming weeks.
Within the next day, I’ll post a description of the Amazon-OnTheGo MIDP application, and instructions on how you can get it on your phone.
Tips for Writing MIDP Applications, Part 2
July 26, 2006
Part 1 of this article discussed several higher-level tips for writing MIDP applications. In this part, I thought I’d delve a little more deeply into the weeds for some specific tips on using various controls in the MIDP toolkit.
Sign Your Application
See my earlier post about application signing. If at all possible, sign your application with a Verisign code-signing certificate. JavaVerified is even better,
but is not realistically achievable for many applications.
Eric Giguere’s new blog: J2ME Programming Guide
July 25, 2006
Eric Giguere launched a new blog — it looks like within the past several days — that you should check out if you’re interested in J2ME, err Java ME.
If you’ve been involved with Java ME for a short while, you’ve probably heard of Eric. He’s written two books on J2ME, and I’ve stumbled across countless articles and Tech Tips that he’s written. What I like most about his articles is that he presents some elegant solutions that are relevant and useful in your work. He doesn’t just regurgitate an API, but shows you how it can be used to perform real world tasks. If you’re familiar with Manning’s “In Action” series, you’ll understand the point.
I’ve built a provisioning system, an RMS data layer, a bluepulse widget, and a small MIDP application based on or inspired by some of his articles. I’m sure a healthy portion of the practices I use have stemmed from his writing in ways I don’t even consciously realize.
His blog is now at the top of my must read list. Check it out. I bet he makes you better at what you do!
Eric’s blog: J2ME Programming Guide
Tips for Writing MIDP Applications, Part 1
July 24, 2006
Several months ago, I wrote an article on creating bluepulse widgets. At the time, I put another article -– this one -– on my mental to-do list. There it languished, being pushed ever further down until I read this article from little springs design. It’s tongue-and-cheek, and contains some great tips for what not to do when writing a mobile application.
I wholeheartedly agree with the intent of each of the ten guidelines they mention, but I tend to view articles from the design perspective with a degree of trepidation. Full disclosure: yes, I’ve killed a back button or two in my day, and I continue to do so. The intent is always honorable, but execution of some well-meaning guidelines can get hairy. Nowhere is this more true than in the mobile space, where, despite standards, developers face a near-vertical incline when deploying to many handsets.
From a development perspective, here are several good practices for building mobile applications. This is not intended to be an exhaustive list. I should also point out that these guidelines apply specifically to the development of MIDP applications.
Opera Software’s Java ME browser client
June 28, 2006
A glimpse into some of the challenges of J2ME (Java ME <sigh>) development, from one of my favorite mobile software products (Opera Mini) and platforms (Sony-Ericsson).
Link: Developer case study: Managing Java fragmentation, Opera Software’s Java ME browser client.
MIDP Application Signing
June 21, 2006
Part 2 of 2
For details on the background of this project, and details about the overall Java Verified process, see part 1 of this article. This post will exclusively deal with signing MIDP applications, irrespective of whether you’ll also be going through the Java Verified process.
Why sign your MIDP application?
- Some devices might restrict certain functionality to those applications with valid signatures.
- Some security policies reject the installation of any unsigned application.
- Other devices will warn users about an application being “untrusted” if it’s not signed.
- Security pop-ups on phones can get really annoying, and these can be lessened with signed applications.
- Ensures that no one but you can distribute his or her applications or updates to your application under your name.
In short, you want your application signed.
Java Verified: What it is, and how you do it
June 20, 2006
Part 1 of 2
I’m putting the finishing touches on a little side project (to be announced in a few days) I’ve been working on for the past couple of weeks. The purpose of this project is to exercise the new J2ME Polish 1.3 beta release and get an application listed on mobile.java.com at the same time. To keep things simple, I decided to port a bluepulse widget (Amazon-OnTheGo) for this purpose.
I also promised to post my experiences with the listing process here. And apparently, at least one of you (one of the scant few readers of this blog) is looking forward to the outcome of this project.
The biggest hurdle is really the signing process, and while this is not overly difficult to do, there are such a large number of considerations, that application signing appears more difficult than it is. Of course, signing is one of the prerequisites of getting Java Verified, so I thought I’d break down my experience / research into two posts: one covering Java Verified and one covering signing MIDP applications (Part 2).
Java Verified Process
What is Java Verified?
It essentially boils down to a testing process that results in a widely accepted digital signature. The intent behind this initiative is to eliminate as much redundant J2ME application testing as possible, relying instead on unified testing done for Java Verification. The certification process ensures that applications being distributed via carriers, vendors, and other channels are of a consistent quality.
J2ME Polish 1.3: FramedForm
June 5, 2006
What could be an incredibly useful feature is marred by bugs in the beta release of Polish 1.3. The concept behind the FramedForm class is similar to the Border Layout in Java Swing. You can append items to the FramedForm body, and designate other items to be anchored at the frame top, bottom, left, or right.
For example, you can display an anchored query as search results are scrolled. Or you can display an anchored search box while the rest of the screen content is scrolled. Maybe even use a ChoiceGroup to dynamically filter or change the content on the screen.
Using the FramedForm is as easy as building any MIDP form.
FramedForm myForm = new FramedForm(”Search Results”);
StringItem item = new StringItem(”You’d Prefer an Astronaut”, null);
/* more items */
TextField search = new TextField(”", “”, 25, TextField.ANY);
myForm.append(item);
/* repeat */
myForm.append(Graphics.TOP, search);
But the results are less than spectacular on the beta release. Anchoring anything on the bottom frame doesn’t work. Anchoring on the top frame suffers from frame boundaries not being respected, and styles not being properly applied.
Even with these current bugs, I imagine there’s still some utility to be had by using this class, if for nothing else than layout help. For example, you could add an image or icon to the left or right frame of a screen, and use Polish styles to sufficiently pad that edge of the screen, perhaps to be used in an image viewing application or to create a graphical navigation menu of some sort.
I love the concept behind the framed form, so I’m hopeful that future releases of J2ME Polish will address some of these issues. In the meantime, I’ll continue looking for workarounds and ways to use the current functionality.
My overall experience using Polish in this test project has been similar to using this framed form. On paper, it sounds like a major boon to productivity and compatibility, and on the whole, I can’t imagine starting a product without Polish as the build tool, because it largely comes through on its promises. But I have been mildly disappointed with execution. I find myself wishing for fewer features, but features that work smoothly; versus a wealth of features, and finding annoyances in some of them.




Recent Comments