Browsing conversations about Resources
May
9
2011

Two open source projects to learn game development in Java ME

Today I’d like to present two open source Java ME games recently released on Forum Nokia Projects. Both games are tested and so should work on both Series40 and Symbian devices supporting with CLDC 1.1 and MIDP 2.0.

BattleTank

Battle Tank is a classic tank game, and illustrates some of the basic concepts you could find when developing a game in Java ME as the usage of sprites, tiles and sound. The game is just a proof of concept, but you should definitely check it out if you want to learn the basics of game development.

Sudokumaster

A Java ME implementation of the classic Sudoku game. This project shows how to manage a dynamic layout for multiple screen resolutions, and how to use several input methods (key, touch, and key & touch). Check out the full source code here.

Other projects?

Do you have an open source game that you’d like to share with other Nokia developers? Let us know in the comment section below, we’d be glad to hear!

Feb
2
2011

Talking about PyS60 with Pankaj Nathani, author of the book “Python on Symbian”

Today Nokia Devs welcomes Pankaj Nathani, mobile developer, active Forum Nokia contributor and Forum Nokia Champion from India. Pankaj, known online as croozeus, has recently published a book that covers all aspects of Python on Symbian, from the basic topics to advanced programming.

This book is the result of the cooperation of many people at Forum Nokia and Symbian Foundation, as you can read in the acknowledgment page, and currently represents the best choice to get started with Python on the Symbian platform.

ND: Hi Pankaj, welcome to Nokia Devs! Please tell us a bit about yourself.

To introduce myself in plain words, I am mobile technology enthusiastic from India. Over the past couple of years, I have been poking my nose into mobile software development and have been working on mobile applications and services – primarily on Qt, Symbian C++ and Python – on Nokia platforms. I am enthusiastic about putting innovative ideas for useful mobile applications into practice. People know me as “Croozeus” in the internet/virtual world.

ND: First of all, congratulations for your book “Python on Symbian: Mobile app development made easy”! Could you please share with us about your motivation to write this book?

Python on Symbian is a great way to start creating mobile applications. Python apps look like ‘native’ Symbian apps and can be distributed in the same way. Over the last couple of years the Python runtime (on Symbian) has developed greatly and made the development/prototyping of apps on the Symbian platform “rapid”.

The lastest stable release/version of the Python runtime on Symbian is 2.0.0 – which not only allows developers to concept or prototype apps rapidly with powerful platform capabilities but also allows to create fully functional and “feature rich” applications to be published in the app stores. Thus, Python on Symbian proves to be a great tool for mobile science researchers and developers! Over the past couple of years, I have been promoting Python on Symbian across various channels (www.forum.nokia.com, www.croozeus.com, www.m-science.net, etc) and believed that a book on this topic could be useful material for developers, researchers and students who are ambitious to create innovative apps with this technology!

ND: Can you introduce us to the contents of this book? Where can we get the book from?

The book is a complete reference to Python development on the Symbian platform. The book is intended for readers of all levels of experience, from beginners to advanced users of Python on Symbian. It doesn’t assume any knowledge of Python and covers (almost) everything from basic Python concepts, such as variables, functions and classes, to advanced concepts like platform services and advanced network programming.

The detailed TOC of the book is available here.

The book is available freely at Python on Symbian on Forum Nokia Wiki. If you prefer a hardcopy you can buy it at Amazon book store.

ND: Can you tell us the main advantages of using Python on Symbian?

Due to Python’s special focus on “ease of use” and “simple syntax” it greattly simplifies the application development on the Symbian platform. Python applications are usable as GUI apps, background (“ghost”/”daemon” processes) or embeddable in native applications. The speed of execution of Python apps is nearly equal to that of native apps (except in highly calculative algorithms). On top of this, Python on Symbian being an open souce implementation – its possible to extend its functionalities using C++ APIs.

ND: Is there any PyS60 application you’d like to show to other Nokia developers?

I would like to mention couple of Python apps briefly:

  • Birthdays for S60: Calendar writer for Symbian S60 3rd and 5th Edition Smartphones. It lists birthdays from your contacts in chronological order and writes them to your Calendar.
  • Nixie Watch: Fancy clock for your mobile device.
  • TouchComic: Comic book reader that handles .zip and .cbz ebook formats, with fullscreen view, automatic rotation, zoom function, presets.
  • GoogleVoiceForS60: The app uses Google Voice, synchronizing your phone’s contacts with your Google Voice account. It allows you to initiate a Google Voice call with the same options as the website and allows you to send text messages.
  • GTranslate: Lets you translate text from English into 37 different languages, send the translated text as SMS, or copy & paste it, for example, into an email or a note.
  • Niime: An application that uses the phone’s accelerometer to control your PC – using it as a mouse.
  • Unity: Cool puzzle game. The aim is to clear the whole playing area by removing tiles in groups. The more tiles you remove at the same time, the more points you get.

Wordmobi: A client for WordPress which helps you to manage your blog while saving time and bandwidth.


Tracker: A GPS mapping application for hikers who want to track their position on a digitized map.

Jomtris: A Tetris-like game.

Scribble: A Paint-like application which demonstrates the use of touch support.

GTranslate: Translates text from English into 37 different languages.


FuelLog: A fuel consumption and fuel expense monitor for recording, storing, calculating and exporting fueling data and fuel consumption for your vehicles.

ND: Which types of applications you think are most suited for PyS60 development, and which are not?

With the platform services APIs (scriptext module) available, I think PyS60 is best suited for creating feature rich utility applications – which may include multimedia apps, location aware apps, sensor apps, networking apps, etc. I would also recommend using PyS60 for developing mobile games since it supports operations for drawing basic primitives and text, capturing, displaying and editing images as well.

Since Python is a runtime, it would make sense not to develop very heavy computational apps with it. For example, it would make sense to implement “Face recognition app” in native C++/C which may provide better performance.

ND: Are there any limitations or missing features in current PyS60 implementations that you’d like to see solved in next releases?

Well, yes! Python currently depends on Avkon framework for UI, it would be great so see Qt bindings for PyS60 available.

ND: Anything else you’d like to say to Nokia developers?

Nokia provides a variety of technology offerings for application development – Python, Qt, WRT, Java, Flash. Which one are you working on? :)

Jan
31
2011

QML Elements, Offline Storage and Notifications API

Let’s start this week with a new set of resources that will help you through the road of learning Qt and Qt Quick.

QML Elements

In the Qt Quick Elements, Part 1” video, Nigel Hietala guides you through the first steps of using QML elements, introducing some basic concepts as Border Images and Behaviors by using Qt Creator.

Offline Storage API

A new article on Forum Nokia Wiki shows how the JavaScript openDatabaseSync() function from the Offline Storage API can be used to access local storage through a SQL database. This API can be easily used in your QML applications to save settings, user’s data and all other information that should be persisted through different usages of your app.

By using the code snippet illustrated in this article, you’ll be able to access local storage with just few code lines:

// Initialize the database
Storage.initialize();
// Sets a value in the database
Storage.setSetting("mySetting","myValue");
// Sets the textDisplay element's text to the value we just set
textDisplay.text = "The value of mySetting is:\n" +
      Storage.getSetting("mySetting");

Check out the full article: How-to create a persistent settings database in Qt Quick (QML).

Notifications API

I’d also like to re-propose a webinar that introduces the Notifications API, a technology that allows you to easily add a complete notifications mechanism to your Qt apps, via a lightweight and customizable approach.

The Notifications API makes it easy to add real-time push notifications to your client applications running on Nokia devices. As shown in the diagram below, applications access the Nokia-hosted Notification Server through two separate interfaces that you integrate in your applications:

  • The Service API provides access to the Notification Server through an HTTP REST interface. Your service uses this interface to send notifications.
  • The Client API allows applications on the device to register and receive notifications from the Notification Server. The Client API is available for Qt on Symbian devices. QML support will also be available in the near future.

You can view the full webinar recording here.

Happy coding!

Jan
26
2011

Layouts, animations, data models: an introduction to Qt Quick by Juha Ristolainen

Today I’d like to continue the series of useful Qt Quick resources, by proposing an interesting presentation by Juha Ristolainen, aka Riussi, who does an excellent job of introducing you to the main concepts of this technology.

The topics covered by this presentation include:

  • Elements
  • Images
  • Gradients
  • Layouts
  • Animations
  • Data Models
  • User Inputs

Enjoy the presentation!

Pages:1234»

Advertising

Facebook Fans