S Link
Chatkit. Developer-driven chat done simply.
Chatkit is the brand new service by Pusher that lets you add 1-1 and group chat features to your app. It comes packed with features such as: typing indicators, online presence, message history, chatroom management, public & private rooms, access to stored messages. Learn more and sign up for the public beta for free!
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
Swift Around the Web
@objc Warnings Upgrading To Swift 4
A great explanation of what @objc
inference is and how to easily resolve the scary "Swift 4 mode deprecates the Swift 3 @objc
inference rules" warning:
"Under the old Swift 3 rules properties and methods of
NSObject
subclasses were accessible from Objective-C (unless they were private). In Swift 4 mode this is no longer the case and you should see build and run time warnings prompting you to add@objc
"
Coding
Challenges of Supporting iPhone X
"Supporting the iPhone X was more difficult than initially anticipated, and it required much more work than adding support for any previously announced new iPhone model." 😬
Data Detection in Swift
Whoa! I didn't know about the NSDataDetector
detector class. Much simpler than using a terrifying StackOverflow regex to find common things like emails and URLs from a string. Thx @atomicbird for the amazing tip!
Design
iOS 11 Changes Localized Date Handling
Love this description of human vs machine view-point:
"From a purist standpoint, seeing Frankenstein UI where English-language apps have Estonian dates in them may be undesirable. As a user, though, I am not a purist. I am a human. I prefer my own language, even if the support is Frankenstein-like and incomplete."
Other Cool Stuff
Loi Krathong & Yi Peng
This weekend, I completed my long-time bucket list item of participating in the incredible Yi Peng lantern festival in Thailand. Seeing the unbelievable beauty of hundreds of lanterns floating in the sky, including my own - each representing someone's hopes and wishes - was an overwhelming visualization of humanity 💜
Videos
Implementing Swift Generics
Swift team members Slava Pestov and John McCall talk about Swift Generics implementation at the 2017 LLVM Developers’ Meeting.
"In this talk, we will describe the compilation of Swift’s generics from the type checker down to LLVM IR lowering and interaction with the Swift runtime, illustrating the how the core representation of generics flows through the system, from answering type-checking queries to the calling convention of generic functions and runtime representation of the “dictionaries”."
Exploring Natural Language Processing
Good introduction to the Natural Language Processing (NLP) API, which has been updated for iOS 11. It's a super powerful framework. There might even be uses for NLP in your own app that you just haven't thought about!
Swift Evolution
Swift for Data Science / ML / Big Data analytics
Chris Lattner gives his thoughts on having a more native Python / Swift integration so it's easier to work with the wide array of Python-based Data Science, Machine Learning, and Big Data tools:
"In short, I think we should build a simple Swift/Python interop story. This sort of thing has been built numerous times for many languages (owing to Python’s great support for embed-ability), including things like PyObjC, boost.python, and many others."
"If we do this, the vast majority of the Python ecosystem should be directly usable from within Swift code, and the only a few major syntactic differences (e.g. ranges work differently). We would add failable inits to the primitive datatypes like Int/String/etc to convert Python.Object values into them, and add the corresponding non-failable conversions from Python.Object to those primitives."
I know I'm not the only one who would love to see this happen down the road 🚀
Swift Code
- Mandoline - An iOS picker view to serve all your "picking" needs
- WhatsNew - Showcase new features after an app update similar to Pages, Numbers and Keynote.
- RxAnimated - Animated RxCocoa bindings. Blog post here
- swift-video-generator - An easy way to combine images and audio into a video or merge multiple videos into one. Blog post here
- Pulley - A library to imitate the iOS 10 Maps UI.
Business
iPhone X Review Roundup
Glad to hear the notch is not bothersome or noticeable on the actual iPhone X 😅
On Open Source
Funding (my) OpenSource work
A good reminder that Open Source work is not really free, and that the creator has no obligation to maintain their work over the long term. So if your company is highly dependent on an open source project, consider asking them to step up and support the creator a bit financially. It will likely cost a lot more money (and overhead) to have to create and maintain the code themselves down the road for something that is not their core business.
Other Platforms
Introducing Kitura 2.0
IBM announces Kitura 2.0, which includes Codable Routing 😍
"This takes full advantage of the new Codable capabilities provided in Swift 4.0, as well as Swifts strong-typing system, to provide a new way to create web APIs."