Skip to content

Archive

Tag: Nokia

Nothing, however simple, goes without saying

My girlfriend borrowed a couple of cables from her office today, so I finally managed to wire the E61 to my netbook. As a first best, I hoped, Eclipse Pulsar would recognize my device. As a second best, I was thinking using the new and shiny Ovi suite to install my test app. To the average noob, Pulsar is the usual rhizomy mess of menus and panels, so after toying with the spider awhile I decided to try my luck online, indeed landing a nice Wiki page Entitled “How to install Java ME application in mobile phone“. Among numerous equally-unattractive-to-a-developer ways to install java apps on a nokia phone, I quote:

“If the device has a serial cable port and connectivity software for a PC, the MIDlet can be installed on the device over a serial cable”

Which I edited to:

To install the MIDlet, double-click on either the *.jar or *.jad file and follow on-screen instructions. On a PC, if jar/jad files are not associated with PC suite or Ovi suite by default, you can right click and select “open with” then choose “Ovi suite” or “PC suite” as applicable.

I always thought that PC suite associating jar files to itself in this way is somehow of a pre-emptive way to suggest that java doesn’t have a life beyond Nokia phones. Now I will modify my file associations, as I happen to have tens of thousands of lines of code on my PC that are nothing MIDlet.

I don’t care whether this goes without saying or not. I wasted another hour on this. I’m in a bad mood.

If it doesn’t work, downgrade CLDC and/or MIDP

In Pulsar, open the M folder labeled Application Descriptor. Then select create package to actually get a deployable jar/jad file. Since my device is 5 years old, I had a friendly ‘can’t run application’ or such message when I tried installing. By default, Pulsar is configuring to MIDP 2.1 (at the time of writing this, using the latest SDK). Until I find a reason not to, I’ll just downgrade CLDC and MIDP (in the ‘M panel’) to the oldest version that I can run something against.

Pingoo goes live

After I downgraded MIDP to 2.0, (note the advice on Nokia wiki if it doesn’t work for you), the Pingoo displayed at a decent FPS on my E61. I really need to come up with something chunkier, right?

So I used fractal subdivision in Blender to bump the poly count to ~10,000. This slows down the M3G exporter to a crawl because it spits out console output for every face. The M3G file inflated from 21kb to 565kb. FPS dropped to 2-3 frames per second, flat shaded, with 2 point lights enabled (no textures).

After rounding up SDKs and solutions on several mobile platforms, I hit a no brainer: why not Java?

Virtual success

In 2006, the write once, run anywhere motto felt bleak if anything. I had become an experienced Java SE developper with little or no interest in developing java applications, let alone opportunities. I know it’s down to personal experience – well that, and all the trouble people seem to have running java apps and applets on desktop platforms.

App stores everywhere

I can’t absolutely tell if the app market is taking off beyond iOS. We might as well pretend there’s only one App Store (capitals).

It will take off, sooner not later, and every mobile device manufacturer seem busy setting up their own store, designing tablet PCs and introducing touch enabled device.

Another thing that they all have in common is JME. Java ME seems to be the only platform that actually runs everywhere (except on iPhone, but read here and here).

Have another cup of Java

Some advantages of Java over C/C++ over Objective C are somehow static, not much has changed in the past 10 years or more:

  • No memory management (no zombies)
  • No pointers (no address errors)
  • No .h files

I know what you’re thinking. Java is too slow to make 3D games, right? Well we’ll see. Objective-C is too slow to make 3D games anyway. All critical code sections have to be written in C or C++.

Straweberry and Cream

Needless to say, every other manufacturer somehow ship JME with their own SDKs and a string of proprietary APIs. I suspect 90% of the code will remain ‘cross platform’ so I guess finding out the easiest to use SDK maybe a decent way to get started. I collected a few links to developper portals / java pages.

Games and devices

Pocket Gamer is an excellent resource for learning about mobile gaming beyond iOS. They have reviews of the latest-hottest games and publish the list of devices they use for testing games, along with top 10 mobile gaming devices roster.

Yea. That, and a Merry Christmas. WTF.

Before glossing lightly over a topic that some iPhone developers will undoubtedly find heretic (after all, we’ve already tasted the forbidden fruit) … … there’s one thing I’d like to share.

In 1999, I stopped developing on TOS. I’m not sure why. The most likely reason is that I left my parent’s home, and I suppose there was no special reason for me to buy another Falcon 030.

Well frankly speaking I’m not sure what has so dramatically improved since TOS.  The only really good piece of IT news in the meantime may be that mobile OSes aren’t all based on overlapping windows anymore. Apps were running nicely too with 512kb RAM or so (yes, kilobytes). Most definitely good enough for the 2D oldies leading the app craze.

Anyways, I feel helpessly agnostic about devices and operating systems, so I decided to have a look at the Ovi store. It’s not the first time either since about a year ago I was hopping my merry way on Nathan road in Hong Kong, gazing at a fresh bunch of OpenGL-ES2 enabled devices.

Apparently publishing on Ovi costs 1 euro. Feels like a trick-no-treat thing (will they soon announce 1.5 million registered developers?(1)) Fortunately I’ve  acquired the ‘Oh let’s not get another $1 krapp’ reflex that saved me from (what may not have turned out to be) a tedious registration process.

The store itself looks pretty decent. Considering originality isn’t every other distributor’s forte, we’ll forgive the ‘not invented here’ design inspiration.

Mind, it does feel quite difficult to navigate between Ovi stores. Switching the URL to .us/co.us/.com doesn’t help as they keep geo-locating me somewhere else. Yeah maybe I don’t live in the US after all. I won’t quote an idiotic article suggesting Nokia should have relocated to California. One link that you might bookmark (because it may not have changed in the past 5 years): the Qt developer portal.

They have a blog too, and there’s a demonic article I really want to read: Nokia’s app store sees explosive growth, still sucks. To set things straight, note the author of that article didn’t quote app download figures either (but see here, here and here).

I feel obliged to mention that Ovi means sheep in latin. Maybe that’s why nobody speaks latin anymore.

I was happily discovering that there is a beta version of Qt compatible with MacOS, when I somehow remembered that I’m typing this from a makeshift workstation involving:

  • A weeny 1366×768 display (anchored to a weenier 1024×600 sidewinder)
  • 16 GB SSD(1.25 GB available)
  • A 16 GB watchamacallit flatkey.
  • Intel Atom N270
  • 0.99 GB RAM (really)
  • A neatly compact K340 keyboard. Please look-up the brand as I’m not the fan – nice buy though.
  • An utterly indestructible wireless mouse (yea, topping a Wacom tablet) that, for all I know, survived the Y2K bug, 3 heartbreaks and 4 or 5 home-movings,
  • (No, it isn’t a mobile handset)

Qt vs JME?

If I search my memory carefully, I should be remembering that Qt was in Nokia’s oven when I first downloaded their Java SDK. Here we go, now they have two SDKs instead of one. A quick look at a pretty comparison chart shows that Qt only runs on so-called smart-phones (as in, the recent ones). Am I missing something out… ?

All directly leading to a dilemma…

With a Playstation phone (Ericsson) and the X7 Sushi lined up for 2011, if I got a device at this point, my choice would be somehow conservative (pick from a somehow outdated selection?)

But no, actually I don’t really fancy JME. Why not try something almost fresh? After all I already was a laggard when I boarded the iOS crew.

Hitting the hard-line…

Maybe the first thing I should have done is downloading the SDK downloader. At little less than 1GB, the SDK itself is a baby mammoth. Apparently the Android SDK is just about a 100 MB.

I can’t promise I’ll go further than hello world this time. It’ll be down to docs and examples I’m afraid, not market share (to be c’d?)

(1) Read the so called demonic article. I can’t believe I even guessed the figure right.