CommentComment

This is a fascinating story from McLaren Stanley about a rewrite of the Uber app in the early days of Swift. If youā€™ve not yet read it, go and give it a look now. I promise itā€™s worth your time.

Itā€™s easy to forget how rough the first couple of years of Swift development were, and how early adoption had a real cost. That cost might have been manageable in a small app, but this story is a rarely shared insight into what it was like at a big company that decided to go all-in so early.

Rewriting an app when a new technology comes along is so tempting. The idea of being able to remove all those imperfect decisions, and getting a ā€œclean startā€ is intoxicating. Add the allure of the brand new technology into the mix, and it can be almost impossible to resist. Of course, the path is rarely smooth. New technologies often demo well but also have really spiky edges that hurt when you run into them. Youā€™re also just as likely to make a whole new set of bad decisions as you fix the last set. šŸ˜¬

Weā€™re fortunate in software development that weā€™re able to go back and tweak the things weā€™ve built. Weā€™re able to improve what we already have at the same time as shipping new features. Itā€™s a rare privilege thatā€™s not afforded to many industries. You canā€™t tweak a novel after itā€™s been published, or a building after construction is finished.

Yes, it can be hard to make large architectural changes incrementally, but is it harder than making large architectural changes while also adopting a new language like Swift or a UI framework like SwiftUI?

The Swift transition is mostly done by now, and I expect the vast majority of you are now writing most of your new code in Swift. The SwiftUI transition period is still in full swing though, and once thatā€™s done, thereā€™ll surely be another tempting opportunity to rewrite! Weā€™re lucky with technologies like Swift and SwiftUI that Apple pays attention to interoperability, itā€™s a great deterrent against the lure of the rewrite. šŸ˜…

That said, you should also be careful not to fall too far behind. Weā€™re now 18 months into SwiftUI, and if youā€™ve shipped any part of a real app using it, youā€™re ahead of the curve. If youā€™ve not yet had at least a little play with it in a demo/test app, youā€™re probably on the edge of lagging behind. Like everything in software development, itā€™s a balance, and thereā€™s no right answer. Just try and avoid being a zealot, or a curmudgeon. Stories like this are also a good reminder that being ā€œpureā€ anything isnā€™t something to strive for, in my opinion.

The story McLaren tells worked out in the end, but he also refers to several people burning out. Iā€™m glad they ended up in a good place, but you should treat this as a cautionary tale. Itā€™s not the only time Iā€™ve heard stories like this, and Iā€™ve even participated in one or two over the years, although the scale of mine are much smaller.

Thanks for sharing McLaren!


UPDATE: Several people have messaged/tweeted me since yesterday about this sentence:

If youā€™ve not yet had at least a little play with it in a demo/test app, youā€™re probably on the edge of lagging behind.

I should not have said ā€œlagging behindā€, and Iā€™m sorry I wrote it. My intention was not to judge or make anyone feel bad, but I did, and Iā€™m sorry. I do think that itā€™s a good idea to have had a play with SwiftUI in some context, but youā€™re definitely not lagging behind if you havenā€™t.

Dave Verwer  

News


Tools


Code



Business and Marketing

Jobs

iOS Developer @ SpareRoom ā€“ Want to work on an app repeatedly featured by Apple? One thatā€™s received tens of thousands of 5-star ratings? Come and join us at SpareRoom, the UKā€™s best-known flatsharing business. Weā€™re looking for an experienced, passionate developer to lead the development and delivery of our iOS app, at a really exciting time for the team and business. Get in touch! ā€“ Manchester UK

iOS Developer @ Doximity ā€“ Doximity, the medical network used by over 70% of US clinicians, is hiring passionate iOS engineers (remote friendly!). You'll get to be part of an amazing product team and work on an app that is constantly evolving. Use your skills (Swift, MVVM, FRP) to be an integral part of our newly launched telemedicine feature. Apply today! ā€“ Remote within the US, or San Francisco CA

Mid-Level/Senior iOS/tvOS Developer @ Berlin Phil Media GmbH ā€“ Join the team working on the Digital Concert Hall of the Berliner Philharmoniker ā€“ the leading international video streaming platform for classical music concerts. You will be working on our highly visible iOS and tvOS apps. Development is fully native with fast adoption of the newest Apple technologies. Your contribution will shape a unique global service together with a small but powerful team. ā€“ Berlin Germany

iOS Swift & iOS QA Engineer @ Redzone Production Systems ā€“ Redzone is looking to hire talented Engineers to join our team. We build a communication and collaboration platform that enables frontline workers to resolve day-to-day production issues themselves before they become problems. (iOS, Swift, Scala, AWS, Kubernetes) ā€“ Remote, Miami FL, or Birmingham UK

Senior iOS Engineer @ Branch ā€“ Want to build transparent and honest financial services that help working Americans grow? Come join us! ā€“ Remote within the US

 

And finally...

Swipe right if you like the way they indent their code...

I can't let this pass without also linking to Matthew's tweet. I saw so many people tweet about this app during the week, but Matthew made me chuckle the most. In fact, this tweet is much more fun than the app. šŸ˜‚