Sponsored Link
21 of the world’s top 25 apps were built by engineers trained by Big Nerd Ranch
Join the ranks of top developers by attending one of our upcoming bootcamps. Feb 12 Comprehensive Swift class or the Feb 24 iOS Essentials w/ Swift class. Network with developers from Fortune 500 companies and have your insights published in our best-selling Big Nerd Ranch guides. No extended time away from work needed.
News
Apple Developer Program Membership Fee Waivers Now Available
This is a really great change to see with the Apple Developer Program. For the first time, educational institutions and nonprofits can enroll in the program for free, opening up possibilities for students and volunteers alike. The one caveat is that these accounts cannot distribute paid apps or apps with in-app purchases, which seems fair considering the fee waiver. I'm glad to see Apple finally making this policy change. ✨
Apple Updates and Expands App Store Review Guidelines
Just before the app review team went on its annual break, Apple released updates to the App Store Review Guidelines. Most of the changes are relatively small, but are worth looking at just in case they affect your own apps.
Probably the most significant change has to do with purchasable in-app loot boxes. According to these new rules, apps must show the odds of winning each item prior to the loot box being purchased. This change will probably affect many of the top grossing apps on the App Store.
Ending the Swift Weekly Brief
Unfortunately, Swift Weekly Brief's 100th issue is its last, at least until someone else takes over the reins from Jesse Squires. I really enjoyed reading this newsletter, and I'm sad to see such a valuable resource for the community go.
Tools
quicktype
This Xcode extension created by David Siegel takes in raw JSON and spits out Swift structs to represent the data. It takes advantage of the improvements to Codable in Swift 4 to make handling JSON data much easier. If you haven't fallen in love with any other Swift JSON library yet, give this a look.
Code
RxFlow
As reactive programming continues to become even more popular, we're going to see even more ways that it can make writing code clearer and more intuitive. RxFlow is reactive programming applied to navigation, which helps separate navigation code from the view controller and makes this code more declarative. If your apps involve complex navigation hierarchies, look to RxFlow to make your life easier.
Detecting screen capturing in iOS 11
Snapchat was the first app to try preventing users from screen capturing – but lots of apps have followed, including financial apps and video content providers. Alongside iOS 11's native screen recording, Apple introduced new APIs to allow these apps to know when it is happening. This article by Abhi Muralidharan talks about his implementation of a screen-recording detector. 🕵️♂️
LSAnimator and CoreAnimator
Chained animations are annoying to deal with using standard frameworks, and trying to add concurrency on top of this is even more difficult. LSAnimator and CoreAnimator, the Objective-C and Swift versions of the same project, help solve these problems in various situations, with support for CALayer animations, AutoLayout, bezier paths, and so much more! 😲
Design
Your dialogs are too long
I'm definitely guilty of this – because verbose dialogs are easier to write than short and clear ones. This blog post written by Alan Sien Wei Hshieh, a designer at Apple, includes several tips to keep in mind when your alerts seem a bit too wordy. 📝
Reverse-Engineering the iPhone X Home Indicator Color 🎨
The iPhone X home indicator is a bit strange to design around, especially since it behaves a bit strangely. Specifically, the color of the indicator changes depending on what is behind it, which can make it a bit difficult to design for. In this article, Nathan Gitter studies how the indicator color changes as the content behind it changes, which is important to think about as you design your apps for the future of iOS.
Business and Marketing
Working on an iOS app? Be careful with this.
Even though this article is full of hyperbole, Kevin Natanzon does bring up an important point that iOS developers often forget about – certain entitlements prevent apps from being transferred. I experienced this when I changed over from a personal to a company account. If there's any possibility of transferring your apps in the future, keep these in mind.
Books
Metal Programming Guide: Tutorial and Reference via Swift
Janie Clayton's long-awaited book on Metal programming is now available for pre-order! With topics ranging from the most basic to the most advanced, this books seems like the definitive guide for iOS developers who want to take full advantage of Metal in their own apps. ⚒
Sponsored Jobs
iOS Developer, Emoticast, London, UK
We are backed by investors like will.i.am & Sean Parker! Join us in redefining the world of music & communication!
Comment
Happy new year! 🎉
In the first big story of the year, Apple has acquired buddybuild. I haven't personally used buddybuild, but it gets Dave's seal of approval (and not just because they are a longtime sponsor of this newsletter!). The team behind it is being merged into the Xcode team at Apple, which is probably a good indicator of where Xcode Bots may be going in the future.
Changes are already being made to the buddybuild service as well – support for Android will be dropped this March, and they are no longer accepting new users. As Apple begins integrating buddybuild into its existing developer ecosystem, don't be surprised when other changes come along, both good and bad.
Acquisitions of developer tools always leave me torn. Often, they benefit developers, but with a cost: with TestFlight, we got better provisioning, better user management, and no additional subscription, though beta builds must now go through app review and Android support was dropped. Overall, this seemed to work out for iOS developers – and I'm cautiously optimistic that Apple will handle buddybuild in a very similar way.
Evan Dekhayser