Sponsored Link
Instabug
Not only could you catch bugs before they happen and know exactly how a crash occurred, but you will also automatically receive device data, network logs, and reproduction steps with every bug and crash report. It only takes a line of code to setup. Signup now for free and get our brand new t-shirt once you integrate Instabug.
News
WWDC 2019
This is great advice (as always) from Mattt. It's way too easy to feel like you need to adopt every technology right now after the excitement of last week, and the countless blogs, tweets, (and yes, newsletters!) writing about nothing else don't help.
Before you drop everything to catch up on session videos or start to feel bad for “falling behind,” remember that we’ve been here before. The Swift programming language took a long time to become viable for app development. Years. Today, Swift 5 is barely recognizable from what we first saw in 2014.
It's OK if you don't adopt everything right now, or even for many years.
The Things You May Have Missed at WWDC 2019
It was eye opening to skimming over this post from Patrick Balestra to see the sheer number of smaller announcements that I missed last week. I bet there's at least ten things in this list that'll be new to you too. 🎁
How long have SwiftUI and Combine been in development?
This isn't surprising information from Joe Groff, but it is worth remembering that the things we get to see have been in the works for a very long time.
Tools
XCLogParser
This tool from Erick Camacho is cool. Parse out your build and test logs and get reports in various JSON formats, or as an HTML report. I can see this being really useful in a team environment.
Using Instruments to profile your SwiftUI code
Did you spot that there were new Instruments tools for profiling SwiftUI layout? Don't worry if you missed it, because Paul Hudson has written up a comprehensive guide on how to get it up and running.
Soulver 3
Soulver has been one of my most used apps for so many years, I really can't imagine my life without it. This update takes an app that I considered to be almost perfect, and makes it so much better. Yes, it's not directly related to iOS development but I'm sure you calculate things every day as you develop code. I know I do!
Note: This isn't sponsored, I'm just a regular customer. As a reminder, the only sponsored content in this newsletter is the sponsored link and the job listings and if I ever do receive something complimentary, I'll note it when I talk about it.
Code
View Controller Presentation Changes in iOS 13
Thanks to Geoff Hackworth for writing up these important changes to view controllers in iOS 13. If you have a modal view controller in your app (and who doesn't!), you'll want to read all of this.
Also on the same subject, this is super cool even though it looks weird in a rectangular video.
How To Adopt Dark Mode In Your iOS App
What a wonderfully comprehensive guide to Dark Mode from Federico Zanetello. For such a (relatively) simple feature, there's still plenty to learn about if you're implementing it.
First impressions of SwiftUI
A little over a month ago, I released CwlViews and then followed up with an article suggesting that Apple might be about to release their own declarative views library. At WWDC this week, they did just that, releasing SwiftUI.
You'll learn more about SwiftUI while you read about how it has superceded CwlViews. 😬
Swift Opaque Result Types
I liked this explanation of opaque result types from Jeroen Bakker. This is one of the features of Swift that makes SwiftUI possible, and it'd be a pretty ugly sight without it. See how life could have looked without it in this post. There's also a good write up of some of the other language features that make it all possible in John Sundell's post on Swift 5.1 features.
Dependency Injection with Storyboards
If this had been a normal WWDC this would have been huge news, but instead it has barely had a mention. That doesn't mean it's not important though, especially if you're not jumping onto the SwiftUI train with both feet. Yes, the code on this slide is for macOS but it works with iOS too.
While I'm on the subject, Vadim Bulavin also wrote up a great article on dependency injection this week which should get you up to speed if you're new to the technique.
Design
SF Symbols Rendering Quality
I was sad to see this tweet from Marc Edwards. SF Symbols looked like such a win when it was announced at the conference last week, but this output is really disappointing. It's not something that can really be fixed either. Combine that with the very restrictive usage rules and the future of icons on iOS doesn't look quite as bright as it did last week.
Business and Marketing
Changes to the App Review Guidelines around subscription UI
I've not seen this written up properly elsewhere yet, so I'll use this tweet from Jacob Eiting to bring you the news about the changes to that troublesome subscription screen review guideline.
I know that everyone reading this will take these new guidelines and be responsible with them. I just hope that the slightly less honourable side of the iOS ecosystem doesn't ruin this for everyone and cause things to go back to how they were before this change. 🤞
It's also very promising to see this tweet fromFederico Zanetello who has tested the new version of the guideline.
Jobs
Humbly Confident Senior Mobile Developer @ You Need A Budget (YNAB) – YNAB is growing, and so is our development team! We’re a software ecosystem that includes personal budgeting apps for web, iPhone, iPad, Apple Watch, and Android phones. Our mission is to help our users take total control of their money—not just by using an app (if only it were that easy!), but changing habits and ways of thinking. – Remote
Swift Engineer @ WillowTree – At WillowTree, Senior Swift Engineers have the freedom to create products people love. You’ll collaborate with a cross-disciplinary team to build large-scale products for well-known brands. We look for team members who advocate for software engineering best practices and inspire their team to continuously learn and improve. – Charlottesville, VA
Senior iOS Developer @ Doist – Joining Doist as an iOS developer means you'll be joining a diverse, remote-first team of 60+ people who are distributed across 25 countries. You'll get to help create tools, like Todoist and Twist, that promote a calmer, more balanced, more fulfilling way to work and live. – Remote
Senior iOS Developer @ Float – Are you Float’s next Senior iOS Developer? As Senior iOS Developer with Float, you will lead the mobile development team to design, implement, test, and deliver in an Agile environment. Float designs and builds mobile products that make our clients’ workforces more effective. – Remote or Morton, IL
Senior iOS Engineer, Swift @ Starry – Tired of your monopolistic cable provider? Join Starry! We are a booming 5G internet company rapidly expanding to more than 20 cities and beyond. Our teams work hard to delight our customers with the best experience. – Boston, MA
Engineering Manager @ onX – Lead the mobile development teams at onX, a Montana based company with the leading off-the-pavement GPS mobile app! As an Engineering Manager, you will manage 10+ talented and fun-loving devs who take pride in empowering our customers to find their way in the wild. Our Engineering team is growing quickly and onX is taking our technology into new outdoor markets... come join the journey! – Bozeman, MT
As a result of the great feedback I've been receiving about iOS Dev Jobs, I've made some changes to the site this week! Remote jobs are now much easier to spot in the list, and the option to filter them is now right at the top of the "All Locations" drop down. 👍 I hope that helps for those of you looking specifically for remote positions.
Are you looking for a new job? There's plenty more job listings over at iOS Dev Jobs. Should your job listing be posted here? It's as easy as posting a featured listing.
And finally...
MemeMaker
Making memes and learning SwiftUI, all in one handy GitHub repository from the one and only James Dempsey!
Comment
If you saw photos of me standing next to a picture of … well, there's really no other way to say it than posing next to a life-sized picture of myself at WWDC last week then you may have been left wondering what on earth was going on.
I thought I should explain, so I wrote up the story of #picswithdave yesterday. 🙈
Dave Verwer