For starters, two stipulations: One from me, one from Voltaire. Me: "I love Eclipse." Voltaire: "There can be no disagreement in matters of taste." Or alternatively, as expressed by my mom: "To each his own." So now that this deeply personal matter has been aired, let’s walk through a setup of my favorite Symbian Dev Tools.
When it comes to coding, the rubber meets the road with good tools. Productivity and creativity are both encouraged by a development environment which offers project visibility, high performance tools, stability and diversity. And if you are investing significant time and effort in becoming proficient with a given development suite, it’s nice to believe the thing to be sufficiently extensible to carry you into new use cases, targets and technologies. I have found all of this to be true of the Eclipse environment, which I’ve used to create applications in a variety of contexts and languages. Nokia’s Carbide.c++ is built on Eclipse, and so for me, felt immediately familiar and comfortable.
I have, however, friends and colleagues who see things differently. “Just give me a command prompt and let me run my own development life” they say. Also a valid and fairly widely held point of view. SO. In this series of posts, we do a step-by-step setup of Eclipse based Carbide.c++, Symbian S60 SDKs and S60 Emulators, including learning how to verify that the foot bone is, so to speak, connected to the leg bone. In future, we’ll look at command line tools.
Anatomy 101 or What You Need to Know About The Tools
Carbide.c++ is, as mentioned above, a Nokia product. Express, the base version, is available for ongoing use under a free license. Carbide.c++ Express is the version I’ll use for all upcoming code examples. It is a good vehicle for learning about Symbian C++ programming without making any investments other than time and nurturance of healthy curiosity. However: The product you download at the Nokia site is not initially the Express version, but a step up, called the Developer Edition. After a 30 day trial period, the Developer edition reverts to Express, unless you purchase a license. It is important to understand this, because some fairly major elements of functionality will evaporate, beamed into deep space on wide angle dispersion, when the 30 day trial period limits out. Key Developer edition disappearing features include:
• On-device debugging
• UI Designer tools
• The sample code tree
Two significant points about this: First, if you want to experiment with the advanced capabilities of Carbide.c++ Developer Edition, block out some squares in your daytimer and make sure you do it before the trial period ends. Second, the fundamentals of Symbian Programming are, well, fundamental. You can learn a good deal of Symbian as readily on the emulator as you can on a device. ( Obvious exceptions include device functionality that relies on physical hardware-- cameras, Bluetooth, GPS and the like. ) I like to think of Express as a technology travelogue on the cheap: “Symbian Programming on $3 A Day” or whatever your personal pizza and latte budget may condone.
What To Get If you Want to Play Along
The Forum Nokia Websites are phenomenal in terms of completeness and quality of their content. Overwhelming, in fact. To spare you being stunned by the sheer volume of information and resources there, I’ve distilled the bare necessities and provided a list of links that will give you a quick start with the development tools setup. If you’ve never laid eyes on Eclipse, you might want to peruse the “Getting Started with Carbide” PDF. Otherwise, just dig in and download the components from which you’ll be assembling the IDE. Here’s a quick flyover of the elements you’ll need:
• Active Perl : In this case the exact version number matters. You need Active Perl version 5.6.1, Build 631 or better.
• Java: You’ll need Java Runtime Environment (JRE) 1.4.1_02 or better. If you automatically update your JRE, you probably won’t have to make changes.
• Microsoft Core XML Services (MSXML ) 4.0: Again, if you allow automatic software updates, this is most likely already in place.
• S60 SDKs: It is important to make sure you download and install specific SDK versions, because Emulators are matched to them. Choose S60 SDK 3rd Edition, Feature Pack 1
• Carbide.c++:Eclipse based IDE, help files, references and tutorial examples.
In the interest of a smooth installation it is helpful to be logged in as the system administrator, as opposed to a user with administrator privileges. Also, to be on the safe side, after you download and install the components, check the properties of executable and license directories to make sure that they are unblocked. Install the dependencies before installing Carbide, and verify that each installation was successful before going on to the next step. If you are a command-line-prompt sort of person, doing this as a batch file makes a good deal of sense and provides you with a log – which, for most programmers, is as cherished as a letter from home. Being, on the other hand, one who typically reads the directions only as an absolute last resort, I heedlessly plunged ahead using the list above. Combined with dog walking, laundry, phone answering, etc, it took a few hours of off-and-on attention and included no memorable interludes of head banging or hair pulling.
Download the S60 Platform SDK here. From the 'C++ SDKs for All Versions' dropdown, choose S60 SDK 3rd Edition, Feature Pack 1.This is important because Carbide emulator versions are matched to specific SDK revisions. Symbinia samples use this emulator SDK pair.
Active Perl Free Download:
Search this site for 'Active Perl free download'. Note the version number mentioned above -- version 5.6.1, Build 631 or better. Newer or older versions than the one specified in the Carbide.c++ system requirements will cause disturbances to your wa.
Looking Ahead: Verifying the Carbide.c++ Installation doesn’t take long and is worth doing. We’ll see how to make sure the tool chain is complete and functioning. After that, software tourism. We’ll begin exploring the landscape and features of the Symbian architecture.