Subscribe for weekly commentary and coverage of Swift and Apple platform development. Written by Dave Verwer and published every Friday. Free.

Picture of Dave Verwer

Issue 289

24th February 2017

Written by Dave Verwer

Comment

Ever wanted to write for iOS Dev Weekly? ✏️ I’m looking to hire a partner to work alongside me on this publication. Interested? Keep reading.

For the past 5+ years I’ve done all the collection, writing and publishing myself and I feel it’s finally time to get someone to help me with the production process. Where better place to find the ideal person than amongst the iOS Dev Weekly readership?

If you’re interested, please fill in this questionnaire before Friday, March 3rd. Oh and if it’s not obvious, this is a paid position, I’m not looking for voluntary help!

Dave Verwer

Embed in-app support with Zendesk: save $177 with coupon “NOTES”

With Zendesk’s Mobile SDK, you can join Strava, Instacart, and Venmo in bringing rich, native, in-app support to your app. Use coupon code “NOTES” at the end of your 30-day trial to get a $177 discount. Try it out today.

News

Swift 4 Release Process

Ted Kremenek with a more formal follow up to last week’s mailing list message on the release of Swift 4. He goes into detail on how Swift 3 and 4 will interoperate. Building for Swift 3 will be the default while breaking changes like the overhaul of the String class will be protected behind a compiler flag for Swift 4. The good news is that single files can be converted one at a time which should make things a little easier to convert.


Swift Changes Considered Harmful

Talking of moving between major Swift versions, as the deadline for Swift 2 being removed from Xcode approaches there’s certainly a trend in posts grumbling about the migration process. This week it’s Craig Hockenberry’s turn to join the discussion. The main point of this article around finding working sample code, even going as far as to suggest that sample code shouldn’t be written until the syntax is more stable. Thaddeus Ternes also wrote on the same subject and there was another Swift 3 migration post mortem too, this time by Mozilla.

Tools

Dash 4

This week saw the release of a new version of the Dash documentation viewer and the main feature is kinda useful. Pick a documentation set and click play to start a REPL for a huge number of the supported languages. Who says that Playgrounds hasn’t had an effect on development in other languages! 🙌


Adding Xcode Keyboard Shortcuts

A quick reminder from Erica Sadun that you can make Xcode much quicker to use with a few well placed custom keyboard shortcuts .

Code

Swift Ownership Manifesto

So ARC is baked directly into the core of Swift and I’d imagine we’re all pretty happy with that? I know that as an iOS developer I certainly am. But Swift is not just for writing iOS and macOS apps, it’s also designed as a systems language and that can require much closer control of memory management. So let’s talk memory and ownership in Swift 4 with this manifesto. It’s also worth reading this set of notes from Alexis Beingessner as well.


PanelKit: A UI framework that enables panels on iOS

Twitter went a little crazy for this library earlier in the week, and I must admit I can’t really see why! 🤷‍♂️ Windowing on iOS has been done before, although admittedly not in anywhere near such a polished way. But, before you go too crazy with apps that work like this, stop for a second and think whether this is really a good idea.


SwipeCellKit: Swipeable UITableViewCell based on the stock Mail.app

Even though swipe-able cells form a key part of the Mail.app UI, there’s no standard for creating them in UIKit right now. Don’t worry though because Jeremy Koch has put together this comprehensive library for making it trivial to add this kind of table cell into your app. There’s plenty of options for customisation too. Looks good.


NextLevel: Rad Media Capture in Swift

This looks to be an extremely comprehensive photo/video capture library written in Swift 3. At its core it looks to be a customisable capture API but there’s so much more to it than that (see the documentation). What are you waiting for? Go and build the next Vine or Snapchat. 👓

Design

Overcast 3: Design walkthrough

You wouldn’t believe how many customers have asked me to add features that were already there, or couldn’t find basic functions like deleting episodes, because they weren’t apparent enough in the design.

This! I’ve been doing some customer research recently and it’s amazing how something that seems to obvious can be completely invisible to real users of a product. It’s fine to include swipes and long presses as shortcuts to features, but make sure that the functionality is also really obvious without them.

Business and Marketing

That Dirty M Word

Curtis Herbert has been writing some great posts recently and this is no exception. He talks about paid, targeted advertising on Facebook, Reddit and even YouTube. I’ve experimented with Facebook, LinkedIn and Twitter before but I’d never have considered advertising on YouTube. Great article.

Videos

Learning From Our Elders

Rob Napier with a great talk on learning from functional programming techniques in Swift.

Sponsored Jobs

Job Offers Without the Hassle - Try Hired

Sick of pushy recruiters, and dead end interviews? Try Hired to talk to companies that are the right fit. 🏦


Senior iOS Engineer @ Twitch

Want to work on the world’s leading video platform and community for gamers? Join us.


Senior iOS Developer

Work among the best and brightest. Solve problems that matter. Disrupt an industry. Join Clio!

And finally...

Virtual Apple ][

I couldn’t get this working in Chrome but I managed it with Safari and the plugin.