When you want to hire an iOS developer to build an app for you, it can be hard to know what they need to know if you’re not a developer yourself. This is pretty significant, as choosing the right developer could have huge consequences once the project starts.
This post is a guide for anyone looking to hire an iOS developer and needs to know what kind of knowledge and experience you should be looking for. In this guide, we’ll detail what kinds of questions you should be asking prospective developers and how you can recognize if they know what you need them to know to create the app you want.
A Couple Things about Software…
It would be surprising if you’re looking into having an app created and have never heard a lot of the jargon that developers and software professionals use, but there are a couple of things you should know, otherwise, the rest of this article is going to be confusing:
I know, this one probably seems really obvious: a user interface (UI) is any point of interaction between the computer and the human user. Really, most people get that, but what it is surprising is how often people get this confused with other terms related to it, which is why this is here.
In particular, there are two other terms where some people get muddled: Graphical User Interface (GUI) and User Experience (UX). A GUI is a type of composite UI, essentially universal to apps, which has tactile and visual components.
On the other hand, UX is a concept that people get confused much more often. While related, they are different concepts: UI refers simply to the point of interaction; UX on the other hand, refers how you to design a product and how you want the user to feel when they use it, the plan you have to get the user to interact with your app.
A software framework can be best explained as a package of code and functionality that you can use to build software applications. We use this package to add certain app functions as well as to push software features much faster. Therefore you can focus on what you need for your app, rather than how it technically works.
For instance, a framework provided by Apple could help facilitate using GPS on your phone or fitness information from your Apple Watch. On the other hand, there are third-party libraries (libraries are pre-built lines of code that are commonly included in frameworks) to help developers track bugs and crashes in real-time or display common onboarding tutorials used in iPhone apps.
It is a bit like building or repairing a car: if you need a new muffler, rather than building one from scratch (which would take a lot of time and money), you would likely hire a mechanic or find a manufacturer who makes mufflers for cars. You can do this for everything from the wheels to the vehicle’s sound system. Software development with frameworks is very similar.
Apple uses two main software frameworks: Cocoa (for macOS) and Cocoa Touch (for iOS), which contain all the tools, features, and templates you need to build an application that will run on an Apple-built operating system.
What kind of iOS developer do you need?
To know what kind of a developer you need, namely either a general developer or someone with specialized knowledge and skills.
This goes back to an earlier article I put out on how to put together an accurate project budget for the app you want to develop. If you haven’t already read it, I invite you to go check it out here.
Considerations for your app might include how you want it to look (and how much of a priority its appearance is for you), whether you need it to use different kinds of media (like video or audio), and how many requirements have very specific technical needs (such as an integrated payment system using Stripe or a similar platform).
The main consideration usually comes down to whether you need generalist or specialist developers. This is pretty straightforward: A generalist has the advantage of being able to adapt if you have a range of different requirements for your app, depending on what the requirements for your app are and how well they know the framework that you will need for your app.
On the other hand, there are some things in iOS development that are either very specific or niche that you will need to find a specialist. For instance, you have an app that needs to connect to Bluetooth devices, you will need a developer that knows how to use a framework like Core Bluetooth, which allows you to use certain Bluetooth devices with your app.
If you’re not sure what functions you need for your app, and the possible ways of developing them, I recommend having a senior developer or consultant take a look at your project idea and have them map out a list of frameworks, libraries and tools that could be potentially used to develop your app, especially those that only a specialist would be expected to know. This way, you should have a suitable list of things that developers you want to hire should know or have experience using.
Can they build a UI?
Once you feel comfortable that a prospective developer, an important question you should be asking is if they build the User Interface that you need for your app.
This can be complex, as there are lots of ways of building a UI, but a good starting point is asking to see their portfolio and ask a few questions:
- Does it have examples of UIs they’ve created in the past?
- Do you like the way they look?
- So much about developing a UI is aesthetic: do you like the way it looks, the way it responds when you push button or open a menu?
- An additional question that you can ask is: How they prefer to build their user interface?
Previously, Apple suggested the use of UIKit and Storyboards as the preferred way to build a UI. With Storyboards, the developer creates images that show a “story” of how a user will interact with the app. Alternatively, some developers prefer to code their app through UIKit due to the limitations of Storyboards. However, with the introduction of SwiftUI this year, many developers have been moving away from UIKit and Storyboards, flocking to this new way to develop a user interface.
Can they be critically self-reflective?
In the end, regardless of the method they choose, these choices reflect to how they build software and whether it will work with your team. In software, there are almost always lots of different ways of doing something: How to make an app function or look a certain way. Each way will also have pros and cons associated with it, and every developer will likely have a slightly different view of good ways developing an app.
A good developer should, first and foremost, be consistent in their approach to developing software and how they go about solving problems, and it is not unreasonable to expect them to be able to communicate the benefits and trade-offs of certain software practices and design patterns (i.e. solutions to recurring problems), and the limits of the libraries and frameworks they use, including what Apple might recommend for iOS and Apple developers.
If they are front-end developers, do they at least know a little about the back-end?
Just in case you’re not already familar, front-end generally refers to the development of what users will directly interact with: the look, feel and design of your app. Back-end refers to the development of how your app actually works, how the application, as well as its server and databases, operate, and how it might interact with other pieces of software, as well as creating and implementing updates.
You will generally find that most iOS developers are specialized in front-end development. However, a few do know a bit of both front and back-end development (commonly called full-stack developers, a kind of generalist). Likewise, it is usually a good sign if a front-end developer knows a little bit about how to do back-end work. For instance how the app interacts with the back-end Application Programming Interfaces (APIs).
This is valuable, as a developer that has a rounded field of knowledge is much more useful when bugs or problems arise, as they will have an understanding how the UI work they may have done on the front-end relates back to the data storage and software architecture of the back-end, making it easier to identify problems and find solutions.
What you as the interviewer are looking for are developers that can show they understand how back-end development is related to what you need them to do. Do they know a little bit about business logic, software architecture, and back-end design patterns?
Do they have experience with any specialties with hardware or APIs?
As a subset of the above, specifically for iOS, it is usually worth asking what APIs and hardware they have worked with interfacing with iPhones. The more well-known ones include:
- WatchKit for building Apple Watch App
- Core Bluetooth for communicating directly with Bluetooth Devices
- AVFoundation for dealing with camera hardware as well as video
- CoreData for local database storage
- CoreLocation for GPS and navigation services
- CoreML for Machine Learning
If you have a special need for your app, this can be very helpful. In fact it only means you would have access to their specialist knowledge. Markedly, it is a sign they have a mature level of knowledge of the Apple software ecosystem.
Summary of Questions
I know the above is a lot to take in. Therefore, here’s a quick list of questions of the above:
Before you start hiring
- What are the functional requirements of your app?
- Do you know what frameworks, libraries, and tools might be needed to develop that functionality?
- Are you looking for generalist developers, specialists, or a mix of both?
- Can they build the kind of User Interface you will need for your app?
- Do they employ Storyboards (if that is important or useful for developing your app)?
- What process or philosophy do they follow in developing software?
- Are they aware of the benefits and trade-offs of their approach?
- Is there evidence that they have considered other ways of doing the same kind of work?
- If they are primarily a front-end developer, do they have knowledge, of the back-end development that will be needed to develop the app?
- Do they have any specialist knowledge or experience working with certain kinds of software APIs or hardware?
Finally, if you’re an iOS developer and are preparing to take an interview, I recommend you pick up Alex Bush’s book, The iOS Interview Guide. It’s a great reference for helping you give clear answers to common questions, and articulate what you know in a way that is easy to understand
If that seems like too much, we can help with that!
Finding and hiring the right iOS or Apple developer can obviously be very complicated, and challenging if you yourself are not a developer. It could be very costly if you make the wrong choice, costing you time and money fixing the mistakes of the wrong kind of developer.
At BrightDigit, we work with our clients to make sure, before a single line of code is written, you have a clear plan of the work required to build your app, what kinds of tools, frameworks, and other resources that will be needed, and can even help you with that early step of putting together the list of things that your developers will need to know if your app is going to work the way you need it to. If you’re ready to build an app for your business, email us at firstname.lastname@example.org and tell us about your app idea!