Performing an iOS audit: 3 key aspects to look at

What should you pay attention to when doing an iOS audit?

Bruno Lorenzo
Houlak
4 min readFeb 14, 2024

--

Photo by Kevin Ku on Unsplash

When our application starts growing, we need to ensure its scalability.

If we don’t, we will face some big headaches in the future. General speaking, when we talk about an app’s scalability from a developer perspective, we’re seeking to:

  • Adding new code to be simpler.
  • Improve the debug process to catch bugs.
  • Onboard new teammates quickly and easily.

A proper iOS project audit can help us make sure that our app meets quality standards. And if it doesn’t, we'll at least have a clear roadmap on what needs to be fixed.

So, if you plan to do an audit, or just want to perform an extra check on your app’s general health, here are 3 areas you might consider putting focus on.

1. Project organization

How hard, or how easy, is it for someone new to find anything inside the project?

It could be a file, a function, a resource, or even some sort of configuration. A clear structure will help you with maintenance in the future.

Here are some items you can check:

Folder structure

Does the folder hierarchy make sense?

If you create a new file, do you know in which group you need to put it? Having a clear folder structure not only helps to maintain order when we create new files but also to make searching faster.

There are many ways of sorting files and resources in a project. It could be grouped by modules, file types, features, or even a combination of some. The important thing is that the chosen one does not change over time and that all team members follow it.

Schemes & Targets

How many schemes and targets does the project have?

If a backend interacts with the app, there will probably be more than one environment. Maybe dev & prod. How does this reflect in the schemes of the app? A good practice is to have one scheme per environment. This way we can configure specific values and data for each environment.

Code signing

How do you manage certificates and provisioning profiles? Can you build and run the application out of the box?

Depending on how many environments your project handles, you might need to review your code signing strategy. Do you use automatic signing or manual? How do you distribute certificates and provisioning profiles through your team?

This might not seem important but in larger teams it is.

2. Architecture

Moving into the fun stuff, do you notice a defined architecture at first sight?

Having a good architecture is a critical part of every application when it scales. There are several architectures to use, I don’t believe one is better than the other. Each one has its uses given the right circumstances.

You need to have a full understanding of, at least the most common, architectures for an iOS project.

Ask yourself the following questions to assert if the architecture is right for the project:

  • What is the build & deploy target time?
  • How critical is testing?
  • What is the overall seniority of the team?
  • Is the project high or low tolerant to unknown changes?
  • Do you need to ship features fast or can you take extra time to go through a QA process?

Maybe the project you’re auditing doesn’t have any architecture at all. In this scenario, you could recommend a refactor plan for adopting one.

3. Dependencies

How many third-party dependencies does the project have?

Usually, many dependencies could give you problems in the future. However, this does not necessarily have to be true. It all depends on who is behind those libraries.

For example, if the project uses Firebase, it doesn’t seem to be a problem. On the other hand, if it is using a random developer library, you might need to look deeper to uncover some insights.

Enumerate all the dependencies and for each one check the following:

If it’s an open-source library:

  • How many starts does it have on GitHub?
  • How many issues does it have open?
  • How is the community contribution in general?
  • When was the last commit?

When was the last release?

How many users does it have?

This would give you a better picture of whether dependencies could be a potential issue in the future or not.

These are some basic points you need to look at, but there are many more aspects to search in an iOS audit.

If you need help with your iOS app’s audit, at Houlak we are ready to help you. For more information, check it out here and shoot us a message, no strings attached.

--

--

Bruno Lorenzo
Houlak
Editor for

Software Engineer | Innovation Manager at www.houlak.com | Former iOS Tech Lead | I write about iOS, tech, and producitivy