Career | Contact |  

Subscribe: RSS Feed
Comments:

The road to Connect

May 14, 2008

Posted by: Łukasz Grabiec, Senior Software Developer

Nokia phones are known for their user friendliness, at least that's what everyone is convinced. However things have changed a bit since they were last redesigned and the S60 was created in a differernt reality than we have now. One of the things that has been lacking considerable improvement, is the way we connect to the Internet on those devices. With the Internet nowadays being everywhere, and with the users increasingly needing access to the Internet on the go, to check their e-mail, their favourite websites, the RSS reader, to make a post on their blogs, or to check what their friends are up to on their social networks, the connectivity becomes a must. Whether it's WiFi, HSPDA, UMTS or the crawling EDGE, Nokia manages to squeeze them all into those shiny new devices, however it forgets about bundling it all with some ease of use and user experience. Yes, the connection is established in a snap on the S60 devices, yes, the connection is stable, but it's a bit awkward to get it set up in all those applications. You need to actually know which access point you need to use, and the phone usually comes with several of those, all of them with some hi-tech names. Besides that, you additionally need to know which ones are WiFi access points and how to define them, if you don't want to toss all that money on Internet access.

Now up till some time ago, everyone was pretty content with the state of things, judging that, if you want to use advanced technologies, you need to have at least the basic knowledge of what you are doing, so everybody went by with this, and took it for granted. Up until one device shook the industry upside-down. The idea behind it when it commes to connectivity was, that it really shouldn't be the users concern which access point is the optimal at the moment, nor was the user expected to know which WiFi is in range at the moment and which one has the strongest signal. The users should not be bothered with switching the access points whenever they leave their houses or workplaces. The connectivity on the S60 could use some improvement and Psiloc thought this is exactly the job for it, using this opportunity to create "Psiloc Connect".

Psiloc Connect is the application that needed a proof of concept before we engaged in it. After some time when we were almost certain that this could really work, we started making some buzz to prepare it's launch. That's how Psiloc What? was born, which by itself is a topic for another post. Since the functionality build into Psiloc Connect is not what the platform was designed in mind for, some really heavy testing was required. The testing phase took a lot of time, and we experienced some unexpected hick ups. In the end though, we did manage to get everything ironed out.

So how did we go about it technically? Well the road there wasn't all paved with roses, but in a life of a software developer, you know that nothing is. Calling rarely ever used methods, finding workarounds for simple stuff, getting those internal modules to work as required, it was a journey to the moon and back! Sometimes days had gone past without any progress, but then you put that extra flag in there and it all starts working again!

The Connect engine is really made of two separate entities, an agent working in the esock/nifman system process, which is responsible for instantiating the connection. It's there asleep most of the time, up until the point the user chooses the "Psiloc Connect" access point. The second module is the application's daemon, it's responsible for searching your surroundings for WiFi access points and picking the optimal one, if none are found, it'll use the 3G/GSM network, that is if you want it to do that. It then hands over the correct settings to the Psiloc Connect access point, and off you go!