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.



Friday, February 20, 2009

Digia Phonebook

It has really been a while since I posted something. Luckily Teppo has been writing some great stuff meanwhile! Anyway, inspired by Teppo's post about fullscreen caller ID, I'm going to post a shameless advertisement in here now. It's all about Digia Phonebook. The thing is that I'm using the software myself and I think it's great.

The fundamental idea behind Digia Phonebook is that you don't have to manage the contacts of your colleagues and customers manually. The software can be integrated to a backend directory service system like Active Directory, LDAP or CRM. This allows an access to (possibly) thousands of up-to-date contacts with detailed information. The contact information isn't limited to your own company but you can also transfer customer's contact information into the software. This can also be limited via access rights. All of the users are identified based on their phone number.

Using Digia Phonebook is simple. You can search for a contact by their name, title, organization or location and immediately call or SMS the search results.




The application is always on, so when someone in your contacts calls you, information for incoming call is displayed. The information and colors that will be shown are customizable to suit your own preferences.




Digia Phonebook client is available to pretty much all major mobile platforms now, including S60 2nd, 3rd and 5th edition, UIQ 3.x, iPhone, Android G1 and all the devices with Java MIDP 2.x and CLCD 1.1 or later. The server side solution just simply needs a Windows or Linux host with Apache, MySQL and PHP. The server can be located either in customer's premises or be hosted in Digia's premises.

Thursday, February 19, 2009

Enhance your S60 3.2 with full screen caller ID

It is nothing new that you are able to assign a picture to a contact, but S60 3rd edition Feature Pack 2 enables you to use full screen caller ID instead of the "small print". This is a nice way to enhance your experience when calling or receiving a call.




1. An example of full screen caller ID (I know that you probably don't want this guy calling to you... :)

To be able to use full screen caller ID, you need of course to have the desired pictures. I noticed that if you add picture in Outlook and then synchronize contact to S60 3.2 (N96 in my case), only small caller ID is shown. It is the same case if you have assigned a picture to a contact and then remove the original picture.

To avoid this, you have two options. You can use fonebook for fetching pictures from Facebook and assiging them automatically in Outlook. Symbian-Guru told recently how to do this. I chose more "conventional way" and desided to do this manually. The reasons why I chose this approach were that I didin't want to install Fonebook to my work laptop that has Outlook, I still have a bunch of friends / relatives / colleagues that are not in Facebook and I'm not going to assign a picture to every contact. I'll be assigning pictures little by little.

I created a sub-folder called Contacts to Images -folder in N96's mass memory and transferred desired pictures to Contacts -folder and assigned them to contacts. Whenever I take a picture that I want to assign to contact, I'll copy it also to Contacts -folder to avoid the case where original picture is removed and N96 shows only the small caller ID. I noticed that N96 is not trying to stretch the image, so if the image is smaller than 240x320, it won't be shown in full screen.

I wonder what will happen if I need to restore my N96, will these changes be included in the backup? I'll keep you informed if I run to this.