Once-a-year Black Friday deals are coming. Read more.
Give your simulator superpowers

RocketSim: An Essential Developer Tool
as recommended by Apple

Issue 159
Mar 21, 2023

App Rejections happen to everyone.

When doing critical updates at WeTransfer, we sometimes pre-submit a build and reject it if our testers find blocking issues.

Our builds are often already approved by Apple at the time testing finishes. While fixing blocking issues only sometimes changes much UI and UX, we still encounter surprising rejections. 

Getting accepted today doesn't mean the same binary gets approved again next week. Reviews feel random, making it look like a lottery. Inconsistency results in many apps getting rejected for "ChatGPT" mentions. At the same time, many apps are already in the store, prominently promoting ChatGPT as one of their features.

Getting rejected for something you didn't even change in that specific update can be frustrating, but know that you're not alone!

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

One of the annoying journeys I often make is getting to a description for an error domain and code. These errors start with "The operation couldn't be completed" and lack a clear error description. I decided to level up my game and introduce you to a new open-sourced developer utility.

SPONSORED

Learn about the 3-step process to transition your iOS development to Apple M1 silicon Macs — with insights from Reddit’s successful M1 transition, FAQs, and helpful M1 transition tips.

MONTHLY GIVEAWAY

This month's giveaway allowed you to win one of the three ImpressKit Yearly licenses. ImpressKit is the best way to create Press Kit for your app. I'm glad to announce T. Azeem, Jakub, and J. Sanz became winners. You'll be contacted soon!

CURATED FROM THE COMMUNITY

SWIFT

The Swift Community awards are back and allow you to vote on things like your favorite conference, developer tool, and more. Don’t forget to submit your vote!

Closures and retain cycles can be hard to understand, but I find this article (and video!) from Vincent Pradeilles doing a great job explaining three common mistakes.

Although it’s likely an edge case to implement this in your app, it’s great to see Vicente Garcia explaining how it works. I learned something new!

Majid Jabrayilov explains how you can measure the performance of a piece of code. Measuring is essential when refactoring for performance.

This article by Paul Samuels builds up nicely toward a great alternative to testable closures. The use of structs and convenience functions to add namespaces is clever.

XCODE

I wasn’t aware of this shortcut demonstrated by Lee Kah Seng!

Use a webhook to upload a build to TestFlight when a GitHub comment matches “upload to TestFlight”. Pol Piella tells you how to make this work using the App Store Connect Swift SDK.

DESIGN

I love the level of detail David Smith puts into its app. I agree that we used to do pixel-perfect designs more often back in the day, although the right tools could make a change.

FEATURED SWIFTLEE JOBS

Join the SwiftLee Talent Collective if you're hiring mobile engineers or are open to exciting opportunities.

FEATURED:
Other Jobs:
To check out more exciting opportunities or to post your job position: Check out the SwiftLee Jobs Board.

For companies
Get bi-weekly drops of world-class talented mobile engineers, open for new opportunities. Pre-market:  Many members of the SwiftLee Talent Collective haven't signaled anywhere else that they're open to new work.

For mobile engineers
Apply and receive attractive opportunities without obligations. If you will, your profile can stay completely anonymous, and you decide which companies to reply to. Read my tips to increase your chances of getting accepted as a talent.

THANK YOU

Thanks for being a SwiftLee subscriber!

All my content is available to you for free. Like what I do and want to support me?
Help me reach my Sponsor goal on GitHub.