April 14th 2008 | Jens C Brynildsen
SWF2Go is a really niche product that proves the size and variety of the Flash Platform. It's software that will let you make signed SIS installers that makes distributing your Flash Lite applications for Nokia phones really easy.
SWF2Go is created by Orison Technologies in Pakistan. Odds are that you've not heard about this company, but you may have heard about it's partner/lead developer, Faisal Iqbal. Faisal is also known in the Flash community as chall3ng3r and the author of the blog called F·L·A·S·H·I·S·M .
Faisal's blog is a great resource for Flash Lite developers and if you do any kind of Flash Lite development, you'll appreciate his Developers Toolkit called Oxygen Components. This is a set with four neat Flash Lite components for measuring memory, frames per second, battery meter, signal meter. Just drag and drop into your app to use any of these. The kit has components for Flash Lite versions 1.1 and upwards.
I have to admit that I've never had this much problems setting up and testing any software. It looks really straightforward from the accompanying PDF, but in reality there are a few hurdles.
To create the SIS files, you'll need to install a few things. After installing Activestate Active Perl and .Net 2.0, you'll need to download the required C++ Symbian SDK's. There's three of these, but you only need the one that's required by the Symbian phone you are targeting. The Nokia download site is so busy at times that the downloads just dies, so using the suggested download manager can be an idea (for once). It certainly would be better if Nokia treated their developers to the same bandwidth as the phone buyers get though. After getting the files down and installed, the next hurdle was getting my SIS-packaged Flash Lite file onto the phone.
After creating a simple test file, I tried uploading using the bluetooth connection. I could not locete the file, so I figured I'd put it on a server and download it from there. For testing, we've used a Nokia E51. Nokia is somewhat less user friendly than the SonyEricsson I use on a daily basis. There's obviously issues as the entire navigation interface being different, but that's something you get used to so it's not that. What surprised me was that the phone would download my app from a webpage and then - nothing. No error messages, no nothing. Other phones I've used will give some kind of reasonable response, but not this one.
After some guesswork, it appeared that my server was not set up to send the correct MIME types. Faisal provided me with a set of PHP and ASP files that does this as I did not have access to set this on my shared server. Now the app downloaded, tried to install and - nothing. I browsed just about every folder on the phone and there was no trace of the app. Odd.
This time it proved to be the lack of a certificate in the SIS file. Apparently, Series 60 phones 3rd edition requires this but they won't tell you that is the problem. Faisal had already provided me with this and once this was in place, the app finally installed - or did it? It said so, but there was no app installed and I got a less than helpful error message. It appears that unless you pay for an official Symbian certificate, your apps won't install by default. It sure would have been user friendly if Nokia could tell you how to get around this by just changing a security setting to allow unsigned third party apps.
This is a lot of fuzz, but it really has nothing to do with SWF2Go. It's more of a Nokia thing and me not being used to the mobile world. Still - they really should work on the usability and I don't mean the UI, but rather dialogues and logic. The Nokia phone itself was actually stellar. I used it as a 3G modem during the easter holiday and it was blazing fast.
What SWF2Go gives you is a smooth way to distribute your apps as a professional Flash Lite developer. If you're professional, your users won't have to find the setting to allow unsigned and self-signed apps, since you'll have a Symbian certificate. With that in place, your users only need to click a link on your website and they can install the app directly. You can then sell the app through any online market-place, such as Handango, Nokia Software Market, ClickGamer and others.
SWF2Go is not a projector tool for mobile phones. It won't give you any extra commands, make your SWF run faster (or slower), but it will install the SWF as an application on the phone. The app will have a custom icon and it will oopen in the standalone Flash Lite Player installed on the phone. Flash Lite is available in some form for most of the Series 60 phones from Nokia. The version of the Flash Lite Player vary by phone. Our E51 came with Flash Lite 2 installed. Only N95 comes with Flash Lite 3 installed as of writing, but this will change soon (read Biskero / Marco / Scott to stay up to date on stuff like that).
The setup of SWF2Go (downloading SDKs and adding Certificates) is a one off process. After doing this, all you do is to create a Flash Lite SWF file for the phone you are targeting. You name this file "main.swf" and adjust settings for app-name, app id, app version, add an icon and some settings and you have a SIS file. The SIS can also contain any files you want to go with the app such as JPGs, MP3, TXT, FLVs, EXE files (for series 60 SDK 1 & 2), 3GP video etc. You can supply a readme file that will be displayed before installing as well as a license that the reader must accept for the software to install.
The software supports Flash Lite versions from 1.1 and upwards. You can use it either as standalone or command line so you could even set up a custom workflow that included customization on a per-app basis. It does some basic detection of Flash Lite on the users phone and will display an alert with a URL if Flash Lite is not installed.
At only $70, you can hardly go wrong with this software. The software does exactly what it should, though we would have liked the setup to be easier. This is unfortunately not possible due to how Nokia distributes their SDKs and how the phones are set up. I should also point out that most developers targeting Nokia phones will have this set up already and they'll also know a lot more than I did about installing SIS files. Once we had this all set up, the app was a breeze to use and we had no problems at all.
We did a couple simple speed tests on our Nokia E51 by drawing a series of bitmaps on screen as quick as possible. Flash Lite 2 comes preinstalled on the phone, but we downloaded and installed the developer version of Flash Lite 3.0 for comparison. Both files played at the same framerate (11fps), but the FL3 version used significantly more memory. This FL3 version is a non optimized version from Adobe.com, so once the E51 ships with FL3 it'll probably use less RAM and be faster.
Just for fun - an iPhone comparison
On a couple occasions, I've said that Flash on the iPhone is not very likely with the current hardware. The Nokia E51 has a CPU that is just about the same speed as the iPhone, so it can be used as an indicator of how Flash would have been on the iPhone. The iPhone has higher screen resolution though (320x480 vs 240x320), so apps are likely to run slower than on the Nokia despite the iPhone GPU, but after some testing, I think that for standalone Flash player for deploying Flash applications could be a good idea for Apple.
As long as there is only one Flash file open at any time as a fullscreen application, this should work smoothly and draw more developers to the iPhone. Adding Flash to the already unstable iPhone Safari browser is NOT a good idea though. Many Flash ads are so CPU intensive that just opening a URL would crash the phone.
Jens has been working with Flash since version 3 came out. Since then, he's been an active member of the Flash community. He's created more than a hundred Flash games (thus the name of his blog) but he also creates web/standalone applications, does workshops and other consulting. He loves playing with new technology and he is convinced that the moment you stop learning you die (creatively speaking). Jens is also the Editor of this website.
ActionScript 3.0 Game Programming University
Review: Kindisoft SecureSWF