Design

As I think I’ve mentioned before, Sketch by Bohemian Coding is my goto tool for interface design and initial app mockups (it’s also the same tool I use to draw all my article images) and now that I’ve been using it a while I’d class myself as somewhat proficient. With that said, there is always room for improvement and in this article, @dearlorenz gives us some great tips on how to speed up our workflows.

Asking for user permission is always a tricky business and it can have a major affect on user retention. @101babich gives us another great article, this time looking at not only when to ask users for permission but also how to do so whilst providing a seemless user experience.

Is it MVVM or Scene-Stage-Director? In this article, @srdanrasic provides a different perspective on the MVVM architectural pattern as he searches for clarity around the different components responsibilities.

Code

So it’s been a few weeks but I managed to post another article this week in our continuing journey through the Swift programming language. This weeks topic – Enumerations in Swift. I’d love to hear your thoughts.

NSNotificationCenter is one of the most obvious uses of the Observer Pattern in the UIKit framework. Although it is a great design pattern and is used extensively by Apple, it does have it’s disadvantages though. In this article @AndyyHope applies some Swift goodness to see if he can overcome some of NSNotificationCenters shortcomings.

With the ability to now run Swift code on a variety of different platforms, the need to determine the platform the code is executing on is increasingly important. The good news, is that Swift has this ability built in, and in this article @ericasadun gives us a run-down of just what is possible.

In last weeks newsletter I mentioned the discussions going on in the community with regards to ‘dynamic’ Swift. One often cited example people have been using to justify the need for such dynamism is NSUndoManager and it’s use of reflection. In this article @chriseidhof illustrates that the need for reflection isn’t necessarily an open and shut case, and gives us a lesson on how to think differently by eschewing reflection and implementing a generic undo history using only Swift structs.

Tools

Around 100 days ago, Parse.com announced that it would be shutting down on 28th January 2017 and at the same time, an open sourced Parse Server was born. In this article, @swiftingio takes a look at the ecosystem that has sprung up around this new open-source project and also surveys the variety of options that are now available. If you are one of those who was affected by the announcement, time’s-a-tickin’ but at least now you have a range of options to choose from.

If you’re going to WWDC, you might have come across this already but if you haven’t, @KrauseFx has put together a nice app to help you connect with other developers who are either attending the conference or are in the SF area next week.

Videos

I’m still catching up with all the videos from iOSCon last week, but one I have already watched is this one from @designatednerd . In it, she provides some practical tips on how to test your iOS apps including testing your networking stack, how to test your core data stack as well as covering some of the basics of UI testing. It’s a great talk and one worth watching.

As I mentioned at the start, I have a suspicion that WWDC might bring some changes to the UIKit APIs but I suspect that the more invasive changes needed to bring greater alignment between UIKit’s architecture and the declarative approach preferred by Swift will be much further in the future. In the mean time that leaves developers wrestling with the differences between these two paradigms. In this video, @benjaminencz introduces the idea of a declarative view layer that may help.

Other

App development and software development in general are by their very nature moving beasts. We are always trying to build something new and tackle something different and although I suspect that this article from @WebDev_Cave was originally targeted at people who are just learning to code I think it’s got a lot of points that are that are applicable to all of us.