In particular, depending on what your app does, do a little research on some core technologies that’ll likely be involved. Are you a news app? Then someone with particular expertise with Core Text is probably essential. Do you work with a lot of media (streaming video, encoding, etc.)? Then someone who knows AV Foundation is what you need. Games? OpenGL is a must. Apple has a lot of good, high-level guides that talk about all the technologies available to developers for particular tasks (audio, graphics, networking, etc.). You can use these as a basis for what specializations you should look for in a senior iOS developer.
Here are some of the absolute essentials that you’ll definitely need someone to have a few years of solid experience with:
If your app is particularly rich with transitions and animations, Core Animation intimacy is a requirement. If the candidate has a taste for design and has previous experience working closely with UI designers, then that’s a really good sign.
Ask to see what apps they’ve built. Ask them what particular parts of apps they were responsible for. Ask them how they decide whether to use a third-party library or roll their own implementation.
Of course, excellent debugging skills are essential. The problem with a lot of less experienced developers these days is that they don’t really understand how a lot of the stuff they use is actually working behind the scenes. When something goes wrong-and it will-they don’t really know what to look for to triage the situation. So ask someone a fairly vague question about a hypothetical scenario. They should be able to rattle off four or five different techniques they could use to diagnose the issue. Performance diagnosis in particular is good to have if you need to support a wide range of older iOS devices.
You might ask your candidates what they think about code they’ve written 6 weeks ago, 6 months ago, 2 years ago. This may just be my opinion, but having a distaste for code you wrote a while back probably means you’ve learned something new since then and your code is therefore better now. It really should be a constant cycle of incremental improvements.
Is your candidate passionate about Apple? They don’t have to be a zealot, but passion for a platform usually indicates a love for it. If you love what you do, you probably produce high-quality work. Again, others may disagree with me on this, but if someone claims to be a mobile generalist, then they might not be the best candidate for a senior iOS position. I’m a firm believer in specialization and having specialists working on each major platform you support, if this is feasible for the size of your company.
Does the candidate care about quality? (They should.) Importantly, how do they balance high quality with timely deliverables? As an engineer gains more experience, they should be able to do better work, faster. (This is harder to gauge before hiring someone, but it’s definitely a decent litmus test afterwards.)
Finally, if you plan on eventually staffing an iOS team, make sure your developer is easy to get along with. Nobody cares how brilliant a developer is if everyone hates working with (or especially under) them. Although this fact holds true for practically every position for which you could be hiring.