TLDR for hiring iOS developers;
- Look for the top rated app developers on Google, can check Angel.co, Upwork and others as well
- A good developer has a lot of footprints in terms of contributions and community
- Practices UI patterns and tests them to limits
- Focuses on clean architecture implementation
- Proficiency with Swift
- Knows how to implement MVP, MVVM and other patterns in complex scenarios
- Writes maintainable code
- iOS developer has to be good with cross functional collaboration
Where to find these iOS developers?
You can look for local companies and freelancers using your city specific keywords like Toronto app developers. Or, you can look at freelance marketplaces like Upwork or Toptal.
I am writing a very detailed blog post on this with extreme details pretty soon. If you are looking for more information on the subject email me at pete@appvelocity.ca
Technical skills that your iOS developer should have?
- Swift and Objective-C
Swift is a must for any iOS developer. You can’t really build modern iOS apps without using Swift. You should assess their programming fundamentals, what they’ve build with Swift in past and how complex it was to gauge their programming experience. If possible, I would suggest taking a very in-depth programming interview before you hire an iOS developer.
Though Objective-C isn’t in high demand anymore. But somewhere around 30% of all iOS apps still run it in some capacity. If you have a legacy Objective-C based code, you would want to keep it updated and maintained. Hence, an Objective-C based iOS experience comes in handy. - Familiarity with iOS design patterns
Apart from programming experience, it is suggested that you look for architectural design patterns like MVP, MVVM, MVI with your app developer as well. He/she should’ve built a few apps using these architectural design patterns for them to be considered as a quality iOS developer.
Gone are those days when developers used to just package their code into a single file and push it wherever they wanted to. Things are very different with modern iOS development. We try to break our apps into as many modules as we want to, to ensure that they are testable, they serve a single purpose and they can be maintained by a new developer brought onboard as well. That’s why these iOS design patterns are extremely important to consider while hiring an iOS developer. - Familiarity with UI design patterns
If your iOS developer has the edge to understand and translate pixel perfect designs into high performing UI elements, that’s a huge plus one. Implementing complex UI elements further tells you what type of developer you are hiring. - Reactive programming
An ideal candidate should be an expert in implementing reactive programming using RxSwift and other libraries. They should’ve explored everything that they need to implement complex reactive patterns without facing any issues.
Reactive programming is now a commonly accepted trait of a good iOS developer. Make sure that the dev you are hiring has it! - Familiarity with the new tech like CoreML, ARKit, SceneKit
iOS ecosystem keeps evolving from time to time. Hence, it is very important that you hire someone who actively learns and upgrades himself. - Memory management
When your user runs an app it consumes memory, but as soon as a user kills an app or a process that app runs, it should free that memory. Bad developers don’t even know that this is a problem as they don’t care. - App performance and size optimisation
Your app isn’t the only app that’s there on a user’s iPhone. There are iPhone users that have more than 100 apps on their iPhone. If all of these apps compete for background processing, notification and other tasks, none of them would actually work. That’s the type of challenge we face when build apps for our clients.
Your app has to render in 16fps while tens of other apps are also trying to get each and every bit of available memory.
That’s where your developer’s understanding of app performance would come into picture.
What defines a top rated iOS developer?
- WWDC - If the developer you meet has been invited to WWDC or has been a part of WWDC scholarship in past. Chances are that you are talking to the right developer. As a valued partner of Apple ecosystem, I attend WWDC every year and I meet amazingly talented iOS programmers each year.
- Built app store topping apps in past and has an experience of building apps for more than 200,000 users. Another criteria could be them working into mission critical systems like Finance, Banking, Healthcare, etc and building high performing, but highly reliable apps for their organizations.
- Open source contributions
A lot of good iOS developers that I know working have considerable open source contributions to show. Sometimes we build something internally that we realized could be of value to the entire developer community, and we put it out for everyone else to consume, edit and use.
These open source contributions are not just a symbol that a developer is good at what he does, but, also a symbol of his commitment to the technology he working on.
A lot of people don’t know this, but the open source contributions that we developers make also teach us a lot. I remember writing this open source library 10 years ago that was adopted by 25,000 developers. When I put it out, I thought I’d done everything perfectly. But as developers started to adopt and consume it for developing mobile apps, I saw something very remarkable.
Developers started making changes. It quickly became something where even the minutest code quality issue was improved. Then it suddenly happened that one of the original maintainers of the language made a change to my codebase. That was very revolutionary. That three lines worth of change was so deeply insight driven that it shattered my beliefs in terms of what I thought was a best practices.
That’s why open source contributions are a huge indicator for hiring iOS developers. Any developer that has made tons of open source contributions not only has a lot ot share with the community, but also might’ve learned a lot by sharing and testing himself/herself out there. - Exceptionally good with TDD, BDD type scenarios
Good developers never write a code just to build a functionality, they try to bring clear thoughts on how/why/what of the problem at hand. Experienced good iOS developers on the other hand are more likely to go even beyond that! They would approach an iOS application development project from the perspectives of maintainability, testability, cleaner implementations and high quality code. All of this requires dev teams to follow TDD(test driven development), BDD(Behavior driven development), etc
If the iOS developer that you are talking to has built large scale apps with these frameworks/processes in place, that’s an indicative that you are hiring the right developer. - Clean code architectures
Any top rated developer can show you a huge experience of developing iOS with clean architectures. When we write apps with clean architectures in our mind, we think way beyond the what’s accepted as a quality and scrutinize everything that we have learned. That’s why only top rated app developers can actually implement such architectures in iOS apps. - Collaborates with other teams effectively
Team collaboration is what separates bad developers from Good developers. But, the type engineer that we are talking about in picture is more of a top rated one. So, in this breed of developer you would often find them to be able to collaborate effectively, raise flags in very early stages to mitigate risks, work effectively with cross functional teams to ensure that your product quality remains high.
You won’t believe how many iOS developers I’ve met that don’t gel well with the the database teams. This has been one of the biggest challenges that app development teams face. As there’s low degree of collaboration between DB and iOS teams, often even the minutest change on the database site impacts critical functionalities of your mobile app.
That was just an single example, but there are at least 100 such common problems that I see surfacing when someone brings the wrong type of developer onboard.
At the end, who loses other than your app’s users and you?
- Use of unconventional technologies and the ability to hack through existing systems
Now, as we are talking about the top rated developers, it is equally important for you to know that the typical stack that most other mobile app developers work on is almost too low performing for them.
There’s more to app development world than just Swift and Objective-C. Exceptional app developers also use technologies like barebones C to write custom libraries and SDKs that outperforms standard benchmarks that exists for the majority of software development world.
That’s it, if you follow these guidelines, you will have hired a very high quality app developer in just a matter of days rather than spending months on it and tossing a coin on the final selection.
I have been helping startups and enterprises build apps ever since the first iPhone came up. If you are looking to hire app developer, feel free to get in touch with me on pete@appvelocity.ca