• Hey Guest. Check out your NeoGAF Wrapped 2025 results here!

Xcode is garbage

Status
Not open for further replies.
So I've been working on an iPhone game for the past month and we're about 2 weeks from submitting but GOOD GOD does Xcode suck. I just want to use VIM and a Makefile but I am not sure I can do that with all the security bullshit that Apple has tied into development.

Is there anyway I can do all this stuff through the command line rather then the clunky bug infested turd that is Xcode?
 
Erm... you're going to try to code a GUI from scratch? I admire your patience.

I do agree that Xcode sucks though as do most major IDEs. These things shouldn't require a tome just to explain the interface.
 
-There is a 5 second lag when saving a file because Apple redoes the depency tree after EVERY SAVE.

-Adding new provisioning profiles almost NEVER get propagated and as a result I have to manually hack the project file.

-There is a memory leak after about 45 minutes of use that makes it slow as hell.

-After using the debugger occasionally break points stop working and you have to do a full rebuild which is time consuming on a large project. Even better I've encountered an issue where I had to RESTART MY MACHINE in order to get break points working.

-Only variables created on the stack are visible in the gdb console, globals are always "out of scope" and as a result I have to make a local variable if I want to inspect its contents.

-Resources, the largest files in the project, cannot be incrementally added because of some caching bug and as a result you have to once again do a full rebuild to ensure they get copied into the app.

-And this one isnt Xcodes fault but IDEs are just slower then using the command shell.


These issues might only be related to iPhone dev *shrug*
 
Erm... you're going to try to code a GUI from scratch? I admire your patience.

I am not sure I understand what you mean.

I just dont want to use Xcode to write any of my code. I am writing the game in C/OpenGL not Cocoa/Carbon/whatever iPhone UI library is.
 
While IDEs can be a pain, they can make debugging a hell of a lot easier at times. Stuff like setting a breakpoint in Visual Studio, hitting it while debugging, then dragging the breakpoint back a few lines to step into a different function.
 
jboldiga said:
I just dont want to use Xcode to write any of my code. I am writing the game in C/OpenGL not Cocoa/Carbon/whatever iPhone UI library is.

When you build your project once, hit Apple-Shift-B to get the build results window. You'll basically see a huge console log of exactly what it was doing. You can distill a Makefile from that if you want. I'm not exactly sure how you're gonna debug... but XCode just wraps around gdb so it should theoretically be possible.

edit: How large is your iPhone project that it's bogging down XCode though (?) I noticed a speed increase on dependency rebuilding when I switched from a finished project onto a new (empty) one, but I never really felt during development that it was -too- slow.
 
jboldiga said:
I am not sure I understand what you mean.

I just dont want to use Xcode to write any of my code. I am writing the game in C/OpenGL not Cocoa/Carbon/whatever iPhone UI library is.
I thought you were talking about creating the game from scratch using Vim and makefile and since iPhone apps are all GUI-based, that would have been difficult.

I dunno. Apple sets the terms for better or worse and Cocoa is the rule of law for the iPhone. I don't think you're gonna have much choice unless you find/create some middleware tool that converts your C/OpenGL stuff into Cocoa.
 
Lateraleye said:
I don't think you're gonna have much choice unless you find/create some middleware tool that converts your C/OpenGL stuff into Cocoa.

1. New Project >> OpenGL ES Based Application
2. Open EAGLView.m
3. add a function call to MyDrawFunctionWrittenInC() in -draw:
4. translate UI events as necessary
5. enjoy working in C
 
For what it's worth, I work on a project with over 800 implementation files, 70 nibs, and 200 tiffs and XCode performs quite well, even on my old Mac mini. It's never been perfect, what software is, but I've never been riddled with annoyances like you. But then, I don't do any iPhone dev, so maybe that's a big factor? Seems unlikely.
 
When you build your project once, hit Apple-Shift-B to get the build results window...

Hmm I'll take a look at that. I have over 800 resource files and about 60 source files. One thing I did notice that seems to have increased performance slightly is making sure to clear the file history.

Oh one other thing, is it possible to hit a break point, change some code, and then build-continue from that point?

iPhone dev, so maybe that's a big factor?

From what I have gathered on the dev forums a lot of issues do stem from their iPhone implementation. At least according to the guys that developed OS X apps prior to iPhone.
 
jboldiga said:
Oh one other thing, is it possible to hit a break point, change some code, and then build-continue from that point?
They used to have that feature and called it "fix and continue". You had to enable Zero-Link for your project, which delayed linking until run time. Zero-Link was a road leading to many problems and annoyances and I think they have depreciated it, but I can't remember. I'd check your XCode docs.
 
jboldiga said:
I have over 800 resource files and about 60 source files.

Holy crap. :D Ok, you've got me beat.

One thing actually that might help speed you up is to use folder references. For a long time I was adding each texture to the project as an individual resource, and yeah, it -did- get really slow. Then I discovered that I could just put all my textures in a folder, and then do the following:

Ctrl-Click the Resources Folder >> Add >> Existing Files...
Find the folder I want everything from (in my case, Textures), select it, click Add.
Select the "'Create Folder References' for any added folders" option, and click Add.

Then you have a blue folder icon instead of a yellow folder. What this does is it copies EVERYTHING in that folder to a same-named folder in your bundle root. You have to account for this when you're opening files (you can't use NSBundle pathForResource: anymore, you have to use a relative path from [NSBundle mainBundle] bundlePath), but it doesn't do depcalc on a per-file basis for those guys anymore.

A downside to this is that it seems to be even -more- flaky when determining what it needs to copy over, but since it was flaky already, I was already used to doing full rebuilds whenever I added a file, so I didn't mind that much.
 
XiaNaphryz said:
While IDEs can be a pain, they can make debugging a hell of a lot easier at times. Stuff like setting a breakpoint in Visual Studio, hitting it while debugging, then dragging the breakpoint back a few lines to step into a different function.

Visual Studio is pretty awesome, that makes a big difference when coding.
 
ianp622 said:
This is why when people ask me why I don't get a Mac, I say: "I'm a programmer."
Doesn't mean you can't stick windows on it. And programmers dev iphone apps on a mac. So, your comment is useless in real life and this thread.
 
half a moon said:
Doesn't mean you can't stick windows on it. And programmers dev iphone apps on a mac. So, your comment is useless in real life and this thread.

I don't get this. If the bulk of your work is programming, you're really gonna reboot after finishing your work to go into OS X so you can browse the web or something? And not everyone devs iPhone apps. And I'm tempted to c/p your last sentence, but it's a dick thing to say.
 
This is why when people ask me why I don't get a Mac, I say: "I'm a programmer."

I disagree. I think Mac is AWESOME for dev I just think IDE's suck. I came from Linux and a Mac is a Linux box with a UI that doesn't look like ass. All I need is gcc/vim/make and I can do anything. Java is built, I don't have to deal with path issues.

I am video game programmer so a lot of our stuff is done on windows and I hate it with the passion of a thousand burning suns. We use Visual Studio for all our 360/PS3 work and CodeWarrior for Wii. BTW if you want to use a horrible IDE give CodeWarrior a try...on our last Wii game it could take 10 minutes before CodeWarrior decided to even START building.

It's just so much faster to work from a command shell, you never have to touch a mouse.

*shrug* to each his own I guess.
 
Doytch said:
I don't get this. If the bulk of your work is programming, you're really gonna reboot after finishing your work to go into OS X so you can browse the web or something? And not everyone devs iPhone apps. And I'm tempted to c/p your last sentence, but it's a dick thing to say.
Yes, I'm assuming "I'm a programmer" should include Iphone dev for a reason. Why? Because the statement "I'm a programmer" is vague. The OP is "a programmer" but cannot do what he's doing on a PC easier than what he can do on OSX in front of him.

The only valuable response to the mac vs pc debate for a programmer is "PC has all the software I want to use" not "I'm a programmer".

Therefore, his comment is useless IRL and in this thread.

Similar to how all three consoles + PC give the ultimate gaming experience, I feel all OS's give the ultimate development experience. Film, music, coding. And as a programmer I will not limit myself to only Windows.
 
Status
Not open for further replies.
Top Bottom