Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [OT] cross platform GUI



At 10:00 PM -0700 7/29/04, OL&L Lists <email@hidden> wrote:
I've had some experience trying this with several frameworks. My
advice: don't. Inevitably you will run into some bug in the
frameworks which will prevent you from shipping on one platform. When
you committ to a framework, you are at the mercy of the framework's
creator(s), and if they don't feel like fixing the bugs, you are
stuck.

My advice is to write a thin GUI layer for each platform in the
native platform's technologies, then write as much of your non-GUI
code as you can as an xplat layer than can be compiled on any
platform. That way you reduce the amount of GUI-specific code but
still use the native platform's GUI technology.

Of course, if you follow this advise, then the part of your app that isn't crossplatform consists of native u.i, reproduced for each platform, and glue code that provides a uniform api that the single crossplatform engine calls to interact with the u.i.

Now the problem has come back around, since the definition of a xplat framework is: a uniform api that your single crossplatform engine calls that bottoms out on the native api of the platform.

And remember that you'll need software tools to keep the U.I. on all the platforms in sync as you maintain the program and perform the internationalizations.

So, what email@hidden is suggesting is that rather than using someone else's xplat framework to get a leg up, you write your own from scratch. Surely, if you start with a xplat framework for which you have the source code, you can fix any bugs you find yourself, rather than starting from scratch and finding ALL your own bugs.

wxWindows is strongly influenced by creaky old MFC. Qt, as I understand it, requires a non-standard pre-processor pass to handle its implementation of signals and slots (instead of using the standard ones from <http://boost.org/> )
I've heard good things about Whisper <http://sourceforge.net/projects/whisper2/> but ignore the released files, and look only at the CVS, that is where the new stuff is. Whisper uses XML files to lay out its U.I., and uses XML to connect the U.I. to instances of objects in the running C++ program.

To get back on topic:

If you expect your program to actually keep running as Apple revs OS X, whatever you use on a Mac for OS X should bottom out on either Cocoa, or Compositing windows, Quartz, Carbon Events, and HIViews. (Assuming you can ignore OS X 10.0 and 10.1) It shouldn't take you long to evaluate a framework if you insist on this.

David Phillip Oster
_______________________________________________
carbon-development mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/carbon-development
Do not post admin requests to the list. They will be ignored.




Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.