PDA

View Full Version : deciding on cocoa




garyg
Oct 29, 2005, 06:51 PM
Hey all,

I've got a new project underway and I'm trying to decide on languages. I really like the Cocoa interfaces and I'm thinking when OS X goes intel next year, that's going to open up many new possible customers for my app.

The problem is, I can't really find a good reason to go with Cocoa/Obj-C (other than it looks nice) because there are many other portable GUI API's that can offer something comparable and run on OS X as well as other platforms.

So I'm hoping there's something I'm overlooking. I say that because I have a big thing for really nice looking interfaces and Aqua is. I also like XCode, getting really used to it. It's a love hate relationship.

I'm big on Java, but from what I understand, Apple stopped at 1.4 with GUI controls and I get things like drawers and sheets in Cocoa that I really like that I can't get w/ Java apps, besides, I'd be using a 1.5 vm if I did and that breaks on OS X. What else will I gain by using Cocoa besides new controls, I've only been working with it for a short amount of time. I guess I just need reasons that will outweigh the possibility of moving to other platforms, something that will do things I can't do on other platforms w/ other API's ... or something like that.

Anyone got anything to say on this point about choosing Cocoa as a language for a project other than "do it since your writing for OS X" ... advice, comments, etc...?



generik
Oct 29, 2005, 10:34 PM
The Intel transition is one thing, but does XCode currently have the option to compile your code natively to Windows and Linux? Or provide any form of runtime/VM environment that lets you port your apps over that quickly?

Anyway you should take a look at MONO :)

devman
Oct 29, 2005, 11:13 PM
Hey all,

I've got a new project underway and I'm trying to decide on languages. I really like the Cocoa interfaces and I'm thinking when OS X goes intel next year, that's going to open up many new possible customers for my app.

The problem is, I can't really find a good reason to go with Cocoa/Obj-C (other than it looks nice) because there are many other portable GUI API's that can offer something comparable and run on OS X as well as other platforms.

So I'm hoping there's something I'm overlooking. I say that because I have a big thing for really nice looking interfaces and Aqua is. I also like XCode, getting really used to it. It's a love hate relationship.

I'm big on Java, but from what I understand, Apple stopped at 1.4 with GUI controls and I get things like drawers and sheets in Cocoa that I really like that I can't get w/ Java apps, besides, I'd be using a 1.5 vm if I did and that breaks on OS X. What else will I gain by using Cocoa besides new controls, I've only been working with it for a short amount of time. I guess I just need reasons that will outweigh the possibility of moving to other platforms, something that will do things I can't do on other platforms w/ other API's ... or something like that.

Anyone got anything to say on this point about choosing Cocoa as a language for a project other than "do it since your writing for OS X" ... advice, comments, etc...?

Cocoa is not a language. It's a framework/api.

Do you need to be cross platform/portable? Do you want the native platform experience (which is valued MUCH more by Mac users for their platform than for other users for their respective platforms)?

Choose one.

(I'm leaving out the "UI in objc/cocoa and model in some other x-platform language" and similar options as the complexity is rarely worth it)

HiRez
Oct 30, 2005, 12:09 AM
I wouldn't count on the Intel transition expanding your potential user base much. Even if people are willing to purchase and install two operating systems (OS X plus Windows or Linux), and even if they'll be able to use both on one machine (this is still unclear), are they going to be willing to reboot into OS X to use your application? The good news is that Apple's marketshare, while still small, is growing at an incredible pace in the last year or so.

I'm not trying to discourage you from your endeavors, but personally cross-platform apps tend to turn me off when running on Macs. There are a few that I do like (such as Photoshop and Cinema4D), but generally I'd rather use a native Macintosh application that can take advantage of all of OS X's strengths and not feel like a compromise.

mduser63
Oct 30, 2005, 12:23 AM
I'm not trying to discourage you from your endeavors, but personally cross-platform apps tend to turn me off when running on Macs. There are a few that I do like (such as Photoshop and Cinema4D), but generally I'd rather use a native Macintosh application that can take advantage of all of OS X's strengths and not feel like a compromise.

I'm the same way. Cross-platform apps are great, but I'm unlikely to use them unless the Mac version really feels like a Mac app. Some programs, especially smaller ones, do this really well. Skype comes to mind. Skype for Mac is a cocoa program, and has a good Mac-like interface. It's also available for Linux and Windows with interfaces that fit those platforms. MATLAB is a really bad example that comes to mind. It uses X11, doesn't use the menu bar at the top of the screen, uses non-standard open/save dialogs, and in fact isn't even consistent with itself. Some of the windows/controls are aqua looking with blue scrollbars and buttons, other parts of it look like Windows 95 with tons of grey, rectangular buttons, poor anti-aliasing, etc.

If you're planning to have the Mac be your primary focus for the app, use Cocoa. If you're going to develop a cross platform app, hopefully you can spend enough time to do it right on all target platforms like Microsoft (at least sometimes) or Adobe does.

savar
Oct 30, 2005, 06:56 AM
I'm big on Java, but from what I understand, Apple stopped at 1.4 with GUI controls and I get things like drawers and sheets in Cocoa that I really like that I can't get w/ Java apps, besides, I'd be using a 1.5 vm if I did and that breaks on OS X. What else will I gain by using Cocoa besides new controls, I've only been working with it for a short amount of time. I guess I just need reasons that will outweigh the possibility of moving to other platforms, something that will do things I can't do on other platforms w/ other API's ... or something like that.

Gary,

Apple has as a Java 1.5 development kit...its just not included with the OS or XCode. You can find it only if you're a registered developer at developer.apple.com. (registration is free, though, if you need it)

I assume its a rather complete implementation, don't know about the 1.4 GUI stuff you mention. I installed the first release but have not used it yet. They are now on third release.

I don't know why Apple is dragging so slowly on 1.5, though. Its such a major release, its really a disadvantage to mac users not to have it.