Swirl Connect: location-based mobile social software
January 28, 2008
We have quietly released Swirl Connect, software for your mobile phone that helps you stay connected with your friends and their latest activity, as well find new people and places, whether you’re mobile or at home on your PC.
The current release is slightly hobbled, as $$$$ is tight, and we had to turn off the messaging features, but there’s still plenty to do and see. Here are a few features:
- Find your friends and get alerted to their latest activity
- Explore nearby places of interest
- View and share photos, notes, and places on your PC or mobile phone
- Mobile instant message or group message with your friends
- Meet new people while you’re on the move
- Get location-based alerts
- Interact with both PC and mobile users in real time
Try it out! It’s free, supports popular Nokia, Sony-Ericsson, and Motorola phones (with plenty more coming), and is a lot of fun.

15,000 Downloads for Amazon-OnTheGo
October 4, 2007
We’re just wrapping up device support and SEO on our new mobile / web application (if all goes well, we’ll deploy in a week or two). Great stuff: mobile messaging, a maps mashup, location-based alerts, friend finder, and a place finder all wrapped up in one package called Swirl Connect.
In working on the SEO, I looked at Amazon-OnTheGo’s traffic stats, because it’s received a fair amount of traffic with very little effort on my part. It was always supposed to be a quick and dirty little project, but it’s attracted just over 15,000 downloads to date, and has received some good feedback along the way. Feedback I’m sorry to say I’m just getting around to seeing. Here are a few mentions:
- SarahInTampa.com: Amazon To Go Good luck with your move to WordPress!
- Amazon-OnTheGo on java.com
- 10 of 10 rating on GetJar
- Short mentions in SearchEngineWatch, Wendong’s Smart Phone Blog, ResourceShelf, and The Cell Freak.
Thanks for the feedback!
J2ME Polish 2.0 Beta 3: ScreenInfo Revisited
March 16, 2007
I thought I’d revisit Polish’s handy ScreenInfo class, as it is working as intended out-of-the-box in the beta 3 release (earlier post here).
In my current application, I’m using it a bit differently than I did before, combining it with a Timer to remove the ScreenInfo element after a specified amount of time.
As before, add the corresponding variable declaration to your build.xml file:
<variable name=”polish.ScreenInfo.enable” value=”true” />
You can also style this element in polish.css by using the “screeninfo” predefined style.
In the code sample below, I’m using images and determining margins at runtime, so I’m not utilizing this element, but it’s a quick way to add default styling and positioning.
screeninfo {
margin-top: 10
margin-left: 10;
}
A sample class file is below. In my implementation, I query for the canvas height and width during start-up (and I’d recommend you do something similar), but below is a quick and dirty way to accomplish roughly the same thing. This example could also be improved by accounting for multiple elements and related details.
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.Timer;
import java.util.TimerTask;
import de.enough.polish.ui.ScreenInfo;
public class MyMidlet extends MIDlet {
public Display display;
private List mainMenu;
private Timer timer;
public MyMidlet() {
//your constructor code here
}
public void startApp() { }
public void pauseApp() { }
public void destroyApp(boolean unconditional) { }
public static void quitApp() { }
public void showScreenInfo(int icon, long timeout) {
String imagePath = null;
switch(icon) {
case 1:
imagePath = “/si_mail.png”;
break;
case 2:
imagePath = “/si_sync.png”;
break;
default:
//
}
ScreenInfo.setImage(loadImage(imagePath));
//#ifdef polish.FullCanvasSize:defined
//#= int width = ${polish.FullCanvasWidth};
//#else
int width = 176;
//#endif
ScreenInfo.setPosition(width-32, 1);
ScreenInfo.setVisible(true);
timer = new Timer();
timer.schedule(new InfoTimer(), timeout);
}
public void removeScreenInfo() {
ScreenInfo.setVisible(false);
}
class InfoTimer extends TimerTask {
public void run(){
removeScreenInfo();
}
}
}
For more information, you can check out the Polish documentation related to ScreenInfo: Overview | JavaDoc
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.




Recent Comments