Hi! Welcome to another issue of the AndyBargh.com newsletter!
This week I’ve got some great new new links and articles from around the iOS development community along with a few gems I came across from the archives.
As ever, if you have any feedback (either good or bad), I’d greatly appreciate it if you let me know as I’m always looking to ways to improve the newsletter and provide you with the best information I can.
In the mean time though, enjoy the links, have a great week and if you’re in the US and affected by the snow, make sure you stay safe.
- Getting Started
The big announcement of the week was this from Apple. In their press release, they announce the creation of Europe’s first iOS App Development Centre, a centre that will be located at “a partner institution in Naples, Italy”. It’s not particularly clear from the press release whether Apple themselves will be delivering the training but it does mention support for teachers as well as the development of specialised curriculums to prepare and support future developers for the Apple ecosystem. We’ll have to wait to see what this means in reality.
Following from the his article that I mentioned in last weeks newsletter, this week @ryanolsonk turns his magnifying glass on Apple’s own apps and looks at how many of them are actually using Swift. The results might surprise you.
We’re all guilty of this. Starting new projects, excited about how great they will be but after a few weeks other things distract us and eventually these projects get left by the way-side gathering digital dust hidden on our hard drives (or if you’re good in a repo somewhere). In this article, @_bartjacobs reminds us just how difficult it is to actually ship something but also reminds us of just important it is that we do. It’s a good article if your looking for a bit of motivation.
I came across this rant from @mikehadlow during the week. In the article, he raises his concerns about the current fad for short learn-to-code courses that in his opinion are “selling people a lie and will do nothing to help the skills shortage for professional programmers.”. It’s an articulate and well researched article but I’ll let you read the article and form your own opinion on whether he’s right or not.
Despite the article above, one thing I think everyone agrees with is that there is, and will be, a growing demand for professional developers in the coming months and years, especially those who know Swift. With this in mind @hamchapman gives us 5 reasons why you should be learning Swift in 2016.
I’ve been slaving away at the keyboard again this week with another for you if you’re just learning Swift. This time I take a look at the concepts of lifetime, scope and namespaces and I’d love to hear any comments or observations you have.
So after my article on dictionaries last week, this week saw @aciidb0mb3r taking a deep dive to look at how they actually work behind the scenes. It’s a great article taking a step-by-step look at how dictionaries are constructed and stored in memory and is definitely worth a read if you’re curious about how they work under the hood.
After spending some time wrestling with a huge Storyboard @AndyyHope decided to take the plunge and split it lots of smaller storyboards instead but this left him with the issue of how to use a bunch of string literals to reliably instantiate them. In this article, Andy recounts the techniques he used to overcame these issues using enumerations, protocols and generics to create a safe and consistent way of accessing the storyboard identifiers.
With Swift being such a young language (and still changing), I’m always picking up new tips tricks and best practices from around the community. This article from @nhillyer is one such example and has some great tips that you can use to take your Swift programming skills to the next level.
FolioReaderKit from @hebertialmeida has been getting quite a lot of interest on GitHub in the last couple of weeks. Essentially it’s a full functional ePub reader and parser framework that you can drop into your own apps. Written entirely in Swift it that provides custom fonts and text sizes, text highlighting, day / night mode and a whole bunch of other features. A great solution if you’re building an app that needs this sort of functionality.
Following from the video I included on in last weeks newsletter Unidirectional Data Flow, this week saw the announcement of ReSwift. ReSwift is an amalgamation of the two projects formally known as SwiftFlow and ReduxKit and sees @benjaminencz, @ARendtslev and @karlbowden joining forces to create a Redux-like implementation of the unidirectional data flow architecture in Swift. For more details about the framework and the motivation for the merge, check out their GitHub page.
Unit testing network interactions has always been a little tricky and with the change to Swift, the techniques that we now use to do so are also somewhat different. In this article @joemasilotti uses an NSURLSession example to highlight three different unit testing techniques that you can use when unit testing your own Swift code.
Have your Swift compile times been getting longer? Do you know why? This was the problem that faced @irace. In this article, Bryan walks us through a series of steps that he used to find out which of his Swift files were contributing most to his compilation times. Although I know nothing about his code base, what was most surprising to was that in his case it was just three lines of code that were causing the majority of the issues. Maybe its the same for you.
With the introduction of App Transport Security in iOS 9, network communication via HTTPS has become a key technology for most iOS apps. However, due to the encrypted nature of this communcation protocol, testing exactly what your app is sending has also become correspondingly tricky. With this in mind, this week @brianjcoleman published this article that helps with that problem. In it he provides step-by-step instructions on how to setup a man-in-the-middle HTTPS proxy which allows you to view (in plaintext) exactly what your application is sending over these connections.
In this talk from Pramgma Conference 2015, @cjdowner presents a basic design curriculum for developers, exploring what design is and isn’t, along with other concepts such as consistency and whitespace. He also talks about how anyone can be a designer and highlights a number of benefits that teams can gain from having developers involved much earlier in the design process.
In this talk from Swift Summit 2015, @nerdonica explains why understanding how Swift works under the hood is crucial for improving the Swift language going forward. She also looks at how functional programming can increase the simplicity of our Swift code before looking at why list comprehension and tail-call optimisation are two things that should be added to the language.
For many, unit testing is a tricky task, especially when applying it in the real world. In this video, @qcoding highlights some useful techniques for how to start with test-driven development on iOS and how techniques such as dependency injection can make your code significantly easier to test. The examples from the talk are in Objective-C but it’s a great video, especially if you’re just getting started with Test-Driven Development and Unit Testing.
With the introduction of tvOS came a new way to interact with views called the focus engine. In this talk @saniul discusses some of the finer details of this engine and looks at how we can use custom touch processing to implement unique and interesting new interactions on tvOS.