At every year’s WWDC, Apple executives use their stage time to hint at where the company’s platforms are headed. Those hints don’t always lead to additional clarity; Apple has so many platforms (iOS, macOS, watchOS, and more), apps, and services that discovering a common narrative thread is difficult.
For example, is Apple totally committed to augmented reality (AR) and the “metaverse”? It sure seems that way, provided you believe all the rumors about an AR headset coming out early next year. How will Swift, Apple’s newest programming language, evolve over the next decade? Should we expect new tooling from Apple soon?
We spoke to a few experts to get their take on Apple’s work to improve its ecosystem, as well as where they think Apple might be headed in the future.
What are some of the most interesting changes to iOS and the Apple developer experience in the past five years?
The team at Pixelfield says Apple might be setting developers up for a better future. “The review process has, in time, gotten very tricky,” they said, referring to the process to get apps approved and updated. “A few years ago, it was almost guaranteed you'd get your app into the App Store if it worked.”
That’s no longer the case, and companies can find themselves pinned between trying to get Apple’s approval and creating an app that stands out amidst a sea of competitors. “It also means there's more pressure than ever to find new niches and new ways to make apps more competitive,” Pixelfield’s team adds.
Yahoo iOS lead Vadim Dagman thinks Swift concurrency has been impactful for developers. “One of the most impactful changes was the introduction of Swift concurrency in 2021. Some may say, ‘So what? The async/await pattern has been around for ages in other programming languages; Swift is just catching up.’ While true to some extent, Swift Concurrency goes far beyond that simple async/await pattern.”
Why is concurrency such a big deal? “The Swift compiler doesn’t let you make mistakes that would be very difficult to debug at runtime,” Dagman adds. “The actors make the data integrity an inherent feature of the language. This truly put in motion a paradigm shift in iOS software design. We will see much more clean, elegant and performant software in the future powered by Swift concurrency.”
Serhii Butenko, software engineer at MacPaw, adds: “SwiftUI has definitely changed the way we develop apps. We can easily use unidirectional architectures. Modular apps using SPM are also becoming more popular.”
What tools do you think iOS developers will be using in 2, 5, 10 years?
That’s a difficult question, considering how Apple often likes to keep many of its tooling iterations under wraps until release. “Xcode and the accompanying diagnostics/performance tools will remain the main toolkit for developers writing code for years to come,” Dagman tells Dice, “though writing code is just the tip of the iceberg. Testability and CI/DevOps integration are the areas where I expect to see much more development trends in the next five years.”
Dagman also wants things to speed up: “I think unit testing should be a Swift language feature, not just a framework. The same way Swift compiler guides you through Swift concurrency, it should nudge you to write the code that is inherently testable. Everything also has to be much faster—the entire pipeline from compile to deployment. I hope 10 years from now this will be the case.”
Butenko thinks Xcode will remain the default environment for developing apps—and might change dramatically: “Apple will deprecate storyboards (they did so for watchOS already) so all UI will be on SwiftUI.” Get ready to write apps faster than ever… hopefully.
What tools and/or skills should iOS developers work on today to prepare for the iOS of tomorrow?
“One tool that is not being used as widely as [it] should [is] ‘App Clips,’” the crew at Pixelfield says. “App Clips help bring a new level of user experience, and developers should focus on this more to enhance the end users’ experience. It also helps you to quickly demonstrate the value your app has to offer—a real selling point in a very competitive space.”
No matter how Apple evolves its platform (and tooling), developers need to concentrate on building the best possible apps. “It takes strong software design skills and knowing how to use the diagnostics/performance tools to make best use of the vast power provided by the platform,” Dagman says.
Butenko advises: “Automate as many things as possible: unit and IU testing, linting, formatting, generating xcodeproj files, uploading to App Store. The more errors are handled automatically, the more productive you will be.”
How can developers best prepare for what’s next for iOS?
“Keep abreast of what’s new in the iOS world by watching Apple’s Worldwide Developers Conference videos as they come out every year,” Dagman reminds us. “If you fall behind on what’s current, it will be harder to catch up on what comes next.”
Butenko adds: “The best way to be ahead of iOS trends is to look at other languages and platforms. Async/await was in Python for years, many JavaScript UI frameworks implement the declarative programming paradigm as well as SwiftUI, and SPM packages look very close to npm packages.”
Do you think iOS will ever be purely augmented reality?
This is an issue on the forefront of many developers’ minds, especially since the rumors of Apple entering the augmented reality (AR) space have gained steam over the past few years. However, many developers and software companies don’t think Apple will go “all in” on augmented reality in the same way as Meta/Facebook.
The Pixelfield team says: “We don't think iOS will ever be purely augmented reality, at least not in the near future. The augmented reality world offers a lot of possibilities, and is an ever-growing industry, however going strictly AR-based does not seem to be useful.”
Nonetheless, developers should closely study whatever Apple announces in terms of AR. After all, who knows what the future holds? “I think [iOS being totally augmented reality] might happen, but not in the near future,” Butenko says. “We've been using kind of the same interface on phones for nearly 30 years. Changing the paradigm of interaction would take even more time.”