Sponsored Link
Build real-time chat in less time with Stream!
Stream's SwiftUI Chat SDK helps you build beautiful chat applications with as little code as possible. Start your 30-day chat trial to try it out!
News
Submit your export compliance self-classification report
It's that time of year again!
Some questions you may have: Do you need to do it if you only use HTTPS connections to a web server? Yes! Do you need to do it if you're outside the US? Yes. Do you have to do it every year for every app? Actually, no! You should read this guide from David Olesch for the full details. It only takes 15 minutes, so you might as well do it right now. I did mine yesterday. ⏰
Also, subscribe to the newsletter halfway down the linked page to get a reminder every January 1st. That's how I remember to do it!
Apple’s use of Swift and SwiftUI in iOS 15
As regular as clockwork, here's Alexandre Colucci's annual look at how the adoption of Swift and SwiftUI are progressing inside Apple. Swift adoption continues its exponential climb, but look at SwiftUI starting its own exponential journey! What an excellent sign for the future of the framework.
Analytics now available for in-app events
Are you using Apple's new in-app events feature? You'll be glad to see that App Store Connect analytics now shows you some data for your events. 🎉
Tools
Easier comparison of XCTest failure output
I've lost count of the number of times I've had to copy XCTest failure information into a text editor and split it on "is not equal to" to try and find a one character diff, so I loved this new feature added in the latest version of Kaleidoscope. Just drag an XCText failure message onto the Kaleidoscope dock icon and get a character by character diff. Amazing. ❤️ Apple should add this as an Xcode feature.
For full disclosure, I received a review copy of Kaleidoscope 3 when it was recently released.
Automatically merging conflicts in Xcode project files
I first linked to Kintsugi last year in Issue 514, but it's always good to see someone being so impressed with someone else's tool that they take the time to blog about it. This week saw Igor Kulman do exactly that with a recommendation and some handy information about using this tool for easier Xcode project file merges. 🚀
Code
Lessons from Developing an App on the iPad
I love the opening sentence of Matt Waller's post about the pros and cons of creating an app with Swift Playgrounds 4.
I didn’t know entirely what I was getting myself into by making an app on the iPad.
The accompanying tweet thread of videos Matt recorded while developing the app is also worth a browse.
A document-based app in Swift Playgrounds for iPad
Talking of Swift Playgrounds 4, Gui Rambo has also been experimenting and tried to create a document-based app with it. He writes up his experience, including a little hacking around he had to do to get everything working. Would you expect anything else from Gui? 😂
A Swift Recoverable Precondition That Can Throw
You should read this post even if you don't need to solve the same problem with a precondition that Mickaël Floc’hlay did. The example that he uses made my day, and you might learn something while you enjoy it!
Where should you start with accessibility?
Bas Broek aims to answer this question with a five-part series covering VoiceOver, the Accessibility Inspector, and Dynamic Type. Bas recently worked at Apple on these technologies, so he knows what he's talking about!
Flow
This package from Alejandro Martínez looks great, especially when you need to make a UIKit view in code. There's also a complimentary blog post, if you want more details or some of the history behind this problem.
Design
iOS UI Design Resources
This is a great set of resources from Meng To. If you're looking to improve your iOS design skills (or any design skills!), you'll find something valuable here.
Videos
Building a Better Blur
This video from Ben Sandofsky is a must-watch. Concise and extremely well explained.
Jobs
Senior iOS Developer @ 3Squared – We are an award winning digital software company developing iOS applications that enables the transport sector to become safer, greener and more efficient through digitalisation. – Remote (within European timezones) with some on-site work (United Kingdom)
Senior iOS Developer @ ConceptsApp – Concepts is a sketching app optimized for iPad & Apple Pencil. We pay attention to the details and iterate on features until they are right. We've won multiple Apple awards and need a skilled Swift developer to join the team. 100% remote and we've always run that way. – Remote (within European timezones)
iOS Developer @ Doximity – Doximity, the medical network used by over 80% of US clinicians, is hiring passionate iOS engineers (remote). You'll 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 growing telemedicine feature. – Remote (within US timezones)
Software Team Lead, iOS @ Alarm.com – As a Software Team Lead on the iOS team, you will work to improve and add exciting new features to our mobile product. You will work in conjunction with our iOS Architect, Product Management and Quality Engineering teams to set the roadmap for our iOS app as well as manage a team. – On-site (United States in VA) with some remote work (within US timezones)
iOS Software Engineer @ Slumber Group – You will help millions of people sleep better as the lead developer on the Bedtime Fan app. You will be responsible for all technical aspects of planning and implementing new features. Initially, you will implement an improved UI/UX redesign. Join our growing, motivated and skilled team of 12. – Remote (within US or European timezones)
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 timezones)
iOS Engineer @ sengaro GmbH – We offer an exciting position in the heart of the Alps (Innsbruck) with technical responsibility and conceptual refinements of our long-term products. They are used in the medical field by paramedics and doctors to help saving lives every day. Become part of it and support people in emergencies! – On-site (Austria) with some remote work (within European timezones)
iOS Software Engineer @ Luma Touch – Work with an amazing team on the 2021 iPad App of the Year, LumaFusion, and on exciting new professional video iOS apps in development. Knowledge of audio-video editing and processing a definite plus. We have offices in Salt Lake City and Seattle, will accept remote for the right person. – Remote (within US timezones) with some on-site work (United States in UT)
Senior Software Engineer - iOS @ Citymapper – Cities are complicated. We're using the power of mobile and data to help humans survive and master them. We're building the best app, with the best routing, and the best data in all the greatest cities of the world where we can make a difference. – Remote (within European timezones) with some on-site work (United Kingdom)
iOS Developer @ Atomic Robot – We are a mobile app agency with a diverse, tight-knit team that is passionate about the craft of mobile applications. Our team is the heart of our business- diversity in skills, perspectives, and lived experiences helps us ship impactful products that connect, inspire, and engage audiences. – 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)
Senior macOS/iOS Engineer @ Paw (joined RapidAPI) – Paw is a native macOS app to test & document APIs. Our goal is to build the best possible productivity tools for building and designing APIs (REST & GraphQL). We're proud to have Airbnb, Apple, Mailchimp, MessageBird, and many other leading tech companies among our most active customers. – Remote (within European timezones)
iOS Developer @ WillowTree Digital – WillowTree is North America's largest privately-held digital product agency. We partner with many of the world's most iconic brands to develop elegant, highly-functional mobile & web applications used by hundreds of millions of people worldwide. We offer remote & hybrid-flexible & incredible culture – Remote (within US timezones) with some on-site work (United States in NC, OH, or VA)
Senior iOS Developer @ Flightradar24 – With over 2 million daily users, Flightradar24 is the world’s most popular flight tracking service. As a member of our small iOS team, you'll work on every part of our app and have a lot of impact. We care about code quality and building the best possible product, and so should you. – Remote (within European timezones)
Why not start the year with a look at what Swift jobs are available? There are plenty more opportunities over at iOS Dev Jobs.
Or, if your company is hiring, you can post jobs for free and get them in front of thousands of Swift developers who are looking for work. Get started here.
And finally...
Part of me pines for this alternate reality. 😍
Comment
Happy New Year, everyone! 🎉
If you pay attention to the rumours, this is definitely the year that Apple releases a VR headset… Or AR glasses… Or maybe upgraded AirPods with more AR functionality. Or possibly just a new phone with a holographic sticker on the back that says “AR Inside!”.
Is it obvious I don’t love the leaks and rumour cycle? 😬
But let’s talk about it for a second. It’s crystal clear that Apple has their eyes firmly focused on AR. Tim Cook has repeatedly gone on record saying it’s an area they’ve been interested in for five years now, and we don’t even need to talk about the amounts of engineering effort they’re putting into AR-related developer tools and frameworks.
Yet the dominant rumour at the moment seems to be about a VR or mixed reality headset. I don’t think that Apple creating a full VR headset makes much sense, so let’s not even talk about that. Mixed reality makes more sense, especially if that product is an internal prototyping device rather than a consumer product. Suppose you have multiple teams of people working on realityOS (rOS? ArrrOS? 🏴☠️). They need some way to work without having access to the finished product, both for secrecy reasons and because it isn’t… finished. 😂
It makes much more sense to think about the recent rumours of a mixed reality headset as something that might have leaked out of a wider group of people working on the vast amount of supporting technologies a “proper” AR product would need, rather than being an actual product itself.
The main reason I don’t think there’s going to be a mixed reality hardware product, though, is because most people don’t want to walk around with a relatively heavy, head-mounted visor that covers their eyes and makes it hard to drink a cup of coffee. I can see people walking around wearing a sleek, lightweight, beautifully designed pair of AR spectacles, but I just don’t believe walking around with a VR-style headset, even if it has a camera to allow you to “look through” it into the world, will ever be commonplace.
So if it’s an internal developer kit, maybe they’ll release a version of that prototype for us to start working on apps? 🤞 Might that be what’s coming this year? I don’t think so. I don’t see Apple showing a developer kit unless they were also able to announce the finished product, and they’re surely several years away from being able to ship that sleek version I was dreaming about a couple of paragraphs ago. No matter how carefully they pitched it, the world would see a mixed reality developer kit as a product announcement, and I don’t think Apple will ever ask consumers to walk around wearing a VR-style headset.
So, my prediction for this year is that this is not the year for any AR/VR hardware from Apple. Not even a holographic sticker on the back of the iPhone 14. 😂
I’m almost certainly wrong with every word I’ve written here, though, and will happily eat humble pie while coding an app for iGlasses in June. 😂
Dave Verwer