Samsung Galaxy S - frustrating user experience, sucks as a developer phone

Recently I got the Samsung Galaxy S. I wouldn't use it as my everyday phone, but especially as a developer phone, it really sucks. The only good thing about the phone is the large super AMOLED display and storage space, but that's about it.

* UI wise, it doesn't come close to the Nexus One or especially the HTC Desire / Sense UI, which is my favorite. It's just too colorful and just doesn't look as sophisticated as N1 or HTC Desire. But that's not the main issue, that's just a matter of taste, which tends to differ a lot amongst users.

The main reasons are though:

* You cannot mount the device via USB while the developer debug mode is activated

* when the USB cable is plugged in and you want to turn off developer mode, you need to unplug the cable first, turn dev mode off, plug cable in again

* USB connection doesn't mount the device simply as a drive but I need to go through the Kies software or at least not to install it, even had to download from the internet

* Samsung doesn't provide only USB drivers on their website, you have to download the entire Kies Suite - even though you're not going to use it

* Kies software repeatingly wants to install the device drivers (any time I have the PC restarted and run Kies and plugin the device)

* when connecting the device via USB, the device randomly gets detected, sometimes I need to restart Kies and/or unplug/plug in the device again... haven't figured out the logic, but as seen in forums, USB connection seems to be a known problem with this device

* clicking on 'USB connection' in the notification bar doesn't do anything (Kies mode)

* accessing (i.e. copying to) SD card via Kies is slow

For developers it's really a hassle to develop with this phone.

But also for regular usage like getting media (photos, videos) off the phone is really tedious; and has to be lucky that the device eventually gets detected and mounts when you plugin the device.

The Nexus One seems to be faster and more responsive than the Galaxy S, but I guess that's also mainly because I'm running Froyo on it while the Samsung is still on 2.1update1.

Missing features and issues with the Coloris Media Gallery for Nexus One

I think the Coloris Media Gallery app for Nexus One is far from perfect and there are some design flaws and essential features missing. I'm actually ending up using a file explorer (Aexplorer) to browse through the photos right now due to the inconvenient UI of the media gallery.

These are my observations:

1) not able to sort folders alphabetically

2) photo edit function (crop), doesn't have a scaling function (essential for sharing images to the web; why needing to send it in high res if it's used in a low resolution in the end anyway)

3) folders that exist on the sdcard and have a video in it (and definitely no .nomedia file in it) sometimes show up in the gallery, sometimes they don't. I experienced that when turning my phone off and on again - afterwards one of my folders doesn't show up in the gallery anymore. Ok, I must admit this might be due to the Froyo 2.2 FRF50 I'm running and the new media framework StageFright might not yet be complete.

Hope it will get better in a future release.

User crash reports for your Android app

I was looking for a way to receive crash reports of my app, which isn't published through the Android market. On Froyo/2.2, Android supports user crash reports - but only for apps that are published through the market.

Another nice helper class which sends the stack traces to a google spreadsheet form is ACRA, very useful and easy to setup.
http://code.google.com/p/acra/

Supports both interactive and automated/background mode.

Nexus One Emulator Skin (Updated)

I've been using the Nexus One skin provided by Tim Hoeck for Android development. Thanks for the work.
http://timhoeck.com/2010/01/16/nexus-one-emulator-skin/

Today though I came across a very sharp PSD file (at http://psdlist.com/gadget/179/google-nexus-one-psd-templates-and-png-files.html) that's even clearer and sharper than the images in the current skin set. Therefore I replaced the skin and the buttons.

Here's an updated version of the Nexus One skin. You can download it from the link below.
Thanks to Tim Hoeck for the initial effort to provide the Nexus One skin.


Click here to download:
NEXUSONE.zip (1835 KB)

DroidDraw: User Interface (UI) designer/editor for programming the Android Cell Phone Platform

Just stumbled over Droid Draw, a user interface (UI) designer/editor for programming the Android Cell Phone Platform. You can either download the small application to your desktop or run it in the browser as an applet.

http://www.droiddraw.org/

Here's a good tutorial to it:
http://mobiforge.com/designing/story/understanding-user-interface-android-part-1-layouts

Building Android System and Kernel on Windows (w/ Linux & VMWare)

I'm mainly working on Windows for software development, Linux only on server sides, and was looking for a quick way to be able to build the Android Kernel on my primary machine, which only runs Windows. Building the Android kernel requires Linux or Mac. So as a quick solution I installed the VMWare Player running Ubuntu 9 on it.

Here are some hints how to get everything running quickly this way:

Install VMWare Player (download from http://www.vmware.com/products/player/)

In order not to running through the entire Ubuntu setup, I downloaded a current Ubuntu 9.04 Desktop image from http://chrysaor.info/?page=ubuntu

Since the hard disk is a little small for building Android (should have at least 10 GB of free space), I download another 50G disk and mount it to the system
Very useful instruction and quick way to add another HD I found here:
http://www.thoughtpolice.co.uk/vmware/howto/vmware-scsi-disk-add.html

Once the Ubuntu system is up and running with the newly mounted HD, proceed with the steps as documented at http://source.android.com/download
After having installed the necessary environment (git, repo, and all dependencies), the main steps to build the Android system and kernel are then:

  • repo sync
  • make
  • make sdk
One important note regarding building the Kernel.
For some reason the project list on http://source.android.com/projects is not up to date, the Kernel project is not part of the core anymore but now a separate project. So building the Android system and building the underlying Linux kernel are actually two separate things. That's why we execute the 'make sdk' after the 'make' in order to get the kernel-qemu file as well.

see http://groups.google.com/group/android-platform/browse_thread/thread/5d7f720f11b1f177

I dowloaded the android source code few weeks back through the following link, and I have been working on code for few days now. But I recently checked out source code yesterday on a separate machine and found out that after doing a 'repo sync' there is no kernel folder in the source code.

This is intentional. Having the kernel source in the android manifest caused large downloads that few people needed, was not scalable, and caused some confusion.


The result of the make process are then four files, which you can then use with the emulator:
  • kernel-qemu
  • ramdisk.img
  • system.img
  • userdata.img

Android GUI Prototyping

For Android GUI prototyping there are two helpful resources out there, one is a Visio stencil created by ArtfulBits (runs with Visio 2003+):
http://www.artfulbits.com/Android/Stencil.aspx

See some samples of (original / stencil):

               
Click here to download:
Android_GUI_Prototyping.zip (146 KB)



Another helpful resource is a Photoshop file with vectorized GUI elements to be reused:
http://www.matcheck.cz/androidguipsd/