The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

learning to develop mobile apps

I would like to learn to develop business apps for the handheld / mobile markets.  I was wondering if you could give me pointers on which language to learn, and which platform you believe is best to develop for (market size, developer support, etc.)

From everything I've read, learning C and Palm OS seems to be the best way to go.  At the moment, I only know Coldfusion well, so my mind is a blank slate...

Sunday, December 05, 2004
A lot depends on the target mobile hardware platform and the targetted end user. If it's phones, Java is the far and away leader. Java will also let you write for Blackberries (although you're more limited on RIM's devices than most phones). You'll need to work a deal with the carriers/handset mfrs/3rd party providers to make it available for download though...

If it's PDAs, then you have to make a bet on whether MS will dominate with Windows Mobile (.Net), or if PalmSource can hold on with Palm (native Palm). Of course, Java will work on the Windows machines as well -- several JVMs exist, but are not native on the devices, so there's an extra pain point for the customer. Getting your app installed on the device isn't too tough either.

If it's tablets/laptops, Windows still has the lead there (but Java will work there too), and installs of your app are the easiest there.

In the mobile space, Java (specifically J2ME) is your safest bet, as it's built in or available on just about every platform/OS (even on Palm platforms, if IBM ever finished with their 'fixed' JVM they've been working on for years now, that they are allegedly going to license to PalmSource).
Former mobile app sales engineer
Sunday, December 05, 2004
Might be something here:
Tom H
Monday, December 06, 2004
Richard Scothern
Monday, December 06, 2004
A couple of years ago, MetroWerks C for the Palm Pilot was the most sophisticated (and cost effective) development environment.

Now, with the growing number of Palm-ish devices out there (WinCE, indeed) I couldn't tell you.
Monday, December 06, 2004
I have been developing mobile healthcare applications for Palms and PocketPCs for sometime now. And I will be able to comment on only those two.
It all depends on what market you want to target and what's your programming background.
If you have a strong C background, then you can go for Palm OS route with CodeWarrior or MS-eMbedded VC++ for Pocket PC.
If you don't, you would find Palm programming really hard and I would suggest you start with MS-eMbedded VB for Pocket PCs or Visual Studio.NET with .NET Compact Framework for Windows Mobile devices.
If you planning on developing consumer applications, at this point, I don't think you can afford to ignore either Palm or Pocket PC platforms. You might have to develop for both. But it looks like Pocket PC is gaining lead on Palm OS, so in future you might be able to stick to just one platform.
If you are developing enterprise applicatios, then most likely your customers will be buying their devices just to run your application, so you might be able to dictate what platform they should use. In that case, I suggest you decide on the platform based on your skills background.
As far as support, tools, third-party APIs, resources are concerned, both are same in my opinion.
Anon Send private email
Tuesday, December 07, 2004
Chris, you have to consider 2 different things to develop a mobile app: one is the hardware itself, and the people above talk enough about the tools youl can use (and you should consider AppForge if you want to write apps for both Palm & PocketPC: it's a VB/C# language based tool).

The other is far away from the hardware, and IMHO it's the main concern you have to have: the mobile world require a lot (and I say A LOT) of design study before you start to write your app.

Explaining a little bit: a mobile app have limited resources. Your screen is much smaller, you don't have a keyboard, and the text input is a kind of masochist pleasure. You can't design your mobile app the way you design a client/server ou web app. If you do that, people will claim your head for writing such a damn app they can't use.

So I think a good start is get a simple app you are comfortable with, write a mobile version, and get other people opinion about it, focusing on the ease of use.
Alberto Send private email
Wednesday, December 08, 2004
thanks for all the responses! Very helpful, all of you.
Wednesday, December 08, 2004
If you need to target PocketPC, PalmOS, and Symbian devices (that is, most PDA's, but not most cell phones), your best bet may be AppForge.  It's very easy to get it up and running, and the vast majority of your code is portable across mobile platforms (you need to re-layout your screens in some instances, and a few platform-specific features are, well, platform-specific).  It's particularly useful if you have neither the time nor the inclination to learn the ungodly plethora of embedded development platforms for all these devices.

(Full disclosure -- I used to work at AppForge, so you could regard this as a shameless plug, but I don't actually have stock in the company -- just friends who still work there)
Joel Webber Send private email
Friday, December 17, 2004

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz