State of Subscription Apps 2023
RevenueCat's annual report shares aggregated data from over 22,000 subscription apps. See how you stack up against the competition and improve your app business with actionable insights, never-before-seen benchmarks, and tips from industry experts.
Swift/Objective-C Developer Ecosystem Survey
I’ve often said that while SPM is gaining adoption fast, CocoaPods will be with us for a very long time. With that in mind, the most interesting answer in the results of the JetBrains Developer Ecosystem Survey was that only 25% of people using CocoaPods have a current plan to replace it with SPM. There are plenty more stats to dig into, so give the whole thing a read.
Note: I couldn’t find any reference to how many respondents completed this survey. Also, these figures are from a small slice of total respondents as the questions on this page were only shown to the developers who chose Swift or Objective-C as a primary programming language. The results are interesting, but this data may have been gathered from a small number of people.
Using ChatGPT to Help Write SwiftUI Code
There have been so many blog posts on using ChatGPT to write SwiftUI apps, so why am I only linking to this one from Quentin Zervaas? Because with some tweaks, it ended up inside an app on the store!
I have the same questions about the software licenses that ChatGPT was trained with as I do with GitHub Copilot. I’d want much more information about that before I’d ever include something it wrote in an app, but it’s also possible I’m a too-cautious old dinosaur and will be left behind. 😬🦖
The evolution of Facebook’s iOS app architecture
I’ve never worked on a huge iOS app like Facebook, so this retrospective by Dustin Shahidehpour covering the last ten years of development was quite eye-opening. 😳 The one thing I’m not going to do is pretend to understand the issues of an enormous company or a team like that and pretend I could do any better.
Detached Tasks in Swift explained with code examples
It’s rare to want to fire off a block of code concurrently and then never care what happened to it. That said, it’s possible, and I’ve not seen anyone else talking about detached tasks, so round out your knowledge of the Swift concurrency system with this post from Antoine van der Lee. They might come in helpful when sending analytics events or similar.
Creating better pull requests
Being a good developer isn’t all about writing code, and there are some great tips on applying that thinking to your pull requests in this post from Danijela Vrzan. The one that stood out to me is that GFM supports tables which are perfect for side-by-side screenshots of your iPhone app. 🤩
Hundreds of experiments
All four of these experiments that Ali Abouelatta are worth a look, but the widgets… Oh, the widgets! 😍 My only wish is that they didn’t need to take the space of four icons at minimum. Please let iOS 17 bring 2x1 and 1x1 (yes, SwiftUI icons!) widgets. 🤞
After last week’s links to custom SF Symbols, Justin Bianco sent over a link to his new repository cataloguing all custom SF symbols. Through it, I then found this set of social symbols from Icons8, which includes some of the more niche social networks but still keeps all the different variations. 👍
Senior iOS Engineer @ Mindstone – Mindstone's vision is a world where people get ahead not because of who they know and where they came from, but what they know and their ability to learn. iOS is our most important platform to help millions of people to create a healthy learning habit, building confidence and skills. – Remote (within European timezones) or on-site (United Kingdom)
iOS Test Automation Engineer @ komoot – We’re looking for an engineer to play a key role in scaling our testing process by automating our manual test suite and enabling our development teams to release faster with confidence. You’ll also have a strong QA mindset with a clear understanding of which user flows are critical for the product. – Remote (within European timezones)
Senior iOS Engineer @ Polywork – Polywork is a well-funded startup looking for a third iOS developer to join the team. We’re building a modern professional social network that recognizes people as more than their job titles. – Remote (within US timezones)
Senior iOS Native Engineer @ MartianCraft – MartianCraft has been making Mac and later iOS software for discerning clients for nearly two decades. Our team of in house engineers and designers is second to none. As a full-time remote company for more than a decade we understand the needs, requirements, and pitfalls of working remotely. – Remote (within US timezones)
iOS Engineer @ Major League Baseball – Launched in 2001 as the tech arm of Major League Baseball, MLBAM is renown for creating mobile experiences that baseball fans love - and we are just getting started! – On-site (United States in CO or NY) with some remote work (within US timezones)
Senior Swift (iOS) Developer @ Nord Security – iOS developer has an essential role in growing the NordPass product and a lot of freedom to make an impact. There is plenty of space for experiments and constant improvement. You would be a part of a very ambitious and enthusiastic team which gives a lot of support and encouragement every day. – Remote (within European timezones)
Are you hiring? You can post any iOS/macOS/Swift job for free over on iOS Dev Jobs. What are you waiting for?
What did the Lisa source code release need? More context and background. 😍
I don’t think I’ve ever seen anything that sums up the balance of the pros and cons of life in the iOS App Store better than this Apple Developer News post from last week. It announces more flexibility to the billing grace period feature for subscriptions and subscription trials in your apps.
Why does this sum up the App Store? On one hand, a feature like billing grace periods, combined with Apple’s subscriber retention features, make a tangible difference to the success of a subscription business. All that logic, all the edge cases, and all the implementation time. All done by Apple. You don’t need to write any code or run a server. You didn’t even have to attend the endless tiresome meetings that I’m sure made up part of the process. They handled it!
So what’s on the other side of the argument? What if you wanted to change how your subscription billing works or add features like these for your app five years ago? What if you believe that the lack of this feature (or a hundred others) costs your business money, and if you were in control of your checkout and subscription logic, you would have changed it? You (mostly) can’t. Apple handles it, and that’s that.
I know many of you feel strongly about whether Apple should be forced to change the App Store rules in this area. I stopped writing on that subject long ago as it either will or won’t happen, and all the words I could write won’t make the slightest difference one way or another. I just really liked how the news article I mentioned above illustrated that there are two sides to the argument so well. Please be kind and take a second to read your email back to yourself before pressing send if you decide to reply. 😬Dave Verwer