Slides & Code from Nokia Developers Workshop in Islamabad-PK

I am really happy to be part of Nokia Developers Workshop which was jointly organized by Nokia Pakistan and Telenor, in Telenor’s premises in Islamabad.

It was a two day workshop (28-29 Feb 2012) where I talked about Qt Quick runtime and QML for designing and developing great looking apps and games, with focus on game development for Symbian and Meego based Nokia devices, such as Nokia N8, E7, X7 and the recently announced Nokia PureView 808.

The 2nd day of the workshop was even more fun as we explored the Box2D engine APIs using QML. One interesting thing I’d like to share was that I did not practiced making Ping Pong using Box2D before the workshop. But I was confident enough as I’ve been playing with Box2D and QML for some time, to do it live ;)

pingpong-qml-desktop

pingpong-qml-develop

Below is the slide deck of my talk. You are free to download and modify it and use it for your own presentations. I will appreciate if you include my name in credits as original author.

Download PowerPoint file

And here’s the project for Ping Pong game we developed at workshop. PingPong-QML.zip

As we figured out on the first day of the workshop that Box2D was not getting compiled with default MSVC2008/2010 compiler Qt SDK uses. Box2D compiles correctly with MinGW 4.4 compiler for Desktop and Simulator targets, which is an optional component in Qt SDK.

For Box2D development using QML, install Qt SDK in custom mode and check all components to be installed. When you open the Ping Pong project, remember to check if you have selected MinGW 4.4 as the compiler as shown in screenshot below.

pingpong-qml-compiler

There were few things that I needed to skip due to time constraints. One of them was making icons for your applications. If you are targeting Meego OS then you can safely use a PNG file as an icon. But if you are targeting Symbian OS you need to make your icon in SVG-Tiny format. It’s a vector format, and you need to draw again in Inkscape or Illustrator if you have done it in Photoshop.

The easy workaround for you is that we have developed an online icon making tool specific to cover this issue for beginners. Use our popular SVG Icon Maker tool to make SVG-Tiny icons from any image.

The second thing I skipped to discuss was, the Ping Pong game is hardware accelerated. Yes, it uses OpenGL to draw the graphics. So you can use heavy graphics in your game and it will never lag. To find out how I have enabled this take a look in main.cpp file of the project ;)

And finally here are some photographs taken on the last day of the workshop.

DSC_0020

DSC_0018

 

DSC_0063

It was a great experience for me and I hope all the participants enjoyed developing with QML and publish a game or an app soon on Nokia Store.

Another great news for all the participants of the workshop is Nokia have announced a global competition for developers who will develop an app or game using Qt Quick components can win a free Nokia PureView 808 device which features a 41 megapixels camera!!! More details here.

It’s a great opportunity and perfect timing for you to develop and publish a new Qt Quick app in Nokia Store and win a great new Nokia PureView 808.

Nokia Pakistan is planning to do more workshops in coming months, so join Nokia Pakistan Developers group on LinkedIn for updates and share your feedback.

// chall3ng3r //

Nokia Developers Workshop in Islamabad – Day 1

Is was great energetic first day at the Nokia Developers Workshop in Islamabad, PK. I covered the basic concepts of QML GUI development with focus on dealing with games.

We also took a brief dive into the State Machine, Transition & Animations for GUI elements. We did a small prototype game-kindda thing which is not complete, but attendees asked me that I put the code for download.

BTW, we ended up with a funny name for this game, Ghobara Ghobara (in english Balloon Balloon) :D

So, here’s the Qt Creator project down for Ghobara Ghobara.

See you guys tomorrow at Telenor’s Office for getting our hands dirty with some Box2D ;)

// chall3ng3r //

Installing Symbian Anna on N8, E7, C7 and C6

You might have already read about the recent announcement by Nokia that Symbian Anna is now being pushed to all the Symbian ^3 capable devices, like Nokia N8, E7, C7 and C6-01. To read more visit the official announcement on Nokia Conversations blog here.

In this post, I will give you some pointers, if you are unable to install Symbian Anna on your device.

The first thing you need to do is find out if the update is pushed for your region or not. Start SW Update app on your device, and wait for it to refresh the list of available updates. Once the list is refreshed, it will show you if the device update is available.

On my brother’s Nokia C7, the update was offered as OTA (Over The Air) 28mb update. Once updated, the SW Update now shows two more updates named as Symbian Anna 1/2 and Symbian Anna 2/2. Both updates are about 30mb each. I did not continue with the updates yet because the battery was not fully charged. So, will update it later.

Update for Nokia C7: Okay, I continued the updates on my brother’s C7, and both of the updates installed fine. Remember, that after update 1/2 is installed, it will ask you to restart device, DO NOT restart, as update 2/2 is already being in installing process. Just wait till the updates are installed (about 20 mins).

Then I checked for the update on my Nokia E7 development device, SW Update app showed me the update on device, but it asked me to install the update via Ovi Suite or Nokia Software Updater.

When checked via Ovi Suite, it always showed update for Here and Now app, but not the device update. So, after many tries in 2 hours, I downloaded Nokia Software Updater.

SymbianAnna-install

The Nokia Software Updater reminded me that I’m using the device without a SIM, so I have to put a SIM to make the updater work. So, remember developers, you need to put any SIM in device before trying update, otherwise the update will fail. Maybe Ovi Suite was also failing because of no SIM.

For my E7, the update size is 325mb, and it’s still downloading. I will update this post with my success, and might write another post to review the new things in Symbian Anna update.

Update 1

Okay, after the download and installation of Device Update for my Nokia E7 via Nokia Software Updater, I got quite a bit of Symbian Anna feeling. The icons and browser have new look.

Just after few hours, I checked for updates via SW Update app, and to my surprise, there were two more updates, like I seen on my brother’s Nokia C7. I checked and started the updates. The interesting thing to note is, the first 325mb update was only available via PC, and these two updates are OTA.

WP_000035

They took about 30 minutes to install. During the installation, I was asked two time for EULA for MS Communicator and JoikuSpot. I think these later updates are new version of built-in apps like Mail for Exchange and couple of new apps.

For me, both of these updates went fine on the first go. It restarted my E7, and everything seems to be working alright.

Important note, that after update 1/2 is installed, DO NOT restart your device manually. Just wait for the 2nd update to be installed as well.

Thanks to Nokia for this much needed update.

// challn3g3r //

Fixed: Ovi Store not working after Hard Reset

I have seen many users complaining Ovi Store app not working at all after they Hard Rest their Symbian^3 device, such as Nokia N8, E7, C7 etc.

Ovi Store app is developed using Qt and it requires the Qt runtime on device to work properly. When a user Hard Rests his device, the runtime is gone. And unfortunately, Nokia is unable to tackle this issue so far when installing Ovi Store again on device.

I have to reset my Nokia N8 once, and I got hit by the same issue. I knew what was missing, so I just installed the Qt runtime (4.6.3) SIS from the Qt SDK 1.0 folder to my N8 and it started working just fine.

Normal users don’t have Qt SDK, which is ~1.3GB download. So, I thought it would be a good idea to put the Qt runtime SIS files on my server and let the users having issues with Ovi Store, download and install the Qt runtime without downloading the Qt SDK.

ovi_store_fixed

I created a special mobile friendly page on our SWF2Go website, where any user can just go directly using his mobile and download and install the Qt runtime.

Direct Download Qt Runtime: http://www.swf2go.com/downloads/qt/

I uploaded Qt 4.6.3 as well as Qt 4.7.3 runtimes. You just need only one of them. I’d recommend the later as the most of the new apps such as LinkedIn for Symbian is based on it.

Update: Based on feedback I have also added Qt Mobility 1.1.3 SIS along Qt runtime. Some users have reported Ovi Store app uses Qt Mobility as well. I guess this will fix Ovi Store always loading issue after installing Qt.

Update 2: I have now added Qt Notifications APIs SIS on the download link above. The new version of Ovi Store uses these new APIs as well.

Update 3 “€œ Recommended for Symbian ^3: Nokia team has finally made available a standalone download of the Ovi Store client app. Just visit the following link to download the latest version. Read more about this at official blog.

Direct Download Ovi Store App: http://lr.ovi.mobi/store/client-symbian-3/

Update 4 (26 Oct 2011): Download new Qt QML based beta Nokia Store app. 18mb download contains Qt runtime and the client. No need to install Qt. Get it from here.

My suggestion to Nokia / Qt Team: There should be similar Qt runtime download page optimized for mobile devices, for end users. Who disparately search on internet when Ovi Store stops working.

Update 5 (Sep-2015):
Nokia Store for Symbian is no longer available. Most of the apps are moved to Opera at http://apps.opera.com. Visit this website for Opera Store installation on your Symbian OS phone.

Have fun downloading great apps from Ovi Store!

// chall3ng3r //

Thoughts on Nokia + Microsoft

I believe this is the biggest mobile technology news since announcement of Apple iPhone back in 2007. And to be honest, I am all excited as one Apple fanboy would have, on such big news!

nokia-microsoft-valentine

There are reasons why I am so much excited, but first let me start with the fact that many developers showing concern that Nokia made a mistake for selecting Microsoft Windows Phone 7 as it’s primary mobile OS.

I have been reading lots of news, reviews, analysis and comments around this partnership, positive and negative. I gone through official Forum Nokia’s blog post "Letter to Developers about Today’s News" and in comments I see many developers not so happy.

I would like share some of the facts and personal experience about Symbian OS.

Symbian for End-Users

This is the base fact that everyone, including Nokia also admits that Symbian’s UX is ugly. I have been using Nokia smartphones since 2004, and my first one was second-hand Nokia 7650, and I have witnessed that Symbian was doing great in terms of UI until iPhone. After that, I haven’t heard anyone praising Symbian’s UI.

Symbian for touch enabled devices, proved to be complete nightmare for Nokia. Since it’s introduction to date, they are still trying to tweak it to work better for touch input, sadly without any luck.

Honestly, tell me any 10 great looking native Symbian applications, which provide smooth, beautiful, and animated user experience. Oh, I know one, Gravity and my big applause to the guys who did it. Other than this, I have not seen any Symbian application which impressed me with such great UX compared to iPhone, Android or WP7 apps.

Other than this, I was quite disappointed from Nokia from the end-users’ perspective, as they’ve been selling Symbian devices by showing cool animated UI transitions, but in reality, the actual device, when rotated from portrait orientation, taking more than 7 seconds to show up the UI in landscape (personal experience). Yes, I’m talking about Nokia N97 and other Symbian 5th Edition devices. Lets take a look at this video.

Cool, isn’t it. But if anyone who have used one of these devices must know what I’m talking about.

All this Symbian ^3 hype is waste of money and resources. I have a Nokia N8, and I was not able to compose new or reply to an email until I upgraded to firmware PR1.1, which was released few days ago after months of delay, using my primary account of Mail for Exchange (I use Google Apps). And there were also many other users who were have same issue.

I was making jokes on this”¦ "Nokia – Connecting People NOT", and imagine Borat saying it, you’re gonna laugh "automagically" :D

Nokia N8 is really a fast device as compared to Nokia 5800XM I own. But the UI still lacks all the richness, smooth transitions, and usability I find on iPhone, somewhat on Android and now on WP7 devices. Even Nokia wasn’t able to deliver what they showed in an imaginative video demoed back in 2007. Lets take a look, and pay close attention to animations and transitions.

Symbian was the main reason of Nokia’s failing all this time. They have tried to tweak its UI to make it work on touch enabled devices, but unfortunately it didn’t worked out until now.

Last thing to add here is, Nokia’s official end-user support forums are filled with so many complaints, most of them are related to Symbian OS.

Symbian for Developers

I started learning Symbian back in 2006. My aim was to develop a compiler, which would allow Adobe Flash Lite developers to easily package and distribute their games and application on Symbian platform. I successfully delivered SWF2Go in March 2007 after 8 months of R’nD, and it’s been quite a success so far.

During my journey on Symbian OS, I learned how hard and time consuming it is to develop. Setting up it’s SDKs was quite big task for anyone new to Symbian, but who have worked on other mobile platforms. Other than my work on SWF2Go, I never developed any native Symbian C++ application.

Just in 2010, Nokia’s investments in Qt started to show up. Even though Qt it easy and fun to develop with and its been here for so long and already gone through embedded platforms, but still not ready for real mobile applications. When developer needs to do some real work, he ends up with same old dirty Symbian C++.

Qt Mobility 1.0 is released but it has some quirks. For example, there’s no native Qt APIs of dealing with device orientation. The new Qt Creator project wizard now adds that dirty Symbian C++ code for you.

Nokia could have at least replaced the UI shell of the Symbian ^3 using Qt with all it’s cool transitions and effects. Like HTC replaced Windows Mobile’s UI (almost same as Symbian) with HTC Sense UX. And they actually did a pretty good job on that.

So, Symbian is an outdated legacy OS, which have completed its life long ago. Its making Nokia, developers and the whole ecosystem around it completely slow.

Now stop being angry and join, celebrate with me ;)

Why I Am So Excited?

Microsoft really knows software. They also make mistakes, like everyone does, but they are pretty good. For example .Net, Xbox, Windows 7, Silverlight.

Microsoft Windows Phone 7 is developed from experiences of Windows Mobile. It is targeted specifically for next generation hardware and touch input. It is user friendly, stable and it works. Go checkout some cool reviews to find out for yourself.

Microsoft is the king of developer tools, specifically Visual Studio 2010. If you have never used it before, this tool will teach you, help you and make you expert within weeks. It’s code editing features are one of the best available today.

With tons of online resources already available, so you will never get stuck with any issue. There’s a vibrant developer community as well, from where we can learn more and share back expertise.

Microsoft offers a complete set of tools for development of Windows Phone 7 games and applications. And best thing about them is, all of these tools including VS2010, Expression Blend and XNA Game Studio are completely free. Installation experience is really smooth as well.

Once you are aboard, you’re gonna love it. You can take my word on that ;)

I also found some users and developers asking Nokia, why they didn’t selected Android? Well, other than what Mr. Elop already said about it, I would like to add, haven’t you guys already seen enough Android devices?

Everyone is making them, HTC, Samsung, Motorola, LG just to name a few. Now even those Chinese companies also started making them in masses. You will be getting a lot of them in coming days.

Don’t you guys want to see something new, something different, a competition, using new technology, developing for it, innovating with it, having a choice? I mean come on”¦ Guys!

Nokia + Microsoft = A Wining Combination

I believe that this partnership is a great opportunity for developers on Nokia platform to get back into fast lane, and rapidly develop and compete against other platforms. Provide best of the best games, applications and user experiences to the end-users. A winning combination for everyone.

/// chall3ng3r //

How to Prepare for Forum Nokia Developers’ Workshop 2011

This post will help you for preparing yourself for the first Forum Nokia Developers’ Workshop 2011 in Karachi “€œ Pakistan from 31 Jan to 3 Feb 2011.

qt_and_j2me

The workshop focuses on two mobile technologies, J2ME and Qt available on Nokia’s S40 feature-phones and Symbian S60 smartphones. With countless Nokia devices around the world and over 3.5 million downloads from Ovi Store every single day, these technologies are highly profitable for mobile developers.

Let’s get started. First things first. You are required to bring along your notebook, so you need a notebook with either Windows (XP SP2 / Vista / 7) or Mac OSX (Leopard / Snow Leopard).

If you are going for J2ME track, you need to install J2ME SDK and related developer tools. Below are the download links of recommended tools:

If you opted for Qt, then you only need Nokia Ovi Suite and Nokia Qt SDK 1.0 or better go with latest Nokia Qt SDK 1.1 Technology Preview which includes QML and Qt Mobility 1.1 support.

Install these tools and be sure to at least open the IDE of installed SDK (Qt Creator or NetBeans) and compile a sample project that came along with SDK to make sure the installation does not have any issues.

The most important part is what you’re going to do at the workshop?

Other than educating you about J2ME and Qt and what you can do with these technologies, Forum Nokia is recommending that you bring your own idea for a project you would like to do. The instructors at the workshop will help you while you work on your project.

It’s still one day to go before the workshop starts, start planning your mobile project using J2ME or Qt and get the most of out of this great opportunity offered by Forum Nokia.

I will be at the workshop as well with some cool projects and you are welcome to connect and discuss mobile development at the event.

See you guys on Monday!

// chall3ng3r //

New project: Make SVG icons for Symbian from any image – Free!

I am glad to announce our latest online project SVG2Go, for mobile developers targeting Symbian platform. As the name suggests, SVG2Go is for making cool looking SVG icons from any image file. And best of all, it’s online and free ;)

Start using SVG2Go online here: http://www.orison.biz/apps/svg-icon-maker/

Icons made with SVG2Go can be used for all Symbian applications made using Symbian C++, Qt and Flash Lite. Even you can use it with our other product SWF2Go, to rapidly develop cool games and applications using Flash Lite and publish them on Ovi Store.

Until now, making a nice looking SVG icon was a really hard task. The icon made using Adobe Illustrator or Inkscape doesn’t look the way designer created them, when it appeared on mobile device. Let me give you an example:

tron-icon-example

You might have checked out the Disney sponsored Tron : Tanks Arcade game on Ovi Store, made from the Tron : Legacy movie theme. Take a look it’s icon, no offense to anyone here, but I’m guessing that the developer might have not been able to produce a better icon in time, so he used this one, which doesn’t look good enough. But, the game is quite impressive, smooth graphics and play experience.

Using SVG2Go, anyone can make a really nice SVG icon instantly using the same Photoshop raster artwork. No need to experiment with SVG-T or fiddling with viewbox property. The output SVG icon looks exactly as you have made them. No tweaking needed.

As always, bellow is the screenshot of SVG2Go in action.

svg2go-screenshot

Give it a try, and do let us know of your experience with it, or any suggestions you might have. And don’t forget to share it with your fellow Symbian developers.

// chall3ng3r //