2011-02-04

Mobile devices, from current situation to modular

Time to revisit this blog, among all the other places and corporate blogs I write I found that the updates here will probably remain at this interval with a post now and then when interesting things have happened.

It feels like a good time to talk about the future of mobile devices when we are in between CES and Mobile World Congress. We have already seen a few hints of what is to come in 2011 such as the Motorola Atrix with its changing personality depending on the peripherals connected, tablets, tablets and tablets. One obvious thing is that the smartphone race is turning into a performance race with more cores and graphical processing units (GPUs) being tossed into the mix.

This post will be structured in three sections, first a discussion on what happened in 2010, the status of OS platforms such as iOS, Android, Symbian, MeeGo etc. Then a short section on what is happening on the hardware front and after that try to look at the consequences and what it means for building innovative devices going forward.


The current situation
At CES it was clear that the mobile market today is focused on Smartphones and Tablets. These are the products generating most of the buzz and right now everyone seems concentrated on building better and more impressive touch screen devices. The main thing from 2010 is probably the very rapid rise of Android as a dominating smartphone operating system. Legacy competition had to call it quits (such as Windows Mobile) or struggles hard to maintain market share (Symbian). I am willing to stick to my prediction from the fall that something radical may happen to Symbian in 2011 and Nokia will go all MeeGo. MeeGo will probably be the last major new platform to head into the smartphone competition as it looks today. Then it may be time for the scenario change that I mention and try to outline below.

What is interesting about a situation where Nokia goes all MeeGo is that it would more or less place iOS in the position as the legacy OS. Since the launch of the first iPhone we have seen Microsoft move to Windows Phone 7, most of the major manufacturers move to Android, BlackBerry is betting on their QNX based playbook OS. Few of the rivals of the original iPhone are still part of the competition. The challenge for iOS is now to innovate from a legacy position, to include new exciting features while not breaking the application compatability and user experience that give it a unique position today.

So stepping into 2011 we have a situation where full touch devices with app-stores like the iPhone seem to be dominating. Android being the most succesful example. The other main point is that everyone wants to imitate the iPad success by building tablets.

So what is brewing outside of all the gadget blogs and smartphone/tablet/OS discussions. A couple of noteworthy things as I see it. Computing is going mobile for real, tablets and smartphones are starting to dig into to PC sales, primarily netbooks. Connected devices are starting to show up under the radar in larger and larger quantities. Cars, cameras, alarm systems and other equipment are becoming more and more capable of interacting with the outside world.

Most of this should not be news and I leave to the tech sites to speculate how much faster the devices will become in 2011. Instead I would like to focus on the longer term consequences. But first a look at the hardware.

Hardware, processing power vs size
For a long time it has been more or less a fact that you will have to pay for more processing power by having to have a physically larger device. A laptop has been much more portable than a high end workstation but at the same time lacking in processing power, screen resolution it can drive etc. The performance race has moved more performance into each form factor every year but nothing really radical happened. There where some hints of what may come with the netbooks when suddenly we had "good enough" performance in a small package for what a lot of users needed. Still, with the exception maybe of the Mac Mini and a few others the idea has been that the hardware may occupy about as much real estate as the screen it is supposed to drive.

Different CPUs have been designed for different use cases. The desktop uses high performance CPUs that can use a lot of space for cooling and peripherals. Laptops have a somewhat smaller footprint and compromises by giving away some performance.

What is happening now, especially with ARM based processors rapidly getting better performance is that the capabilities of a decent laptop system now fits in a package that is about a much smaller than a modern smartphone (most of the size is screen and battery). We are also moving to multicore systems, even for mobile devices. In total this means that a system on chip with a very small size is capable of driving HD-screens without any problem. The screen is out of the size equation, performance will be good enough to drive any screen regardless of device size very soon.

This size/performance disconnect opens up a new era for mobile devices. If the previous ten years was about the mobile phone integrating things we had carried with us such as camera, music player, maps etc I think the next ten years will be about integrating stationary things that we have. With the size limitation gone there is no reason why I would not use my phone device as my set top box, laptop, gaming console or car entertainment system. The phone part of the device is even more just another small feature among everything else it will become.

That takes us to my next point

The advent of the modular device and what is needed to achieve it
The fact is that I think we are getting close to a new generation of mobile devices. The touch driven smartphone will probably remain but evolve into more of a concept than a complete physical package. If we have all the processing power we need in matchstick sized unit then every other device will just be about adding screen size, possibly power and peripherals.

A couple of years from now I imagine buying a mobile device as choosing a primary processing and sensing unit. This includes CPU, GPU, memory, storage, connectivity and sensors such as gps and accelerometers. This small device may then be combined with a number of screen/battery combos to become a smartphone, tablet, laptop, set top box or other things. It will have a versatile software solution that allows you to run tailor-made software for the current use case, such as an in-vehicle entertainment system when you slot it in your car. In a world like this the operating system may be something else entirely from what we see on smartphones today. Instead of having your device more or less locked in to the OS and user interface paradigm that you purchase it with the software that is available initially is more of a software/OS facilitator allowing you to configure the device for whatever use cases you find interesting. We already see that software updates are becoming a more and more sought after feature of smartphones in the demands for new Android versions, iOS updates etc.

To enable this type of modular device we need to rethink a lot of things about platform design and software. I will try to provide a few examples. Let us start with the operating system and "the big CPU controls the platform" thinking that we have right now. This is the philosophy that when we start a device we have one or two big cores running the main operating system and it is from there that we configure and start all peripheral units such as bluetooth chip, sensors, SD-card etc. This means that we need to have the main OS and CPU running to do a lot of work that mostly just involves shifting data between peripheral units. Modern system on chips start to get around this by using things like extra memory management units in the camera block to let it transfer images directly to RAM without using the main CPU. But when we integrate more and more functionality in the SoCs we will also have more and more cores of different types, the Tegra 2 uses something like 8 cores to get the job done. In these type of heterogeneous systems it may no longer make sense to use the most powerful cores for control and operating system, in essence locking down what we may run on these cores. When we have multiple different use cases we may need the powerful cores to be flexible and run different things depending on the situation, a fully featured desktop OS when in the desktop dock and just a minimum power gps tracking application when on a week-long hike. If we let the most powerful use case define the system then we may only be able to achieve the first example.

The OS situation will be redefined from the question of allocating CPU time and memory for similar threads in a homogeneous system to allocating cores and power usage between wildly different pieces of software ranging from simple run once executable to complete desktop operating systems. They will all need to have access to services like user data, sensors and so on. You may think of it as a new kind of virtualization but instead of the server situation where it is used to separate multiple servers on the same hardware it will be more like integrating a software representation of multiple devices on the same hardware. And we have more requirements on being able to quickly share and toggle between them. This may make it more suitable to just build on the OS model instead of introducing virtualization and let the OS support a multitude of runtimes as they already to today with browsers, scripting engines, etc.

The hardware still has some ways to go, current ARMs or x86 CPUs are not even close to this philosophy but with the increased virtualization capabilities of the ARM Cortex A15 combined with the rapid increase in cores in SoCs in generals make me think that it may not be that far away.

To sum things up
Based on the above I think we may see a future where you can think of your mobile device as your personal cloud provider. Depending on the use case you can let it run different operating systems, use different amounts of CPU, memory and storage and be dynamically reconfigurable. But contrary to the cloud server it is not how much resources you need compared to the dollars you have that will decide, instead it is the resource need compared to battery life, and acceptable device and screen size for the use case that will determine what configuration you are running. A lot of things that you buy as devices today will be available as software packages for your mobile device instead. Think of it as the NES emulator evolved. Need a console? Buy an xbox, playstation or wii as a package for your phone and  connect the right controller via wifi and your all set. Same thing for a Windows desktop, or linux based multimedia PC, just get the software and connect your keyboard.

2010-10-09

Mobile OS predictions, the multidimensional way

Been thinking about this for about a month and finally had some time to write it down. Gartner released their figures on mobile operating systems on September 10. Once again it was a prediction that seems based on total market growth rate, current market share and market share growth rate. No serious analysis of other technical and business aspects as far as I could tell and this in a business which has seen a lot of major changes just these past three years. IDC released similar figures. Both of these companies are happy to supply predictions down to decimal points ranging 3 years into the future. Product cycles for mobile phones are about 1 year (using the ever popular iPhone iterations as the standard measure). This means that 2014 is 3-4 product generations away. To put this in perspective iPhone went from 0 to 15% market share in 3 iterations. Android went from 0 to about 20% in about 2. Thus a linear prediction based on the situation today seems a bit limited. Since I have seen few initiated analysis I decided I might as well note down my own few cents of guesswork.

The knowns
Let us start out with what we know, i.e. the knowns
  • Smartphone product cycles are about 1 year of development and 1 year on the market (based on iPhone iterations).
  • Based on the previous point linear predictions made on current focus from manufacturers are probably valid about a year into the future
  • Currently Android is having major momentum, Symbian is struggling to maintain market share, iOS got a hold of the high end segment and RIM is strong with the corporate sector.
In this known world we may also use the Gartner figures for 2009 and 2010. A plot of the Gartner figures looks like:
The known unknowns

Then let us go on to the transitions that we know about, i.e. the known unknowns
Of these known unknowns there are a few that could have major impact on any predictions made. If either Windows Phone 7 or Meego sees a similar success as Android they will have a market share of 15-20% in 2014. If we plot a success for Microsoft where Windows phone will take some market share from each of the other players we get:
Instead of being a small OS this would put Windows phone 7 at number 3 with a potential to overtake the two dominant players.

The most interesting issue right now though is what will happen to Symbian. Gartner and IDC seem to assume that Nokia will get Symbian right in order to maintain about one third of the market. One of the main reasons that Symbian was open sourced however was that Nokia wanted to share development effort and innovation among more partners. Now Sony Ericsson is not planning any more Symbian products and Samsung is doing the same. This has happened after Gartner released their predictions and some people at Gartner have interesting comments on the topic. But this means that Nokia is now more or less alone as the driving force behind Symbian while the open source innovation and effort seems to be going into Android and maybe Meego. I would not be surprised if Nokia sticks with Symbian until Meego is ready for prime time and then quickly shifts most of its effort to that platform. This would be reminiscent of what many of the other mobile manufactures have done when quickly shifting from other solutions towards Android. If we plot a scenario where Nokia's new management decides to abandon Symbian we get some interesting figures:


In this case I assume that Nokia will get Meego off to a successful start and manages the switch without losing too much market share between 2011 and 2012 but the change will not be without serious losses to other players. In this scenario Android looks like the major winner. Note however that the above scenario could also illustrate what could happen if Nokia sticks to Symbian and fails. Just add in a somewhat slower decline of Symbian and no focused shift to Meego and the scenario would look really troubling for Nokia. If Symbian manages to live up to the Gartner figures I think that would be a great effort based on the above information that Nokia are more or less alone with the platform.

The unknown unknowns

Prediction is about the unknown and in the mobile space the unknown is very big factor. The explosive growth of Android recently shows how quickly the entire market may change. Since the unknown is just that, I will not guess what the next big thing may be but some areas that come to mind are
  • A socially focused phone platform, some force that transforms smartphone interaction in the way facebook, twitter, etc are transforming web interaction
  • A scenario change. The move from feature phone to smartphone went very quick. What is to say that we won't abandon our smartphones as quickly for something else. Maybe just a lightweight hand-held to compliment our tablets.
  • A true move to web technologies which means that the mobile OS will be the browser, not the platform.
  • Or any other of a million possibilities
Assuming something is out there that will hit us in 2011 with the same relentless pace as Android then we may have this scenario:
The implications of this case is that even if you target all available platforms today you may still miss more than forty per cent of the market in 2014.

What to think about this

My alternative scenarios here are probably as far from the truth as I think the original Gartner and IDC predictions are. My main point is that there are a lot of probable outcomes if you look beyond the current sales figures. And these are still pretty shallow observations. We have not even started to look at things such as the operating systems ability to handle the rapidly increasing complexity of the system on chips that will power next generation smartphones. Neither have we touched the issue that some of the open source alternatives that are available may break up into a few different platforms and so on.
To conclude I just want to say that the mobile business is among the fastest moving in the world. If you plan to develop things for this environment you better set up your organization to handle that pace and keep people around who are able to detect when an unknown unknown becomes a known unknown. That is the time when you should do an assessment and decide on how to act. Right now may be the time to go ahead with Android and iOS while thinking carefully about strategy for Symbian, Windows Phone, RIM, Meego and others. Next year it might be the other way around...

2010-08-17

Converting user input strings to URL:s in Android

I have a small application where I download information from the Internet. The info pages are built as query URL:s based on a few parameters. To make the app more general I wanted to let the user be able to set these parameters in a field to decide what feeds to load. Special characters are however threated differently in URL:s than in Android (Java) strings. A parameter such as chocolate chip cookies breaks the URL. The user input should be converted to chocolate+chip+coookies before using it to form the URL.

Since Android supports the java,net.* classes we can use the subclass URLEncoder to do this. Import java.net.URLEncoder into your activity and then use it like

/*Get URL parameters from user*/
EditText paraminput1 = (EditText)
findViewById(R.id.param1field);
EditText paraminput2 = (EditText)
findViewById(R.id.param2field);
String param1 = paraminput1.getText().toString();
String param2 = paraminput2.getText().toString();

/*Convert to URL friendly format*/
try{
param1 = URLEncoder.encode(param1, "UTF-8");
param2 = URLEncoder.encode(param2, "UTF-8");
}
catch (Exception e){
Log.e(LOGTAG, "Failed converting settings
string to URL query");
}

2010-03-22

From data to state, machine to machine communication

Last year Nokia and Ericsson among others launched their visions for the connected future. While Nokia's concept for 2015 focused more on mobile phones and "the Nokia cloud", Ericsson's 2020 vision introduces their idea of "50 billion connected devices". Operators also start to put more emphasis on this area with activity like AT&T's emerging devices website and announcements last week calling for developers. Scandinavian operator TeliaSonera announced a similar program(link in Swedish). This post will add some of my perspective on the market going forward and discuss some of the consequences of abundant network capacity.

The nineties was a lot about the ability to process data with the PC entering every domain. Add Internet into the mix and the next step meant that you could do things not only with the information that you had collected but also with all the information others collected. This required technologies like Google search in order to handle the vast amounts of data. Still what we have been working with so far is cataloged and indexed data. What the "everything is connected" paradigm will bring is real time data available all the time. We will move from having access to historic data about the world to having access to the current state of the world around us.

Explaining state
We already see the impact of state in some areas. Social networks are very much about having access to the current state of the people you care about. Location based services is adding another dimension to this. You know what someone is doing and also where they are. This is where a lot of the current work is being done. Having some kind of map with social information (Google Latitude, Gowalla, Foursquare) is the direction pointed out. But state is much more than a map and a tweet.

With machine to machine communication, better sensors and more network coverage we will add much more real time information to our view of the world. When you leave home you will know the state of the door (locked), appliances (turned off) and so on. You will also know the exact status of your car even when it is parked and you can check if you left the lights on at the office from your mobile. Figuring out how to sort and present this information in a useful and effective way will be one of the challenges of the next ten years.

What needs to happen next
For the business minded there is a lot of opportunity in the connected world but a few things need to happen. I would like to define three changes that I would like to see going forward:
  1. New mobile subscriptions models. Contract based models are fine for mobile phones and system solutions but if you want to build a connected electronic toy the sales model is not to require a contract with it. Instead it should be sold with some kind of bulk data amount including from the start.
  2. Easy to use, pre-configured development kits. This is one for the hardware manufacturers to solve. Building a connected device should be straight forward and simple, compare mobile applications currently. Things like FCC approval should already be taken care of. The operator partnership programs is a step on the way but it should be as easy as setting up your home server is on the wired network. Get the hardware, install a set of applications, turn it on and your done.
  3. Secure solutions for a personal cloud. If everything is connected one of the key areas is to have an easy way to group things together and present information in a suitable manner. This needs to be person oriented (I want my own medical data and car fuel level) and secured. An aggregation service for up to date information of your things and relations.
If the above three things happen it will be possible for almost anyone to create connected devices that supply up to date information to my personal cloud. I will be able to quickly access and make sense of that information in my mobile phone or similar device.