I use unobtrusive dabbrev-style completion --- I don't want popup menus with completion possibilities drawn from documentation, because Dash.app does a better job of that and is shared by all applications.
I think Emacs does an at least adequate job at all the core functions of Xcode, but does some things Xcode can't do at all.
(It's been a few years since I've written more than a couple thousands lines in Xcode, though.)