Sponsored Link
Why do mobile-first companies choose Instabug over Crashlytics
Instabug helps you identify and resolve severe crashes quickly. You can retrace in-app events and know exactly which line of code caused the crash along with environment details, network logs, repro steps, and the session profiler. Ask more questions or keep users up-to-date with in-app replies straight from your dashboard. We take data privacy seriously, so no one sees your data but you! See more detailed features comparison and try Instabug's crash reporting SDK for free.
News
Ten years of building apps
Let's start this week's links with a bit of inspiration in the form of this wonderful post from Lukáš Petr, author of Timelines.
I won't take money as a metric of value, as a metric of my worth.
Spoken like a true indie developer Lukáš! Seriously though, this article really inspired me and I think it'll do the same for you too. Also, while we're on the subject, I also loved this tweet from Ryan Ashcraft (and congrats on the FoodNoms launch, it's great). ❤️
Tools
My enemy the Minimap
I'd maybe not go as far as describing the new mini-map in Xcode as "the enemy" but it's a feature that seemed like it'd be much much more useful than it's turned out to be. I've been similarly underwhelmed by other mini-map features in other editors in the past, so I guess they're just not my thing! It was only after reading this that I thought about turning it off, which I have now done, the extra space is so much more useful.
SwiftPM Catalog
This new app from Helge Heß for finding SwiftPM packages is very cool. It uses the (private) API I built for the SwiftPM Library for search results but adds manually curated packages as well. I did have plans for a macOS client for the SwiftPM Library directly but might end up collaborating on this instead. 🎉
Tabs or spaces, and indentation preferences on a per-project basis
Thanks to Joe Cieplinski for asking the question, and to Dmitry Rodionov for answering it! I didn't know this.
Code
Secret Management on iOS
Following this tack, our imagined plot shifts from an Oceans 11-style heist movie to a high-stakes Behind Enemy Lines escort mission movie. (Your mission: Transfer a payload from the server and store it in the Secure Enclave without an attacker compromising it.)
I think this is one of the best posts I've ever read on NSHipster, thanks for putting it together Mattt! 👍
Adding custom attribute to NSAttributedString on iOS
Did you even know you could add your own, custom attributes to attributed strings? Toomas Vahter did, and here he is with a great little post on how to both define, and render any number of additional attributes.
SwiftUI Architectures: Model-View, Redux & MVVM
I don't tend to link to a lot of architecture based posts here, it's a topic where there's never going to be a consensus amongst developers, and I must admit I grew a little tired of the endless posts on what's best. I do think the topic may be worth discussing again at the moment though with the advent of SwiftUI. So here's a post from Paul Kraft on the topic.
How Swift Achieved Dynamic Linking Where Rust Couldn't
Let's finish this week with something really deep. If you're interested in learning more than you'll probably ever need to know about the Swift ABI, this piece by Alexis Beingessner is going to take you there. 😬 I'll admit, I didn't get through the entirety of this one...
Business and Marketing
"...and we'd like to allow users to message each other"
You may not know this but the first major iOS app that I created included the ability for users to not only send each other messages, but also photos. 😬 So, when I read what Dermot Daly had to say about including any kind of messaging in iOS apps, I nodded along with every word… I've still got some of the scars from moderating that app!
Videos
Swift 5's Result Type
Ben Scheirman with the clearest walk through of Swift's Result
type that I've ever seen. 👍
Videos from MobileOptimized 2019
A full set of videos from the recent MobileOptimized conference in Minsk! 🇧🇾
Jobs
Lead Application Engineer - SwiftUI, Combine, iOS/macOS @ LiveSurface – Build the next generation of LiveSurface products with a focus on SwiftUI, Combine and the newest Apple frameworks. LiveSurface is an industry leader in visualization and image creation tools for creatives. We blend clean UX, proprietary rendering technology and hand-curated content to provide realtime photorealistic visualization to our users. – Remote
iOS Developer (Swift / SwiftUI) @ Clay – SwiftUI + Thoughtful Design + Privacy + Complex Data Science = Clay, the better way to be thoughtful with the people in your life. Lead mobile development and work with a small, passionate team of product people building the most exciting new iOS 13+ product out of NYC. – Remote, or New York NY
Lead iOS Developer @ Atomic Robot – Atomic Robot has the best mobile development team in the City, and is constantly pushing the boundaries on what is possible with Mobile Technology – Cincinnati OH
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
There's even more job listings over at iOS Dev Jobs! Or, are you looking to hire a new team mate?
And finally...
If Swift 6 is delayed, this is why... 😂
Comment
Let me start this week by saying thank you to everyone who took the time to answer last week's survey on keeping up with iOS development. At the time of writing it's had 2,280 responses which is amazing. Thank you.
I also want to say how blown away I was by the incredible kindness I received in the free text comments at the end of the survey. I read every one of them and you're all entirely too kind. I didn't create the survey for an ego boost but I definitely received one. ❤️
I promised to publish aggregated results, so before I say another word here they are!
What did I learn though? The summary is that you're reasonably happy with the amount of content you consume on iOS development but could handle a little more if pushed, and discovery of content is still a problem that's not being solved by Medium. That's really useful to know.
Talking of Medium, I had a couple of people ask why I had an entire question about it in the survey. I'll explain. When I speak to people who write there, their primary reason is often that they believe people will discover their posts through Medium. The results of the survey confirmed my suspicion, that people use Medium to read, but not for discovery. Obviously I got a slightly skewed view because I primarily asked an audience of people who use an email newsletter to discover articles, but with so many respondents I think I can take some indication from the results.
I also just want to reassure you all that iOS Dev Weekly isn't going anywhere! I still love writing it and I can't see a day where that changes. The reason I did this survey is that I've been wondering whether there's room for something else based around the open web (specifically RSS, which I love) that's curated by the crowd, rather than just by me.
Oh and one more thing before I finish… I've had a desire to do a larger survey of the iOS development community for a while now, and the response to this one has spurred me on into action. We're now a few weeks into this year's iOS releases so I think it's a good time to get a comprehensive look at how our community feels about iOS development this year (and every year in the future as I'm planning to make this an annual thing). I'm putting together a large set of survey questions, but I'll also take feedback from you all on what to ask, once I have a first draft together. I'll also make the results into a dedicated survey web site, so stay tuned for that.
Dave Verwer