My experience is limited to using it with Swift and Objective-C. Xcode has been getting better recently but tools like IntelliJ have support for a bunch of useful things that Xcode doesn't. Off the top of my head:
* refactoring functions/methods: adding and removing parameters, renaming parameters, etc.
* safe-deleting symbols
* advanced search tools. Not just "find selected symbol in workspace", but "find places where this variable is being written to"
Also, the refactoring tools that Xcode does include are very unreliable. Even simple renaming will often fail, even on small projects, or will mistakenly rename unrelated symbols.
* refactoring functions/methods: adding and removing parameters, renaming parameters, etc.
* safe-deleting symbols
* advanced search tools. Not just "find selected symbol in workspace", but "find places where this variable is being written to"
Also, the refactoring tools that Xcode does include are very unreliable. Even simple renaming will often fail, even on small projects, or will mistakenly rename unrelated symbols.