Fog Creek Software
Discussion Board




develop cross-platform app

Now I have a killer-app on windows.
I want to make it cross-platform. My question is on what platform first?

Linux?
or some mobile-phone platforms?

I am concerned about make-money. (the app is useful for both developers and non-it-related people).

I develop the app in C++, stl, some window gui api.

redguardtoo
Friday, August 13, 2004

Does it work well with WINE?  You might not have to redevelop much to go 'cross platform' towards Linux/Unix.

However, will Linux/Unix people be buying your software in droves?  If it is an end-user app, the chances are slim unless it's vertical is tech-oriented or price-sensitive (e.g. engineering, education)

Going mobile is a whole different game.  Good mobile operating systems aren't really compatible with win32, although some limited ms offerings aim for it.  The big paying market for mobile apps is palm and symbian, it seems.

The challenge with going mobile is two-fold:
1. how to use the network and connectivity.  Mobile apps that take advantage of being mobile have an edge.
2. to redesign the UI for a small screen.  It isn't enough to recompile win32, it is a redesign.

i like i
Friday, August 13, 2004

Why not port to Mac OS?

Small userbase, probably similar in size to Linux, but much more accustomed to buying software.

Are you using a cross-platform GUI library?  If so, the cost of deploying on multiple platforms will be far less.

Tom (a programmer)
Friday, August 13, 2004

Any effort you put in developing a cross-platform version can be more profitable spent making the windows version better.

Unless you're developing something odd 90+% of your market is Windows. The effort it would take to develop, market and support a version for a market maybe a fifteenth of the size could be better spent developing, marketting and supporting your windows version and thus increasing your market share.

Mr Jack
Friday, August 13, 2004

WX-widgets might be what you need.

Eric Debois
Friday, August 13, 2004

Another voice in support of wxWidgets.  It worked some pretty serious mojo for me, and looks like a native app no matter what platform you're on.

Clay Dowling
Friday, August 13, 2004

Third for wxWindows. And it's not that hard to use.

Ogami Itto
Friday, August 13, 2004

Here's a little help provided by IBM. It too recommends WxWin. It's not too painful unless you've gotten into .NET or use extras like GDI+ which Wx doesn't support yet.

http://www-106.ibm.com/developerworks/linux/library/l-mfc/?open&l=920,t=gr

old_timer
Friday, August 13, 2004

I guess the Mac would be the default next target. I don't think there is going to be much money in a Linux port.

But as others have said, maybe spending your energy on adding to the Windows code might give a better ROI.

Just me (Sir to you)
Friday, August 13, 2004

I really don't like "disagreeing with a question", but in this case I agree so strongly with Jack that I'll speak up. The huge amount of work you'll likely have to put into it initially, and for support, will almost never be recovered by Linux/Apple sales.

I realize the thought is appealing, but it might be worth a couple of days time to consider how much work might be involved, and how much better you could make your Windows product with that time.

Just an opinion.

Edward
Friday, August 13, 2004

Just an additional thought. You mentioned STL. It's been a year or two since I've last used it, but I remember having several problems porting heavily templated code to non-Windows compilers/platforms. I'm certain that things have improved, but it's worth considering.

And I'll throw a crazy thought out too. What about porting to c#? I have no idea how much work that would be for you, and I have no idea how well the Mono SDK works, and I have no idea what the future holds for Mono, but it's a thought.

Edward
Friday, August 13, 2004

Hmm, rethinking, I kind of agree with Mr. Jack.

We can't say 'invest your time in windows' specifically because we don't know as much about the habits of your existing and prospective user-base.

But we can be pretty damning of an 'I'll port and then see who might buy' approach from the business perspective!

First, example your existing users.  Can you maximise your per-user income in the future through some strategy or tactic?

Next, identify prospective users.  Can you maximise their uptake through some strategy or tactic?

Only if those two bits of thinking identify the available platforms as a limitation would you take the step of developing for the platform(s) that that analysis suggests.

And that analysis suggests the platform, which is a lot more sensible than asking how many of us here like wxWidgets (which I happen to!).

So, first look at your (potential) customers, not the platform.

i like i
Friday, August 13, 2004

Here's how you can decide if it's worth your time to port it:  Windows owns about 90% of the desktop market.  Let's say that Mac and Linux each split the remaining 10% equally, or 5% each.  90/5 = 18.  If you can port the code in 1/18th the time it took to write in the first place, then go for it.

I also agree that between the two, I'd port to Mac first.  Linux people frequently use it because it's free.  They're more likely to use a free piece of software that does almost exactly what your software does.  Maybe not as well, but good enough for them.  If there isn't a free piece of software that does what yours does, don't worry, there will be soon.

Aaron F Stanton
Friday, August 13, 2004

Regarding templates

Here's a page from the Mozilla site with just the top five rules. There is much more over there.

http://www.mozilla.org/hacking/portable-cpp.html

C++ portability guide
version 0.8
by David Williams

C++ portability rules.

1) Don't use C++ templates. (*)
2) Don't use static constructors.
3) Don't use exceptions.
4) Don't use Run-time Type Information.
5) Don't use namespace facility.

old_timer
Friday, August 13, 2004

From that webpage "The Visual C++ 1.5 compiler for windows is really flaky"....

Methinks it's more than a little out of date and should be ignored by all right thinking C++ programmers. "Don't use templates" pah!

Mr Jack
Friday, August 13, 2004

Ok, maybe I should provide more details.

My app is useful for all the people, but maybe they are more useful for developers, for surgeons, for physicians.

I worked for a medical intrument company and I noticed that all those companies prefer to use linux for their embedded system. So maybe in the future, when portable medical instrument popular, I can make money?

I also noticed that on Linux, there not many good IDEs (vi is good, but maybe not all linux programmers are hackers). maybe linux programmers will buy my soft? or just re-invent a open-killer-app and kill my money?

My app has survived 3 major versions and many many minor versions, Now I am sure it is very stable and much better than its rivals.

I have a little experience on developing cross-platform apps (use boost library), have investigated wxWidgets library and have read some posts on Nokia forum.

So now the problem is not technical problem but commercial problem? how can I make more money? How to win my rivals ( until now, their key features are not as good as mine, but on windows, they will learn? so if I claim my soft is cross-platform, they will lose in tech? )

from my observe, now my rivals seems use some controls instead apis to develop their app, so their app is bigger and maybe hard to cross-platform?

or I just keep developing it on windows platform now and forget other systems?

Another quesion is if I use some cross-platform library (boost, for example)? should I wrap those libraries? in case, for example, boost doest not support some pda or mobile phone system or mac platform?

redguardtoo
Friday, August 13, 2004

"I worked for a medical intrument company and I noticed that all those companies prefer to use linux for their embedded system. So maybe in the future, when portable medical instrument popular, I can make money?"

How likely is it that they would allow your app / bundle your app on their embedded system? Seems to me these are appliances, not platforms.

Whatever you do, don't make your windows experience worse to satisfy some hypotetical "cross-platform" need. Use native toolkits if the portable one does not 100% mimic the native L&F for the user. This is where Smalltalk & Java failed.

Just me (Sir to you)
Friday, August 13, 2004

Now for the market, there is some problems.
It seems the market should be big (because everyone need it, imho), but  NOW seems the market is small (I get the point by observing my rivals download hits)

I know the fact that this kind of apps are the only money-maker in China.  Considering the fact that almost every Chinese use cracked soft, you can figure out how big the market it is.

Then what will happen in western market? Am I crazy to sell popular-in-China soft to Americans or Europeans?

What should I do to figure out whether my soft will sell in western-countries?

redguardtoo
Friday, August 13, 2004

"What should I do to figure out whether my soft will sell in western-countries?"

"Is it legal" would be a good first question to ask.

Just me (Sir to you)
Friday, August 13, 2004

Hi, Just me (Sir to you)
Thank you for your wise advice. You mean until those Linux users show me the money, I just stick to windows, right?

What about Mac or symbian?

redguardtoo
Friday, August 13, 2004

legal, of course

redguardtoo
Friday, August 13, 2004

What I mean is evern just a few Chinese buy legal soft, I can still make money. so you can guess how big the market should be.

redguardtoo
Friday, August 13, 2004

It would be rare to get money up front. That is not what I meant. Only you know your product, so all advice here is generic.
You refered to the use of Linux in embedded software for medical systems. These are appliances, not general purpose computers that people can just install stuff on, so it seems irrelevant.
You keep mentioning portable devices, even phones. I have no idea about this market. Here in Europe it seems largly dominated by the carriers, very unlike the PC software market. Maybe PDA is a bit in between.

If I buy software, I couldn't care less for being "cross-platform". I am only interested in how good it is on my platform.

Just me (Sir to you)
Friday, August 13, 2004

Thanks, you are right. maybe now I just stick to windows platform and wait my rivals. they no cross-platform, I no cross-platform.

redguardtoo
Friday, August 13, 2004

*  Recent Topics

*  Fog Creek Home