Google I/O conference

I'm just back from the Google I/O developer conference, where there were a lot of new announcements around the Android platform.  Here are some highlights:

1. Google is putting their support behind HTML5.  This is the next generation of HTML and it will work across both web and mobile.  Once HTML5 is established, anyone will be able to develop mobile apps easily, without having to write specific mobile code or go through the submit process in app stores.  The challenge will be to make sure that all companies make compatible HTML5 browsers for PC (Firefox, Internet Explorer) and mobile phones (Apple, Nokia, Opera, etc).

There are five key areas of HTML5 that Google is focusing on:
– Canvas:  Provide high quality graphics including 3D using HTML and Javascript.
– Video:  A simple html tag for embedding video, similar to the 'image' tag.
– Geolocation:  Using multiple location sources such as GPS, WiFi, and Cell towers and making them accessible through Javascript.
– Local storage:  Provide application data storage and a database within the browser.
– Web workers:  Create ways for Javascript to perform better, and not crash or freeze the browser.

2. Google announced there will be 18 to 20 new Android handsets released this year.  That's a lot!

3.  Google announced the 'wave'.  This is a new platform for communication that combines email, chat, photo sharing, twitter, and more.  It's going to be free, and they will offer it to enterprises.  Microsoft better watch out.

Here are my detailed notes — not posting this because I think anyone else will read it, but just so I don't forget 😉

Keynote at Google I/O.  It's all about HTML5.

Five areas of focus:

1. Canvas.  Drawing and animation with pixel level control.  canvastag and javascript.  Examples of canvastag:  Bespin is IDE for html/javascript dev.  Profiling tool provides graph of performance, dynamic graphs.  Also can do 3D.  Demo's.  Moving water adn fly through 'beach demo', open source.  Runs within the GPS, not CPU, for less load on performance.  You can edit and test code on your machine.  Requires all browser vendors to standardize, no mention of IE.  Today this is a plugin, but will be built into browser.

2. Video.  Currently different codecs make it hard.  html5 has simple 'video' tag, like 'image'.  Javascript controls to play and stop and rotate.  Demo of YouTube

3. Geolocation.  Everything is better with location:  crm, social, advertising, games, photos.Currently too slow, too constrained, too fuzzy.  Cell ID and Wifi solve the problem, companies like skyhook and google.  Browsers are now location enabled, w3c geolocation api is implemented across browsers.  Jay Sullivan from Mozilla.  Firefox 3.5 will have much better Javascript performance, 3x improvement.  Geolocation API support.  Demo of google maps in firefox with button for 'my location' using wi-fi hotspots, uses specific opt-in per hostname.  Demo of Latitude on iPhone within the browser, next generation of iPhone uses geolocation API in html5 safari browser.

4. Local storage.  Database and app cache store user data and app resources locally.  SQLite storage for Sticky note app.  You can use pointers to local file storage within the browser.  Demo on Android phone of Gmail within Webkit when it's offline, this is Google's first offline app.  Michael Abbott, SVP, Palm.  Palm is here b/c of focus on webOS, using cloud and device services and webkit as core rendering engine.  Mojo framework allows you to style but keep good performance.  Palm demo's of canvas tag in calendar scrolling, css transformation in the music app for album artr, html5 db for storing user history in browser, accelerometer api in browser javascript.

5. Web workers.  Challenge of keeping javascript performance from freezing the machine.  Background scripts is the solution.  Demo of calculating prime numbers in separate thread, UI is responsive while calculating prime numbers and other tabs work.  Demo of video with canvas tag, woman crosses screen and motion detector operates in realtime as background process.

App engine and google web toolkit (gwt):
App engine lets google do the hosting.  gwt lets you write in java and push down javascript across multiple browsers.  Kevin Gibbs and Andrew Bowers of Google.  200k developers signed up for google ap engine, and 80k apps deployed.  Announcing Open Javav signups immediately.  Demo of end to end solution.  2.5 minutes to set up.  Open project in GWT and App Engine.  Coming in 2.0 will be in-browser debugging.  Next version of GWT has features for html5 heavy-javascript apps, allows you to split javascript and download it asynchronously.  Example of 7x decrease in initial download size using runAsync() in a web app.

Google services:
Today they crossed the 4 billion daily api calls.  DeWitt Clinton.  Google Elements copy and paste into web browser.  Demo, pull in web element for google headline news.

Android:
10 carriers in 12 countries.  4900+ apps in market.  40+ apps per person.  number 2 in us web browsing.  Romain Guy of Google.  v1.5 is live, and next version (Donut) is in process.

Donut has 2 new features: 

1) Search more powerful for users and developers.  Demo of search widget, looks within apps and contacts on the device, also web results.  Search UI can act as launcher for users, keeps history and does predictions including frequently used apps (like macos spotlight).  In few lines of code a developer can add results into the search api.  Demo of search for authors which pulls in book search results from external developer's data source.
2) Speech recognition in Donut.  New text to speech API.  Different language packs for text to speech.  Open source engine for text to speech in Donut.

Experiment from Android team. Demo.  Launch contacts.  You can draw on screen with your finger and it recognizes handwriting.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>