AppCoda Weekly - Issue #4

Welcome to AppCoda Weekly Issue #4! I was just back from a short vacation. And this is the first time
AppCoda Weekly - Issue #4
By AppCoda • Issue #4
Welcome to AppCoda Weekly Issue #4! I was just back from a short vacation. And this is the first time I travel with the new AirPods. While you may not agree with me, I really love this Apple product, and agree what M.G. said in this review, “This is exactly the product I’ve wanted for years. Apple nailed it.”
Pairing and switching between different Apple devices are so easy and seamless. My only complaint is about the battery. I’m not talking about the battery of AirPods. But it is about the battery drain issue of my iPhone 6s Plus while using the AirPods. I didn’t use to carry a battery pack, but now I have to. Earlier, Apple released the first firmware update of AirPods. Hopefully it can resolve the bug. Scroll down and check out the article if you also experience the issue.
This week, we continue to bring you quite a number of tutorials for your weekend reading. Some of them are related to debugging, and some of them are related to design. Just pick the one you like and keep learning!
Have a great weekend! 
Talk soon,
Simon
Founder of AppCoda

Tutorials
How to Keep Your Style Code Clean in Swift
Having to incorporate the design iterations (Read: icon colors, backgrounds, etc.) at the last minute can be a developer’s as well as a designer’s nightmare. This is especially true if the size of the app is bigger and so is the style code. So if there a way to control all of this code from one place? Really?
Smooth Scrolling in UITableView and UICollectionView
Table views and collection views are both designed to support displaying sets of data that can be scrolled. However, when displaying a very large amount of data, it could be very tricky to achieve a perfectly smooth scrolling. This is not ideal because it negatively affects the user experience.
medium.com  •  Share
Map
It is difficult to imagine practicing functional programming without understanding the Map function. So what exactly is Map and how does it contribute to a better Swift code.
Swift ABI Stability Manifesto
One of the top priorities for Swift right now is compatibility across future Swift versions. This document is an exploration and explanation of Swift’s ABI alongside the goals and investigations needed before declaring Swift’s ABI stable. It is meant to be a resource to the community as well as a declaration of the direction of Swift’s ABI.
Understanding Memory Leaks in Closures
Memory leaks start as an irritant but if not taken care of quicly, they can pop up everywhere and jeopardize the entire code. So what makes them happen, when, and which tools can help eliminate them. Find out.
Xcode projects that mix Objective-C and Swift cause the Swift compiler to take longer processing times. What is the cost of such high processing times and how does Swift 3.1 address this issue? Check out this post.
swift.org  •  Share
Locating the Source of a Memory Leak
Tracing the memory leak to the exact piece or line of code can be time consuming and painful. Now there’s something known as Malloc Stack Logging that helps the debugger find the exact lines of code causing the leak.
Cleaning up Core Data Fetch Requests
iOS 10 has brought about a number of changes and improvements for code data. What are those changes and how can you clean up the data is nicely enumerated in this post. 
Refactoring to Clarity in Swift
The importance of clarity of code cannot be overemphasized. However, the job is easier said than done. So what is the best approach to achieving it? 
Ads / Sponsored
Beginning iOS 10 Programming with Swift 3
Over 7,800 has purchased our Swift books to learn Swift & iOS Programming. Join our community and let’s learn Swift together. The books have been fully updated for Xcode 8.2 and iOS 10.
Mastering Swift: Enumerations, Closures, Generics, Protocols and High Order Functions - AppCoda
Our Mastering Swift series will show you some tips, tricks, and techniques that you can follow to make your Swift code even Swiftier.
Useful Libraries/Code Samples
GitHub - richardtop/CalendarKit: 📅 Fully customizable calendar for iOS
CalendarKit is a fully customizable calendar library written in Swift. It was designed to look similar to iOS Calendar app out-of-the-box, but allow complete customization when needed.
github.com  •  Share
Elm for iOS
You can build 100% native iOS apps with Elm.
iOS-PDF-Reader
PDF Reader for iOS written in Swift
UI / UX
Lyft Re-design Case Study – uxdesign.cc – User Experience Design
Learn how the design team at Lyft redesigned the Lyft app.
3 Things I Learnt About Design While Travelling in Japan
The next time you take a walk outside, try to become aware of the thousands of design decisions that were made around you. What works, and what can be improved? Can you discover designs that you haven’t noticed before because of how well they worked?
PNG optimisation
Exporting an identical image from different design tools results in different file sizes. Why? What can be done to optimise them to reduce downloading time and disk space?
News
What Does iOS 10.3 Mean for Growth Marketers? | Prolific Blog
The upcoming iOS 10.3 will allow developers to prompt their users with an Apple system prompt without having to leave the in-app experience. It’s time to rethink how you prompt users to review your apps.
Apple just released its first AirPods firmware update – here’s how to install it – BGR
Apple has release a firmware update for AirPods. If you experience the battery drain issue, this update will probably help you fix that.
Apple's iOS 10.3 beta includes tool to find AirPods | CIO
Worried one of your AirPods will go missing? Apple feels your pain, adding a new tool to iOS 10.3 that will cause a lost AirPod to play a sound and reveal its location on a map.
Did you enjoy this issue?
AppCoda
By AppCoda
Must-read Swift & iOS programming articles for your weekend. Deliver every Friday!
Carefully curated by AppCoda with Revue. If you were forwarded this newsletter and you like it, you can subscribe here. If you don't want these updates anymore, please unsubscribe here.