I actually have OS X + Xcode, but have yet to even manage to create a single Cocoa app that doesn't rely on pre-generated partial binary files from the IDE.
Just like Visual Studio, Apple's IDE is mainly for easing the creation of GUI programs and you don't have to use it.
The minimal Cocoa program is:
Code: Select all
#import <Cocoa/Cocoa.h>
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSApp = [NSApplication sharedApplication];
[NSApp run];
[NSApp release];
[pool release];
}
Save it as test.m
Code: Select all
mkdir -p Test.app/Contents/MacOS
gcc -o Test.app/Contents/MacOS/Test -framework Cocoa test.m
open Test.app
It doesn't do anything, but it has a dock icon, a dock menu and will properly close when you select Quit from the dock menu.
learn another programming language just to use it
Objective C is 100% compatible with C (take that C++

) and is easy to learn. It's just that the syntax turns people off right away before they give it a chance. I know because the same thing happened to me. Now that I've actually started to use it, it seems pretty straightforward.
bsnes is so far from Apple's HIG so as to not even be funny
Most emulators are. Anyway, I'm just going to see if I can get Hiro to even work on Mac OS X first. Then I can see about maybe getting it to look and act like a good Mac OS X citizen. There are cross platform C++ GUI toolkits that give a good experience on Mac OS X. I'd like to see if Hiro can be one of them.
Obviously the menubars would go to the top of the screen, but can you have one for each window inside a Cocoa app?
Of course you can. If I'm remembering correctly, AppleWorks completely changes the menubar depending on what document you are working on. It's actually rather trivial to do. [NSApp setMainMenu: anNSMenuObject]
keep my releases synced on the Mac as well.
That really is the main point of all this. I think there is real value in having BSnes simultaneously released on the three most important computing platforms.