I could not be more thankful for everyone who attended the first try! Swift India last week - the speakers, the volunteers, the emcees, and of course the most amazing audience. Organizing a conference in a foreign country without a home base advantage is a massive challenge, and it is hard to know what to expect. What happened was beyond my wildest expectations of success. Thank you everyone for bringing your incredible energy to the event, making it unbelievably special and unforgettable 💜 💜 💜
The next try! Swift will be in Tokyo in March. Hope to see you there!
As this year is coming to an end, I've decided to take the month of December off to clear my mind, meditate, and reflect on my goals and priorities for 2018. This means that this could be the last issue of This Week in Swift - it is definitely the last one of 2017. I could not be more grateful to all of you for reading and contributing to our collective Swift knowledge and strengthening our community along the way.
Thank you everyone for participating!
P.S. This week's issue is sent to you a bit earlier than usual from the Himalayas, where the WiFi could go out at any time. I'll be completely off-the-grid for most of December contemplating the true meaning of life, so apologies in advance for not answering on email or social media.
An On-device Deep Neural Network for Face Detection
Fascinating read about how Apple upgraded their Vision framework algorithm - all while being dedicated to keeping user privacy:
"We faced several challenges. The deep-learning models need to be shipped as part of the operating system, taking up valuable NAND storage space. They also need to be loaded into RAM and require significant computational time on the GPU and/or CPU. Unlike cloud-based services, whose resources can be dedicated solely to a vision problem, on-device computation must take place while sharing these system resources with other running applications. Finally, the computation must be efficient enough to process a large Photos library in a reasonably short amount of time, but without significant power usage or thermal increase."
Reading and Understanding the Swift Driver Source Code
Read this if you're interested in contributing to Swift JIRA bugs labeled "Driver":
"the driver is the executable that is run when users invoke
swiftcon the command line. It's responsible for splitting up a single
swiftcinvocation into multiple child jobs. These jobs are command line invocations of
ld, or other command-line utilities.
Swift Around the Web
Using unit tests to identify & avoid memory leaks in Swift
Love this simple set of unit tests for Delegates, Observers, and Closures that help avoid super common memory leaks that many iOS devs make 👍
Black Friday Sale at raywenderlich.com!
Ready to level up your iOS development career, but not quite sure where to start? It’s simple — raywenderlich.com has the biggest, best, and most up-to-date collection of Swift 4 and iOS 11 books anywhere.
From November 24–27, get any book from the raywenderlich.com lineup for 50% off in their massive Black Friday sale. Or get their entire collection of 12 best-selling books for just $199! As an iOS developer, there's simply no better investment you can make in yourself. But don’t miss out, since this time-limited deal ends at midnight, November 27.
Ship Swift apps faster and with more confidence with App Center
Build iOS and macOS apps with every commit or on demand on cloud-hosted Macs, without the headache of managing your own build servers. Connect your repo and within minutes build in the cloud, test on thousands of real iOS devices, distribute to beta testers and Apple’s App Store, and monitor real-world usage with crash and analytics data. Start for free.
Core ML: Machine Learning for iOS
FREE Core ML course with iOS Developer and up-and-coming machine learning expert @meghafon! Don't miss it!
Training on the device
The first link in this newsletter discusses how Apple needed to implement a heavy deep learning algorithm on the device to protect user privacy. The same or similar of use-case could be present in your own app. It's still the early days, but @mhollemans is definitely thinking about and playing with options for how to make this happen 🚀
Advanced iOS training by Big Nerd Ranch - Jan 2018
Join us for an intense 5-day course for advanced iOS developers. Gain new skills, meet other developers and even get help with a specific project. This Week in Swift readers get a $100 discount by using code “BNR_TWIS_100off” - Registration closes December 2017
- Chronology - Building a better date/time library for Swift
- CircularCrownSelector - watchOS UI for a circular selection menu
- ARVideoKit - Capture & record ARKit videos 📹, photos 🌄, Live Photos 🎇, and GIFs 🎆.
- EllipticCurveKeyPair - Sign, verify, encrypt and decrypt using the Secure Enclave
- Lona - A tool for defining design systems and using them to generate cross-platform UI code, Sketch files, images, and other artifacts.
- stylesync - A command line tool to extract shared styles from a Sketch document, and generate native code for any platform.
The rest of try! Swift NYC videos are out in case you missed them!
- Spontaneous Swift Sudoku Solving by Souroush Khanlou
- Error Handling Made Easy (source code here) by Eleni Papanikolopoulou & Kostas Kremizas
- Swift 4 Codable by Yasuhiro Inami
- Getting Started with ARKit by Glenna Buford
- Core Data Migrations: Can we do Better? by Priya Rajagopal
- Building a Framework with VIPER by Sonam Dhingra
- Ship your App in Less than 10 Minutes by Dennis Pilarinos
My iOS Ratings Prompt Verdict
"Amazingly, in 2 weeks Instagram increased their all time rating count from ~5.5 million to almost 20 million. Almost 400% increase in 2 weeks! For an app that had been insanely popular for 7 years."
Random Cool Stuff
I'm spending a few weeks sight-seeing and meditating in this high altitude desert of the Himalayas. In case you're wondering - no, the wifi is not good, but the view is divine 😇