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.
Can a viral hit be reverse engineered? You might not think so, but in this article @9th shows otherwise, recounting the story of his viral app ‘Top Nine‘ which has had a fair bit of success leading up to the New Year. If nothing else, his story shows just how important app store optimisation and the incorporation of viral hooks into your apps can be.
Internationalising your app, can not only expose your app to a much wider audience but also provide a nice boost to your app sales. However, there are a number of things to watch out for when designing an app with internationalisation in mind. @saitojohn provides the details.
By by design, Swift is an inherently memory safe language preventing direct access to memory and doing everything it can to ensure that that memory is initialised correctly before you use it. However, there are occasions when you want to be able to work with pointers and memory directly, and for this we need to make use of Swift’s ‘unsafe’ features. @rayfix provides a great introduction.
As you likely know, 3D touch provides the ability to track a user’s touch pressure level on an iOS device. With this tutorial, @bitwaker provides a great example of how to integrate these capabilities into a custom control whilst still maintaining the user experience on devices that don’t possess 3D touch. By combining 3D touch with existing UI controls it’s also a good example of overcoming some of the discoverability aspects that usually surround the use of 3D touch.
Split-View controllers are a common UI control, especially when developing for the iPad, but they have a number of limitations including the fact that the detail screens all have to share the same format and structure. In this article, @digitalleaves shows you how to create a custom split-view controller of your own, adding some much needed flexibility to this popular UI control.
I’ve mentioned before that Sketch is one of my favourite tools when it comes to app design. With this in mind, I was pretty excited when I came across Auto-Layout for Sketch, a Sketch plugin from the team at @AnimaApp that brings auto-layout to the Sketch art board and allows you to generate an overview of all your screen sizes all at once. Needless to say, I’ll be playing with this over the next week.
Team-Distributed Continuous Integration for Xcode Projects
I’m a big fan of continuous integration tools but with most CI systems using a somewhat centralised model the infrastructure itself does tend to become a bottle neck unless your careful about the number of execution nodes you have on hand. With Jenkins I’ve solved this in the past by adding additional slave VMs but @pepibumur looks like he’s taken a different approach with he and the team at Caramba experimenting with distributed CI using GitLab and GitLab runners turn team mates machines into additional execution nodes!
Before we dive into this weeks libraries (and with the closure date for Parse looming at the end of January), I thought I’d include this article from @bendhalpern. It’s a good reminder that an important part of app development nowadays is the evaluation of the advantages and disadvantages of using individual tools, services and libraries within our app development projects before we press ahead with them.
Hero by Luke Zhao has been getting a lot of love over the last few weeks and for good reason. At it’s core, Hero is similar to Keynote’s Magic Move and provides a simple yet powerful framework for building iOS view controller transitions on top of UIKit’s existing transition APIs. Looks like a great option if you’ve developing custom transitions of your own.
Wouldn’t it be great if we could adjust designs for our native iOS apps without having to go back to Xcode, change the code, recompile it and then navigate back to the screen we were at? This is where Traits by @merowing_ comes in. Traits is a library that provides you with the ability to change the many of the properties within your app (although not your entire design) without having to recompile the application. A useful library for shortening the feedback cycle of your designs.
MVVM is an important architectural pattern for app development aiming to address many of the short comings of Massive View Controller syndrome. In this Swift Language User Group talk, @maxofeden takes a look at MVVM in the round before showing how you can use RxSwift to solve some of the communication issues that arise in MVVM when having to pass data back from the ViewModel to the View.
Under the Radar from @_DavidSmith and @marcoarment is one of the many podcasts I listen to on my daily commute to and from work. Episode #60 was a paritcularly good one for me providing a great reminder that having a broad skill-set and experiences from outside the app-development arena can be extremely useful for an indie app developer.