views:

611

answers:

7

My company is evaluating the possibility of developing set of tools for Objective-C extending Xcode default functionality(basically we are thinking about providing better navigation,semantic search, more refactorings, quick fixes, improved code completion (visual assist inspired).

So we would like to ask XCode/Objective-C developers:

  • Do you feel that you are missing some features in XCode? What is your wish list?

  • Are you considering the possibility of using addons to Xcode which are not created by Apple?

  • Would you be willing to pay for these addons, or would you only consider free solutions?

+2  A: 

I'd pay up to $30 if you could add some nice-looking tabs to Xcode, and git support.

chpwn
Yes, git support!
gcamp
Tabs would be my number 1.
Chris Blackwell
+2  A: 
  • Better refactoring tools
  • Git SCM support
  • Better plugin API documentation (I didn't realize Xcode had a plugin API until I read this question!)
Dave DeLong
Actually it has not any official plugin API, but it seems that we are able to hack into it.
Null Pointer
Null Pointer - How so? Is that legal? Just curious - I'm learning ObjC now as my first 'C' language. Unless you count bits of Java and Adobe's Actionscript, which stem from C.
Moshe
Just load yourself in with DYLD_INSERT_LIBRARIES and use the Objective-C runtime and method_setImplementation() to do your hacking.
chpwn
Xcode has a plug-in API (several, actually); they're just not officially supported for third-party development.
Peter Hosey
+3  A: 

Take a look at what IntelliJ Idea offers for Java. Start with that.

I'm happy to pay for a solid tool.

z5h
:-). Thanks for this. Unfortunately we have much less resources then JetBrains so we should choose initial set of features very carefully.
Null Pointer
+7  A: 
  • Better built-in SCM tools (branch/merge for SVN, Git or Mercurial support)
  • Better integrated OCUnit support: I'd like to get red bar/green bar on each save, like in other IDEs
  • Python code completion
  • Integrated code coverage measurement and reporting (for Objective-C)
  • Integration with Python unit testing tools (unittest, py.test or nose and coverage.py)
  • Integration with bug tracker tools: track time and change sets associated with a ticket. Eclipse's Mylyn is overkill, but the same idea. Trac and Redmine are two popular trackers.

Take a look at the Google Toolbox for Mac's Xcode plugin for some other good ideas. There really aren't many third-party addons for Xcode, though I do use the GTM plugin. And yes, I'd pay for these tools.

Barry Wark
I second everything that Barry said, especially git integration.
piobyz
+1  A: 

XCode is missing some really basic features. Looking at IntelliJ would be a good place to start.

For example, if I create a new class, it should be able to generate empty methods in the implementation file to match those in the interface file, and in any inherited abstract classes or protocols. I'm sick of always having to type the same stuff all over the place. The compiler will warn me if haven't synthesized a property, or if I haven't implemented a method, but XCode itself doesn't help me to generate the missing bits.

Another of the best features in IntelliJ is that you can introduce a new method, or field, just by using it. i.e., you type something like x = myClass.doSomethingSpecial(). If doSomethingSpecial() doesn't exist the IDE prompts you and will create the empty method and let you edit it immediately; no hunting around for the relevant .h and .m files as you have to do all the time in XCode.

Also, the general UI of XCode is just rubbish. If I'm working on a java project in IntelliJ I might have 20 or 30 classes open, and can switch between them using the tabs or by doing ctrl-n and typing the name (or the Capital letters from the camel-case name). Xcode, is completely the opposite, showing you only two files with no easy to flick through a set of files you're currently working on.

So my wish list would be basically this: a better layout for windows (tab-based, probably); auto-generation of code by using an icon/key-shortcut at the point where an error/warning is currently shown. And auto-generation of methods that are defined in an Interface but not in the Implementation. Oh, and automatic (prompted) insertion of #import statements if I happen to use something that's not imported yet.

Dom
With regards to your 3rd paragraph, you can definitely have more than two files open. Try looking at your preferences and change the Xcode layout. You can flip through files either using Command-` or by using Expose. To search for and move directly to a file, press Shift-Command-D.
kubi
A: 

I've set up the missing feature request forum at http://idev.uservoice.com.

Adding bugs or feature requests at bugreport.apple.com seems like dropping your ideas into a black hole. Instead of just being annoyed, I thought: Why not start a public feature request forum. If Apple doesn't care perhaps somebody else will. I've added a few missing features and I'll keep adding more.

Please join in if you want to.

Arne Evertsson
A: 

like eclipse : if you missed an header file ,there are a hint , you can click "import XXX file" ,then xcode include the header file automatically

wang