Finding open source applications for Symbian is not always easy, both because the repositories are somewhat fragmented, and because, in some cases, license terms are unclear. Some of worthwhile sites where you can find Symbian applications are My-Symbian.com (which includes both open and closed source utilities and is well-structured), SymbianOS.org, J2ME applications for mobile phones, Series 60 freeware, and freshmeat.
Symbian OS is available in different versions and user interfaces (including UIQ and Series 60, among others) so it's important to choose software that works with your particular phone. It's generally not advisable to install a utility not specifically designed for a given system.
For my tests I used a device that ran Symbian OS v8.0 and the Series 60 Platform 2nd Edition user interface.
Installation files usually come in .SIS format (the standard Symbian installation package), but other types are available, including Java JAR format and Python. Installing an application on a Symbian phone is a trivial task: you just move the installation file from the location to which you downloaded it on your PC to your flash disk or memory card. Your desktop PC can be running Windows and the software provided with the phone, or Linux with, for example, ObexFtp. Once it's on the portable media, you just return the chip to the phone, after which you can execute the installation file from the phone's file manager. Regarding Java, it's worthwhile to note that in addition to the JAR file (containing the binaries themselves) there is frequently a JAD file containing descriptive items, and the Locale variable, which is useful in case you want to change the language of the application before installing it.
Here are some useful applications I recommend.
Calculator, written by Konstantin Knizhnik, performs precise calculations and implements many popular mathematical functions: sin, cos, tan, asin, acon, atan, exp, log, sqr, etc. It also lets you define your own functions, store results in variables, and use variables in expressions. It stores formulas, and single argument functions can be even plotted. You start by inserting a formula such as f(x)=x2*sin(x). You can then plot it with, for example, plot(0,5,f), where 0 and 5 are the limits of the desired x range and f is the previously defined function. The author's home page says, "All applications are provided with sources, so you can easily customize them for your needs".
jFreeSafe is a password storage application developed in Java by Laszlo Marai under the GNU GPL license. It uses the TwoFish protection algorithm, which, according to the author, added to the fact that the master password is not stored on the device, results in a high level of security. This is a handy utility when you're not near your PC. An additional feature I'd appreciate in future versions would be the ability to synchronize the jFreeSafe password database with a PC to avoid keeping separate password databases if you have similar software on your PC.
Bemused allows you to control your music collection remotely using Bluetooth. It has been reviewed favorably on Newsforge. I used it to control slide presentations on my PC and laptop. During a presentation it is common to move around, either to get closer to the audience or to point out something by hand on the projected slide. Bemused lets you browse your presentations folder, open a presentation, move forward and backward in the presentation, and even close the presentation with the phone's keypad and a Bluetooth connection.
Bemused has a client application (running on Series 60 and UIQ phones) and a server application available for both Linux and Windows. It was written by Ashley Montanaro and is released under the GNU GPL.
OggPlay for Series 60 phones is released under the GPL license. It can play .ogg audio files and can detect and play other audio formats supported by the phone, such as MP3, AAC, MP4, and M4A. You can create and use customized skins, define hot keys, and set auto play, shuffle, and repeat modes. With OggPlay you can even use random music files as ringtones. It's very intuitive, and the skins represent a nice added feature.
Shopper2 is another application written by Kostantin Knizhnik. It helps you keep track of items you need to buy at the supermarket. It displays a big list of groceries divided into types of items (and you can add your own) that you use to make your shopping list. Once there, you uncheck items one by one as you put them in your shopping cart. You can clear the list to reuse it another time or modify it as your needs change. This is another application that would be improved by the ability to synchronize with a PC.
Torch for Series 60, developed under the GNU GPL license, simply allows you to use your phone as a flashlight. It's just a bright, white screen, but this is an interesting and different use for your smart phone.
Barcode Reader is an application in an early alpha stage that can read a UPC barcode through the phone's camera. Even though the software is barely usable at this point, the concept is worth supporting. A more advanced version of Barcode Reader could be used to store inventory information (such as location on a warehouse's shelves) and send an update to a central server whenever a worker picked an item from a shelf and used the phone's camera to scan its barcode. This could become a killer logistic application, especially since there is no special hardware required, just an off-the-shelf wireless phone.
While handy applications are useful, nothing is more fun than games. Many games for Symbian smart phones are available on the Web, and many of them are open source.
Frozen Bubble is a popular GPL-licensed game on the Linux platform. The object of the game is to make bubbles fall from the roof before the roof itself fall on your penguin. Bubbles come down if you are able to group three or more of them of the same color by shooting from the ground a new colored bubble.
The game is well suited for a phone: the screen size (176 by 208 pixels) is big enough, and you don't need to press a lot of different keys. Graphics and sound are very good (though the sound can be muted).
Bomber is a Java game created initially by www.whiletrue.com and then developed into "Bomber 2" by Kevin Yank. You are moving on a well-made double-defined field (background scenery like mountains moves slower than foreground images), and you can rotate your plane clockwise and counter-clockwise. The object of the game is to destroy enemies' planes and installations by dropping bombs. There is high score section and an "easy game" option.
The game is fun, but it takes some time to get used to the buttons you need to press. Unfortunately, probably due to the memory high needs, I experienced some application locks that required me to restart the phone.
Konstantin Knizhnik's Mammoth Hunter is an open source Java game where the object is to make a mammoth fall inside the central green pit. You can move five hunters by first selecting the one you want to move through the numbers on the keypad and then moving him with the cursor buttons. The mammoth is slower than the hunters and tries to escape from them. You can lose your hunters if they fall into the pit or they go too close to the mammoth.
Modifiable options include the numbers of hunters (from 1 to 9), hunter speed, mammoth speed, and detection distance (the distance at which the mammoth starts escaping from the hunters). I like this game because it's minimalistic and more focused on the logic of the mammoth movements instead of graphics aspects. What I miss is a clear (or easy to find) license statement.
The Commodore 64 was a popular computer in the '80s. Thousands of games were written for it. E32Frodo is the Commodore 64 emulator for Symbian OS. It was ported from Christian Bauer's original Frodo for Amiga by Jal Panvel, Alfred E. Heggestad, and Hannu Viitala. Both the emulator and the source code are free.
Being a complete emulator, it can run virtually any Commodore 64 program, but E32Frodo is particularly focused on games.
You can add games by putting the files containing them (usually labeled with the .D64 extension) inside the directory \Documents\e32frodo\ of the disk C: (flash disk) or E: (memory card). You can then start E32Frodo from the icon on the Symbian menu, and you'll see the Commodore 64 blue screen.
With the phone's right option key you can bring up a help file. I recommend going through it in order to understand how to handle the emulator. With the phone's left selection key you can access a menu that helps you deal with a complete computer emulation through a phone keypad via preset commands. You can perform the most common tasks by choosing options in the "Disk commands" submenu.
The basic steps to start a game are: go to "Disk commands," "Select Disk," select the file (the ones with the extensions .D64) containing the game you want, and again inside "Disk commands" choose "List directory." You'll see the names of the games contained in the file, and you'll be able to start the one you want through the command "Load and run" followed by the game's name.
Audio works correctly and the cursor buttons act as a joystick: playability is, generally speaking, very good.
WabbelLab, developed by Hans Kopp under the GNU GPL license, is one of the games I like most. The game is the electronic version of the wooden table maze you had to incline in order to get your colorful glass ball in the final hole to win, while avoiding making it fall into the other holes on the path.
You can move the ball through the maze making it change its direction through the cursor buttons of the phone.
An unusual feature of this game is that the phone's camera can be used to control the ball. Activate the Tracking option, and the tilt of the phone (determined by the comparison of images taken by the camera at different times) moves the ball accordingly. Surprisingly enough, you can play by just moving the phone!
You have to play with a background that offers good contrast to help the algorithm determine the tilt, but the correspondence to the physics of the movement is, generally speaking, pretty good.
Even if the author says that it's "more a demonstration of motion tracking than a real game," the playability is acceptable. The only negative point is that you can't make the ball jump as you can in reality!
Games on phones are becoming popular not only because we always have a phone at hand, especially when we are waiting, but also because some types of phones can run high-level games. The open source model shows its potential here; many of these games were made by porting and adapting the code developed for a different platform.