Sponsored Link
Join a free training course for mid/senior iOS devs next week
From May 17th to 23rd (that's this coming Monday!) you can join a FREE crash course for iOS devs who want to achieve an expert level of technical and practical skills – it's the fast track to being a proficient senior developer! Get it now.
News
The Swift Mentorship Program
Have you ever wanted to contribute to an open-source project but didn't know where to start? It can be incredibly daunting, and without guidance, it's probably going to be challenging to land your first contributions successfully. This new programme is here to help. Apply and get matched with a mentor who will guide you through your first contributions to any Swift-based open-source project.
When I first saw this, I mistakenly thought that it was only for people who wanted to contribute to the Swift compiler project itself, maybe because of the wording in this tweet. I only say this just in case you also saw the tweet and took away the same impression. It's any Swift open-source project. Give the post itself a proper read.
Also, The Swift Package Index has applied to be part of this programme, so if you would like to help us make that better, please do apply! We'd love to work with you.
The internals of App Review’s testing process
Here's an interesting Twitter thread from Steve Troughton-Smith with some details of App Review that have come out of the ongoing Apple vs Epic trial. It has been obvious from the start that a lot of the app validation is automated, but there's plenty of detail here we didn't know.
Code
Introducing Plot Components
We're now in week three of the ongoing "everything must use a result builder" series here on iOS Dev Weekly, and this week's winner is none other than John Sundell! 🥂🍾 Seriously though, this enhancement to Plot to generate HTML from SwiftUI style components is another excellent use of the language feature. I have some concerns about how this might scale when working with more complex HTML interfaces, but it's an interesting idea.
TerminalUI
This was almost an "And finally..." link, and while it might still make you smile, it's more important than that. What would a SwiftUI layout look like in a text-only interface? Chris Eidhof is doing some interesting experimentation. The idea is that a SwiftUI app UI should essentially "just work", but in a text-based user interface. I'm not sure this will be the next revolution in UI design, but it's certainly not a joke project.
Swift Actors: A Practical Example
One of the new features coming in Swift 5.5 is language support for Actors. What are actors? I'll let Marin Todorov explain as he demonstrates them in this two-part (1, 2) post. You'll need to download a nightly snapshot to follow along, but it makes for interesting reading even without!
Spending an Hour Removing an Rounded Corners from an Image View
I enjoyed this story from Lee Kah Seng on debugging a "simple" problem in an app he was working on. A great reminder that Interface Builder, while very powerful, can hide things from you.
Design
On Building a Fluid User Interface
This post from Rishi Mody has some Facebook Paper vibes to it. He talks about how the Instagram app implements several pieces of custom UI design. It's rare to see apps that really sweat interaction details like this these days.
Jobs
iOS Developer @ Doximity – Doximity, the medical network used by over 70% of US clinicians, is hiring passionate iOS engineers (full-time remote!). 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
Senior macOS Engineer @ Paw – Become the Lead macOS Engineer for one of the most popular Developer Tools! Paw is an application that lets developers test REST and GraphQL APIs. We count Apple, Airbnb, GitHub, Mailchimp among our customers. – Remote within Europe
Senior iOS Software Engineer @ TeamSnap – If you find sharing party parrot emojis in Slack amusing, TeamSnap is the place for you. We’ve been remote since before remote was cool. You’ll work on a team with big ideas and tiny egos to develop a product that has been featured by Apple at WWDC and has 25+ million users. – Remote within the US
Flutter Developer @ MealPrepPro – At Nibble Apps our mission is to make healthy eating easy. Our team is behind one of the most well-loved health apps worldwide, MealPrepPro. The app is regularly featured by Apple and serves a passionate community of thousands of users. We’re bringing MealPrepPro to Android for the first time and we’re looking for a Flutter developer to join our close-knit team of 6. – Remote
Senior iOS Engineer @ Scoop – Scoop is building the central platform to enable any company to thrive with hybrid work. Our team is experienced, collaborative, and product-minded. We've weathered the storm of COVID, more focused than ever on the opportunity that we have to build great products. This is a special opportunity to help enable an entire generation of employees to unlock the full potential of flexible work. – 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, San Francisco, Portland, Michigan, New York, London, or Melbourne
Is your company hiring? Talk to your hiring managers and get them to list your open positions over at iOS Dev Jobs. Standard listings are free, so there's nothing to lose!
Insiders
Thanks so much to this week’s iOS Dev Weekly Insiders! Andrew Yates, Adam Wiggins, Jeff Deimund, Kris Arnold, and Daniel Haight. Your support means the world to me. Thank you. 😍
This week’s insider call happens in a few hours from now, so there’s still time to sign up and join us! We’ll be chatting about the App Store today, as you might expect. 😬
And finally...
Type carefully in App Store Connect! 😂
Comment
The last time I wrote about scam subscription apps, I finished by saying this:
So, when Apple published a press release this week titled “App Store stopped more than $1.5 billion in potentially fraudulent transactions in 2020” followed by 1,300 words about the measures they take to counter scam apps and fraudulent developers, I should have been thrilled.
Yes, I wish it hadn’t taken the discovery phase of a major lawsuit to prompt them to make a statement, but I am happy that they’re talking about it.
The statistics they quote are impressive, too. As I suspected, there’s lots of work going on behind the scenes. $1.5B of prevented fraudulent transactions. 150,000 spam apps rejected. 470,000 developer accounts terminated. 250 million ratings and reviews removed. That’s a lot! What a great job they’ve been doing. Right?
That’s certainly the message of this press release, but I’m afraid it did not make my wishes come true. My disappointment comes from how they talk about these problems. This is a press release, so it’s not a surprise that it paints a positive picture of the company, but they talk about these issues like they are completely solved and have been on top of the problem from the beginning. There’s no mention of “we have a lot of work to do” or any hint that the App Store isn’t a perfect fortress of impeccable moderation and scrutiny. The work they are doing is impressive, as I knew it would be, but the problem is a very long way from being solved. In fact, to “solve” it shouldn’t be the goal. To genuinely keep on top of it should be.
All of the talk about “relentless steps forward to combat these risks” would sound much more authentic if the scam apps were harder to find. Take a look at this tweet from Kosta Eleftheriou, for example. It’s a screenshot of an app he created as a solo developer without access to any internal Apple systems, and it shows a list of problematic apps. It’s clear that the problem is not solved, and Apple is not keeping up.
I wish Apple could find a way to be more honest about some of the more negative aspects of the App Store in their developer communications. Yes, a press release isn’t the correct venue for that, especially with all the lawsuits, but it must be possible. If not, it’s time to shut us up by living up to the claims made in this press release. I think we’d all be happy with that as a solution instead. 👍
Dave Verwer