From Objective-C to Swift

Why Migrate to Swift?

Objective-C is a fine programming language, but the future is Swift. There are several reasons why you should consider migrating your codebase to Swift sooner rather than later.

Modern Syntax and Language Features

Swift has a more concise and expressive syntax that's easier to read and write. It's a safer language thanks to, for example, optionals and type inference, making it harder to write unsafe code.

Safety

Swift is designed with a strong focus on type safety and error handling. These features significantly help reduce the number of bugs and fatal issues. The result is a more stable application.

Maintenance

With Objective-C's C legacy, there is often more overhead in managing memory (even with ARC) and handling other lower-level tasks. Swift simplifies many of these complexities.

Better Tooling

As Swift matures, Apple and the wider community are offering improved tooling, libraries, and frameworks optimized specifically for Swift.

Community and Resources

Swift has a rapidly growing community, which means there's a wealth of shared knowledge, open-source projects, and resources available. This can lead to faster problem-solving and adoption of best practices.

Why Migrate Today?

Aside from the benefits Swift offers, there are several advantages to migrating your Objective-C codebase today.

Development Cost

As more developers transition to Swift, the community and resources around Objective-C might get scarcer. This can make maintaining and updating an Objective-C codebase more challenging and costly in the long run.

Find and Retain Talent

As I wrote earlier, new developers are predominantly trained in Swift. By migrating to Swift, you can attract fresh talent more easily. The pool of developers trained in Objective-C will only get smaller over time.

Stay Ahead

As technology evolves, being on a modern platform ensures easier adoption of new features, tools, and best practices. Apple continues to roll out improvements and advancements in Swift and its tooling. By staying ahead, you can leverage these innovations more quickly and easily.

Who Am I?

My name is Bart Jacobs, and I run a mobile development company, Code Foundry. I have been programming for more than fifteen years, focusing on Cocoa development soon after the introduction of the iPhone in 2007. I have years of experience with both Objective-C (pre-ARC) and Swift. That makes me a great fit to help companies migrate their codebases from Objective-C to Swift.

How Do I Work?

Consultation

During this first conversation, we get to know each other and I learn more about your company and its needs. At the end of the conversation, we should both have a clear picture of what I can offer you and whether I am a good fit for your company. If we decide to work together, we move on to the initial assessment.

Initial Assessment

Codebase Review: We review the codebase to understand its size, complexity, dependencies, and third-party libraries.
Documentation Review: I go through the documentation that is available to understand the application's core functionalities and architecture.
Interviews: If necessary, I speak with key members of the team to understand known issues, historical decisions, or specific areas of concern.

Define Goals

Define Scope: I always encourage companies to migrate in clearly defined steps to reduce risk and impact, so we start by defining the scope of the migration.
Test Strategy: We agree on a test strategy to mitigate the risk inherent to the migration.
Code Review: The migration work is performed on a separate branch. Ideally, each pull request of the migration is reviewed by a team member familiar with the codebase.
Timeline and Milestones: With the scope defined, we agree on a timeline and define one or more milestones.

Pre-Migration

Onboarding: With the help of your team, I become familiar with the codebase and set up the necessary tooling (Slack, Jira, ...).

During Migration

The migration begins once we have agreed on the scope of the project and the milestones. We have regular check-ins to ensure the migration is on track and in alignment with other work that is being done on the codebase. At the end of the migration, we go through the changes to validate the scope and further reduce the risk of the migration. Ideally, the migrated codebase is thoroughly tested (in addition to automated tests) before it is merged into the main branch.

Post-Migration

After the migration, I am available for bug fixes and performance improvements that may be the result of the migration. I don't leave you in the cold should something go wrong. I'm here to support you.

Cost

The cost of a migration is straightforward. The initial assessment costs $3000 (USD) and is prepaid by the client. After the initial assessment, we come up with a timeline and milestones. That gives us an idea of how many days I'll be working with your team. I charge a day rate of $1250 (USD) and invoice at the end of every week. Bug fixes and other changes post-migration are charged separately.

What I Don't Do?

I don't migrate C++ or Objective-C code that interoperates with C++. This service is aimed specifically at migrating Objective-C codebases to Swift.