S Link
How to build a live comment feature in Swift
Learn how to use Pusher's Swift iOS SDK to create a realtime comments app.
92% off Mastering Table Views
Created for developers of all levels who are looking to expand their knowledge of UITableView
, this course covers a huge amount of Table View topics using modern best practices. This course is crammed full of tips and tricks that will have you scrolling enormous images at a buttery 60fps, creating dynamically resizing and expanding cells, and effortlessly introducing editing and reordering. It's a great resource to have for just $10!
Swift Around the Web
The startling uniquing of Swift 4 dictionaries
@ericasadun taking the power of Swift 4 Strings to the MAX & BEYOND π
// Find the word that appears most often
var (maxword, maxcount) = ("UNDEFINED", Int.min)
for (word, count) in wordCounts {
if count > maxcount { (maxword, maxcount) = (word, count) }
}
print("\(maxword) appears \(maxcount) times")
// et appears 8 times
Coding
Ultimate Guide to JSON Parsing with Swift 4
This post covers beyond the basics of the new Codable
protocol. MUST READ (and bookmark) for everyone here. And once you do, we never have to speak of JSON parsing in Swift ever again!
Why Core ML will not work for your app (most likely)
This post was super helpful for me to understand what CoreML
really is, and the limitations behind it. Of course, as the author mentions at the end, it's still useful for thousands of apps. And it's just the beginning. All these features might be added in the future. But the conclusion is to learn Machine Learning - CoreML
is not the easy button we might have thought it was.
Apple News
Xcode 9 beta 2 is out!
Exciting to see a whole page of improvements to Refactoring support π Check out the rest of the Release Notes here!
Oh, and if you've been experiencing random NSUserDefaults
data loss, this could be why:
"Starting in iOS 9.3, and in subsequent releases of iOS and macOS, NSUserDefaults could fail to load data if more than roughly 250 separate apps (including separate reinstalls of the same app) had been launched since the last reboot. This has been corrected." - Foundation Release Notes
Swift Package Manager Manifest API Redesign
"The Package Manager in Swift 4 includes the redesigned
Package.swift
manifest API. The new API is easier to use and follows the design guidelines. The target inference rules in Swift 3 Package Manager were a common source of confusion. We revised these rules and removed most of the inference, favoring the practice of explicitly specifying package structure in the manifest.Swift 3 packages will continue to work because the Package Manager in Swift 4 is backwards compatible."
Design
Made With ARKit
Here is your dose of ARKit inspiration. I wouldn't have thought of any of these! Love the Kitchen Moon Landing π
HEIF: A First Nail in JPEGβs Coffin?
As a non-designer, I have no idea what HEIF format is. And it's a bit scary to have to think about it from a developer perspective - where only Apple supports this format, but we'd likely need to use the user photos across platforms and the web. This is a good explanation of what HEIF is and what wider adoption would mean...
Here are the big takeaways:
- Starting with the release of Appleβs macOS High Sierra and iOS 11 on supported hardware, iPhone/iPad cameras will capture and process images in a new, modern file format β HEIF
- With HEIF, youβll be able to store twice as many photos in the same space AND have them look better
- Because size is cut in half with HEIF, both upload and download times can be effectively cut in half
- The format includes support for 10-bit deep color images, solving issues with banding in photos
Check out the High Efficiency Image File Format WWDC Session for more info!
Other Cool Stuff
Behind the mochi.. an entertaining display of what it really takes to create this popular dessert πΏπ‘ π₯
I suddenly have a business idea for a new workout πͺ trend...
Videos
Ray Tsaihong: Swift Chatbots for Fun and Profit
I mentioned above that I'm thinking about small everyday uses of ARKit instead of building entire games. This is how I feel about Chatbots. While it's horrible (and unmanageable) to make a chatbot that does everything for everyone, there are small specific use-cases where they're super useful and helpful. Love this β‘οΈ talk from @rmundo on how to do that.
I wanted to learn a lot more, so I asked @rmundo to come to try! Swift NYC to give a more in-depth talk. Don't miss it if you're in the area!
Swift Evolution
On the SE-0110 Regression (full text)
The Swift core team has backed-out from the controversial implementation of SE-0110 after an unexpected usability regression. It's really great to see the core team respond to the community concerns in this way and defer the proposal instead of sticking to it for the sake of sticking to it.
There was a bit of a fallout and bad feelings, but I'm really happy to see that @austinzheng will continue working on Swift Evolution! Contributing to open source, especially a highly-visible project such as Swift, really takes a lot of hard work and courage, and I really appreciate everyone who does it, even if it might not work out as well every single time (which is to be expected).
Swift Code
- iOS-11-by-Examples - Examples of new iOS 11 APIs
- HapticButton - A button that is triggered based on the 3D Touch pressure, similar to the iOS 11 control center.
- SwiftyVersionTracker - Track which versions previously installed
- currency-converter-swift3.0-viper - Calculates money quick and easy way to see live foreign exchange rates
Swift Thoughts
I'm guessing it's only a matter of time before the ARKit version of this amazing Hololens Super Mario Bros, but I've been really thinking about more subtle everyday use-cases of ARKit, such this simple measurement app. So much to learn and make!
In other news, the Swift Migrator is now open source π