Wednesday, November 6, 2013

A brief review of Nexus 5 and KitKat

So, after a long wait, the world's 'most leaked' phone a.k.a the Nexus-5 was finally launched last week. Most of the information with regards to it's specifications had already been leaked multiple time prior to it's official launch. Thanks to Android Police for tracking the final official launch of the Nexus-5. What follows below are some observations after a few hours of using the phone.

About this review

This is going to be a personal ( and subjective, i.e. non-benchmarked ), at a glance review of the (just received) Nexus 5, and Android 4.4. As of right now, Android 4.4 is only available on the Nexus 5, but since Google has reduced the memory foot print of Android 4.4, so it should be spreading to other devices pretty soon. The official exclusion of Galaxy Nexus ( at least as of now ) is surprising and disappointing to me, however.

General comments with regards to the size
My general comments with regards to the size are that coming from a Galaxy Nexus, the Nexus 5 seems a tad big to me. However, it is of the a size which I feel I will get used to it in a few days just as I got used to the Galaxy Nexus when I first got it. Nexus 5 is also marginally bigger than the Nexus 4.

General comments with regards to performance
The phone has a solid overall performance in terms or launching apps for the first time, restoring currently running apps, switching between apps via the task switcher, overall fluidity and refinement of transparency and motion animations. I believe that Google hit a sweet spot in Android UI design from Android 4.0 onwards, and Android 4.4 builds up on top of all the incremental updates to improve the overall look and feel across the board. In common tasks, like browsing, listening to music, watching videos etc, I didn't find a significant change between the Nexus-5 and the Nexus-4, which is not a bad thing at all. The Nexus-4 ( with 4.3 ) screams while performing these common tasks and Nexus-5 incrementally improves that. I am sure that for highly performance intensive tasks, Nexus-5's updated processor truly shows it's power. Indeed, in some tests it has shown itself to be one of the best performing Android phones in the market today.

General comments with regards to Android KitKat 4.4
Some of the features of the software package on Nexus-5 are listed below:
1. Google Now is just a left swipe away due to a totally re-designed Launcher App.
2. Google Now is also accessible from the home-screen via the keyword 'OK Google'. This is still not as nice as the 'Always-On' mode of Moto-X, or the ability to launch Siri from any screen in iOS devices.
3. Minor improvements like transparent status bar, and bottom menu bar.
4. The Camera app contains an HDR+ mode which actually takes multiple pictures at multiple exposures, and combines them. This is different than the traditional HDR Camera apps which do not follow this process. It should also be noted that the Camera is Optically stabilized, which is useful for certain shots when your hand may not be stable.
5. A full-screen mode which is useful for Apps like Games, or Videos, or for reading eBooks.
6. Higher security with SELinux in enforcement mode.
7. Typing in Hindi is now much easier.
8. A foray into a totally new run-time known as ART, which promises to significantly boost overall performance.
9. Number of home screens is unlimited.
10. Pedometer like functionality is now a part of the Nexus-5, KitKat combination so devices like Fitbit etc have a new challenger.
11. Business Caller-ID is now integrated as part of the Dialer App. What this means is that if you receive a call from a Business that Google has catalogued, then you will be presented with the relevant information when they call you. It also means that local Business search is integrated as part of the Dialer App. So if you want to order pizza, you don't need to open the browser and search for Pizza, but instead go straight to the Dialer App, search for Pizza there and Google starts showing local options immediately. There are plans to expand this to Individual Caller-ID as well.
12. Expanded developer options.

Q. Why did you choose a Nexus device ? Isn't Android Phone X better in parameter Y than a Nexus device ?
A. One word ( or two actually ) - OS updates. To me Android OS updates coming straight from Google, without having to wait for carriers, and/or OEM ( Original Equipment Manufacturers ) is one of the most important aspects of owning a device. Staying on the latest platform, not only ensures that you receive the obvious visual features, but also most importantly, the latest security patches and updates.

Q. What about the cost ?
A. Unlocked - 16 GB ( $350 ) , 32 GB ( $399 ). For the above mentioned performance and features, this is an unbeatable price since it compares favorably with many of the phones which cost double unlocked.

Q. What about the battery ?
I am expecting a battery life analogous or marginally better than that of the Nexus 4, due to the slightly larger battery. I will update this section once I have more info. It is interesting to note here that the Nexus-5 features some technology to reduce Battery consumption

Additional Reading and Extras:
1. Excellent overall summary of Nexus-5 and KitKat.
2. Google's official listing of KitKat updates.
3. KitKat's official video on Kitkat .
4. Last but not the least, Google's official promotional video for Nexus-5.



Sunday, July 7, 2013

Week long stress test of Google Glasses


The Origin
  • Google conducted an #IfIhadGlass campaign earlier this year, and a post of mine on Google Plus got me selected in the campaign. I had hoped to not just use it as an end user, but also to write apps for it. This review will focus more on usage of the device, as compared to a hardware breakdown of the Glasses.

The Pickup
  • Around 1st week of June, I received notification from Google that I could pick-up the glasses within a month and I scheduled my Google Glass pickup from the Chelsea Market site on 29th June. At the time of Pickup, I took a 360 degree panorama of the site which can be seen here.  During the appointment, basic functionality like taking pictures, videos, setting up WiFi networks, making calls, navigation and 'Googling'-via-voice commands were demonstrated. The atmosphere was cordial and the folks there were responsive to the various questions that were posed. I was told that even though I can pickup the actual Glasses there, I would have to wait for sometime to get the actual detachable / modular Glass shades. This was a minor disappointment, since I had hoped to collect the entire kit in one go, especially after spending a decent chunk of money and physically making it all the way to NYC. Anyways, the pickup was right in time for my week-long trip to Vegas and Grand Canyon, where I had hoped to do a 'stress test' of the device. I thought that with the temperatures touching 118 deg F ( or 47.7 deg C ), it would provide an ideal atmosphere to test the Glasses in rough conditions.

Construction
  • The build quality is absolutely top notch, and it also feels surprisingly light. Also, the Glasses accidentally fell down twice from a desk, but there were no scratches, or signs of damage. 

Battery life
  • There has been justified criticism of the battery life of Glasses, which has been stated in certain blogs as being nearly 4 hours of heavy use. However, in my usage of the Glasses I was regularly able to take more than 100 pictures and videos over the course of the day on a single charge. Additionally, I don't believe that Google intends Glasses to be used as a continuous video consumption device ( primarily due to eye strain), but more as a here-and-now kind of a device. In that sense, Google Now is the perfect app for Google Glasses. Also, in that sense even though the battery life is an area of improvement, I found it adequate of bursts of interactions throughout the course of the day.

Photos and Videos
  • The Glasses take decent pictures and videos in good daylight ( Sample1, Sample2, Sample3, Sample4 ) and also in moderate low light conditions ( Sample5 ). Glasses are excellent for catching fleeting moments, when you have a very limited window of opportunity. For example, we once came across Google's StreetView car, and were able to take pictures and videos of it easily with the Glasses. Glass's camera becomes nearly useless in very low light / night conditions ( as expected ). I don't expect that Google would be able to fix this anytime soon. They could either add a compact Flash, or increase the exposure time for the lens. Adding flash would have an adverse on the already scarce battery life, and increasing the exposure time is difficult because you would then have to keep your head absolutely stable for the duration of the exposure, which is not an easy task. At the moment, the Glass software automatically applies effects ( HDR tweaks ) to the pictures to enhance them and you don't have much control over the effects. This is an obvious area of improvement in the near future. Also adding timer(s) for photography would be very useful. Last but not the least, in a traditional camera you are able to frame the picture properly before taking it but currently in Glass you don't get that option. I guess in the future, this would be another good area of improvement with which you can get a live-preview of the picture that you are about to take. The pictures and videos get backed up automatically to Google+ when data connection is available, which good for backup.

Sharing
  • The 'Taking-a-picture-and-share-it' loop is very straightforward. It is frictionless to the extent that one needs to be really careful while sharing pictures since it is such a compact loop. In the entire week of testing, there was only one incident where I accidentally shared a pic when I didn't intend to share it. The sharing function is tightly integrated with Google+, and you cannot help avoid the the feeling that Google is using Glasses to push Google+ ( pushing Google+ through all possible fronts seems to be Google's policy these days anyways).

People's reactions
  • A bus driver at Grand Canyon as I was boarding the bus: "Is this your video monitor ?"
  • Random person 1 at Grand Canyon ( with a broad grin ): "Google Glasses, eh? Are you recording everything here ?"
  • An employee at a Grand Canyon Cafe: "Is this a magnifying Glass ?" ( Best reaction award goes to this one, in my opinion )
  • A security personnel at a gas station close to Valley of Fire: "What you got going on there ?"
  • TSA employees: No response at all.
  • Some folks looked suspicious of it, while others were in awe. 

Limitations
  • Volume of the bone conduction speakers is too low, and they are not audible in any public place. They can be easily overwhelmed with the most minor noise.
  • The screen becomes useless in ultra-bright conditions. The only saving grace is that you can issue voice commands to still get functionality out of the device.
  • Google is still working on Glass version for people who need optical correction. Given the modular design, this shouldn't be difficult.
  • During the week of usage, there was an incident when I took a phone call with Glasses and the Glasses got 'stuck', i.e. they were repeatedly playing a sound even after I cut the call. I had to perform a hard reset of the device by pressing the power button continuously for 10 seconds. I guess this is a part of the pre-release experience. Anyways, this just happened once during the course of the week.

Voice recognition
  • The microphones on Glass are impressively sensitive and accurate. Obviously, in strong winds you need to speak on top of the ambient noise if you want to perform voice commands. You also have the alternate option of using the touch-pad in such cases to navigate through the functionality, if you so prefer.

Glass as a distraction?
  • After having used it for a week, I have to say that the Glasses are not as distracting as I had originally thought. One still needs to be responsible while using them, as with any other device like a smartphone.

Software Upgrades
  • When I picked up my Glasses, they were at the XE4 firmware level. Subsequently after reaching home, i received the XE6 update, and then a few days back I received the XE7 upgrade. In other words, I received two updates during the course of one week. Google has plans of providing software upgrades every month, so there should be new features / fixes being made available on a fairly aggressive schedule. 

Future success / failure
  • After having used it for a week, with having it on my eyes for almost all of my waking hours, I am still not convinced about the absolute future success or failure of the device. It could go either way. What I am sure of is that it's an interesting concept and Google is willing to aggressively improve it over time with feedback from #GlassExplorers, which should keep it interesting
Additional Resources


Monday, April 8, 2013

Developing Services for Google Glasses - Notes from SXSW session

Here are some notes from Timothy Jordan's talk at SXSW with regards to developing for Google Glasses using the Glass Mirror API. The complete video can be seen here. From now, unless specified otherwise, the term 'Glasses' used in the text below refers to 'Google Glasses'

General Terms
  • Cards - A single screen being displayed to the user. The type of cards can be Text, Text + Images, Rich HTML and Video.
  • Bundle - A 'nested' Card. This card has a 'fold' at the upper-right corner, and can contain a collection of other Card(s).
  • Timeline - A chronological collection of Cards. Over a period of time, the various screens that you saw on Glasses get stacked on a 'Timeline'. This seems to be akin to a browser's history. You can use the touchpad to navigate between the various cards on a Timeline. It would be interesting to know how deep is this stack of cards, and also what happens if you want to delete a particular card in the timeline.
  • Share Entities - This is used to expose a Service's functionality to other Services. If you have a background with Android, this is akin to how Applications can expose their functionality to other  Applications, via Intents.
Glass Mirror API 
  • The slides showed Google as being the intermediary between a developer's services and the end user's device.
  • In other words Glass sync takes care of Sync'ing between Google's servers and the user's device. This also means that a developer's service does not need to know if the user's device is currently on / off, or connected / disconnected etc.
  • The user needs to approve a developer's services so that they are allowed to enter Timeline cards in a user timeline. This is akin to an 'installation' process.
  • REST, OAuth2 and JSON technologies are used to push information to user's device from approved services.
  • For example if you want to post 'Hello World' on a user's screen, you would send the JSON payload {"text": "Hello world"} to Google's Mirror API end-point with the appropriate Auth Token.
  • There are two ways to create 'Bundles'. The first technique is 'Pagination' oriented. For more information, take a look at the video around the 20:42 mark. In the other technique, you create discrete cards, but provide a common bundle Id for the bundled cards, thereby creating a Bundle. 
  • To update an existing Card, you send an HTTP PUT request.
  • To delete an existing Card, you send an HTTP DELETE request.
  • To retrieve a card, you send an HTTP GET request.
  • Whenever you create a new Card, you can also specify actions/options associated with that Card. 'Reply' and 'Read aloud' are system options ( built into the framework ). You can also specify 'Custom' actions.
  • Subscriptions are a way by which the user's device communicates back to a Developer's services, via Google's servers. Subscriptions are therefore like the 'callback' mechanism for user's actions. A developer's service needs to subscribe in order to receive callbacks. Presumably you get an action's actionId in the callback, based upon which you determine the appropriate course of action to be taken. What concerns me about this is the response time for the end user since the information about a user's action needs to be sent to Google, then to the developer's servers and then presumably back along a similar route. 
Guidelines
  • "Design for Glass" ( and ofcourse experience it on Glass !) - Design for quick interactions.
  • "Don't get in the way" for example via infrequent notifications, and by not showing Modal selections.
  • "Timely notifications" because Glass is a 'right here, right now' device.
  • "Avoid the unexpected", via transparency of functionality
General Notes about Glasses
  • Glasses are never directly in-front of the eyes but at the right top.
  • One of the most common way(s) of interacting with the Glasses is via speech.
  • There is a touchpad to the side of the Glasses. The various gestures which were demonstrated were swipe forward, backward, up, down and tap.
  • 'Basic' head gesture(s) can also be used to interact with Glasses ( check-out the original talk video around the 13:45 mark )
Demos
  • Sample Apps developed by NYTimes, Gmail, Evernote and Path specifically for Glasses were demonstrated.