Sponsored Link
Find An iOS Dev Job Through Vettery
Vettery specializes in developer roles and is completely free for job seekers. Interested? Submit your profile, and if accepted, you can receive interview requests directly from top companies growing their mobile dev teams. Get Started.
News
Building Adaptive User Interfaces for iPhone and iPad
A quick reminder from Apple that from April this year, all apps need to work on all device sizes. Your app is probably in pretty good shape for this already, but it might just be worth having a check around it before it gets to the point where an update gets rejected in April. 👍
Goodbye, Clean Code
You might have seen this post from Dan Abramov doing the rounds this week. If you didn't, it's worth a read. It's hard to make sweeping rules about how "clean" your code should be, but I know I'll choose simple code over clever code every time. On a similar subject, I also enjoyed this piece, which should raise a smile or two.
Tools
JetBrains Mono
Is a font a tool? I'd say it is. This tool helps make your code more legible, and what better goal could a tool have? 👍 I like this new font by JetBrains. It's clear, has all the weights you could need, and has fancy ligatures as made famous by Fira Code. I've set my default Xcode font to it.
Code
Structs, or Classes?
This tweet thread from Nick Lockwood should be a blog post, so I'm linking to it as if it was! 👍 Structs are more efficient in certain circumstances, and classes are more efficient in others. They both have strengths, and they both have weaknesses.
Spek
This new BDD testing framework from Khoa Pham is implemented with Swift 5.1 function builders and uses XCTest assertions. It supports all of the features you'd expect in a BDD framework, so take a look!
ViewState in SwiftUI using ViewBuilder
I enjoyed this article from Thomas Sivilay on keeping track of UI state in your SwiftUI views by using a ViewBuilder. The example at the end brings it to life, so I'd suggest starting there.
Animating complex shapes in SwiftUI
At first glance, the animation system with SwiftUI looks so simple that it appears limited. Luckily that's not the case, and if you dig in, there's a wealth of things you can do with it. Here's Pavel Zak talking about complex shape animations. Also, this... 🤯
How to Switch Your iOS App and Scene Delegates for Improved Testing
Do your app's tests take a long time to run because your app is doing its full initialisation process every time it starts, even when running unit tests? That initialisation process probably starts in your application delegate, so why not switch it out for one specifically designed for the job? This article by Geoff Hackworth is long because it's not quite as simple as you might think it should be, but it's worth a read if you think this could help your test suite run more quickly.
Design
How do you localise colours in your projects?
Vadim Drobinin asking how to localise colour (and yes, both of those words are correctly spelt, for me! 😂) in your projects. I think a more interesting question might be whether this is even something you think about. Is it? Maybe it should be.
Videos
Videos from Mobiconf 2019
Why not start this weekend with this excellent set of videos from last year's Mobiconf? There are some fantastic talks by very talented speakers here.
Jobs
Junior Developer @ 1Password – Everyone needs a place to keep their passwords safe, and many choose 1Password. We're hiring some junior developers, which is a unique opportunity for you to join a talented team, learn how we do things, bring your own ideas, and continue to grow with us. – Remote
Principal Software Engineer @ WillowTree – As an Engineering Manager/Principal Software Engineer you’ll mentor a team of all levels to help them achieve their personal and professional goals. Your partnership and coaching skills will impact our teams, clients, and company! You’ll have clear oversight of how engineering runs day-to-day and you’ll influence project outcomes and team happiness. – Charlottesville VA
Sr. iOS Engineer, Growth @ VSCO – The Growth team is looking for an iOS Engineer to work on a product that impacts millions of people around the world. You’ll be innovating and creating ideas through experimentation and learnings that will lead to significant changes in user acquisition, engagement and revenue, collaborating with other developers who have a similar passion for both our users and creativity. – Oakland CA
iOS Instructor @ Lambda School – Lambda School is a combination of a school and an investment fund. Lambda School's mission is to find untapped or underutilized talent and to train that talent for the most in-demand jobs in the world. Lambda School is pioneering a new model of higher education in which the school invests in the students, instead of the other way around. – Remote within the US
Senior iOS Developer @ Alarm.com – Collaborate with outstanding people; Make an immediate impact; Gain well rounded experience; Work with the latest technologies; Focus on fun! – Tysons VA
Senior iOS Software Engineer @ The Stars Group – We are looking for a Senior iOS Software Engineer to join our busy and dynamic Global Sportsbook Trading Platform team in our Leeds office. Come and join the new team building the exciting new products featuring rock-solid stability, high velocity code-shipping and ground-breaking innovation. – Leeds UK
Senior iOS Developer @ Dr. Bill – Dr. Bill saves time for Canadian doctors by making medical billing delightful (OK... at least suck less). Join us and help lead our team as we accelerate our growth to dominate medical billing in Canada! – Vancouver Canada, or Remote
Software Engineer, iOS @ Wikimedia Foundation – The Wikimedia Foundation is looking for a Software Engineer to join the iOS team. You will be responsible for thoughtfully crafting user experiences that empower and delight our users. You will work closely with the rest of the team to collaboratively iterate on new ideas. In this role, you will create new features, fix bugs, and define the future of Wikipedia on mobile devices. – San Francisco CA, or Remote
Is your company hiring? Get yourself a new teammate who already subscribes to iOS Dev Weekly by listing any open positions at your company over at iOS Dev Jobs? Standard listings are free, so there's nothing to lose! 👍
And finally...
Sometimes, the internet is a beautiful place. Where else could you find an in-depth investigation of which scissor emojis could actually cut paper? ✂️😂
Comment
Last week, I opened with a comment that reiterated that everything was fine if you hadn’t implemented any SwiftUI yet. I received several emails on the subject after the newsletter went out that suggested it had resonated with you. I'm glad.
Everything is fine, but I’d also suggest that the first half of this year might be a good time to start getting up to speed with these new technologies if you can.
We’ll likely see tremendous changes and improvements to both SwiftUI and Combine from Apple this summer. It’s also likely that SwiftUI in iOS 14 will be a much more feasible platform for shipping apps than it is in iOS 13. You’ll probably want to start using it in anger before iOS 15 arrives.
So, why not build something now? It doesn’t matter what, and it certainly doesn’t need to ship. But you’ll learn so much, and you’ll be so much more prepared for iOS 14 and beyond.
You’ve still got plenty of time too. For example, if you started Paul’s 100 Days of SwiftUI today, you could be finished by the 26th of April. Just in time to take a short break before WWDC.
But no matter how you choose to do it, or what you decide to implement, it’s probably a good idea to have built something with these new technologies before June. Give it a go!
Dave Verwer