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.
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.
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.
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.
As Swift matures, Apple and the wider community are offering improved tooling, libraries, and frameworks optimized specifically for Swift.
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.
Aside from the benefits Swift offers, there are several advantages to migrating your Objective-C codebase today.
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.
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.
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.
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.
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.
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 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.
Onboarding: With the help of your team, I become familiar with the codebase and set up the necessary tooling (Slack, Jira, ...).
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.
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.
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.
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.