The Review Guidelines get constantly updated to have the smoothest review process and to offer the best apps in the App Store.
This past month, we got some new updates, e.g., clarifications about the prohibition of promoting certain substances like tobacco and vapor products, and how certain games can offer a subscription across third-party apps and services.
Take a look—if you haven’t already—to prevent those annoying rejections when you update your app.
Big Sur came out with a bunch of beautiful design changes and we now have the design resources to use as templates for our designs. In addition, there are tvOS 14 design resources and some changes for iOS/iPadOS 14.
Last year, Apple introduced App Store privacy labels to help users better understand an app’s privacy practices before they download the app on any Apple platform. This month, we got some additional guidance about data types, such as email or text messages and gameplay content.
If you are using the Apple Push Notification Service with an HTTP/2 connection then, starting March 29th, make sure you incorporate the new root certificate, which replaces the old GeoTrust Global CA root certificate.
Take advantage of new advertising attribution technologies with the new SKAdNetwork version, which allows you to display your choice of advertising formats and to measure which creatives are most effective while preserving user privacy.
I’m sure that you’ve struggled with implicit member expressions at least once. Well, not anymore! Not with this new and improved version.
This is just one of the many nice updates brought to us with this version. In his Hacking with Swift blog, Paul Hudson wrote down all updates—like multiple variadic parameters, result builders and more!
SWIFTUI & COMBINE
There is a question that we all have these days: “Is SwiftUI ready for production?”... Well, John Sundell discussed this with David Smith (Creator of Widgetsmith, an app built entirely with SwiftUI) in his Swift by Sundell podcast.
I think the answer is, “It depends.” (As always.) And like they say in the podcast, it’s not about if it is ready for production yet; it’s more about whether or not it suits your project needs.
You will encounter several obstacles on the way since it’s a young framework. But, with time and patience, you can build amazing stuff with it.
Have you ever heard about ContainerRelativeShape? If you are working with WidgetKit and you want your views to look nice with a beautiful corner radius, this can come in handy. Basically, it’s a shape that is replaced by an inset version of the current container shape.
Have you ever used a mobile app or website that took a while to load? Slow connection speeds aren’t pleasant to deal with, are they? Fortunately, there are a few ways to inform a user when something is taking longer than expected. One of the most modern approaches is using redacted placeholders (written by Ryan Ackermann).
Memory management can be super tricky when dealing with asynchronous operations—like in Reactive Programming. That’s why John Sundell explains how to manage self and cancellable references when using Combine.
The best way to avoid this Combine-Memory-Leak-Hell is by adding some cool Unit Tests to your project.
OTHER COOL READING
Now that we have a better understanding of the Swift compiler, you can find building static and dynamic Swift libraries if you want to reuse some code between projects.
Sometimes, we find an app and whisper to ourselves “Guau! I would love to do something like that.” Filip Němeček takes this mindset further by trying to re-create Apple Photos layout & animations with Compositional Layout.
Pretty often, we have trouble when integrating our apps with an API and receiving an invalid response—or something that we don’t expect. John Sundell explains how to ignore invalid JSON elements when using Codable.
That's it for February. See you next month!