Sponsored Link
Level up Your iOS Development Skills - 20% Off!
It’s tough to stay up to date as an iOS developer, unless you subscribe to NSScreencast! You’re busy and time is valuable so every episode gets straight to the point. Get instant access to the whole 330+ episode archive along with all sample code and all future updates. Get your 20% discount now.
News
Activist Engineering
I liked this topical article by Matthew Bischoff. As a developer, you may not think you can make a difference by speaking up about something you're not comfortable with, but you should definitely try.
I was uncomfortable with one analytics tool that was added to some software I worked on once and I did bring it up (nothing was ultimately done about it, but the discussion was worth having). I've also turned down two sponsors on this newsletter for the same kind of thing in the past. It's our responsibility as developers to speak up and not just accept things we are not comfortable with just to keep things cushy. 😂
Introducing IBM Watson Services for Core ML
This is a few weeks old now but the news section has been busy with other stuff recently. First of all, it's very cool that IBM Watson is being integrated with Core ML but this feels like the start or something bigger with Swift. Then there was this announcement of "first-class language and compiler support" for Swift with TensorFlow. Swift is being taken seriously as a serious language in Machine Learning and that can only be a good thing.
Tools
SwiftLint
I said a couple of weeks ago that I was going to link to some established, and well maintained frameworks and when I came across the latest release of SwiftLint this week, I figured that tools should be included too. This tool has a fantastic community and has been very actively developed for the last 3 years. Use it and you should never need to comment on code formatting in a pull request ever again. 🎉
Convert a PDF to App Icon images
Are you still generating all your different needed icon sizes by hand? Why? 😳 Oliver Michalak has put together this little tool to take a PDF image, generate all the right sizes and put them in all the right places. I'd like to see this support a couple of different PDF files so you can set certain icons to be generated from different PDFs for the cases where you have a different icon image for smaller sizes, but this is a good start.
Code
How Do I Write If Case Let in Swift?
Remember this, and this? Well Zoë Smith thinks (and I agree!) that if case let
and friends deserve the same treatment, and here it is!
Oh and I used the SFW version of all these domains, just for those of you on corporate networks. 🕵️♀️
Behind-the scenes improvements in Swift 4.1
Slava Pestov from the Swift team at Apple with some of the more subtle changes that went into Swift 4.1. You're not going to find a huge amount of practical information here, but it's certainly an informative look behind the scenes of some of the changes in this latest release.
Prototyping Animations in Swift
I really love building seemingly complex animations from simple component parts and this is exactly what Jason Wilkin does through in this post. The final animation seems complex at first, but break it down and each individual piece is pretty simple.
ShineUpdater: Enterprise app updates
Are you writing enterprise apps for internal distribution? How do you keep them up to date without the App Store conveniently checking all the time? This framework from Cory Imdieke might be your answer. Think Sparkle for enterprise iOS.
Design
How To Design Emotional Interfaces For Boring Apps
Alice Кotlyarenko on the problem of designing apps that at a first glance might be thought of as dull. There are ways to make the UI work interesting, despite what they are doing and that can lead to pretty special apps that really stand out against their competition.
Anyone else remember Disco's smoke?
App Store Subscriptions And You
Daniel Kennett with advice on getting the copy and structure of your In-App Purchase screens in order, especially if you're dealing with subscriptions. There's some great advice around a couple of edge cases here like for example, what happens if the user has already used the trial subscription period?
Which camera does the iPhone use?
At first I wasn't sure whether this tweet thread by Sebastiaan de With was an example of good or bad design by Apple. After thinking about it for a minute though, it's fantastic design.
The user wants to photograph something at a short focal length and still have sharp focus, the best version of that image that the camera is able to capture exists in the wide angle lens, so why not use it? The alternative would be for the photographer to move back from the object but the image wouldn't actually be any higher quality then, so this solution gets the same result with less thinking on the part of the user. 🎉 That's great design!
Sponsored Jobs
Senior Mobile Developer at Grailed in NYC
Grailed is Hiring! Our 4 person Mobile team is looking for a Senior Dev.
And finally...
DateFormatter.date returns nil for Brasília Summer Time
The time that it would default to does not exist, so it returns nil.
File this one under "Dates and times are hard".
Comment
I love it when a plan comes together! 🚐
Last week I linked to one of the WWDC 2018 scholarship submissions that had caught my eye and said I felt guilty about linking to just that one when I was sure there were so many other great submissions waiting to be discovered. So, I asked if there were any more I should be aware of and almost immediately Andreas Neusüß let me know about the WWDC 2018 Scholarship Submissions site (and repo) which is a list of publicly shared submissions not only from this year, but from 2014, 2015, 2016 and 2017 as well. Of course this exists... of course it does.
Obviously the submissions are fantastic, but really I think everyone on that page deserves recognition for putting their project out there. It's a really important (but potentially extremely nerve wracking) experience to publish your code for everyone on the internet to see, but it's a critical part of being a developer these days. I hope all of these potential scholarship winners who also have blogs also decide to add them here as I'd love to read them.
I believe that the announcement of the results is set for today, probably in a few hours for now. I wish every one of you luck there and hope to meet some of you in a few weeks time!
Dave Verwer