Sponsored Link
SQLPro Studio β macOS & iOS database tools
A powerful suite of native iOS and macOS apps for working with all sorts of SQL databases. Easily browse and edit records, either visually or using a truly great query editor. If you work with SQLite, PostgreSQL, MySQL, or MSSQL β make sure to check out SQLPro today.
News
You cannot currently submit Electron apps to the App Store
It's hard to get a handle on exactly how widespread this issue is. It's almost certainly the case that rejections for private API usage are from an automated tool, so it's not the usual "just a human making a bad decision" problem. However, some Electron apps are making it through. I'd guess things are in flux at Apple around this right now, but the good news is that there's already an open pull request to remove the use of some of those private APIs. Hopefully, everything will be back to normal soon, but it's a good reminder that there is a real risk to building the core of your app around third party code.
A Companion for SwiftUI
You may have been enjoying reading Javier Nigro's posts about SwiftUI (I've linked to him a couple of times). I didn't know he was working on this though! It's an entirely new set of documentation, and it's really good. It's shipped as an app, which might seem strange until you realise that allows him to include interactive demos for many APIs. Wonderful! π
For full disclosure, Javier sent me a review copy of the app as he launched it, but this link is not sponsored.
Apple Push Notification Service Update
You're almost certainly already up to date if you use a third-party service to send your pushes, but if you're sending them yourself then you need to read this right now. You need to switch to the HTTP/2-based APNs provider API as soon as possible. It's no longer going to work this month next year.
UPDATE: As Jeff Nouwen notes it's transitioning in 2020, not 2019β¦ I really should learn to pay better attention! π₯΄
Tools
Building Faster with Bazel
How can you make sure your CI always succeeds? One way is to make your local development environment match your CI environment as closely as possible. Sergio FernΓ‘ndez has a suggestion on how to do that with Bazel.
Turn tests into documentation
I'm not sure this technique from Kristijan Kralj will ever produce great documentation, but it does output a useful artefact from your testing process. It's a good way to make sure your tests are well named, so do it for that reason.
Code
Deciding whether to adopt new Swift technologies
"Should I use SwiftUI" this year has really been the question of this summer. John Sundell gives his opinion on best practices around adopting new technologies and talks about how you can move towards SwiftUI slowly. He also links to his recent podcast episode where he interviews Josh Shaffer on SwiftUI which I would also really recommend.
Understanding the iOS 13 Scene Delegate
Get everything you need to know about the scene delegate with this post from Donny Wals, then follow-up with how to support multiple windows on iPadOS. While we're on the subject, it's also worth reading Vadim Bulavin's thoughts on the scene delegate and state restoration in iOS 13 too.
SwiftUI Accessibility
I've been watching this set of articles from Rob Whitaker grow over the last couple of months and I'm happy to see that the series is now complete! He covers Named Controls, Images, Dynamic Type, The Accessible User Interface, Sort Priority, Attributes, Traits, User Settings, and Semantic Views. Great stuff.
Design
Things to think about when communicating
As with almost everything related to accessibility, following these rules for designing for people who are on the autistic spectrum, have anxiety, dyslexia, or low vision will make your apps better for everyone. I think the stand out tips here are in the image around designing for users with anxiety though. Really interesting.
Up to Speed
SwiftUI Data Flow
Sarah Reichelt with a very simple, clear explanation of how data should flow around your app in a SwiftUI world. The post covers everything from simple properties, through @State
, @Binding
, @ObservedObject
, and @EnvironmentObject
. π
Videos
A class-dump in 2019
Fancy something low level to finish this week's newsletter off? I enjoyed this talk from Derek Selander, author of Advanced Apple Debugging & Reverse Engineering, from a recent SLUG meetup.
Jobs
Swift Engineer @ WillowTree β At WillowTree, 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
Mobile Engineering Manager @ Betterment β You will have the ability to manage a team of bright mobile developers and stay hands-on with modern mobile technologies β New York NY
iOS Engineer @ onX β If youβre passionate about writing great code, love playing outside, believe in protecting access to public lands and want to dominate the off-pavement mobile GPS market, then come join onX! Based in Montana, but open to remote for Senior level. β Bozeman MT, Missoula MT, or Remote
iOS Engineer @ Five Good Friends β We're an Aged Care and NDIS service provider made up of good people using helpful software. You'll be taking over the reins of our iOS app from our CTO to become its dedicated owner. This is a nimble, indie-like position where you'll craft everything from big pieces of architecture through to little pieces of polished interactions. β Brisbane, or Remote within Australia
iOS Developer @ Bandsintown β Bandsintown is a concert discovery and recommendation app powered by over 500,000 artists and serving over 50 million users. We're looking for an iOS Developer to join the team and help us continue to be the leading product in our field. β San Diego CA
Senior iOS Engineer @ Scoop β Have you ever dreaded a long commute? So have we. We're a small iOS team that's improving the lives of commuters. Our app is 100% Swift, well-architected, and well tested using industry best practices. Work with a fun highly-collaborative team that's making a real impact on people's lives, join Scoop! β San Francisco CA
There's even more job listings over at iOS Dev Jobs! Or, are you looking to hire a new team mate?
Comment
I've been thinking a lot recently about this newsletter, and all of the other ways that people keep up to date with iOS development. I have a few new ideas on the subject myself, but before I do anything I want to gather a bit of information from you all!
Do you have a few minutes to help by answering a few questions? I'd really appreciate it.
I know I'll get a biased view from just asking people who subscribe here, so if you also wouldn't mind tweeting or sharing the link so that we get the opinion of the whole community. In return, I'll share the aggregated results with you all in a future issue of the newsletter! Deal? π
Dave Verwer