I am very close to finishing my first Android application. The idea for the application was inspired by Simon Singh's The Code Book. It allows Android owners to send encrypted SMS messages to each other over the standard messaging channels (normal costs apply). I'm not quite ready to expose the application to the trolls in Android Market yet but you can download and then install a beta version of the application from the following address:
There are still some issues I need to resolve: some characters aren't being properly encrypted/decrypted (not sure why yet) and outbound messages from the application aren't being saved to the sent messages folder. The best way to test the application is to send yourself an encrypted message. I would love to get some feedback.

Any one know anything about this device? It's a relatively new mobile gaming phone from SE but it doesn't fit into their standard classification system... that is, it doesn't belong to a Java Platform category. Also, it uses the Open Wave browser instead of NetFront. Is this from a different team within SE? What JVM does it use?
SonyEricssonF305/R1AA Browser/OpenWave/1.0 Profile/MIDP-2.1 Configuration/CLDC-1.1 Browser/UP.Browser/7.2.7.FENGPROD.104 (GUI)
On device debugging with Android is incredibly easy.
Step 1: Enable USB Debugging on the device
Go to Settings -> Applications -> Development and check the USB Debugging box.

Step 2: Connect your device to your computer via USB cable.
Step 3: Launch Dalvik Debug Monitor Service.
Go to command prompt and type 'ddms'.

Step 4: Run your application from Eclipse
Select the device instead of the emulator.

The application then launches on the device.

All your log statements from the on device application can then be seen in the DDMS interface.
The goal with my Android learning is to have my own application in the Market place by mid-January. I didn't want to rush because the entire point of doing this is to learn the capabilities of the Android platform. I'm not going to give too much away about my application other than to say it's a security application which hooks into the OS at a fairly low level.
Steps to learning Android:
(1) Read the documentation (especially the building blocks section)
(2) Get to know the tools (tip: Ctrl-F11 flips the emulator orientation)
(3) Learn the API (install the APIDemos sample onto a real phone)
(4) Build you own application. :-)
The iPhone App Store and the Android Market place have revolutionised the way mobile applications are distributed and by so doing have ignited the entire mobile application industry. It's weird because not so long ago the mobile web pundits were rather naively claiming that mobile application were dead. I feel great satisfaction when seeing my non-technical friends downloading and playing with applications on their phones without the slightest hesitation.
The key aspect of the these application stores is discoverability (see Enrique Ortiz's blog as he has been advocating this for ages) as they allow users to easily find new applications. Apple are aware of this and have recently improved this feature in their App Store as the number of applications has grown. The Android Market has far fewer applications but I can see the discoverability aspect of the market becoming a problem in the near future.
The App Store has a desktop top interface in the way of iTunes but the Android Market place doesn't have an equivalent yet and this could become an issue. What I would like to see is for Google to launch an Android Market place website that allows users to explore, find and purchase (Google Checkout integration is essential as this will herald the arrival of commercial applications) mobile applications and then install them onto the device over the air, no cable necessary. Obviously the local Android Market would need to be similarly updated.
Other issues are comment moderation (a lot of the comments aren't exactly polite) and possible screen size issues. Based on the emulator configurations Android can run on multiple screen profiles and I don't know what will happen when devices with QVGA screens start to appear as most of the current apps are designed for HVGA screens.
This is old news that refuses to die but it still annoys me and reaffirms my belief that the network operators will end up going the way of CompuServe and AOL by simply being the 'dumb pipes' of the mobile world. There's a massive sea change going on in mobile (led by the iPhone) and the Sprint CEO claims that Android isn't good enough for the Sprint brand while the embarrassingly flawed Samsung Instinct is their premier device. Does he have his head in the sand? This from a company teetering on the edge of obscurity.
I have been thinking about the Android GUI quite a bit recently. As a company who have created their own Swing style Java ME GUI library we are obviously very interested in the user interface. When we initially heard that the preferred means of defining the Android GUI was via declarative XML we weren't exactly surprised (Java FX has a declarative presentation layer) but there was that moment of slight hesitation at having to learn *another* new UI technology. Of course you can also still create your interfaces in the standard imperative programming style associated with Swing but Google's preferred method is via declarative XML.
After having played around with the SDK quite significantly I can now say that I prefer the declarative XML approach. This might be because I'm a web programmer at heart and feel more comfortable with a distinct technological/language separation between the view and the controller layers. One of the big benefits of this approach is that you can have distinctly separate roles within your project team and have an usability expert who can create interfaces but doesn't necessarily need to be an expert Java programmer. In fact I can see projects like DroidDraw becoming more popular as the interface (declarative XML) becomes the domain of the user experience designer and only the business logic gets assigned to the programmer (with games being an obvious exception of course). With Java ME this was never really possible and the programmer was responsible for every facet of the application. All told I'm starting to feel pretty comfortable with the declarative XML approach and although I hardly know any of the XML attributes they all seem very familiar. One last thing to note is that the best touch screen user experience I have encountered on the G1 is the Solitaire game and this uses the old school imperative approach to creating the GUI. You can download the source code for Solitaire here.
My friends from Whomp! FM have started making their own music and pretty damn good it is too. They are called Landscape Gardeners and you can find them on Myspace. My favourite track at the moment is Washing Line which samples T.S. Eliot's Second Coming. Whomp! FM also recently added the ability to vote on the mixes they host and my mix from earlier this year (it's called Rumble, bottom of the front page) is doing pretty well. :-)
Older Posts
|


