Pages

Ads 468x60px

Thursday, September 25, 2008

Mobile Web Europe Conference- Key Takeaways


LONDON -It will take me a while to assimiliate 3-days worth of information on where we are headed with Mobile Web today but some of the key questions that were addressed were:

-Should we head towards a 'one-web' concept (same for PC and mobile as per the Convergence theorists) or more towards two distinct webs (as advocated in part by .mobi), one optimised for PC and the other optimised for Mobile (and the maligned 'small screen')?

-With much talk of Mobile Social Networks, shouldn't companies in this space realise that they need to focus on hosting the network instead of managing it? This was a great point mentioned by Priya Prakash of Flirtomatic, who also went on to state that a great host should facilitate conversations and act more as a matchmaker so that new contacts can be made

-Alfie Dennen from moblog:tech was of the opinion that the iphone has taken the industry a step back (due to its closed environment), something overlooked amongst the mass hysteria surrounding it

-Kashif Hassan, from ooober, made an excellent point about content, suggesting that given the sameness of many Mobile Social Networks, it is the presence of branded content that will make the difference...witness HBO's Entourage feature on the whrrl site

...to be continued///

Tuesday, September 23, 2008

Announcing the Android 1.0 SDK, release 1

About this time last year, my colleagues and I were preparing for the first of the "early look" SDK releases. I remember being a little freaked out—November 12 was starting to sound awfully close! But I think I can safely speak for the entire Android team when I say that we were all very excited about that upcoming release. In the year since, we've run and concluded the first Android Developer Challenge, given away $5,000,000, released more SDK builds, and worked with our partners to prepare the first device for users. It's been quite the whirlwind of a year.

In one of those strange cosmic symmetries, here we are a year later, and we're once again very excited about an upcoming release. I'm referring, of course, to the first Android-powered device that our colleagues at T-Mobile have just announced—the T-Mobile G1. We can't wait to see our hard work on store shelves and in the hands of users, but today we're almost as excited because we're announcing the brand-new Android 1.0 SDK, release 1.

Yes, that means we're officially at 1.0. Of course the SDK won't remain static—we'll keep improving the tools by adding features and fixing bugs. But now developers can rely on the APIs in the SDK, and can update their applications to run on Android 1.0-compatible devices. The Android Market beta will also launch with the T-Mobile G1, providing developers an easy and open way to distribute their applications on that and later devices. I've already seen a lot of applications that have me stoked, and I can't wait to see things really come together as developers cross that final mile to prepare their applications for Android 1.0.

So what's next for us? Well, we'll keep working on the SDK, as I said. But we're also working hard with our partners in the Open Handset Alliance on the open-source release, with the aim of making the code available in the fourth quarter. The second Android Developer Challenge is also on the horizon—watch this space for more details. We're also already working on the future of the Android platform, and on more devices. We've updated the Developer Roadmap, and we'll keep updating it as more information becomes available.

It has indeed been quite an exciting road to get to where we are today. The road stretches on ahead though, and we're not slowing down for a moment. I look forward to meeting and working with many of you developers out there—and trying out your apps on my phone!

Happy Coding!

Monday, September 22, 2008

Panoramio

The Panoramio web site has a great collection of photos from all over the world, and they also have a very convenient web API. I thought it would be a lot of fun to use Android to access this content while you are out walking around – and especially to have Android find interesting photos based on your current location. The resulting open source application is now available in the apps-for-android project.

The application starts by showing your current location in a custom MapView. You can pan and zoom this map to choose the area you want to search.

Once you have selected a search area, the application downloads thumbnails of the most popular photos taken within that area:

You can tap on an item to see more details.

From here you can use the menu to find more pictures by the same photographer or to see the original photo on the Panoramio site. My two favorite features, though, help you find the location of the photo in the real world. You can show the location on the map along with your current location:

Or, you can bring up a radar view that uses the compass and GPS to show you the location of the photo in relation to your own location:

I thought that other applications might want to use the radar view for their own purposes ("find me the nearest taqueria"), so I split that into its own package. You can find the source for that in the Radar project. Of course, you don't need the source in order to use this feature. Because of Android's component architecture, all you need to do us use an Intent:

Intent i = new Intent("com.google.android.radar.SHOW_RADAR");

i.putExtra("latitude", 37.422f);

i.putExtra("longitude", -122.084f);

startActivity(i);

The code for these applications is not very long, but they are a good example of how to use a number of Android's location APIs:

Friday, September 19, 2008

Using WebViews

I've written a small application called WebViewDemo that shows how you can add web content to your application. You can find it in the apps-for-android project. This application demonstrates how you can embed a WebView into an activity and also how you can have two way communication between your application and the web content.

A WebView uses the same rendering and JavaScript engine as the browser, but it runs under the control of your application. The WebView can be full screen or you can mix it with other Views. The content for your WebView can come from anywhere. The WebView can download content from the web, or it can come from local files stored in your assets directory. The content can even be dynamically generated by your application code. For this example, the HTML comes from a local file called demo.html.

This application does not do very much: when you click on the android, he raises his arm.

This could, of course, easily be accomplished with a little bit of JavaScript. Instead, though, WebViewDemo takes a slightly more complicated path to illustrate two very powerful features of WebView.

First, JavaScript running inside the WebView can call out to code in your Activity. You can use this to have your JavaScript trigger actions like starting a new activity, or it can be used to fetch data from a database or ContentProvider. The API for this is very simple: just call the addJavascriptInterface method on your WebView. You pass an object whose methods you want to expose to JavaScript and the name to use when making calls. You can see the exact syntax in WebViewDemo.java. Here we are making our DemoJavascriptInterface object available to JavaScript where it will be called "window.demo".

Second, your Activity can invoke JavaScript methods. All you have to do is call the loadUrl method with the appropriate JavaScript call:

mWebView.loadUrl("javascript:wave()");

Our WebViewDemo uses both techniques: when you click on the android, it calls out to the activity, which then turns around and calls back into the JavaScript. WebViews are very powerful, and they may be a valuable tool to help you build your application – especially if you already have a lot of HTML content. As it happens, we've used exactly this approach in some of the applications we've written.

Monday, September 15, 2008

Divide and Conquer

Years ago I was addicted to a simple game that I played on my then state-of-the-art Pentium-75. In this game, balls would bounce around, and I would try to partition them into small enough spaces so that I could go to the next level where more and more balls would be added. As of a couple of months ago, for the life of me, I couldn't remember the name of this game. So when I sat down to write an application for Android in my 20% time, I thought, why not try to recreate something similar? After completing most of the game and showing it to some of my friends at work, one of them said, "Oh, this reminds me of JezzBall!" Eureka! If working on this game does nothing more than reveal the name of one of the favorite games of my youth, I'll call it a success, but in the meantime, I'm happy to announce that the source of this application, named Divide and Conquer, is now available on apps-for-android.


The game starts with instructions:



and begins simply enough with one ball bouncing around. You drag your finger in a horizontal or vertical gesture on the screen to initiate a line that extends until it reaches the edges:




In each level, once you've shaved off 80% of the original area, you move to the next level. Here's a screen shot of level 6:


If a ball hits a line in progress, you lose a life:



Once you are out of lives, it is game over:



While this game isn't going to win any awards for cutting edge graphics, it demonstrates use of several Android features and APIs:


  • custom drawing and animation
  • touch input based gesture detection

  • overriding the default behavior of the back key in some situations (to pause the game)

  • creating custom Dialogs

  • configuring an application to be full screen with no title or status bar
  • use of the preferences framework

  • use of the vibrator API

DivideAndConquerView is a custom View that implements its own onDraw method using the Canvas methods, and gesture detection using onTouchEvent and a helper class DirectionPoint. It keeps track of the state of the game using BallEngine, and reports relevant events back to the main activity of the application, which, in turn, keeps track of and controls the state of the game. The application is configured to be full screen in its AndroidManifest.xml file.

Friday, September 12, 2008

GeoMe quoted in El Pais Newspaper as Leading LBS Innovator


MADRID -El Pais, Spain's leading newspaper, published an article yesterday on Location Based Services and Mobile Social Networks, describing the overall environment and prospects.

'In Spain, there are a handful of innovative start-ups vying to lead the market.From the location-based service of GeoMe...the mobile phone is 'dressing up' with a web outfit in order to hit the town..' says Manuel Angel-Mendez, from El Pais.

I was interviewed for this article and duly get a quote later on where I state my view that most users don't want to be tracked wherever they are and prefer to leave messages on a map so that only their friends can see them if and when they are in the same area as the message.

Rummble, one of the companies presenting at the Mobile 2.0 Europe event in July in Barcelona (see previous quote) gets a well-deserved mention-they have a recommendation-based search function that allows community members to receive notifications according to your preferences.

'The barrier for mobile social networks is achieving a community of 100,000 users' continues Angel-Mendez, 'Once a service hits this magic number, anything is possible'.

For Spanish-speakers, the El Pais article can be referenced through the title link of this post.

Thursday, September 11, 2008

Three new Samples: Triangle, SpriteText and Downloader

I've posted three new open source samples to the apps-for-android project: Triangle, SpriteText and Downloader.


The first two samples, Triangle and SpriteText, show techniques that would be useful to anyone using the OpenGL ES 3D graphics APIs to write Android applications. The samples contain several reusable classes that may eventually be incorporated (in some form) into the SDK. Chief among these is the GLView class, which abstracts the OpenGL ES book-keeping code from the rest of the application. GLView helps handle the extra work OpenGL ES applications have to do when the activity is paused and resumed, and when the display goes to sleep and wakes up. In the Pause/Resume case the OpenGL surface has to be recreated. In the display sleep / wake-up case the entire OpenGL context has to be recreated.

Triangle

The first sample, Triangle, shows how to use the GLView class and the OpenGL ES 3D library to display a spinning textured triangle. Think of it as the "hello, world" of OpenGL ES apps. Because it's relatively simple, it's a good place to start when experimenting with the OpenGL ES API.


SpriteText

The second sample, SpriteText, shows how to efficiently display screen-aligned text using the GL11Ext.glDrawTexiOES method. SpriteText contains a reusable LabelMaker class for drawing static text and screen-aligned images, as well as a Projector class for finding the 2D screen coordinates corresponding to a 3D point, and a MatrixTrackingGL class for keeping track of the current transformation matrix. Finally, it shows how to use these classes to display a milliseconds per frame counter. A ms/f counter can be helpful for tuning graphics performance.


Downloader

The third sample, Downloader, shows how to add a downloader activity to your application. The downloader activity runs at the beginning of your application and makes sure that a set of files have been downloaded from a web server to the phone's SD card. Downloader is useful for applications that need more local data than can fit into an .apk file. For example a game could use Downloader to download the game's artwork, sound effects, and level data. The Downloader activity is designed to be a drop-in addition to your application. You customize it by supplying the URL of an XML configuration file which lists the data files that need to be downloaded.

Wednesday, September 10, 2008

deCarta devCON08-San Francisco 22-24 October


deCarta, one of the enablers behind NokiaMaps, is hosting its Development Forum, devCon08, at the Intercontinental Hotel in San Francisco on the 22-24th October 2008.

The event will cover a wide range of development issues surrounding location on mobile, with both lecture-based and workshop-based sessions. The rough agenda is as follows:

  • Business and Industry sessions to provide the latest perspectives on mobile LBS market trends, technology requirements, roadblocks and opportunities, with individual presentations and panel discussions featuring some of the industry's leading experts.
  • Technical sessions going deep on topics such as advanced navigation capabilities, geo-coding, enabling the mobile Internet, real-time and thematic data integration, traffic, platform scalability, best practices for sat nav system UI design, and so on.
  • For developers who are new to location applications or deCarta's technology, a series of sessions will provide an accelerated course on developing applications using deCarta's DDS platform, Web Services and powerful JavaScript API, as well as deCarta's Nav.Net, and Internet connectivity for advanced personal navigation devices and smartphones.
  • A full-day, hands-on Developer's Workshop on the first day will be custom-tailored to help you accelerate your mobile application development.
For more info and to sign up, link through the title to the event website.

Tuesday, September 9, 2008

Kevin Kelly's 'The One' Vision

A friend of mine pointed me to the video of Kevin Kelly's (Editor of Wired) presentation at the TED conference and his 'The One' vision is well worthy of being shared further.

His premise is that the web (not the internet) is only 5000 days old and has grown to an amazing level in that time in terms of complexity and functionality (and the amazing thing, he says, is that no-one is amazed).

He then looks at the future 5000 days of the web, which will be the 'Internet of Things'. He envisages total personalisation of the web in the future but at a cost of providing 'it' with total transparency of personal information...if you forget your phone number in the future, you will only have to google for it...

The future web will be smarter (and incorporate AI), will anticipate what we do and will be more ubiqitous.Everything will go through the web or be saved by the web. Scaringly, today the sum total in processing power (or 'intelligence') of the web is equal to that of one human brain but in 30 years' time, the intelligence of the web will exceed that of the whole of humanity put together...

In terms of mobile web, Kelly's vision puts portability of the web high on the agenda and connectivity everywhere -implying a dominant role for portable connected devices, mobile or otherwise.

I recommend you take a look at the video and judge for yourselves...


Friday, September 5, 2008

Ecorio-scoops one of 10 top Android Developer Challenge Prizes


Sometimes a startup comes along and executes a nice, innovative concept in a beautifully simple way and with a nifty design...Ecorio is one of these rare pearls, with an application that allows you to measure and reduce your carbon footprint by keeping track of your journeys using the GPS on your mobile device.

Ecorio was founded by '5 guys from Ontario', and they came up with the simple 3-button model of ecorio:

Reduce-to find out how to save by changing route or transport mode
Inspire-with tips from community members on how to reduce environmental impact and
Offset-allows the user to mail himself with a carbon offset calculation and purchase carbon credits online.

Ecorio won one of 10 top prizes of $275,000 under the Android Developer Challenge competition and now has a real chance to build on their initial success and develop new features for their application.

View the full Android Developer Challenge results by clicking on the title link of this post.

Thursday, September 4, 2008

Android Photostream

I'm pleased to announce that a new open source sample application—called Photostream—has been added to the apps-for-android project. Photostream is a simple photos browser and viewer for Flickr. All you need to use it is a Flickr screen name or user name (the application offers a default user name if you just want to try it.)



This application serves as an illustrative example of several Android features and APIs:


  • Activity aliases

  • Adding custom shortcuts to Home

  • Adding a new wallpaper chooser to the system

  • Custom layouts

  • Custom XML attributes

  • Use of themes

  • Use of styles

  • Use of text colors

  • Use of <include>

  • Use of bitmap and layer drawables from XML

  • Use of HttpClient

  • Proper interaction between background threads and the UI thread

  • Efficient display rotation (using the new onRetainNonConfigurationInstance() API)

  • Animations and layout animations

  • Cropping an image

  • Image manipulation





My favorite feature is the ability to add a new shortcut type in Home, to create a shortcut to any Flickr account. The shortcut shows a custom icon, downloaded from the Flickr user profile:





If you plan on reusing the source code to access Flickr in your own application, you should modify the Flickr.java file to replace the existing API key with your own. The application source code also contains a very handy class called UserTask.java. This class is designed to help you easily write background operations that interact with the UI thread.

Wednesday, September 3, 2008

Fring-mVOIP startup works up an edge


Fring, the Israeli company with $10m funding (from Pitango Venture Capital and Veritas Venture Capital) launched its first Mobile VOIP (mVOIP) service back in January 2007, and since April this year has made its application available on the iPhone.

Fring works well with flat rate data tariffs as well as Wi-Fi. The nice aspects of the application are that you are able to see who is online before you call and to do so, you simply click on Fring’s green button icon.

Some debate exists as to which company is likely to make it in the mVOIP sector, where notable players include jajah and truphone (see my earlier post in January). Fring may have the edge, given that it is truly free (it works completely off the operator data plan with no extra charges) and also seems to have a clearer and more aggressive strategy than the others.

Truphone, though initially much hyped, initially set out to deliver mVOIP exclusively over Wi-Fi, a bold move but ultimately the wrong one, as it was later forced to additionally offer its service through the 3G network. It was also behind fring in offering its service on the iPhone, only releasing the app in July this year.

Fring has now also opened up its API to third parties, allowing it to build up something of a community in the future. It now features a Facebook add-on and encouraged microblogging through its FringOlympics promotion in the summer. The Fring-me widget is one the later additions to the stable of add-ons, allowing those connected to the web to see when a Fring user is online .

Monday, September 1, 2008

CERN Time Machine to start ticking on Sept 10th


GENEVA -I rarely stray from the main subject matter of my blog, but unless you've had your head buried in the sand during the summer vacations, you will realise that in just 9 days, the biggest scientific experiment ever planned will take place near the tranquil waters of Lake Leman in Geneva.


The Large Hadron Collider, a 17-mile long particle accelerator at the CERN facilities (home of the inventor of the www), will accelerate matter to 0.01% of the speed of light and will be switched on for around 10 hours. During this time, its beam will travel roughly twice the distance between Neptune and the Earth.

All of this is vaguely reminiscent of Star Wars, and the photo (credit:Maximilien Brice, © CERN) reinforces this impression.

Exactly what will happen when the enormous amount of energy required to fire the beam is unleashed is anyone's guess but, if I were you, I'd plan a full backup of your computer files for September 9th...

A webcast is available at CERN, which you can reach by clicking on the title of this post.

Related Posts Plugin for WordPress, Blogger...