Setting up the S60 SDK for Development

Ever had a problem where your application was running fine on the emulator, but failed to run on hardware? Ran an application on the emulator, but the application exited, without showing any reason? Or perhaps, you expected to see the emulator logs in the debugger window, but they never appeared?

That’s because of rather aggressive approach taken by the S60 SDK installer in terms of disabling emulator diagnostics (most annoyingly, platform security violations, which go unchecked on the emulator by default) and results in unexpected behavior from applications when run on real hardware.

If you already have the S60 SDK installed, its worth checking if the diagnostics are enabled and even if you don’t want them, at least know what options affects which bits of diagnostics.

Continue reading

Quick Recipes on Symbian OS Released!

Mastering C++ Smartphone Development (Symbian Press)As one of the co authors, I’m really exited to announce that Quick Recipes on Symbian OS has just been released by Symbian Press. According to the official literature,

The book tells you how to start developing C++ applications for Symbian smartphones from scratch and includes recipes that are divided by technology, including graphics, multimedia, location-based services, networking and messaging. Each recipe explains the length of time needed to implement it, and its difficulty level. The task is then explained in detail, and provides snippets of example code. The full sample code is provided for future reference and for use as a starting point in your own projects.

Get a copy from Amazon here, while its hot baby 😉 While at it, have a look at the book’s WiKi page, where you’ll find the recepies(code examples) and the errata.

Happy coding!

Getting Most out of Carbide.c++ Build System

Carbide.c++ Build OptionsThe Carbide.c++ team at Nokia has just published a series of articles that explains the Carbide.c++ build system in-depth and how to get the most out of it. A recommended read for all developing software with Carbide.c++.

Happy coding!

Ever Wondered What Macros are Defined for your Project?

Carbide.c++ Build ConfigurationA colleague of mine recently popped down at my desk, asking me if there was an easy way to find the macros defined for a Symbian project build configuration. Given that a macro can originate form different places, its not always a easy guess. Of course you can look at the usual suspects, like the HRH file for the platform (\epoc32\include\variant\Symbian_OS_*.hrh) and the MMP file itself for the MACRO directive, but it won’t give you the full list, since the Symbian tool chain will insert its own on top. So how do you get it? Enter Carbide.c++ build configurations.

Continue reading

Spot the Error

Ok here’s a bog standard piece of Symbian C++. What’s wrong? Hint, its all in the status…

void CConnectionProgressObserver::RunL()
  if (KErrNone == iStatus.Int())
    iConnection.ProgressNotification(iProgressBuf, iStatus);
  // OnProgressNotificitionL is
  // a callback (void)(TNifProgress, TInt)
  iNotify->OnProgressNotificitionL(iProgressBuf(), iStatus.Int());

Still didn’t get it? Read on…

Continue reading