Open Source Chat SDK for iOS
Stream's new iOS Chat SDK provides everything you need to add a fully-featured chat interface to your iOS app in a matter of minutes. Get started now.
iOS Code Review Tips
Let's kick this week's links off with a new newsletter. Marina Gornostaeva is taking a bi-weekly look at code tips from Twitter. I can't bear to spend much time on Twitter these days, so there's plenty I miss!
I've always had great respect for Cabel Sasser, and that didn't change at all as I read this email containing his straightforward feedback on the (mainly Mac) App Store from 2016. This paragraph towards the end of his email stopped me in my tracks:
It's interesting to note these first four points are all stress-related: the App Store takes parts of our job that we're already extremely good at—like customer support, quick updates, easy refunds—and makes them all more stressful and difficult, in exchange for giving Apple 30% of our revenue. That's the equation that makes us want to stay away from the store.
When you put it like that...
Note: I'm not a big fan of poring over these emails that appear, even if they are now public. That paragraph really did have some impact on me, though.
File name extensions in Xcode
There's some irony to the fact that I started this week's newsletter saying I don't spend much time on Twitter anymore, and then every link since then has been to a tweet! 😬 I couldn't pass up this tip from Douglas Hill about a new setting in Xcode 13 to allow hiding file extensions for only certain types of files. 🤯
DocC - Archived and Analyzed
I briefly mentioned the DocC packages that Helge Heß published last week, and this week here he is with more information on what we can do with what's contained inside. 📦
A Deep Dive into Airbnb’s Server-Driven UI System
I think we'd all be surprised how many apps modify their behaviour and appearance based on some kind of server-base configuration. Whether it's an A/B test on a checkout/upgrade screen or whether it's something more like what Ryan Brooks describes here. The code in this article may not be Swift, but it's a fascinating look at a complex, server-driven, native app.
Deciding when to use a dependency is tough. So tough that it's what drives me to work on the package index. After all, every dependency brings with it a whole new set of bugs you didn't write and compromises you didn't make yourself! However, writing everything from scratch is rarely the correct answer either. I enjoyed this piece from Chris Eidhof on exactly that subject and the decisions he made.
What’s New in Unit Testing with Xcode 12.5?
The two things that stuck out for me in this article from Jon Reid were tests on watchOS (finally!) and abstract test suites. Even if the watch is tiny, it doesn't mean it should miss out on tests! Oh, and being able to clear test results is also nice, and while it'll make every day a little more pleasant, it's not as groundbreaking as the other features.
Protocols in Gradient and Chroma Game
I really liked this story of refactoring an old app from Rudrank Riyam. It's so tempting to look at something we created, especially a personal project, and give in to the urge to say, "Oh, this needs a complete re-write", but there's always something to learn from refactoring code. 👍
Do you want a placeholder icon for your new app idea? Look no further than this app from Jordi Bruin. It's very well designed and is definitely a step above the other apps like this that I've seen. 👍
Videos from Swift Heroes 2021
Want to relax with some conference talks this weekend? Look no further than the latest videos from Swift Heroes, from their remote edition!
Senior Mobile Software Engineer @ Doximity – Doximity, the medical network used by over 80% of US physicians, is hiring passionate Senior iOS engineers (remote-friendly!). You'll get to 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 newly launched telemedicine feature. Apply today! – Remote within the US
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. As we revolutionize the way people manage their expenses, being part of the Expensify team means building the easiest, fastest, and most efficient platform to automate everything expense-related. – Remote, New York City NY, Portland OR, Ironwood MI, San Francisco CA, London UK, or Melbourne Australia
iOS Engineer @ Redzone Production Systems – Redzone is growing fast and looking to hire talented iOS Engineers to join our team. We build a communication and collaboration platform that enables frontline workers to resolve day-to-day production issues themselves before they become problems. Fully native iOS & tvOS apps, 100% Swift codebase, and fast adoption of the newest Apple technologies. – Remote within European or US Eastern time zones
iOS Platform Lead @ SoundCloud – SoundCloud is the world's leading audio platform. We are now looking for a technical leader to join our team and take ownership for our iOS platform. In your role, you will help, mentor and align a collective group of iOS engineers on the Technical Vision for the platform, building a solid technical infrastructure to support any business initiative for the years to come. – Berlin
Senior iOS Engineer @ onX – Are you an iOS developer who loves the outdoors? Join onX! If you’re passionate about writing great software, love playing outside, believe in protecting access to public lands, and want to dominate the off-pavement mobile GPS market – then join our team, where we empower millions of outdoor enthusiasts to explore the unknown! – Missoula MT or Remote within the US
Senior iOS Engineer, AR and Mapping @ Fantasmo – Fantasmo is looking for a stellar iOS developer to extend and maintain our AR/VR localization and mapping SDK and associated LiDAR scanning apps. We are a small but growing team of engineers and scientists. We care deeply about best practices, automated testing and deployments, and code quality, and we utilize a modern stack, using Swift and SwiftUI. Help us map the world! – Remote or Berlin
iOS Developer @ Bontouch – Bontouch is an award-winning product innovation agency that specializes in iOS and Android development, design, QA and data analytics. We are now looking for an iOS developer in Stockholm and Åre to help us in our continued mission to deliver world-class apps together with our partners. – Stockholm and Åre, Sweden
iOS SDK Architect @ Stream – Stream is hiring for an iOS SDK Architect to write and maintain our open-source SDKs that are consumed by over a billion end-users. You will work with modern iOS technologies, such as Swift, SwiftUI, and Combine, with a heavy focus on code quality, API design, testing, and CI/CD processes. – Amsterdam or Remote
Is your company hiring? Of course it is! Are you getting the best applicants? I’d love it if you’d tell your hiring managers about iOS Dev Jobs. Standard listings are free, so there’s no reason not to check it out!
It’s been just longer than three months since I launched the iOS Dev Weekly Insiders programme, and it’s been a much bigger success than I could have hoped for, with more than 80 of you choosing to join so far. I’ve really enjoyed getting to know people better and catching up with Discord, and hosting the weekly discussion calls are things I look forward to every week. Thank you to everyone who supports this email, either by reading it or through Patreon. Your support is always truly appreciated.
As usual, I also want to give thanks to more insiders by name too. This week, I’d love to thank Luis Abreu, Roman Kříž, Stuart Breckenridge, Rodhan Hickey, and Abizer Nasir!
My first Mac wasn't until the start of the Intel transition in 2006, so I wasn't even aware that there was such a thing as a chime of death! 🤯
While we wait to see what, if any, changes Apple will make to the App Store due to increasing pressure from legal cases and government legislation, it’s interesting to watch what the other companies are doing.
Microsoft is ready to show its hand, with the updated Microsoft Store for Windows announced this week. Yes, it’s not a mobile store, but I think it’s still worth examining.
It has some familiar features like editorial “stories” that highlight different apps every day, but there are also things we’ve not seen before.
One feature is a “pop-up” store. That could mean lots of things, but in this case, it means a button that you can add to your web page that looks similar to the “Available on the App Store” buttons from Apple. However, this button doesn’t launch a separate store experience where your potential customer gets taken from your web page, which you control, and onto a store page, which you have less control over. Instead, it just takes care of the distribution part. You still own all marketing, and the store handles the download and installation. Of course, there’s also a store page for people who find your app that way, but it’s not mandatory.
That’s a nice feature, but it’s just a warm-up! Next, you can publish a wide variety of apps to the store, and users can install them regardless of whether they use the store’s inbuilt mechanism, or if it’s an MSI installer, a plain old
exefile, or even a PWA.
Then, the big one. As Microsoft put it, you have “flexibility and choice of commerce platform”. If you’d like Microsoft to take care of payment, they take 15% (or 12% for games). If you don’t want them to take care of it, you keep 100% and use whatever payment provider you like.
There’s still a review process, but I can’t pass much judgement on that as I don’t know anyone who has gone through it. Here are the policies (with a detailed change history) if you’d like to take a look.
There may be conditions I’m not seeing, and of course, it’s early days, but this is certainly an interesting move from Microsoft, who have been through anti-trust proceedings before.
It’s worth noting that my hopes for the Apple App Store remain unchanged. I believe that significant changes to app review or allowing alternative payment mechanisms would be a net loss for the platform in terms of the perceived trust and simplicity of the store. But I wanted to report on what Microsoft is doing here. It’s significant.Dave Verwer