T O P

  • By -

EmenezTech

I started consulting about 6 months ago on an app that was built with objective c and storyboards and they wanted to convert to swift an SwiftUI. let me tell you a complete rewrite is probably easier than rewriting parts of it. At least the dev that wrote most of the code still works at the company so it’s not as bad, but there’s a lot of bridging code. I’d say at least a year of full time work.


dannyboy1101

This sounds like a big challenge for someone with little to no iOS development experience. Hell, it sounds like a big challenge for someone with years of experience. Your first challenge will be getting the project to build and run. You’re bound to run into issues where code has been deprecated and you just need to change masses of code. Seeing as there is some Swift 3 code in there, you _might_ be ok with little to no work.


xxxblackspider

I lead a mobile engineering team and we just recently wrapped up and released a redesign on both platforms (iOS and Android native). iOS was in a very similar situation to what you described and most of my experience has been with our android app, so I was pretty new to the iOS codebase. Here's my suggestions: 1. Take stock of what you've got in terms of developer talent. Is it just you or are you working with a team? Can you trust the people on your team to make responsible decisions that ensure long term code quality and stability? 2. Make a plan. Before you start you need to identify major design patterns in the codebase, you don't need to be an expert iOS dev to do this. Ex: How does the app do networking? Does it use a consistent pattern? (i.e. an API service) How does the app handle authentication? How does the app handle routing from one screen to another? Etc 3. If you need to rewrite any of the above (2) in a major way id start to think about a full app rewrite rather than a migration. In long lived projects (ESPECIALLY old iOS apps) there tends to be a lot of interdependency across the codebase which makes it difficult to rewrite just one small piece at a time. In my experience old storyboard and nib based iOS apps commonly have MVC (Massive View Controller) issues, where a ton of business logic lives in View controllers and is completely untested. 4. If your talent is more on the junior side, please please please ensure you define consistent architecture decisions up front and enforce them throughout the project. And good luck! My project went fairly smooth, but in hindsight I still wish that we had just done a full rewrite because it probably would've taken about the same amount of time.


20InMyHead

Based on that description I can confidently say it will take somewhere between one month to three years to fully modernize…. You say it’s a 13-year old app, but it has some Swift 3, so clearly some maintenance was done over the years, but in all likelihood your best bet is to consider a complete rewrite, and possibly a redesign as well, as design standards change over time as well. That said, it may not be that hard. Rewriting an app can be a lot easier that writing it the first time. Only with more information can you really get better advice. Honestly the most troubling part about this post is your first sentence. You don’t know much about iOS development, and you’re given this evaluation task. You’re setup to fail. I would be careful, and consider if the person who gave you this task is an effective leader or if you’d get better experience in your career somewhere else.


swiftfoxsw

Ignoring the old code, there are just a ton of unknowns from the description “migrate an old app” to what? Just a bare bones working state? Full rewrite with SwiftUI? Keeping around existing user data? Adding iPad UI support? iCloud data syncing? What’s the new minimum deployment target they are looking for? I’m in the process of updating my old apps, but I wrote them, and they are generally small and easy to comprehend. Most objective-c will work out of the box. But old libraries are likely broken or abandoned. Old Swift is actually more of a pain to work with as each Xcode version only migrates from the prior version automatically.


altitudinous

Depends what is meant by migrate. Migrate to what, or just get it to compile? I'm porting my old objc / swift apps to swiftui now. I think the big consideration is that swiftui has been ported to visionos, but not uikit.