Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

witness

macrumors 6502
Original poster
Apr 7, 2005
435
0
Austria
I was just wondering what Tools/IDE's OS X developers here like to use for Rapid Application Development (apart from X Code)?

I've had a play with RealBasic, which seem pretty cool, and of course there are loads of Java IDE's. Are there any others?

I'm especially interested in those that compile to native machine code that don't require runtimes (like Mono or Java). Cross platform development would be good too, that's plus for RealBasic I guess.
 

caveman_uk

Guest
Feb 17, 2003
2,390
1
Hitchin, Herts, UK
I've used both xcode/IB and realbasic. I'd say realbasic's is the easiest to pick up and use straight away as it took me a while to 'get it' with xcode and IB. The secret I think with xcode and IB is to learn not to fear the NIB ;)

Although I think RealBasic's IDE is better I found the actual language lacking and sometimes very inefficient in an effort to be as easy as possible to use.

Any IDE has got to be better than Visual C++ v6. Definately not RAD.
 

witness

macrumors 6502
Original poster
Apr 7, 2005
435
0
Austria
I used VC++ for years, and I got on quite well with it.

The thing that I don't like about X Code is that it's not strictly an IDE, the I is missing. You have you open all kinds of different tools to achieve different parts of the development process, which is not what I would call integrated.

Perhaps I'm doing something wrong, but there must be a better way without having to resort to a VB clone.
 

caveman_uk

Guest
Feb 17, 2003
2,390
1
Hitchin, Herts, UK
witness said:
The thing that I don't like about X Code is that it's not strictly an IDE, the I is missing. You have you open all kinds of different tools to achieve different parts of the development process, which is not what I would call integrated.
'all kinds of different tools'? Admittedly you are using a separate compiler, linker etc but apart from the jump between xcode to IB you'd hardly notice. xcode wraps the other tools. Indeed. I rarely quit IB when xcode is running so the transition is quick. It would be better if they were part of the one app but it's not a big deal. Xcode is aware of changes made by IB and if you change something in IB then go back to xcode you are prompted to save the changed nib(s) along with the source code files.
 

logicat2001

macrumors regular
Apr 16, 2003
192
0
Minneapolis, MN
Xcode is aware of changes made by IB and if you change something in IB then go back to xcode you are prompted to save the changed nib(s) along with the source code files.
XCode is aware of changes made by IB because the IB generates the actual objects, not a code template from which those objects get generated later. The resulting nib file is the binary data that is used at run time.

The consideration when bouncing between XCode and IB is how to add IBOutlets and IBActions. If you're starting from scratch and are clear on how you're going to design your class, you can easily add the outlets and actions in IB, then use IB to generate your class files, and finish the implementation in XCode. However, if you've already generated your class from IB, or are adding outlets and actions to a class whose header has already been added to a nib, or are writing an app that's anything more than a third-party tutorial, you've got a choice to make.

Two options:
- Hand code the new IBOutlets and IBActions, then prompt IB to re-read the file headers; all the new outlets and actions will now be visible in IB. To do this, I go to the Classes tab of my nib file, right-click the file in question and choose "Read name_of_file.h."

- Use IB to add the new IBOutlets and IBActions and re-generate the source files. Upon selecting the save location for these files, you'll be prompted to overwrite or merge the code. Of course, if you've been busily writing code in XCode, you do not want to overwrite.

Personally I prefer to poke IB with a stick and re-read my file headers. It's clean and simple, and completely non-destructive.

Best,
Anton
 

HiRez

macrumors 603
Jan 6, 2004
6,265
2,629
Western US
logicat2001 said:
- Hand code the new IBOutlets and IBActions, then prompt IB to re-read the file headers; all the new outlets and actions will now be visible in IB. To do this, I go to the Classes tab of my nib file, right-click the file in question and choose "Read name_of_file.h."
You can also drag .h files from Xcode to your IB Nib window, I find this to be fastest (using Exposé with hot corners enabled, of course).
 

logicat2001

macrumors regular
Apr 16, 2003
192
0
Minneapolis, MN
HiRez said:
You can also drag .h files from Xcode to your IB Nib window, I find this to be fastest (using Exposé with hot corners enabled, of course).
I know you can do this when first adding a class to the nib, but it doesn't work beyond that, i.e. after you've already added a class, instantiated an object from that class, and have now updated the original class .h.

I just tried it to be sure, but wasn't able to update my class. Do you experience different behavior?

Best,
Anton
 

HiRez

macrumors 603
Jan 6, 2004
6,265
2,629
Western US
logicat2001 said:
I know you can do this when first adding a class to the nib, but it doesn't work beyond that, i.e. after you've already added a class, instantiated an object from that class, and have now updated the original class .h.

I just tried it to be sure, but wasn't able to update my class. Do you experience different behavior?
Yes, drag-and-drop is actually the only way I ever do it. But, I always determine my outlets and actions in Xcode first, then transfer them to IB, never the other way (but I continue to update my Nibs in this way throughout development). I wonder if that has anything to do with it? Maybe going IB->Xcode blocks it out for some reason.
 

caveman_uk

Guest
Feb 17, 2003
2,390
1
Hitchin, Herts, UK
logicat2001 said:
I know you can do this when first adding a class to the nib, but it doesn't work beyond that, i.e. after you've already added a class, instantiated an object from that class, and have now updated the original class .h.

I just tried it to be sure, but wasn't able to update my class. Do you experience different behavior?

Best,
Anton
Nope it always works for me when I add new outlets to a header. I just save the updated header then drag it across to the nib and the instance is updated. It doesn't work if you haven't saved the new header first. That's caught me out before.

Also I never create headers in IB...always in xcode.
 

caveman_uk

Guest
Feb 17, 2003
2,390
1
Hitchin, Herts, UK
logicat2001 said:
XCode is aware of changes made by IB because the IB generates the actual objects, not a code template from which those objects get generated later. The resulting nib file is the binary data that is used at run time.
What I originally meant was if you edit a nib in IB but haven't saved it, xcode will note that it's been changed but not saved and prompt you to save it. I don't know if IB does the ACTUAL saving but it is xcode that prompts...not IB.
 

logicat2001

macrumors regular
Apr 16, 2003
192
0
Minneapolis, MN
Thanks to all for the comments; you've smoothed out my workflow! I can happily drag-and-drop over the course of a project, without issue.

I apparently hadn't saved the file for my last attempt.

Excellent,
Anton
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.