Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Accredited Symbian
Developer is an industry-
standard qualification for
smartphone software
developers
Introduction
So, you’ve worked hard for months and have written the
best ever Symbian OS application - let’s face it, we all
think our own software is the best ever! Now it’s time to
release it. Even if it’s feature complete and the defect
tracking system has been emptied of bugs and feature
requests, there’s still work to be done. It’s got to be
tough and crash proof. It’s got to be fast. It’s probably
got to be Symbian Signed. It’s got to have support
infrastructure. And most importantly of all, it’s got to
reach the widest audience possible.
Commercial-Grade Software
Automated and Manual Testing
On any platform, including Symbian OS, the three most
important properties of any piece of software are that it
never crashes, it performs well, and is responsive. But
how do you achieve this? Due to the nature of a
smartphone as a small handheld device with very specific
input mechanisms, it’s not always possible to fully stress
test an application automatically.
System testing
As the name may suggest, system testing is about testing
all of the components working together. Just because the
unit tests pass doesn’t mean that there will not be
defects caused by unexpected interactions between
components.
4
Unfortunately, automated system testing is not as easily
defined as unit testing. You may be able to write an
application that pulls in a number of components and
tests them working together. This is a great way of
testing the interactions between the components and,
like unit testing, it can be used to test for regressions
when you change your code.
Manual testing
Whatever level of tests are written for automatic testing,
on a platform as user centric as a smartphone, old
fashioned manual application testing by real people is
ultimately the most important of all.
Tools
If you have a budget to spend on tools for testing and
improving the quality of your code and your application,
then a code coverage tool is also worth consideration.
The Bullseye Coverage tool is ideal for generating metrics
that give you an idea of how much of your code has
been tested. It allows you to focus your testing effort and
to pinpoint areas that need review, for example, because
the test code has not covered every line of code. More
information is available at www.bullseye.com.
Code Reviews
Another way to confirm the quality of your code is to
perform static code analysis – otherwise known as a code
review. You can do this manually, of course, either by
checking it yourself or, preferably, by asking a colleague
or team mate to review the code and to give you
feedback. The Symbian Press Coding Standards booklet
(at developer.symbian.com/booklets) can be used as a
guideline when performing a code review.
7
If you prefer to automate static code analysis, there are
also some tools available – for instance, the Professional
and OEM Editions of Carbide.c++ v1.3 ship with a tool
called CodeScanner. Running CodeScanner on a project
generates a report of the areas where it considers there
may be problems, for example:
• methods that can leave but are not named with a
trailing ‘L’
• descriptor parameters that use pass by value rather
than pass by reference
• ‘worrying comments’ such as the words ‘hack’ or
‘to do.’
Code Profiling
Carbide.c++ Professional and OEM Editions ship with
Performance Investigator, which is a profiling tool for
analyzing the performance of applications running on S60
3rd Edition devices. The tool runs as the application
executes and determines which sections of code should be
optimized to improve performance, memory, CPU usage, or
power consumption. You can find out more about
Performance Investigator, and the other tools that Carbide.c++
ships with, from the product page on Forum Nokia, at
www.forum.nokia.com/main/resources/tools_and_sdks/carbide
_cpp.
8
Usability
Make sure to put your application in the hands of other
people for usability testing, especially those who are less
technically inclined. The problem with having engineers
test applications is that an engineer is more likely to
understand how the application works, and to use the
application in just the way it was meant to be used.
This will not be the case with non-techies, so use them
as a testing resource! It’s a fine balance between writing
an application to do the right things and its usability –
and you need lots of different perspectives to help you
get it right.
9
An important thing to keep in mind when it comes to
usability is that there are many different styles of phone,
and you can’t assume anything about the form factor of
the phone on which your application will run. The
creators of the platform UIs running on Symbian OS (UIQ
and S60) have thought long and hard about usability.
Both interfaces address the issues associated with
running on multiple devices with different screen sizes,
input mechanisms, and key layouts.
Mobile games
As I mentioned above, there is one type of application
that is, by its very nature, going to be exempt from the
rule of adaptation to the platform UI: the mobile game.
Designing a 3D game to run on different devices is less
problematic than for 2D games, because 3D graphics are
scalable. Even so, handling portrait and landscape mode
may still be a challenge because of their very different
aspect ratios. 2D games by their nature are not scalable
and are therefore more susceptible to device differences.
Symbian Signed
Signing your application with Symbian Signed is an
important part of releasing software for Symbian phones.
There are different levels of signing, and which you
choose depends largely on the application itself.
SMS Activation
One popular way to protect your software is to use an
activation SMS. The user sends a one-off SMS to a
particular SMS number, and an SMS is sent in reply to
activate the software. This can also be a handy way of
letting the user pay for the use of the software, by
setting up a premium SMS number.
Distribution
Channels to Market
Like so many things about smartphone programming,
there are no firm rules for getting your application to
market. As a developer, you need to think about the
nature of your application, the end user of that
application, and your customer, which may be the end
user or it may be a network operator or another large
company.
Network Operators
Using network operators as a channel is a good approach
as they have a large customer base, often brand devices
with their own signature applications, and also offer
other applications for download from their portals.
Working with the network operators does have its
downsides though:
17
• Network operators are notorious for taking a long
time to hammer out deals; expect 18 months from
when you first approach them to when your
application gets onto a portal, although this will vary
depending on the operator.
• Application signing and testing by an independent
test house usually becomes mandatory, and this
means additional work, which can be expensive,
especially for small companies.
• If you decide to use this method exclusively, then it
means that you are limiting your audience, because if
a user finds out about your application and isn’t with
one of the network operators you have collaborated
with, then they won’t be able to obtain it.
• You will probably have to negotiate a deal with multiple
operators, and may find that you have to renegotiate
with the same operators in different countries.
You can find out more about the other 'hot' areas that
operators are keen to promote by listening for key
messages whenever the operators speak at developer
events (more about these in The Symbian OS Developer
18
Community section later in this booklet), or when they
issue press releases or other material to help analysts
‘sync up.’
Making a Demo
You may decide to make a demo of your application
available, because some users may not want to buy an
application that they have not tried. Preferably, the
demo application should be unlocked with a code, to
make it easier for users to purchase and run the full
application. Otherwise, they would have to go to the
effort of paying for it and then downloading the full
version of the application, which may also incur an extra
data charge if they do it OTA.
Support
One thing that all of the distribution methods have in
common is that you are going to have to set up some
sort of support channel. If you are lucky and have a deal
with a large company they may handle this, especially if
they have licensed your application and branded it
themselves. Even then, they will often insist that you
have a support site. Again, this means infrastructure - a
web server with some sort of forum software running on
it is a good start, and definitely a
support@yourcompanyname.com email address that is
checked regularly and is responsive.
SymbianOne: www.symbianone.com
Working Together
Symbian Partner Network
Strong relationships can deliver strong results. The
Symbian Partner Network comprises the top technology
innovators across the world and provides exclusive
access to the resources and tools necessary for the
development, sales, and marketing of solutions on
Symbian OS. The program is designed to deliver
maximum success to both Symbian OS licensees and
members of the Partner Network. Members of the
program benefit from:
Developer Resources
Symbian Developer Network
developer.symbian.com
Forum Nokia
forum.nokia.com
MOTODEV
developer.motorola.com
Symbian OS Communications
Programming, Second Edition
Targeting Symbian OS v9.1 and v9.2,
Symbian OS Communications
Programming - Second Edition will
introduce you to the major
communications functionality in
Symbian OS and demonstrates how
to perform common tasks in each
area.
S60 Programming
Fully up to date for Symbian OS v9
and S60 3rd Edition, S60
Programming is an essential
foundation to developing software for
Symbian OS.
This practical book is based on the
authors’ experiences in developing
and teaching an academic course on
Symbian software development.
Published Booklets
Coding Standards
Coding Tips
Performance Tips
Getting Started
Java ME on Symbian OS
P.I.P.S
Carbide.c++ v1.3
Data Sharing Tips
Essential S60 - Developers' Guide
Essential UIQ - Getting Started
Ready for ROM
developer.symbian.com/books