Swift Developments is a hand-curated newsletter containing a weekly selection of the best links, videos, tools and tutorials for people interested in designing and developing their own apps using Swift.
News
New MacBooks
So the wait is finally over and the new MacBook Pro’s have arrived. Although Apple did managed to leak things a little early the big change was the arrival of the new Touch Bar, a multi-touch enabled strip of glass that is built into the keyboard and replaces the traditional function key strip. Hand in hand with this came the release of Xcode 8.1 and new set of APIs and simulator that will allow developers extend their Mac app functionality to make use of this new display. @jakemarsh has a nice introductory post if you want to get started.
www.apple.com
Server APIs Project
Since Swift was released on Linux, server-side Swift has made some significant progress. This week saw things take a significant step forwards with Apple announcing official support for server-side Swift with the creation of the Swift Server APIs project. Initially the group will be focusing on APIs for networking, security, and HTTP/WebSocket parsing and will be run in similar fashion to the existing open-source Swift project with community suggestions being socialised and accepted through the Swift Evolution Process and guidance being provided from a combination of Apple and representatives from some of the major server-side Swift frameworks. More details of the projects focus can be found here.
swift.org
Business
How to Create Effective Push Notifications
A lot has changed with notification in iOS 10 with a whole new range of possibilities. However, this article, from @geoffreykeating takes a slightly different slant, looking at how we can design our push notifications to be as effective as possible.
intercom.com
Design
UI Animation: Eye-Pleasing, Problem-Solving.
Animation plays a big part in iOS app development but striking the right balance between eye-candy and usefulness is critical. In this article, @MYalanska explores some techniques and design approaches you can use to ensure that your app gets this balance right.
uxplanet.org
Swift
Unowned or Weak? Lifetime and Performance
Even after the transition from Objective-C to Swift, having a solid understanding of memory management, ARC and retain cycles is an extremely important part of programming in Swift. To help with this, @uraimo has written a nice article on how to use weak and unowned and also covers how to select which of them to use.
uraimo.com
How to Read the Swift Standard Library Source
With the open sourcing of Swift, we all have access to the entire source tree for the Swift language. Poking around the code, especially the Standard Library source code, can provide some useful insights into how Swift actually works under the hood. @olebegemann provides a nice introductory article to help you get your bearings.
oleb.net
Code
How to re-create the iOS camera button
One way of improving your iOS development skills is to try to recreate features you see in other apps. In this article, @otusweb does just that, using Core Animation to re-create the iOS camera button.
mobdesignapps.fr
Tools
MAS
Ok, this one isn’t exactly a development tool but it’s already proving super useful. Since upgrading to Sierra, I, like many others, have been having issues with the Mac App Store App reporting that updates are available and yet failing to show them inside the Mac App Store app. With that in mind, @pasanpr on Twitter, kindly suggested MAS by @rodionovme – a great little command line interface for the Mac App Store which removes the need to open the app at all! A great little tool and one I’m debating using as a quick way of scripting the setup of new Mac which would be nice.
github.com
Needless
One of the key guidelines in Swift 3’s ‘Grand Renaming’ is the omission of needless words from function and parameter names. Spotting all the places in your code base that this occur can be tricky though so @daniel_duan has written a nice little script to help. He’s also got an accompanying blog post to help if you’re going through the migration.
github.com
Libraries
JSONShootout
JSON parsing and mapping libraries was a pretty common topic earlier in the year and there are a whole range of them to choose from. However, there haven’t been many comparisons for the mapping part of this equation, the transformation of the JSON objects into the corresponding model objects. @bwhiteley has put together a project to compare their relative merits of some of the main protagonists.
github.com
JTAppleCalendar
JTAppleCalendar is a Swift subclass of UICollectionView providing a fully customisable way of presenting calendars within your application. It’s also got some great documentation with a getting started guide available here.
Testing
Testing Actions Over Time
If you’ve ever tested code that is time dependent you’ll know that it is extremely difficult to do due to the vagaries of the scheduler and other activities that may be going on on your machine at the same time. However with a little gymnastics it is actually possible to test this type of code. @cocoawithlove shows us how.
cocoawithlove.com
A Beginner’s Guide to Automated UI Testing in iOS
Automated testing plays an important part in modern app development and one aspect of this is automated UI testing. If you’ve never made use of it, @hoang_tran90 has written an introductory guide to get you started.
appcoda.com
Videos
iOS Conference SG 2016 Videos
It’s been a bit of a bumper week with regards to videos this week with a number of conferences releasing their session videos. First up, are the videos from iOS Conference SG 2016. There are whole bunch of great videos here so much so I couldn’t choose which one to include so I’ve gone for all of them!
engineers.sg
Functional Swift Conference 2016 Videos
Not wishing to neglect the functional programming crowd, we also have this set of videos from this years Functional Swift conference. There’s a range of subjects to choose from but I particularly recommend the talks on Type Safe URL Routing by @inamiy and also @chriseidhof‘s talk on Sort Descriptors which I particularly enjoyed.
funswiftconf.com