# Gui development on OS X



## bighog (Jun 11, 2001)

Hello, 
I have been a long time Mac user but almost all my development has been done wither has non-GUI apps on a *Nix platform or GUI based on Win machines.  I hate to say it but the ease of development when using Microsoft's Visual C++ (in terms of slapping together a front end) has no comparison as far as I can tell on OS X.

What I'm wondering is what is the best way to build a GUI based OS X application.  Is it CW 6 or Project Builder? Java or C++ or ObjC?  I know CW is supposed to have RAD development tools for Java but OS X intergration is poor at best at this point.  Are there any tools that I don't know about that simplify GUI components of development? Has anyone played with JBuilder yet?

Thanks


----------



## zaustin (Jun 11, 2001)

CW 7 will have better OSX tools.  I don't know how much better, though   Gui development is probably the least difficult with Project Builder.  At least in my experience I found Project Builder simpler than PowerPlant/CW.  Doesn't mean I liked it better   Really the GUI stuff shouldn't be too much of a problem.


----------



## endian (Jun 11, 2001)

You can use Interface Builder (Project Builder is the IDE/editor) for any environment that supports nib files, which is Cocoa (Java & Obj-C/Obj-C++) and Carbon (C++)


----------



## bighog (Jun 12, 2001)

> _Originally posted by endian _
> *You can use Interface Builder (Project Builder is the IDE/editor) for any environment that supports nib files, which is Cocoa (Java & Obj-C/Obj-C++) and Carbon (C++) *



There is no way around manually having to include the references IDs to GUI components in code though is there?  Basically, I'm lazy and my laziness tends to dictate the approach I'll take.  I kind of figure that my effort should be placed in adding functionality and stability to an app instead of messing around with how to include a button or text box.

Any thoughts?


----------



## endian (Jun 12, 2001)

There's no way around it, but you don't have to do  it yourself, use Create Files from IB, or to add things just drag the .h file onto IB's nib window


----------



## Freiheit (Jun 29, 2004)

Personally, having come from a PC background and the OS/2 operating system which had a very powerful scripting language built in (Rexx, originally developed for big iron systems running *NIX and VMS, etc) and having several freeware/shareware RAD tools built specifically to create GUIs for Rexx code, what I'd like to see is something for building GUIs for AppleScript code.  The kinds of apps I've created (to fill specific needs I've had in a short timeframe) don't require C/C++/ObjC or even Java.  A simple, well integrated scripting languge is fine by me.  But the GUI RAD (with drag and drop simplicity for building the interface and associating code snippets with each control/widget) has to not only be available but also has to create final code which will run even on systems that don't have the RAD tool installed.

Is there anything of that sort available for OSX for AppleScript?  Thanks in advance.


----------



## guilly (Jun 29, 2004)

Freiheit said:
			
		

> Personally, having come from a PC background and the OS/2 operating system which had a very powerful scripting language built in (Rexx, originally developed for big iron systems running *NIX and VMS, etc) and having several freeware/shareware RAD tools built specifically to create GUIs for Rexx code, what I'd like to see is something for building GUIs for AppleScript code.  The kinds of apps I've created (to fill specific needs I've had in a short timeframe) don't require C/C++/ObjC or even Java.  A simple, well integrated scripting languge is fine by me.  But the GUI RAD (with drag and drop simplicity for building the interface and associating code snippets with each control/widget) has to not only be available but also has to create final code which will run even on systems that don't have the RAD tool installed.
> 
> Is there anything of that sort available for OSX for AppleScript?  Thanks in advance.



As far as I remember, the last Apple Developer Tools XCode includes AppleScript Studio, which will help you designing AppleScript GUIs with ease.

Take a look at

http://www.apple.com/applescript/studio/

and its corresponding sublinks.


----------



## btoth (Jun 29, 2004)

bighog said:
			
		

> There is no way around manually having to include the references IDs to GUI components in code though is there?  Basically, I'm lazy and my laziness tends to dictate the approach I'll take.  I kind of figure that my effort should be placed in adding functionality and stability to an app instead of messing around with how to include a button or text box.
> 
> Any thoughts?



If you were to use Interface Builder and you're working with Cocoa (Objective-C or Java) you can actually drag connections from your interface to class methods graphically.  However, I do believe that using C or C++ in Carbon would require setting up IDs for your GUI components instead.

My experiences have only been with Objective-C, but the work flow for managing windows and buttons and such is pretty easy, especially compared to Microsoft C++.  Though, it still not to the level of Visual Basic or C#, but in a lot of ways it's actually more flexible.


*edit*

Didn't realize the first post was from 2001.   Whoops.


----------



## Freiheit (Jun 29, 2004)

Thanks a lot, guilly.  That looks very promising!

[update] Well it looked promising until I read that I have to have Panther to use it, but since Tiger won't be out this year, maybe I will bite the bullet and buy Panther.


----------



## guilly (Jun 30, 2004)

Sorry to know, mate. You will find Panther to be a nice update, I believe you won't regret it.


----------



## Viro (Aug 1, 2004)

If you're interested in cross platform GUIs, have a look at the Qt library from TrollTech. That's pretty the standard GUI library for Linux KDE apps and I've found them to be very well documented and easy to use. It also comes with a RAD GUI builder, so you should check it out if you're interested in doing cross platform interfaces.


----------

