In the world of Android smartphones, the ecosystem moves swiftly. It wasn’t long ago Android device owners were salivating over Cupcakes and Donuts (Android versions 1.5 and 1.6 respectively). In the span of roughly six months, Android has gone through two major revisions; Android 2.0 (Eclair) and Android 2.2 (Frozen Yogurt or Froyo).
Prior to Google I/O this past May, details of what exactly would be included in the final release were sparse. Early testers reported various improvements including a noticeable boost in speed. Yet development was in full swing and it was hard to figure out just when exactly Android 2.2 would be deemed ready for mass consumption.
At the I/O conference, Google made it’s official announcement to the world and answered many of the questions that had arisen about the latest version of their mobile OS. In addition to a slew of new APIs and developer features, Android 2.2 would come with a number of improvements for front-end users. It boasts a JIT compiler, wifi and USB tethering capabilities, support for Flash, as well as several other improvements and updates.
Taking the prize for the most noticeable, yet invisible feature is the JIT compiler which brings a 2-5x performance boost systemwide. JIT stands for “just in time.” In other words, Froyo is able to do a bit of analysis on the code it’s about to run and make some optimizations to how it handles that code. All that magic happens on the fly and works regardless of the app or which OS version it was targeted to run on. Developers don’t need to change a thing. Animations are less jerky, games run with a higher framerate, and because the device doesn’t have to work as hard, it uses less power thus extending battery life. The bottom line is the JIT compiler makes Android better all over.
Tethering refers to the ability to connect your laptop or desktop to your mobile phone and use the phone’s data connection as the machine’s Internet connection. Froyo includes two types of tethering; USB and wifi. With USB tethering, you connect the device to your computer using a USB cable. This of course means you’re limited to a single connection. Multiple devices can be connected via the wifi hotspot option which essentially turns your handset into a Mifi.
Mention tethering to an iPhone user and they’re likely to launch into an invective-filled tirade against AT&T. Last year, the carrier promised tethering capabilities, but failed to deliver. Since then, Apple and AT&T have gone on to announce tethering a second time along with the cost, $20 per month. Thus, it came as a shock to Android fans when Google announced it was including tethering in Froyo; for free. Not only do Android users get a useful feature, they have another thing they can hold over their iPhone carrying compadres.
As much as people love to hate Flash, it does have it’s uses. Namely, video on the web. Changes are certainly in progress right now with the emergence of HTML5, but it’s hard to deny that Flash is still used quite liberally on the web. With Froyo, Android is able to run a mobile version of Flash and comes as a welcome addition to the speedy browser. It was no doubt made possible by the performance boosts included in Froyo. This is likely the same reason, it won’t be backported to earlier versions of Android.
Flash performs moderately well on Android. Admittedly, video playback performance suffers from low framerates. However, things like simple games or site menus run smoothly. Users are given the option to turn Flash on all the time or to selectively choose components on a page to load. At least now users have the choice of whether or not they want to experience Flash content or not. It’s better than seeing gaping holes in web pages.
As previously mentioned, Froyo also includes a number of minor improvements. Exchange and enterprise control of devices are better supported and the gallery and camera apps have been completely rewritten. Developers will be happy to see several API’s were improved and many new options were added. Notably, developers can enable their apps to be installed on the device’s removable media. This helps to free up internal storage on the device. Overall, the Android experience in Froyo is much more polished and if the pace of development is maintained, it won’t be long before it is the best smartphone OS on the market.
The biggest negative of Froyo is that it leaves much of the original crop of Android phones behind. Owners of the G1, MyTouch 3G, Hero, and Moment will be forced to root their phones or buy a new device to experience the latest in Android goodness. While it is tempting to bash Google for this, it is not right to do so. Those devices contain obsolete hardware and are simply not equipped to run Froyo. If Android is to move forward, it will need to have hardware to support it. With carrier subsidies working the way they do, two years seems like the maximum life span of a smartphone.
Froyo is a welcome addition to the Android world. It makes an already good mobile OS more mature. Perhaps this is the most important update yet as it brings Android on par with iOS. The competitors do 1-up each other in certain areas (Android is better at multitasking, iOS is a better music player for example), but the average person would be happy with either. The OTA update push to Nexus One’s has started and there are rumblings of a Droid update coming too. It shouldn’t be long before new devices start shipping with 2.2 on them. There is much excitement and innovation going on in the mobile space right now and it shows no signs of slowing down.
If you’ve tried to get passenger-stack and Sprinkle 0.3.1 running recently, you might have run into the not-so-helpful error: uninitialized constant ActiveSupport::Dependencies (NameError).
It appears that if you have one of the Rails 3 beta gems installed, then Sprinkle gets confused when trying to use ActiveSupport’s Dependencies module. This error can be fixed by modifying lib/sprinkle.rb in the gem directory. Add the following line right after require ‘activesupport’ (line 2):
require'active_support/dependencies'
Hopefully the author of Sprinkle will get this bug fixed up soon. An issue on Github has been created.
Update: Github user ahaller has submitted a patch. It sounds like it’s OK to just add the require line even if you are on Rails 2.
Every iPhone developer with an app in the Apple App Store has dealt with the frustration of code signing. Try searching for “iphone code signing error” on Google and you get almost a million results. The purpose of code signing is to tie developers, apps, and devices together in a tangled web in an attempt to prove you are actually yourself, your iPhone is in fact yours, and Apple has authorized you to run or submit your app.
Sounds like fun right?
The way to sign your app is to associate it with a provisioning profile. Creating a provisioning profile is beyond the scope of this post, but you can find more information here. You’ll need a current iPhone developer account to access the docs. Sorry.
So what is this post about then? Well, once you have a few iPhone apps under your belt you’ll find that you have a ton of profiles to manage. Development profiles to test your apps on your device. Ad-hoc profiles to send out beta versions to your testers, and Distribution profiles for submitting your apps to the App Store. They all live in the same place on your Mac and will have non-human readable names if you’ve followed the Apple documentation and dragged and dropped them into Xcode. This makes it a bit tough to know what profile goes with which app.
What are provisioning profiles?
The docs define provisioning profiles as “… a collection of digital entities that uniquely ties developers and devices to an authorized iPhone Development Team and enables a device to be used for testing. A Development Provisioning Profile must be installed on each device on which you wish to run your application code.” Translated this means you have to have a development profile to run your app on your device or a distribution profile to have the app accepted into the app store.
How XCode/iTunes uses them
I’m not going to cover how to sign your apps in this post either. But, rather explain how XCode uses them and how to organize them. Both XCode and iTunes use profiles. XCode to sign the apps and iTunes to install them. Whether you’re signing or installing profiles they live in the same place. Fire up Terminal.app and issue the following commands to find your profiles.
$ cd ~/Library/MobileDevice/Provisioning Profiles/
$ ls
Profile Installation Methods: Drag & Drop vs. Finder
Most of the Apple documentation tells you to drag and drop a profile into XCode to install it. This works but your profile is renamed along the lines of “0ED00060-C42C-4E3F-932F-30F22F79A14C.mobileprovision”. Good luck on knowing what file is.
I prefer move the profiles manually in Finder to avoid the automatic renaming. I like to name my files project.type.date.mobileprovision or trickiwiki.adhoc.03352010.mobileprovision.
What is Git?
Unless you’ve been out of software development for a few years you’ve probably heard of git. Git is distributed version control system for source code and when coupled with a website like GitHub it makes contributing to open source project easy. One of the great things about git is the ease of branching.
Now that git installed we can finally get to the meat of this post. So fire up Terminal.app and issue the following commands. But first move all of your provisioning files out of ~/Library/MobileDevice/Provisioning Profiles/
You have created your git repository and added a blank file named README to it.
Using Git Branches
You new git repo comes with a pre-made branch named master. For our purposes we’ll leave this one alone. Run the following command any time to see the branches in your repo.
$ git branch
I like to create a branch for each app. To create a new branch run…
$ git branch app_name1
$ git checkout app_name1
You’ve just created a new git branch for app_name and moved into it. Now save your profiles for app_name1 in cd ~/Library/MobileDevice/Provisioning Profiles/ and run
$ git add .
$ git commit-m"Profiles for app_name1"
Now your profiles are safely stored in your project branch. Now to make a new project branch we need to move back to the master branch and issues the commands to make a new branch. So run the following…
Move the profiles for app_name2 into ~/Library/MobileDevice/Provisioning Profiles/ and commit them into git.
$ git add .
$ git commit-m"Profiles for app_name2"
Did you notice that ~/Library/MobileDevice/Provisioning Profiles/ was empty when you put the profiles for app_name2 in there? That’s because the profiles for app_name1 are tucked into the branch for app_name1. To switch between branches just use the git checkout command.
$ git checkout app_name1
$ ls
app_name1.mobileprovision
$ git checkout app_name2
$ ls
app_name2.mobileprovision
Are you starting to get the idea?
What Branch Am I On?
Now that we have all of these branches how do you tell which one you’re working with. As I said before the command git branch will show you the branches
$ git branch
app_name1
* app_name2
The * indicates the active branch. But typing git branch over and over is annoying so I use some shell scripts from Jon Maddox to always show me which branch I’m on.
[proton:Provisioning Profiles[trickiwiki]$
In the example above the branch is shown as “[trickiwiki]“. Pretty sweet, huh?
Git Checkout Usage with XCode/iTunes
The one thing you need to remember when using this system to manage your profiles is XCode and iTunes are not very smart. They only check for profiles on startup. So you need to remember to checkout the correct branch before opening those apps. This took some getting used to until I made it part of my workflow.
Recently, I participated in a unique event entitled the Overnight Web Challenge. The idea is to pair groups of web professionals with non-profits in need of a new or updated website. While the development teams are formed prior to the event, the parings aren’t announced until the very start of the event so no one can get a head start. There’s also a catch; it must be done in 24 hours.
Team Ruby.MN
This year, I captained the Ruby.MN team who was paired with Homeward Bound. Homeward Bound provides group homes, services, resources, and support for those who have a family member with a mental illness. They have lost massive amounts of funding over the past couple of years and have struggled to maintain existing infrastructure and services. Because of this and the fact that many of the people they help aren’t able to use the website, we focused more on the business and bringing some of their paper processes online.
Some of the tools we gave them included the following:
A fully CMS driven website
An area to post news and events with custom layouts for their 2 large annual events
An careers page with an application form and requirement to watch a video beforehand
A private area for staff
A private area for board members and board meetings
A before and after (currently viewable at hbimn.org and hbimn.heroku.com)
Being that we were the Ruby team, we chose to use our favorite web framework, Ruby on Rails to build the site in. The base of our project was Refinery CMS. Refinery was a joy to work with and provided much of the back-end admin interface we needed out of the box. Of course we didn’t stop there; many customizations were made. Some of those changes may even make their way back upstream into Refinery itself.
The new website will be hosted on Heroku who graciously donated $300 in credit to Homeward Bound. However, our team kept the project lean enough that they will fit into Heroku’s free hosting plan. We plan to use the credit to pay for add-ons such as Exceptional exception notifications. In addition, a number of online services were leveraged such as Amazon S3, Wufoo, Google Checkout, Google Site Search, Mailchimp, and Flickr.
When the dust settled and judging was complete, our team was awarded second place! A special thanks goes out to Joel and Cathy at Homeward Bound for being well-prepared and providing our team with any resource we needed. Congratulations especially to Team Placeholder and Dakota Wicohan on a well-deserved win and to all the other teams and non-profits who participated.
For my introduction, I thought it’d be a good idea to discuss some of the tools I use to do web development for Recursive Awesome. Like a mechanic, a developer has a set of tools he or she relies upon on a regular basis. Writing software can be boring and tedious without the right tools. While most of these tools are focused towards web development with Ruby on Rails, but most are universal.
Hardware
15″ Macbook Pro
The foundation of any developer toolbox is the computer. I choose to use a laptop because I need the portability. Having a mobile development environment is huge. Anywhere I can sit down with my laptop for a few minutes can become a place I can program. A 13″ screen is too small. A 17″ is too big and unwieldy to whip out in more cramped spaces such as a packed coffee shop. The current crop of Macbook Pros are more than capable development machines with Core i5 or Core i7 machines rumored to be on the way later this year.
If you’ve spent any amount of time with Ruby, you know it’s kind of assumed you have a proper *nix terminal to run commands on. Windows + Cygwin just doesn’t cut it. Using Mac OS X provides me with the terminal I need and a flashy modern OS on top of it. If I need Windows, I can use either BootCamp or more likely a virtual machine.
XBrand 360 Degree Stand
If you’re going to be working on a laptop chances are you will find out very soon that the ergonomics aren’t ideal. Especially when seated at your typical office desk for 8 or 9 hours at a time. A stand will bring the laptop monitor up to a height where your neck and shoulders are in a better position. If you’e got an external monitor, it’s also nice to have both monitors at the same height. The stand I use is nothing special, but it has height adjustment, it swivels, and it was relatively cheap.
Apple Wireless Keyboard and Logitech VX Nano Mouse
Once you’ve got your laptop in a stand, the keyboard and trackpad become useless. Getting an external mouse and keyboard are virtually required. By using a wireless keyboard and mouse, I’m able to get my workstation set up very quickly. The only two things I plug in at the office are power and headphones.
The Apple Wireless Keyboard is compact and is easily tossed in my backpack. It is fairly good about battery life. Finally, it makes an easier transition from laptop keyboard to external keyboard when both are identical. This helps in productivity.
I use the Logitech VX Nano for no other reason than size. Both the mouse itself and the wireless dongle are tiny. I don’t have to worry about unplugging the adapter all the time; it is small enough to leave in. However, I do realize that with a Bluetooth mouse, I would have nothing to plug in. If I were in the market for a new mouse today, I would probably buy the Apple Magic Mouse.
Nexus One
Having owned a T-mobile G1 and become a fan of Android, I was 100% on top of the Google Nexus One when it was released. I’ll admit, for the entire time I owned my G1, I had iPhone envy. No so with the Neuxs One. Having owned one for several weeks now, I wouldn’t switch if given the chance. It’s definitely the nicest mobile phone I’ve ever had. While not really a developer, per se, the Nexus One keeps me connected. And I guess you could argue that there are apps for aiding in development such as the terminal/SSH client.
Software
TextMate
For Rails programming, there isn’t much better than TextMate. Sure, it’s been around since the beginning and hasn’t been updated since then. It still puts everything else to shame with it’s bundles and command shortcuts.
git
If you’re a developer and not using source control, you deserve a beating. These days distributed version control is all the rage and for very good reason. It rocks! Branching and merging in git is a dream. I recommend Vincent Driessen’s branching model to add some structure to your workflow.
Sequel Pro/Mesa SQLite
Any self-respecting geek knows their way around the command line. However, using it day to day to do repetitive tasks can be a drag. Enter Sequel Pro; a slick interface for dealing with a MySQL database. I believe it also supports Postgres. It does not support Sqlite3, yet (support is coming, just not for awhile). In that case, you’re going to want to try out MesaSQLite. It’s small, lightweight, and gets the job done which is more than Microsoft can say for most of their applications.
Safari
I used to be a huge fan of Firefox, until it started feeling more like it’s predecessor, Mozilla. Safari is fast a nimble, especially on Macs. Except for running thousands of plugins, Safari can do anything Firefox can do and most likely it’ll do it faster. If you’re a developer, make sure you turn on the Develop menu and familiarize yourself with the Web Inspector.
Firefox + Firebug + Yslow
Though you just saw me talk up Safari over Firefox, there is one tool I can’t replace in Safari and that’s YSlow. Yslow analyzes the page you are on for performance and gives you tips on how to improve it. The recommendations are those of the highly regarded Steve Souders (formerly of Yahoo, now at Google), so you know they are spot on.
Photoshop
Developers normally don’t do a lot of artistic work, but this geek does. I’ve tried using Gimp and even the Photoshop-like skins of Gimp, but none of them quite match the power of Photoshop. There is no substitute.
Virtualbox
Many Mac users will tell you to use VMWare Fusion or Parallels Desktop for Mac to do virtualization. The problem is those programs cost money. Why pay for something when you can get something equivalent for free. You may even be able to convert your existing Parallels or Fusion disk images to VirtualBox if you’re savvy enough to use Google.
Evernote
Last, but not least, is an application most developers probably wouldn’t consider part of their toolbox. I’ve come to rely quite heavily on Evernote though. Yes, you can take notes and tag them, and they sync up to a remote server. Yes, you can do cool things like scan documents or take captures of web pages with it. However, my most used feature in Evernote is not any of those; it is the checkbox widget. I am constantly building lists of things and adding checkboxes and turning them into todos.
There is a new conference in town, and it’s named Mobile March!
Recursive Awesome, along with our sponsors is proud to have founded this event. It’s set to take place on Saturday, March 27th at the Hilton Garden Inn in downtown Minneapolis. As space is limited, you will need to register as soon as possible. Space is filling up quickly.
In short, the conference will cover multiple aspects of mobile technology. We will have an entire track dedicated to developers and a completely separate track for those interested in business development using mobile technology.
Attendees are free to jump from room to room and learn as much as they can in the full-day long event. The doors will open at 8:30, with a keynote starting at 9:00 and sessions will go until 5:00, with networking, lunch and beverages being provided to all attendees.
If you live in the Twin Cities area, it’s an event you will definitely not want to miss. If you have any questions, you can reach any of us at Recursive Awesome or send a message through the Mobile March website at:
Over the past few weeks, we here at Recursive Awesome were able to get our hands on the 2 mobile devices Palm is currently offering on the Verizon Network – The Palm Pre and Palm Pixi running their WebOS operating system.
At the end of the day, I must say I am fairly impressed with their offerings.
It wasn’t difficult to give them back and return to my Nexus One, but they definitely do a fit a certain niche in the market and I’m a little surprised that the Palm WebOS sales have slumped as bad as they have.
On one hand you have a major carrier like Verizon doing a fairly good job of promoting the device, both in stores and in print advertising. I can’t go more than a day or so without seeing another Palm commercial, billboard or sign on a bus or at my local light-rail station stop. It would seem that there would be a lot more excitement over the device with it’s somewhat unique design, flip out keyboard, snappy interface, multi-touch (Android just got this in its latest release), and now supporting video capture and Flash. It seems like the time would be right for Palm to make a major move in to the market. Alas, though, that may not be the case.
What’s To Like
The first thing that struck me when using both of these devices was the performance. Despite their small size, they both felt very responsive and able to do multiple tasks at the same time without much lag. In comparison to some of the smaller Android devices and first generation iPhones, Palm has a very good start. They seem to have done their homework in optimization of WebOS and keeping processes lightweight and execution times short during launch and usage.
Speaking of execution of apps, WebOS allows the user to run multiple application at the same time very easily. The Palm devices have a “flick” type of gesture support that you perform on the area below the screen. If you want to jump out of an application you swipe your finger (or thumb) vertically and you are presented with a scrolling list of applications that are running. You then can swipe side to side to select the application you would like to jump into. I found at first this a little different and cumbersome, as I was used to looking for an actual button to get out of an application (i.e. the home or close buttons on iPhone or Android). However, after playing with the phone for a hour or so, it actually became very easy to master and was a feature that I got very accustomed to and liked a lot. Interestingly , it seems that Palm agrees and realizes that it might take users some time to try out this swipe feature ( when you start up the phone for the first time, they force you through an entire tutorial and exercise on how to use this gesture feature ).
Another nifty feature is what Palm calls “Synergy”. It links together all of your contacts into one list, with calendars, and status updates pulled in from all of your various accounts (GMail, Yahoo, LinkedIn, Exchange, etc.).
I also personally like the fact that WebOS is built on top of the Linux operating system and all things being equal will support a company pushing the use of open source software over their own proprietary software and lock-in model.
What’s To Dislike
So, I’ve given a pretty good list of the likes, but what about some things that should be improved? Much of my dislikes revolve more around the hardware than the actual operating system itself. It might be because I’ve now gotten used to having a 3.7″ AMO-LED screen on my Nexus One, but it felt to me like the device was pretty cheap and not very sturdy. The screen seemed small and the device felt at times more like a toy than a true smartphone that would stand up to the test of time.
Another issue I had was with the keyboard. Neither of the Palm devices offer a virtual (on-screen) keyboard, so you are stuck using the physical keyboard on the device. While adequate I found the keys to be very small and difficult to use at times. They again felt cheap and found myself having to hunt for a number of different symbols and punctuation marks. Additionally, since the Palm Pre’s keyboard is hidden behind the screen, this requires you to pop the screen out vertically to access the keyboard. While this worked well, when the screen is open the device felt very top heavy and made using the keyboard not as nice as it could be, since I felt like the device was going to slip out my hands.
Finding and opening up the slot for the micro-USB plugin was not at all easy to use. Maybe over time the small plastic cover would be easier to open, but I found myself almost breaking the cover off trying to get access to charge and plug-in the phone.
Finally, and the most largest flaw with Palm (and probably the one that will ultimately prove to biggest hurdle) is getting application developers to create apps for this platform. At Recursive Awesome, we have done some work developing applications for these devices when it was first launched last summer, but since that time, none of our clients have been asking much at all about WebOS. If there are no applications being developed for the platform, end users certainly will suffer from lack of functionality of the device and certainly will start looking to other options of smartphones that they will purchase. While I have not seen any statistics on the true number of applications available, most think the number is in the few thousands, as opposed to the tens, or even more than one hundred thousand found on iPhone and Android.
Conclusion
So, who does this device work for? The prime target I see these devices working for are my parents generation. People that are not technology savvy users, that want a basic web experience with out all of the bells and whistles. I could see myself recommending this device to my mother or even grandmother for that matter. It still feels like a PDA however in some ways. Basic interface, somewhat intuitive to use (one you learn the gestures), and allows you to have all of your contacts and email in the palm of your hand.
In the end, it’s nothing really groundbreaking, but really an extension of some of the old palm devices I have owned in the past. That’s not to say that Palm is out of the game, but with the Windows Phone 7 coming out later this year, Palm will have a lot of competition on its hands. It already is a distant 4th on the smartphone circus behind iPhone, Android, Blackberry and without an injection of applications and buzz around the devices, 2010 might be the year that Palm is bought (or withers away in to the ether). Which is kind of too bad, since I do think that their WebOS, does provide some very useful and new ideas when it comes to interface design.
In honor of today being The Day that Android is officially released on the Verizon network, I thought it was fitting that I finally get the blog post out the door, that has been churning in my head all week. I’m also very deep in Android programming right now as I’m working to release another Android app for a client of mine, so Android and the future of the platform has been on my mind…
If you haven’t heard, or haven’t been watching TV or listening to the radio, the new “Droid” device, manufactured by Motorola and released on the Verizon wireless network was released today. I was lucky enough to be be invited by Albert Maruggi @AlbertMaruggi to a special Verizon Wireless pre-release” event last week to get my hands on this new device, give some initial feedback and take it through the paces. I was also able to take the phone home and have 3 days with the device and see how it performed. Finally, we all got Eclairs to take home (which were delicious by the way!) in honor of Android 2.0 being the code named “Eclair” release.
This entry will be some of what the device has done (or hasn’t done) for me, but I do have some video that I shot from using the device included near the end of this post. Just as some background, I came into this event and have been using Android since before it was officially released. I was one of the first people in line at the T-Mobile store to get my G1 and have been excited by the evolution of Android and how it was changed over the past year.
Before I start though, as a point of clarity, I don’t subscribe to the stories of “Droid is / not an iPhone Killer”. In fact, I’m very annoyed by seeing all of the articles with titles like this. The whole idea of one platform as “killing” another, really defeats the purpose of these devices and marginalizes what any device or platform will bring to market. Plain and simple, people who write articles like this and this are idiots. Want proof? Here’s an article that agrees with me. In fact, when I was at Google I/O in San Francisco earlier this year I was amazed when talking with a few Google engineers, just how open they were to competition. They really believe that competition and innovation is what is best of the consumer. It was refreshing to hear that they really weren’t all about trying to bash or take down the qualities of other devices out there. And therein is the beauty of Android. You have manufactures, focusing on what they do best (make good hardware) and Google focusing on what it does best (make good software and services). And now, you’ve got the network of Verizon to back this up.
OK, I’ll get off my soapbox now. Let’s talk about Droid!
First impressions
Inside I believe that someone is either a physical keyboard user or a virtual keyboard user. That’s not to say that you can’t be trained and go from one to another, but intrinsically, I think a person will gravitate to one out of habit. I am definitely a virtual (soft) keyboard user. I liked my G1 when it had a physical keyboard, but I *REALLY* liked my G1, when we got the 1.5 update that contained the virtual (on-screen) keyboard. I just find it too awkward to have to pop/slide something out to type. Yes, you can leave the keyboard out all of the time, but I find the balance on most devices with the keyboard open to be odd and also, I prefer to view and browse sites in portrait over landscape mode. Plus, the more moving parts… the more parts that are likely to break! Thus, when I started working with Droid, I was not too impressed by the pop-out keyboard. Sure, it has back-lit keys and is OK to the touch, but the G1 keys pop out a little bit more and are actually easier to use in my opinion. The phone itself is a little boxy and I don’t understand why the screen doesn’t go all the way to the end – it kind of gives it, as Breon called it, the “inverted chin” that you may have seen with other HTC devices. I would have much preferred that the screen just go all the way to the edge. While the screen is absolutely gorgeous and supports thousands more colors than anything else on the market, I’m not sure if I’m really sold on the rectangular shape of the (854×480) shape of the screen. It’s too rectangular for me. I think maybe over time I might get used to it, but if they made the screen longer, I would have liked it if they would have bumped the width out a little bit as well. It has a long tight look too it – not my cup of tea, but is just my small nitpicking.
Performance
Overall, the phone performed flawlessly. It was by far the fastest phone I have used running Android. Part of that might be related to the speedy processor, and some might be Android 2.0. But I’m very happy to see that now Android is performing much better than the Google ION and G1 that I currently have. However, it is a little disappointing that Motorola couldn’t get the new 1Ghz Snapdragon processor in this phone, like you are going see with Sony’s X10 Experia Phone. Now, THAT is the phone that I can’t wait to try.
Here’s some rough hardware specs on the device if you are interested.
Ergonomics
I think Motorola made some serious mistakes in the ergonomics of the device.
First, the sleep and power button are on the top. I love my Google ION (HTC Magic), because I can use just one hand to put it to sleep and then press the “menu” button to wake it back up again. Putting the button on the top was just stupid. It then always takes me two hands to pull it out of my pocket and wake it up. And then two hands to put it to sleep. Not easy to use.
Second, the volume is on the SAME SIDE as this power/sleep button. I found myself repeatedly adjusting the volume as I was putting the phone to sleep or waking it up. I can see why they had to put the volume button on that side (since the other side is the USB port for the cradle), but it’s seems like bad design and something that I know will drive some people crazy.
Third, holding and scrolling with my left hand caused some very odd behavior on the phone. It might be tough to explain and took me while to figure out what was going on, but at the bottom of the phone there are the 4 signature Android buttons – Back, Menu, Home and Search. Many of the other Android phones have these and this is no different on Droid. The problem is that they are capacitive buttons, which mean that it’s really easy to tap them by accident. When trying to scroll on webpages or in emails as I hold the phone and scroll with my thumb, the screen kept shooting back up to the top of the page! After playing around for a long time and talking with a friend about it, we came to the conclusion that it was my palm touching the far left button (“Back Button”) as I was scrolling. This causes the app to auto scroll to the top of the page. So much for walking to the bus stop in the morning and reading my emails and surfing with one hand. This by far was the worse user experience on the device.
With my 3 complaints aside, overall, the phone performs well and for most people that use two hands when using their phone, none of these issues will be a big deal. Just watch out for those capacitive buttons.
Apps
I installed a number of the apps from the market and everything I tried ran fine in Android 2.0 with the larger screen. I must applaud other Android developers for getting new versions of their apps out into the market so quickly and supporting Android 2.0. Besides Droid, there aren’t any other devices running Android 2.0, but I think that will changing in the next month or so, as I bet most all phone will be upgraded to Android 2.0 by the end of the year. Word on street currently, is that Google will have Android 2.1 out by the end of the year. Their development speed is really picking up! Verizon does have their own “tab” on the Android market, which I find is interesting, however, they have only developed 1 App for Android! That’s pretty lame guys. I applaud you for finally carrying the Droid, but now let’s see you develop some applications that use it as well. Their application is a visual voicemail application, that runs pretty good. It basically takes voicemails and converts them to text. Google voice does this already, so really there aren’t any unique apps by Verizon on the market. Would like to see them become more involved. Speaking of which… is Verizon even a member of the OHA?
Android 2.0
I didn’t get a chance to really work through all of the specifics of Android 2.0, but a few high points that I saw as I was playing with the device.
A setting that allowed you to share files via bluetooth – very cool.
Cleaner and more crisp icons.
Soft Keyboard MUCH easier to use.
Auto brightness adjust based on ambient light – worked OK, but sometimes would change for no reason.
Google Navigator – Very sweet! I have a video demo of this below.
Google Services – This isn’t really an Android 2.0 thing, but I will reiterate that having all of your data “in the cloud” is super cool. I would have both the Droid and my Google ION on and all of the contacts, calendars, email, meetings, etc. were shared between the two since they both were accessing my same Google account! It just kind of brought it all home when I realized that I there was ZERO migration (besides apps), if I were to decide to move to another Android smartphone in the future. Very cool.
Here’s some video of the Droid in action!
Summary
Over the past week, a number of people have asked me what I think about Droid. Would I be willing changing to Verizon for this device? Is it an iPhone killer? (I won’t answer that last question) ;)
Well, here’s what I CAN say. I think Droid is a good device for someone out there, however that someone is not me. It’s not the fault of Android and it’s not the fault of Verizon or Motorola. It’s just that I’m very happy with my small compact Google ION (ie. myTouch) and there isn’t enough new on Droid to make me switch. In fact, there isn’t any other device (iPhone, Blackberry, Palm included) that makes me want to switch. My current Android phone from HTC is like little tank that keep on running. I have dropped it, kicked it, scratched it and it still keeps running. It’s small, very light, compact, can fit easily in my pocket and I can quickly pull it out and use it with one hand to get done what I need to get done. And I don’t have to baby it. The Droid is none of that for me, but it probably will be the right device for a number of other people out there. In reality, I see the Droid competing much more with Blackberry and Windows Mobile users. It’s those kind of users that I think will enjoy this device. Droid is just another option on the Verizon network for people that want a cutting edge, fast, large screen, multimedia capable smartphone backed by and integrated with all of their Google service.
Now, as some of you know, Verizon is releasing another droid phone called “Eris” today as well. Has anyone heard of that? Did people even know that “Droid” is more of a collection of phones than just 1 phone? It was pretty dumb move I think to market everything as “Droid”, but then say that you have a “HTC Droid Eris” and “Motorola Droid”. Plan on people being very confused at their local Verizon store today when they start checking out the new phone(s). However, as long as they buy one or the other and enjoy the Android experience, no one is the wiser. Android will continue to grow and developers like myself will continue to build apps. Speaking of apps… time to get back to that app. Time to run for now.
At Recursive Awesome we work hard, and bring products to market quickly and effectively. Our team is agile and our products are... well.... awesome! And we have the portfolio to prove it. So, if you're looking for a mobile and web software development company, then hire us and your next project can be awesome too.