Sunday, September 20, 2009

Direct UI, Orbit, Qt

Edit: at the light of new information parts of this post are outdated, a follow-up on this post can be read from here.

Wow, it looks like our blog was on a very long summer holiday. One that started early and continued longer than expected. There has been a few things I have intended to write about but they are kind of old news already. One of these issues is Qt and the Direct UI framework to be built on top of that on Nokia platforms.

Earlier this year there were rumors that S60 Avkon application framework would be replaced by a Qt based Orbit framework. My first thought on the matter was: "Why not just go plain Qt, why do we need another Avkon like platform specific framework and make cross-platform development more difficult again?" At that point I wasn't aware of Direct UI or the fact that Direct UI will provide new interaction and navigation logic on both Symbian and Maemo platforms in the future.

It appears that Orbit is just an enabler layer for mobile application development and consists of widgets tailored for mobile development. Together, this all will mean a rewrite of the application suite taking advantage of Qt APIs, Orbit widgets and Direct UI. Avkon will however not co-exist with these frameworks and there will be a binary break. This is probably done in order to fully take advantage of new technology at the cost of maintaining compatibility. I think this is a correct choice as the Avkon framework really is over the hill and the burden of it could result in compromises.

All of this is of course still in progress and the road ahead is relatively long. Symbian roadmap has Symbian^3 (which can be considered as just a necessary step towards Symbian^4) complete half way of 2010. Symbian^4, which is supposed to have both Orbit and Direct UI, is proposed to be ready early 2011. This means there will be devices based on Symbian^4 available somewhere in the second or third half of 2011.

The story for Maemo platforms is very similar. Qt and Direct UI will replace GTK+/Hildon based applications in the Harmattan (Maemo 6) platform that will be available somewhere in 2011 according to current information. In the Fremantle platform (Maemo 5, the platform in the forthcoming Nokia N900 release) the applications are still GTK+/Hildon based but the Qt framework is provided by the community.

Apparently both Symbian^4 and Maemo Harmattan will have Qt 4.6. New features in Qt 4.6 include a new animation framework that is coupled with a state machine framework, support for multi touch and gestures. All of these features are enablers for a modern touch based UI. It also seems that there are efforts to create a new suite of Qt APIs for mobile device functionality in the form of Qt Mobility project, which will further make it possible to create applications targeting S60, Windows CE and Maemo.

So, what does this all mean in practice then? Well, first of all Qt and Direct UI will be a bridge between Symbian and Maemo platforms, enabling cross-platform development between the two. This is something that hasn't really happened yet on any platforms. Secondly, all Symbian third party applications need to be totally rewritten. And yes, I mean totally, since Avkon and Qt/Direct UI will have as much in common as George Bush and Malcolm X.

The positive side of rewriting is that it might actually be easier to completely rewrite a Symbian application in Qt than trying to maintain it's S60 equivalent. I'm a strong advocate for Qt and in my experience writing Qt applications is extremely simple. Qt Creator is making this even simpler.

While these improvements are most welcome and needed it remains to be seen what other manufacturers will come up with in the same time frame. One and a half year from now multi touch or kinetic scrolling won't be exactly state of the art so will Nokia come up with some other innovations in their releases?

Thursday, April 30, 2009

Mobile browsers - what's going on?

For some time now there have been multiple players in the mobile browser markets. If you are using some other phone than iPhone (or iTouch), you have the possibility to choose some other browser than the built-in one.

Multiple browsers are based on open-source WebKit engine, these browsers are among the most used ones (S60, Safari on iPhone/iTouch, Android), but there are also other players.

I've tried to list all (at least most common ones) browsers that available at the moment and also share some thoughts about them.

S60 browser
  • Available in S60 operating system as a default browser. Default browser cannot be changed.
  • Based on WebKit like mentioned previously.
  • Proper support for normal web technologies (HTML, CSS and JavaScript)
  • Decent Flash support, although most of the Flash pages are mostly unusable, e.g. Youtube. I don't use any Flash-based services with this browser.
  • Supports WML.
  • Small differences in different S60 platforms / feature packs. Starting from S60 3.2 (3rd edition Feature Pack 2), it should be possible to update only the browser, not whole OS. At the moment there hasn't been these kinds of updates.
  • I use mostly S60 browser but in some web pages it just doesn't work, in these cases e.g. Opera Mini is a good choice. It is difficult to give good guidelines when to use S60 browser and when Opera Mini, usually web pages that are "complex" work better with Opera Mini.
  • Nokia is porting S60 browser to some of its S40 devices, but I don't have any experiences about it.

  • Opera Mini is a Java-based browser that is available for multiple devices / operating systems.
  • The browser is fast and doesn't use so much memory. When I was using Nokia E70, S60 browser ran out of memory quite often, but Opera Mini worked fine, even if you were listening music when you were browsing.
  • Mini uses servers which handle the rendering between your phone and the web site you are accessing. This enables small traffic costs if you don't have unlimited data plan.
  • Mini enables accessing your favourite bookmarks anywhere, anytime if you are using Opera Link. This is a nice feature if you lose all the information from your phone, you still have your favourite bookmarks with you.
  • Mini is a stable browser that can handle any kind of web page, excluding Flash pages.
  • I've had multiple times difficulties using WiFi with Opera Mini.
  • You can get Opera Mini by visiting the address mini.opera.com using your phone’s default Web browser.
  • Supports WML.



  • The only non-Java-based browser that uses server between your phone and the web site you are accessing.
  • You can download Skyfire by going to get.skyfire.com with your phone's default browser.
  • Like almost all other browsers, Skyfire supports most used web standards.
  • Has probably the best Flash support, but still not fully usable.
  • I haven't used so much, but I've had quite many difficulties getting Skyfire to work properly.
  • I haven't been able to update Skyfire version 0.9 to my Nokia N96.






  • When I had Nokia E70, I was mostly using Opera Mobile 8.65 which felt better browser than E70's default S60 browser although Opera Mobile 8.65 wasn't providing full Web rendering.
  • Opera Mobile 9.5 has full Web rendering
  • When used with X1, Opera Mobile was much better than IE.
  • Supports WML.
Internet Explorer on Windows Mobile 6.1
  • I used SonyEricsson X1 Xperia for some time and tried it's default browser, Internet Explorer.
  • If I would need to describe this browser with one word, it would be lousy.
  • Although I like browsing with mobile devices, I must say I wasn't feeling like this when I was using IE.
  • Zoom doesn't work properly.
  • There are three different rendering possibilities (one column, fit to screen and desktop). Fit to screen is the option.
  • I wasn't using X1 for so long, but it seemed that it has the same rendering engine than Internet Explorer 6.
  • I must admit that some part of these lousy experiences can be caused by the device which wasn't so good either.

  • Like Opera Mini, Bolt is Java-based browser which uses also server between the phone and the web page you are using.
  • Still in beta.
  • Good URL auto-complete, just like in Opera Mini.
  • Almost identical features when compared to Opera Mini.
  • One of the biggest difference is magnifier, shown in second picture below.
  • Seems fast, just like Opera Mini.



S60 browser on S40
  • Like I mentioned previously, Nokia is porting current S60 browser to some S40 devices.
  • Unfortunately I don't have any experiences about this browser. If you do, please share them with us.
  • Nokia is not porting this browser to every S40 devices, because they recently introduced Nokia 6216 which has Opera Mini pre-installed.

Safari on iPhone / iTouch

  • Like mentioned previously iPhone's Safari is based on the same WebKit engine than S60's and Android's browser.
  • Another thing that everybody knows is that this version of Safari doesn't have Flash-support.
  • I haven't compared S60's and iPhone's browser but nowadays it feels that iPhone's browser is faster than Nokia N96's.
  • Safari supports all the necessary web technologies, like HTML, CSS and JavaScript and this makes it suitable for convenient browsing.
  • Don't support WML.

Safari on Android

  • Most probably quite close to S60's and iPhone's Safari because all are based on the same Webkit engine.
  • I would guess that browsing is convenient.
  • I haven't used Android-based phones yet, but they should be available in Finland in Autumn.

Netfront

  • Mostly pre-installed to SonyEricsson phones.
  • Available for S60 also.
  • If I remember correctly, newest versions have full Web support.
  • Used at least to be fast (when I was using Nokia E70).
  • Doesn't fully support WML.

I left out some older browsers, e.g. Services -browser which can be found from older Nokia S60 devices and Nokia S40's built-in browser that are both developed in-house by Nokia. These browsers use mobile rendering, meaning that they put all the content on the web page to one, long column.

You can divide mobile browsers e.g. to following categories

  • Full Web (Almost all new browsers)
  • Java-based (Opera Mini, Bolt Browser)
  • Server in the middle (Opera Mini, Bolt Browser, Skyfire)
  • Mobile rendering (Older browsers, but some new browsers have this as an extra feature)

All browsers support normal web technologies, including JavaScript that enables for example AJAX-based services. Some are still supporting also WML. Personally I don't have so much experiences about different implementations of JavaScript but the more complex services you make, the more important is to test with different browsers. "Normal and simple" services that are using basic HTML and CSS works fine with all browsers.

Although Flash is supported in some browsers, you cannot really say that Flash-based services would be usable with mobile device.

In future it is interesting to see will for example Nokia be sued because their default browser cannot be changed or uninstalled in S60. The similar situation is in Windows and Microsoft have sued for multiple times because IE cannot be uninstalled.

I've noticed that few features annoy me in mobile browsers, and unfortunately there isn't any browser that wouldn't have these features. One is URL auto-complete, in Opera Mini and Bolt it works like it should but not in S60 browser. Second is that Java-based browsers open "text editor" when entering text, not like S60 browser which works like PC-browser when entering text, just showing normally text that you are writing to input field.

If you want the best possible user experience, I suggest you learn how to use shortcuts. The problem is that every browser are using them differently.

Opera Mini has lots of shortcuts.

As you can see, at the moment there are multiple good browsers for your mobile and only you can decide what you prefer. My choices are S60 and sometimes Opera Mini and I might start using Bolt as well.

The ways I'm using Twitter and Facebook

I thought to tell you how I'm using Twitter and Facebook, if you are interested.

Nowadays quite many have combined their Twitter and Facebook updates, but I'm not going to. Reason for this is that I use Twitter as a microblog; I share my "geeky thoughts" there, and not what I'm doing (except geeky things). In Facebook I usually share everyday life things although I'm losing interest to Facebook.

I don't use aggregator services, like HelloTxt that enables updating multiple social service simply because I don't want to share my credentials.

I usually tweet using Dabr with my phone or TweetDeck if I'm next to my computer. In TweetDeck I have some work related searches configured.


Picture 1. With Dabr, twittering is easy.



Picture 2. TweetDeck offers good twittering experience on desktop. You can also configure different searches.


So, if you want to follow my "geeky thoughts", follow me in Twitter. If you are more interested in my personal life, follow me in Facebook.

Saving Private Phone

Have you ever lost all your contacts and/or calendar and you don't have backups available? I have. I have also good news for you. Nokia and Google have been offering contact synchronization for some time now. Obviously, you have to have Google account to be able to use Google Sync and Nokia Account to be able to use Nokia's Ovi services.

I'll show you how it is done in both cases so that you can deside which one you want to use. I'm not personally using these synchronization services because I have company-confidential data in my phone. I suggest that also you think twice before start sending information to Google or to Nokia although these services should be secure.

There is also another aspect than security why to avoid these online-services. What if Google or Nokia would be down for multiple days? Or even start charging suddenly for the service? It is not so long time ago when Gmail was down for some time. Remember, this can happen to any service.

Google Sync
It seems that to be able to use Google Sync, you have to set up it manually following these detailed instructions if you have S60 3rd edition phone. If you have some other phone, you should start from here.

In general it seems that Google is not offering automatic synchronization, so you have do everything manually. This of course makes it more difficult for the big audience to start using the service, although atleast S60 specific instructions were really detailed.

Ovi Sync
Unlike Google, Ovi (or Nokia) is setting up sync profile as automatically as possible. You can setup synchronization profile either using only your mobile phone or then with a desktop browser. The procudure is exactly the same with mobile browser and desktop.
  1. Log in to Ovi.com
  2. Choose your device pre-selected for you and enter your phone number
  3. Ovi sends you a SMS with sync information
  4. Open SMS and save sync information
  5. Start syncing
As you can see this is really straight-forward. Here are screenshots from this process.


Picture 1. Log in to Ovi.com.


Picture 2. Choose your phone model that is preselected and enter your phonenumber.


Picture 3. Wait for SMS.


Picture 4. Open SMS and save Sync settings.



Picture 5. Everything is set for syncing.



Picture 6. When ever you want to sync your device, you just need to press Sync.

After you've synchronized your phone, you can access the information even if your device would get lost or stolen.

Thursday, March 12, 2009

Shopping centre in your pocket

Nokia Research Center is having a trial in Kamppi Shopping Centre in Helsinki where they are offering the content of info board to mobile channel. In addition to this there are also coupongs (Etusetelit) with different discounts, special offers (Erikoistarjoukset), shop listing (Liikkeet), maps (Kartta), seach possibility (Sivuston haku) and changing ads (picture below search) like shown below in figures 1-3.


Figures 1-3. Kamppi Shopping Centre's mobile home page

The service consists of list of shops and when you choose a shop, you'll see its opening hours, homepage and phone number. You can also rate the shop and see where it is located.





Figures 4-8. Shop listing and information about the shop.

You can get different discounts using coupongs like illustrated in figure 9. By showing this code in a restaurant, you would get an euro discount from a beer.

Figure 9. Discount coupong.

It is much easier to find shops using mobile channel's search functionality than searching them from traditional info board.

Figure 10. Search -functionality.

When you are going next time to Kamppi you don't need to stand in front of info board anymore if you are looking something. You might also find some interesting discounts from the mobile channel. You can access the service by entering kamppi.nokia.mobi to your mobile phone's browser.

You might wonder how users will find this service? There are posters around the shopping centre the address as well as video ad in the screens. Because this is a browser based solution, it should work in every phone that has browser.

I really like this service, especially because I don't need to stand in front of the info board if I'm looking some store etc. The concept is easy to copy and use in any shopping centre or fare and this way offer good user experience to visitors.

Disclaimer: Nordea is participating to the trial and I have also been involved but thoughts mentioned above are my own.

Sunday, March 1, 2009

Little help for power problems

I believe everyone have had some issues with their phone's power consumption. In today's smartphones the situation is even worse, because you can use lots of their features simultaneously and this way use even more power. For me it is quite normal to browse, use Nokia Email, listen to music and navigate at the same time. When you add here calling, taking pictures, writing SMSs etc. you'll soon find yourself in situation where you would really need to use the phone but the battery is dead.

I've managed to run to these kinds of problems with my Nokia N96 quite often and started thinking of buying an extra battery, just like in my digital camera. Unfortunately there are some problems having two different batteries, for example charging and changing the battery when you need to switch your phone off. Due to these problems I decided to struggle with one battery.

Today I ran to a little helper called DC-11, which enables you to charge your phone wherever you are.

Picture 1. Nokia DC-11 gives you an extra boost.

After charging DC-11 I noticed that my N96 switched itself to power saving mode which means that battery is about to die relatively soon. I plugged in DC-11 and was able to move freely, make calls etc. and after about 2 hours the battery of N96 was full.

DC-11 is a really handy and small gadget that helps you before the batteries get better and power consumption lower.

Wednesday, February 25, 2009

WRT Widgets and Aptana Studio

Web runtime and widgets seem to be quite a hot topic at the moment so I will probably write some introductory post about widgets later. However, now I am going to take a look at the available tools from Nokia for widget creation. If you don't know anything about web runtime or widgets you might want to familiarize yourself with them before reading this. I'm not going to any deep detail here though.

Nokia recently announced The Nokia WRT Plug-in for Aptana Studio. Aptana Studio is a popular web-development environment that offers integrated language support for HTML, DOM, JavaScript, and CSS technologies. Aptana Studio is available free of charge under an open source licence and is based on the Eclipse framework. The Nokia WRT Plug-in for Aptana Studio provides features that enable the creation, editing, testing, and deployment of WRT widgets from within Aptana Studio.

The plugin allows you to preview widgets created for WRT 1.0 and also have code completion for that. You can also develop widgets for S60 5th Edition and WRT 1.1 but the Platform Service APIs are not included in the plugin, so the autocomplete feature will not work for the API functions. Also, widgets using the Platform Service APIs must be tested using the S60 5th Edition emulator. Hopefully we'll see a full WRT 1.1 support in the plugin sometime soon.

The Forum Nokia pages say that the installation of the Nokia WRT Plug-in for Aptana Studio isn’t supported if you are running the Eclipse IDE and using the Aptana Studio Plugin. However, since Aptana is Eclipse based, I found installing the WRT Plugin actually possible. In case you have done some S60 C++ development or maybe Java development, you already might have Eclipse or Carbide.c++ installed. In this case you might not want to install the standalone version of Aptana Studio. I used my existing Carbide.c++ installation and added the Aptana Studio Plugin and the Nokia WRT Plugin on top of that. EDIT: I noticed that only parts of the WRT Plugin will work with Eclipse/Carbide so installing the standalone version of Aptana Studio is recommended. You can still do widget development in Eclipse/Carbide but your tools will be limited.

This is an optional part if you don't want to install the standalone version of Aptana Studio. In your Eclipse/Carbide.c++ installation you can add new update sites to download extension for Eclipse. Add http://update.aptana.com/update/studio/3.2/ as an update site. You can find this from the menu path Help > Software Updates > Find and Install. Select Search for new features to install and New Remote Site.




Confirm and accept the license agreement that follows. You'll also need to accept installation of some components and finally restart Eclipse. After the restart Aptana plugin wants to install Aptana Subversion Support. Install that as well and restart again.

After restart, your installation should have a My Aptana tab open. This is also the case if you have a standalone version of Aptana Studio. Select Plugins and you should find Nokia WRT Plug-in for Aptana Studio. Get it. (Alternatively, you could add http://release.aptana.com/install/nokia1.0/ as a new update site and install the WRT plugin that way.)

Installing the WRT plugin will add a new item in your development environment's projects. You should now see Web Runtime (S60) under File > New > Project. Creating a new project with this wizard will create the minimum set of required files for developing a web runtime widget.

You can easily validate, package and deploy a widget from the project context menu.


The widget can be deployed to either an S60 device via Bluetooth or to S60 3rd FP2 or S60 5th Edition emulator.



Once you have deployed the widget package to the emulator environment you have to locate the wgz file from the File Manager application and install it. The widget package can be found from C:\Other.

You will probably also want to enable debugging facilities for JavaScript. This can be done by activating script logging from S60 browser settings (General > Java/ECMA Script errors).


Sunday, February 22, 2009

Location, location, location

"Location, location, location" - I bet almost everyone has heard that phrase. You might wonder why it is used in a blog that covers mobility and technology?

The answer is Location Based Services (LBS) which are discussed more and more everyday. With the help of LBS, you can easily let your customers know where you are instead of taking your services wherever the customers are.

Previously only operators were able to know where you were, or actually where your phone was, using GSM cells. It is now almost an everyday business for service providers to utilize the same information in their services. Good example would be Google Maps that uses both GPS and GSM cell information for defining your location. If GPS is not available, GSM cell information is used like illustrated in picture 1.


Picture 1. GSM cell information is used for defining your location if GPS is not available.

Now some of the service providers have started sharing your location. One good example is Google Latitude which was introduced lately as a new feature in Google Maps illustrated in picture 2.

Picture 2. Latitude shows where your friends are.

Luckily Latitude don't show your Google Contacts' location automatically so you need to ask their permission and then they will be added to Latitude. This task is extremely easy because you can choose to add all of your contacts same time without writing their e-mail addresses like illustrated in picture 3.


Picture 3. You can add all of your Contacts easily.

You can see easily where all of your friends are with a single climps like shown in picture 4.

Picture 4. You can see all your friends location easily.

Like you can see in picture 5 you can also edit your information in Latitude and luckily there are also privacy settings, so you don't necessarily need to show your location to everybody. You can also manually define your location, so you can be wherever you want.


Picture 5. You can edit your information and set privacy settings.

In addition to mobile service, Google is also offering a Latitude widget to your iGoogle page, so you can see where your friends are even if you are not using your mobile phone. An example is shown in picture 6.

Picture 6. Latitude gadget in your iGoogle page.

Unfortunatelly Latitude doesn't offer any interaction methods with your friends, e.g. chat or some kind of microblogging. This kind of feature would be really handy in some circumstances.

Google isn't the only service provider who is offering social location based services, for example Nokia Research Lab is offering FriendView which also utilizes your phone's location. You can see example in picture 7.


Picture 7. Nokia's FriendView shows your location.

There are some diffirences between Nokia's FriendView and Google Latitude. FriendView offers microblogging possibility (picture 8.) that Latitude lacks. On the other hand FriendView doesn't have gadget/widget that you could add to your iGoogle, or similar page, but they have a web-based service like shown in picture 9. Like Latitude, FriendView offers the possibility see where your friends are (pictures 10 and 11.)

Picture 8. Microblogging with FriendView.

Picture 9. FriendView has a webpage where you can see where you and your friends are.


Picture 10. Also FriendView shows where your friends are.

Picture 11. FriendView shows you the listing of your friends, just like Latitude.

I think the biggest difference between FriendView and Latitude is that Latitude is "a real" product and FriendView is more of an experimentation. This being said, I haven't seen or heard that Google would be offering advertising based on your location but I would guess this will happen relatively soon.

Everybody that has been using services that are showing your location knows that it doesn't work well indoors. Don't worry, there is a solution to this - indoor location. It is possible to define your indoor location with the help of wireless accesspoints. Nokia Research Center has written an interesting article (pdf) about indoor positioning. I hope we'll see some real life experiments about this soon.

It is interesting to see when location is integrated to your phonebook. Imagine seeing all your contacts with their location. Nokia is for example offering Contacts on Ovi through Nokia Betalabs, which allows you to chat with your Nokia Ovi or Google contacts. This service could also utilize positioning information. What if Nordea that is shown in brackets in picture 12. would be my location?

Picture 12. Contact on Ovi could show also location.

In addition to location, your phonebook could also show all the conversations that you had with your contacts no matter what method (SMS, e-mail, IM) you have been using. Nokia Betalabs is offering a Conversation application that is grouping your SMSs based on the sender. You can see "the conversation" with the person, just like in iPhone.