Wednesday, May 21, 2008

Nokia stirs water with mobile Linux

It seems it's time for another round to discuss about whether Nokia will abandon Symbian OS in favour of (mobile) Linux. All About Symbian has reported that "Nokia's Chief Financial Officer said Nokia is considering manufacturing Linux-based mobile phones". This information is confirmed by Unwired View as well, although in a slightly different tone: they say "Nokia sees increasing role of Linux in handsets". Finally, El Reg is saying that "Nokia says no plan to switch phones to Linux".

Who to believe? Having read the comments carefully, people seems to have the following opinions/see the following options:

  • The biggest haters of Symbian say that it's natural that Linux will take over and this is exactly what they've always claimed.
  • According to a bit more careful opinion, these two mobile operating systems will co-exist. There are couple of arguments for this scenario:
    • Symbian/S60 is undoubtedly the leader in smartphone market
    • There's room for both OSes: Symbian excels in high-performance mobile phones, whereas Linux could be successful in mid-range feature phones.
    • Nokia has already heavily invested in the development of a mobile OS and is a nearly 50% shareholder of Symbian these days - why would they ruin all this?
    • The development of a smartphone running on Linux still takes a LOT of time.
  • Some more paranoid commenters say that "Linux is not really a threat for Symbian, but rather a motivation" to work & perform even better in today's extremely competing environment (i.e. mobile OSes and smartphone market). They believe that Nokia wants to make pressure on Symbian by announcing new Linux-powered devices from time to time.
  • Finally, there are those who don't give a sh.t to what OS is running on a phone, they "just" want their Flash/Python/Java/etc. applications (whether they wrote them or not) to run smoothly in the future, too. Some of these people also mention that it's the same if the OS gets replaced, the UI (i.e. S60) is what's important - and if it remains, nothing will change actually.

Personally, I think that Nokia is still making experiments with Linux. Don't forget that they already have mobile Linux devices (Internet tablets running on Maemo platform), though, those are not mobile phones, just sort of PDAs. In today's fragmented mobile Linux market, no one mobile manufacturers dare to commit themselves to take Linux as the leading operating system for their products - it would simply be way too risky. It's been also said numerous times that there are lots of factors that manufacturers must consider when selecting a mobile OS and Linux is definitely NOT the ultimate solution today. Nokia might abandon Symbian in the future, however, it's not time for that. Yet.

Any thoughts?


Thursday, May 8, 2008

Mobile software development - Functional testing

Simon Judge's blog made me think, again. He wrote about Mob4Hire, a company offering people for mobile application testing. Testers get paid via PayPal after bidding on projects (i.e. mobile applications/solutions) and developers get testers at a (hopefully) reasonable price. Finding testers might be especially useful if your geographic area is not the one you'd like your software to be tested in.

You know, lots of developers (dare to say: most?) do not recognize the importance of testing. This is the least pleasant part of development, I must admit, yet one of the most important. There are various kinds of testing including (but not limited to) unit-, regression, load, "smoke", etc. testing. The one, Mob4Hire provides solution to is called functional testing, where one can test the whole solution end-to-end. You know, mobile handsets are very-very fragmented in terms of platforms: applications can be developed in many programming languages like Java, Symbian C++, Windows Mobile Win32/C#, iPhone Obj-C, Linux C/C++, etc. And even when sticking to the same platform and programming environment, JME for example, the supported features vary very much from device to device. This, along with the complexity of what operators allow 3rd-party programs to do, makes it very difficult for a new application to be thoroughly tested.

Nokia already provides a free service for developers wishing to test their mobile applications written for Nokia S60 platform: it's called Nokia RDA (short for Remote Device Access). It is an Internet-based solution, where you can remote control a real mobile phone. You can request, for example, that SIM- and/or memory card be inserted in the test device as well as more than one phone be reserved for your test session to test peer-to-peer communications.

DeviceAnywhere provides a similar solution to Nokia RDA, however, it's not limited to a particular platform, nor to only 1-2 network operators. According to their web site, their service is "a revolutionary online service that provides access to hundreds of real handsets, on live worldwide networks, remotely over the Internet". Unfortunately, it is not free of charge.

Note that you cannot test everything with these solutions. For example, applications that use camera, GPS, accelerometer are basically out of question as well as ones using external accessories.

Another option for functional testing is making use of the services of Test Houses. Professional testers verify the quality of your software (compared to Mob4Hire, for example, see Simon's opinion) so that you can be sure you get the most what you paid for. Sometimes it's even required for your application to pass certain tests in order to get certified by some authorities. However, you may need to pay a lot for this service, see the list & pricing of Test Houses that Symbian Signed accepts, for example.

Finally, let's talk about community-driven testing. Once your application is in such a shape that it is ready for external people to play with it, you can ask them to go and use it extensively. You can offer free copies of the software to them, for example, or they may do it just for their own gratification - it's the same. This way of testing works extremely well in solutions based on client-server architecture with a mobile front-end and a server back-end. It's quite common in these scenarios that the mobile-end is just a light-weight client software that can be freely distributed, thus it doesn't cause any inconvenience if software distrubition is not strictly controlled. The point is that you may get lots of people playing with your software, because it's their passion. And passion drives people to do their job well, simply because they enjoy it, they love your program and they'd like it to be even better. I'm really a great supporter of this kind of testing. :)

Can you recommend any other way for performing functional mobile software testing? Please let me (us) know!


Tuesday, May 6, 2008

eyePhone - Your tourist guide

I've stumbled upon this article recently and thought might be worth sharing with you.

If we put the name of this software aside a bit (it obviously tries to ride the waves of iPhone), the idea is great. Take a smartphone being able to

  • take good quality photos
  • use GPS
  • communicate over Internet
and you have your on-line tourist guide always at hand. It doesn't require too much from the handset, no? I bet even a good feature phone would do.

Of course, the client software shall not be too thick, most of the business logic is on server-side, right? An average (phone) camera quality should be enough, a Bluetooth-attached GPS is sufficient and basically every mobile phone can transmit data over the net lately. Okay, if an angle sensor is also part of the phone, then the client can gather more data that eventually makes recognition more accurate.

As opposed to the client-side, the server must be very intelligent. Image recognition can be very complex, since poor image resolution, distant objects, pictures taken from different angles, etc. can make it very-very tricky if not impossible. Yeah, I know that the article mentions that the concept was proved, but I believe it only when I see it, you know. Obviously, the solution must be community-driven - you cannot expect any service providers to maintain such a big database alone. And I'm sure that from business point of view it's the server-side software that one can license, whilst the client software would be available free of charge. At least, that would make sense.

Finally, it's very interesting that others are also making experiments in this area.
  • Android Scan is an application written for Android Developer Challenge that uses camera and mobile processing power for barcode recognition and scanning for metadata of CDs, DVDs, books on the internet.
  • Nokia also develops navigating system based on image recognition, where you can just "take a picture of a nearby landmark, like the Golden Gate Bridge, with the camera in your mobile phone. Then, Nokia will match your photo with other landmark photos in its mapping database, and tell you where you are."
  • J-MAGIC is a Japanese company that "sees market for picture-based search", too.
And the list is by far not complete. I wonder who will come up with the most innovative idea bundled with a sustainable revenue on the service so that both sides (i.e. consumers and providers) get what they want.

Any thoughts?