Sponsored Link
Mobile test automation for top engineering teams
Automation is an engineering responsibility, but it doesn’t have to be a chore. Waldo makes creating and maintaining reliable tests easy, allowing you to automatically check your new build for regressions from the perspective of your end user. Try Waldo for free today.
News
Start Your Engines
This isn't the call for your final release versions yet, but with the event announced for the 7th, it is time for final betas!
Tools
Stop Xcode 14 betas draining your battery
Have you noticed your iOS simulator slowing down or taking lots of CPU with the last few Xcode betas? Chris Vasselli had and has found a workaround. It looks like something wasn’t quite right with some of the wallpapers in these latest betas.
Show a "touch indicator" on a real device
It's relatively easy to show a “touch indicator” on the iOS simulator, but did you know you could do it on an actual device? David Smith found that with a Bluetooth mouse and Assistive Touch, you can get a great environment for recording your App Preview videos where you need full-blown iOS rather than the simulator.
Code
Pulse 2.0
This is far from the first time I’ve linked to Alexander Grebenyuk’s Pulse project! Version 2.0 adds another feature that certainly deserves a mention, though. Seeing network requests update in the log as they start and end is a powerful way to visualise your app’s network communication. I think you’ll be impressed as soon as you see it demonstrated in the video embedded in this launch post. 👍
How to Make Custom Test Assertions in Swift
XCTest has a good set of assertions that are enough to get anyone started, but did you know you can define your own? Jon Reid is here to show us how it’s done, with some good practical examples, too.
How to bridge async/await functions to Combine's Future type in Swift
I think everyone will agree that Swift’s new async/await concurrency features are a great step forward for the language. But if you previously adopted Combine, it’s unlikely you’ll be able to migrate your code all at once unless your app is small. Can they work together? Yes, they can, and Natascha Fadeeva is here to show us how.
Business and Marketing
How to get featured on the App Store
There was one point that came up over and over in this set of short interviews by Filip Němeček talking about submitting your app for consideration by the App Store editorial team:
If there is one big takeaway, it is that it makes sense to submit this form often. Ideally, for each significant app update.
It’s good advice.
Jobs
Senior iOS Engineer @ Polywork – Polywork is a well-funded startup looking for a second iOS developer to join the team. We’re building a modern professional social network that recognizes people as more than their job titles. – Remote (within US timezones)
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. – Remote (Anywhere) with some on-site work (Australia, United Kingdom, or United States in CA, MI, NY, or OR)
iOS SDK Developer @ Stream – You will write and maintain our open-source SDKs that are used by hundreds of our customers and consumed by hundreds of millions of their users. – Remote (within US or European timezones)
Senior iOS Engineer (Swift) @ GoodNotes – GoodNotes is a top-rated paid-for productivity app, available to use on iPad, iPhone and Mac devices with over 10m MAU. You will own your projects and work alongside a high-calibre cross-functional team to continue delivering a product our users love! – Remote (within European or Asia-Pacific timezones) or on-site (Hong Kong or United Kingdom)
Senior iOS Engineer @ Sendwave – We currently have a 4.6-star rating on Trustpilot — people put their faith in us to deliver their money quickly, securely, and affordably. And we’re pretty darn proud of that. – Remote (within US or European timezones)
Yes, we may be heading into a downturn or even a recession, but that doesn't mean great companies have stopped hiring completely! It's very much worth looking at the full list of open positions over at iOS Dev Jobs.
And finally...
My god, it’s full of stars… 👨🚀
Comment
One prominent feature of Swift’s upcoming iOS 16 and macOS Ventura releases is a complete re-think of regular expressions. If you haven’t seen the new APIs in use yet, the best place to get up to speed is this WWDC video. It’s the first major step forward for regular expressions in years!
We all reach for a regular expression for rough and ready string parsing, but if you’re anything like me, you end up parsing out the same types of data every time. Maybe you’re looking to pull out a number and then a date, followed by an email address or URL. Then, next time you’re just looking for an email address and a number.
You can build that kind of parsing toolkit with the new RegexBuilder APIs, but what if you didn’t need to?
I’ve been a huge fan of Soulver for so many years now that I can’t remember when I started using it, but it remains an integral part of the apps I use every day. SoulverCore has been available for a couple of years, which is the main calculation engine that powers the app. Then, on Wednesday, Zac Cohan sent across a link to his latest library SoulverStringParsing, and I couldn’t help thinking that it’d be a better fit than even the new RegexBuilder APIs for common string parsing tasks.
You should check out the README for some examples, but it maps very much onto how I was describing my use of regular expressions. Tell it that you’re looking for a couple of numbers and an email address, and it’ll figure it out. It won’t be an ideal solution if you’re looking to strictly validate the exact format of a string, but it’s going to be a fantastic way to capture a few values quickly.
I’d be less excited about this API if it hadn’t come out of an app I use daily to mix text and calculations, and it never gets the parsing wrong. The main reason I’m talking about it, though, is that I love when something makes me re-think a problem that I thought I had all figured out. That’s happened twice this year with string parsing. First, with RegexBuilder, which I still love, and now with Zac’s new library.
Note: You may have noticed that neither SoulverCore nor SoulverStringParsing have an open-source license. They are free to use in personal or private projects, and I had a quick chat with Zac about small developers using these libraries in public/small commercial projects. It sounded like he was being very generous with licensing as long as you’re not building a Soulver clone, so drop him a note if you think you’d like to use them.
Dave Verwer