The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
Fog Creek Copilot

The Old Forum

Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

Cell Phone Development

I have a small mISV idea.  Nothing too heavy weight, but in a niche market that isn't well served.  To get into the niche I'd really need to focus on developing a mobile app.  Preferably I'd like to put it on cell phones (I could also put it on PDAs but they are basically dead compared to cell phones).

My issue is that I'd like to get the most coverage with writing the least amount of code.  Are there any good alternatives?  I am looking at J2ME and Android since they promise to some level of portability.

Any other mobile/phone programmers out there have any ideas?
Saturday, June 07, 2008
I wouldn't invest too much in Android right now, it's still too early. I would wait until there's at least some devices being sold. But that's just me !

When you say cell phone, it can be a basic cell phone or a "smartphone", I'm assuming you mean the latter since you were considering PDA's.

Anyway the market is fragmented: I haven't looked at market shares of these for a while but there is:

J2ME (now Java ME); pretty portable but there can be some surprises. Also, there are restrictions; you have to check if JSR xx is implemented, etc, etc.... Then you find out that what works on a Nokia doesn't work quite the same on a Motorola or Samsung, etc, etc....

Blackberry (Java ME with some enhancements)

Windows Mobile and... Palm OS that's still around! Java ME apps should run but probably look ugly and feel non native - at least they did 5 years ago, I haven't tried since. And you need to find a Java VM and install it. It's an extra burden. (Note that Windows Mobile has the .Net framework instead). I doubt it's gotten much better- it is really better to write a native app. C/C++ in both cases.

Symbian: Java ME apps run ok from what I've seen but they are more restricted than a native app. You write native app in C++ (with no exceptions, they have a weird system instead that's a pain)

That new apple phone, what's its name again. I haven't tried anything with that yet.

Android maybe in the near future. I haven't tried it either.

That's all I can think of right now. It's a mess isn't it !

On all platforms Java ME apps are pretty restricted in what they can do on the  device. Depending on your application that might or not be a problem.

If you're targeting the general public I don't think you can get away with only Java ME. Especially if you want your application to look nice: you have to go native in some cases.
28 Projects Later Send private email
Saturday, June 07, 2008
PDA's are not dead.  The cell phone has adapted to become "the new PDA".

And with handheld mobile platform wars going on now, your best bet is to target your application towards the devices your potential customers are using *now*.

Good luck with cross-platform development too. Every device will implement the runtime machine differently, so you will end up having to deal with its specifics anyhow.

What's the specific application?
Sebastian Dwornik Send private email
Sunday, June 08, 2008
Use Winmobile for ease of use. While I don't like the OS itself, it's easy to program for.
Just like normal Winforms development. Very easy to get started.
If your idea takes off, you can still convert it to other platforms.
Sunday, June 08, 2008
WinMobile isn't a x-platform solution.
Sunday, June 08, 2008
Write an engine in portable C++. The engine should have absolutely no calls to any OS-specific code anywhere. Write applications for the various platforms, also in C++, linking them to the engine. Start with Windows Mobile and then Symbian OS if you have the time and energy.

This is based on my experience writing CartoType and its demo apps and may of course not be applicable to what you want to do, but it's worth considering. CartoType is a map rendering and routing system. It reads data using data accessor plug-ins, and draws its graphics to an offscreen bitmap. Apps can then draw that bitmap into a window or do anything they like with it, but CartoType knows nothing of windows or UI stuff. I got it running on Symbian OS, Windows Mobile and (with a lot more effort) Palm OS, as well as ordinary desktop Windows.

One afterthought: by 'portable C++' I mean code that runs on the OSs you plan to use. I had to do without exceptions, rtti, STL, and (earlier) floating point. Things have improved over the past few years, though.
Graham Asher Send private email
Tuesday, June 10, 2008

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

Other recent topics Other recent topics
Powered by FogBugz