You Are Here:

Community: Wiki

This page was last modified on 26 September 2009, at 04:20.

Big Picture : S60 and Symbian C++ Learning Path

From Forum Nokia Wiki

Reviewer Approved   

This picture will show you a typical learning path tree (reversed). You could find where to start and what you could make after investigating a technologies branch.

Contents

The Picture

Image:Bp_learning_path.jpg

NODE A

You could also consider NODE A as the start line or the gate to the S60/Symbian C++ world. As long as you had done some C/C++ programmers work earlier, or you are a college(even high school) student who had courses on C/C++ programming language, you are qualified to continue. If unluckily you haven't, I would like to recommend some online resources, course-ware and books worth reading, for very beginner to C/C++ computer programming world. Don't be scared, this isn't that hard, the last "HelloWorld" explanation will certainly ease you.

C programming language from Wikipedia.org

The classic, the bible of C Programming Language, book from Amazon.com

Programming Languages, Open Courseware by MIT

A site introduces everything about C Programming Language

Thinking in C++, by Bruce Eckel

Actual means of "HelloWorld" in the picture

NODE B

NODE B has two parts, the left one is more generic and the right one is specific for S60 platform and Symbian OS C++. If you want to learn other platforms such as Apple iPhone or BlackBerry from RIM, there are also generic and specific two steps to follow.

After finish taught yourself these two parts, you should be able to write a "HelloWord" application and test it on your S60 mobile phone.

NODE B1

At NODE B1 you have to fill yourself knowledge about mobile development tools and fundamentals for mobile devices. Even nowadays a smart phone is quite like a desktop or laptop computer, there are still a lot of differences to concern before creating applications. After knowing the differences and mobile-device-only features, you could design and develop high-quality and best suites for phones applications. Remember, BEAR those concepts in mind ALL TIME, this is quite important.

Tools:

Carbide.c++ | Category:MS_Visual_Studio | Code Warrior

Symbian C++ Development on Linux and Mac OS X

Symbian C++ Development plugin for Apple XCode

Fundamentals:

S60 FAQ

S60 Basics

S60 Platform Introductory Guide

How to use Symbian Developer Library

NODE B2

From here we could explore more about your S60 phone's underneath software, know how a native S60 application works and how it looks like inside. I could tell you that the message application or alarm function you used everyday with your phone is written like the way you learned here. They obey the same the S60/Symbian OS C++ application architecture.

  • Important documentations:

Symbian OS C++ Essential Idioms BIBLE

S60 Platform Application Framework Handbook BIBLE

Symbian OS Basics

Getting started with Symbian OS C++ Development

Symbian C++ Quick Start

  • Reference you should bookmark (or download then put under pillow):

C++ Developer Library from Forum Nokia

Symbian Developer Library

NODE C

There are four parts in NODE C, and I want to let you know their placement is meaningful. C4 is the base, most people start from this part first. C2 and C3 are built on C4, they have a brother-like relationship because each of them targeting different application categories, which will be separated in D level nodes. C1 is advanced topics, you could learn this after you practice C2, C3, C4 fluently. However, C1 is also something fundamental and tightly connected with mobile device specific features, because if you don't know these techniques well, you could only develop small scale utility, but not rock-solid application which could stand in market and industry for seasons. You could review the topology of these four sections again, if C1 removed, then the C2 and C3 will be very unstable, even fall. Also if you are at beginner phase, mastering only C4 will be OK to continue, but with no BIG success.

NODE C1

Frankly, I am also a[n old] student on this advanced topics. I would suggest you find more answers from the resources below.

Active_object | CleanupStack | Thread_vs_Active_Object

S60 Platform Thread And Active Objects Example

Latest articles on Active Object from NewLC.com

Implementation of Active Objects in Symbian

CleanupStack Basics

NODE C2

I always give C2 a summary "Standard S60 UI". Nokia puts a lot of money and human man time on research of User Interface (Human-Machine interacting technologies). S60 is proved to be a solid mobile phone UI with quite good usability. If you are not going to develop a FPS 3D game or your customer is a large company who seeks standardization, topics in this part will be enough.

Uikon-Eikon-Avkon-Qikon

S60 UI

S60 UI Specification, latest verions: S60 3rd FP2

Introduction to S60 UI components

AVKON UI Resources

Scalable UI Example

UI Control Framework

NODE C3

Enjoy playing games? Want to make something entertaining? Here we go. Besides games theory and physical simulation, you have to know how to put result image onto screen. Cause games screening is a so different programming technology that C3 stands beside C2 as its brother. Here you control the screen like a canvas, your drawing tools and user responses are fully under control of your code. Some good resources are:

Direct Screen Access | Symbian C++ Multimedia Articles | Category:Multimedia | Category:Graphics

Scalable screen drawing example

Best Practices for HW Accelerated Graphics Optimization

Introduction To 3D Graphics

Camera Example

Video Example

NODE C4

C4, the base part really has a broad topics to mention. From string(called Descriptors in Symbian OS C++) to file, from dialog to key press, from messaging to networking, and etc. A good way to mastering all you need is to create an experimental project which implements a small useful function, and during your coding try to learn every related API suite.

E32, User Library | F32, File Server

Buffers and Strings

Memory management

Timers and timing services

Sockets server

System libraries

and a variety of topics...

NODE D

NODE D has three brothers. They are all grown ups who could represent themselves. The policy of sorting them used in this level is the application category. In market, native S60 applications are usually sorted into these three categories: Enterprise, Multimedia and General. As lines between NODE C and NODE D indicate, Enterprise applications often utilize NODE C2 technologies, while Multimedia applications always use NODE C3 technologies. These relationship is in common sense but not an absolute law. In this level there are also a D?-2 block, this block shows you a featured application in this category. What's more is each featured application I showed here is an open source project, means you could grab its source code and make your investigation, learning from it. Isn't it great? And after finishing this level of learning, I think you could make good native S60 applications.

NODE D2(1,2)

Applications in Enterprise category require stability, security, usability and less graphics work. To get these result, some topics could give you convenience.

Platform_Security | Symbian C++ Security Articles

DBMS, Database management system

Forum Nokia Enterprise Section


Featured application

PuTTY for Symbian OS

NODE D3(1,2)

If an application belongs to neither Enterprise category nor Multimedia/Games category, then it belongs here. It's a little hard to express some detailed requirements for this category, and I would tell the old story: make an idea of an application best solved a practical problem, and try to implement it with your knowledge, learn topics/API suites during your designing and coding.

Possible useful topics may include:

ETel | Etel_Core_API | ECOM

Source and binary compatibility

Development and Quality Assurance guide

On device debugging with Carbide.C++


Featured application

Screenshot for Symbian OS

NODE D4(1,2)

Games and multimedia player, recorder, manipulators belongs to this category. This is a wonderful and shiny place. Most of API suites from NODE C2 can be used here, and extended technologies could send you to peak.

Full duplex audio example

Music application developer guide

Multimedia framework and other Multimedia APIs


Featured application

OggPlay for Symbian OS


Continue contribution

You could edit this SVG by Ink Scape, an open source and free software running on Windows, Linux and Mac OS X.

The source is here File:BP LP.svg.zip

kcome 12:35, 16 March 2008 (EET)

Related Wiki Articles

No related wiki articles found

Rate This

 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZidentifierQSxhttpE3aE2fE2fwikiE2eforumE2enokiaE2ecomE2findeE78E2ephpE2fPortingE5fBlackBerryE5fStormE5fapplicationsE5fandE5fservicesE5ftoE5fS60E5f5thE5fE45ditionX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqfntypeZWikiContentQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qfnZtopicQUqfnTopicZseriesE5f60Q qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qfnZtypeQUqfntypeZWikiContentQ qfnZuserE5ftagQSxs60X qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqfntypeZWikiContentQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ