Size of the Market

instat.gifAt the recent FOM conference, Matt Millar of Adobe commented that there are now more Nokia S60 users than Mac users. A very recent In-Stat report predicts that "Size and Growth of Smartphone Market Will Exceed Laptop Market for Next Five Years".

However, S60 is a phone and Mac is a PC. It’s not sensible to infer that just because it’s feasible to create and sell apps for the Mac that it’s equally viable to create and sell them for S60. This comes down to end user expectations. People expect to add software to the Mac… they don’t on S60 phones. Why? This partly comes down to issues I posted about 18 months ago. While advertising for the N95 has heightened awareness of S60 and the "Open to anything" campaign helped a little, people need to see the benefits of adding software rather than the fact that they can just add software.

Telit GSM GPS Python Module

telit.gifI recently came across some very interesting GSM modules while performing a feasibility study. Telit produce a range of GSM modules that allow remote mobile telemetry applications to be created without having to use a consumer phone. Usually, this also requires use of a micro-controller and it all gets a bit more complicated and expensive. However, Telit have a new module that’s also programmable via a Python script.

telitpython.gif

What’s more, there’s even a version with built-in GPS. The module isn’t much good on it’s own as you also need a circuit board to mount it on and an antenna. SparkFun Electronics have a evaluation boards and kits. Area SX also have a more comprehensive board that has a variety of I/O options. There’s an article on how to use it for GPS tracking. As an aside, FOXGM have a carrier board that allows integration with their small embedded Linux solution.

Extend Flash Lite on S60

flyer.gifOne of the problems with Flash Lite is that you can’t access many of the phone’s features. Recently, I came across Flyer that extends Flash Lite 2.1 to allow you to use Python on S60. This allows you to…

  • Take photos with device camera from Flash Lite
  • Take device screenshots from Flash Lite
  • Send files over a bluetooth connection from Flash Lite
  • Get the contact entries in the default device database
  • Perform text To speech
  • Record sound and playback

What’s more, it’s also all open source. However, I encourage you to sponsor the project as 60% of all donations to the Flyer Project will be for Brazilian Children. Also, it will help fund the following features that are currently in development… 

  • File upload to a remote server
  • GPS module to display latitude, longitude, satellite count, and time
  • Record device screen as Flash Video
  • Get Inbox SMS messages
  • FTP

Python for S60 3rd Edition and Platform Security

nokia.gifLast week, Nokia released a beta version of Python for Series 60 3rd Edition. The final 1.4.0 release will be out some time in the second half of 2006. The first thing of note is that bug fixes and new features for pre-3rd edition are on hold while work goes on to get the 3rd Edition version completed.

I was previously curious as to how Python (and interpreted code in general) could remain usable under Symbian Platform Security. In particular, how can a script gain access to features that are ordinarily protected under C++?

The answer is it can’t. Nokia have chosen to defer the complexities of capability requirements to the Python developer. This means that the Python developer has to understand Python platform security and sign certain applications. At first sight, this looks like a large barrier for the typical Python developer.

There are now two installs, one for the Interpreter and one for the shell that runs scripts. The Interpreter is (mainly) a DLL with a large number of capabilities. This DLL operates in the same way as other system DLLs – users of the DLL (e.g. the shell app) must have the same or lower capability and must be signed. Signing does not necessarily imply Symbian Signed testing. This depends on which capabilities you want to use. What does all this mean?

In practice, as long as you don’t use the GSM location or contacts functionality, you can still use the shell to run your scripts. If you want to run your script stand-alone then you can self-sign (no Symbian Signed testing needed) with the same capabilities as the shell app…

  • LocalServices
  • NetworkServices
  • ReadUserData
  • UserEnvironment
  • WriteUserData

If you need the GSM location, contacts or a 3rd party extension that requires extra capabilities then you will have to get your application Symbian Signed (tested). Currently there will be problems with some of the Symbian signed test cases (e.g. PyS60 does not report the possible low memory situation when it is started and if it is unable to run due to low memory). I expect the interpreter will need lots more work before end-user Python applications pass Symbian Signed.

Mobile Development Wiki

wiki.gifThere’s a relatively new Wiki on Mobile Development. It gives a fair indication of the pros and cons of various mobile development platforms and the tools required to develop for them. In practice, you will need a bit more than the Wiki to choose a platform. Deeper technical, marketing and political issues usually pervade a given project rather than the issues presented.

Easy Mobile Programming

emp.gifThe latest Symbian Community Newsletter links to a programming tool I have only just come across. Easy Mobile Programming is a simple programming language that allows simple Symbian applications to be created without any of the complexity of C++ programming. The author describes it as a prototype unsuitable for serious programming. Nevertheless, it allows simple programs such as games to be created.

Application tools that can produce simple ‘hobby’ type applications is currently an under-developed area. The value of this area should not be under-estimated. Freeware/shareware type applications bring much needed utilities to a platform. Useful applications also tend to ‘grow up’ into fully fledged applications. Also, such tools are also useful for ‘dummy’ mockups/demos for the early stages of a commercial project.

Current hobby tools include Python and OPL. Neither are currently available for Symbian 9.1 (Series 60 3rd Edition and UIQ 3.0). I suspect it will be a long time (if ever in the case of OPL), before these become available under 9.1. Apart from the actual code migration which is substantial, there are issues with platform security. If normal C++ applications can’t access certain phone features without being signed then should OPL/Python scripts be allowed to do so via the corresponding runtime? (thus opening the phone up to rogue usage). Conversely, requiring scripts to be signed (within a .sis file) would probably reduce the usefulness of Python/OPL for hobby/rapid development. It will be interesting to see how this problem is solved.