Sponsored Link
iOS App Security: Is it really better than Android?
One of the main ways Apple protects its ecosystem is its complex code signing process aimed at preventing code tampering and re-distribution. But is it adequate? This helpful infographic outlines the biggest misconceptions around iOS security. Learn more.
News
Xcode Cloud subscriptions now available
If you’ve been waiting to upgrade your Xcode Cloud tier for more hours, now’s the time! All mention of the word beta is gone from the marketing page, so it’s possible Apple consider this a full release. You can use 25 hours/month without charge until the end of 2023, so if you want to try it for free, make sure you do it before then!
Tools
Sourcery Swift Package command plugin
There are a couple of reasons to read this post from Pol Piella. First, it’s an article about creating a command plugin for with Swift Package Manager. Then, it's also a nice demonstration of using Sourcery to solve a real-world problem.
Xcode's refactoring options for async/await
Is anyone else guilty of only using the Xcode refactoring menu for “Rename…”? 🙈 Marco Eidinger encourages us to look deeper with the addition of async/await refactoring in Xcode 14. If you want to see them in action, he also posted a Twitter thread with videos.
Code
Create Live Activities With ActivityKit
The headline feature on Apple’s iOS 16 preview page is the Lock Screen. Is it because of some new hardware features? We’ll find out next week! One of the major enhancements is live activities, and if you’d like to add one to your app, check out Batikan Sosun’s advice on getting started.
Sharing cross-platform code in SwiftUI apps
There’s no doubt that SwiftUI makes cross-platform¹ development easier, but there are still some rough edges as you get beyond the basics. Jesse Squires shows off a technique that he demonstrates with some clipboard code but can easily be adapted for other situations.
¹ I wish there was a concise way to say “cross-platform, where the platforms are all Apple platforms”. Maybe I should use cross-Apple-platform, but it feels awkward. 😬
Using CoordinateSpace to draw over a SwiftUI List
Creating a list in SwiftUI is straightforward, but what if you needed to draw something over the top of the list items so it could move independently of the row clipping? Matthew Flint has a great example of doing just that!
Three UIKit Protips
Do lose sleep thinking about force unwrapped variables as a result of needing to assign values outside of initialisation? I liked the solution that Steve Landey mentions in this post of using an @AssignedOnce
property wrapper. I also hadn’t come across Kotlin’s late initialisation before reading this article!
Design
Exploring the Legacy of Aqua
Spend five minutes today looking over Nick Babich’s thoughts on Aqua, the original UI that arrived with OS X. You won’t regret it.
Books
Pro SwiftUI
I knew this book from Paul Hudson would be a little different when the Preface had me opening up a swiftinterface
file from deep inside the iPhone Simulator SDK. Is this an advanced book? Yes. Is this a book that will let you better understand how some of the internals of SwiftUI work? Yes. Is it also a practical book? Yes. I can’t imagine Paul releasing something that didn’t ultimately focus on practical skills. 👍
For full disclosure, Paul sent me a review copy of the book.
Jobs
iOS Programmer @ 37signals – 37signals is hiring 2 iOS programmers to help build and maintain our mobile applications. We’re best known for making Basecamp and HEY, writing business and software books (Getting Real, REWORK, REMOTE, It Doesn’t Have to Be Crazy at Work, and Shape Up), and inventing the Ruby on Rails framework. – Remote (Anywhere)
Senior iOS Engineer @ Polywork – Polywork is a well-funded startup looking for a second 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)
Mobile Full Stack Engineer @ Expensify – Join our passionate team of top-notch engineers to solve a real-world problem, and help people spend less time managing expenses and more time pursuing their real goals. – Remote (Anywhere) with some on-site work (Australia, United Kingdom, or United States in CA, MI, NY, or OR)
iOS SDK Developer @ Stream – You will write and maintain our open-source SDKs that are used by hundreds of our customers and consumed by hundreds of millions of their users. – Remote (within US or European timezones)
Senior iOS Engineer (Swift) @ GoodNotes – GoodNotes is a top-rated paid-for productivity app, available to use on iPad, iPhone and Mac devices with over 10m MAU. You will own your projects and work alongside a high-calibre cross-functional team to continue delivering a product our users love! – Remote (within European or Asia-Pacific timezones) or on-site (Hong Kong or United Kingdom)
Senior iOS Engineer @ Sendwave – We currently have a 4.6-star rating on Trustpilot — people put their faith in us to deliver their money quickly, securely, and affordably. And we’re pretty darn proud of that. – Remote (within US or European timezones)
Are you looking for a new challenge at work? Check out the full selection of jobs over on iOS Dev Jobs.
And finally...
How many cameras will next week's new iPhone have? You decide! 📸📷📸📷📸
Comment
It’s easy to miss if you’re not paying close attention, but Apple is doing lots of open-source work these days.
The most obvious example this week was the open-source release of the DocC version of The Swift Programming Language book. 🚀
It makes perfect sense, of course. An open-source programming language should have open-source documentation. However, given that the book initially appeared as closed-source, I’d imagine getting the momentum together to make this happen didn’t come easily.
But it’s not just that. There are libraries, too. Lots of libraries, with new ones arriving all the time. Like this week’s release of swift-nio-imap. Lots of this library work focuses on server-side Swift, but not all of it. There are also packages like swift-argument-parser and swift-collections, and tools like DocC and swift-format.
Finally, there’s plenty of work going on with the organisation of open-source effort through the workgroups. This all started with the Swift Server workgroup, but recently expanded to new ones like the Language workgroup, Documentation workgroup, and the Website workgroup that works on the also recently open-sourced website.
I have speculated before that it might make sense for Apple to create something that uses server-side Swift, maybe an “iCloud functions” type product? However, the longer it goes, the less sure I am that’s the plan. Instead, perhaps the plan is already well in progress, building an open-source foundation for server-side Swift that community frameworks like Vapor can build on, or services like AWS Lambda can leverage.
Whatever the reasons, it seems like Apple and the Swift team are committed to working in the open with more than just the language and tooling, and I like that. 👍
Dave Verwer