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 |
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 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.
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 Platform Introductory Guide
How to use Symbian Developer Library
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.
Symbian OS C++ Essential Idioms BIBLE
S60 Platform Application Framework Handbook BIBLE
Getting started with Symbian OS C++ Development
C++ Developer Library from Forum Nokia
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.
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
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.
S60 UI Specification, latest verions: S60 3rd FP2
Introduction to S60 UI components
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
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
and a variety of topics...
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.
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
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
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.
Music application developer guide
Multimedia framework and other Multimedia APIs
Featured application
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)
No related wiki articles found