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.
Business
10 Styles of App Store Screenshots
App screenshots are a key part of the marketing for your app within the App Store. In this article @dancounsell provides a good overview of the different styles and options that you might want to choose.
dancounsell.com
How We Migrated Our Objective-C Projects to Swift
With the ongoing development of Swift and Apple increasingly moving their code base in this direction many development teams are faced with the question of what to do with their Objective-C code bases. In this article, @GergelyOrosz recounts how he, and the team at Skyscanner, have been gradually transitioning from Objective-C to Swift. It provides some good tips for teams that might be facing the same journey.
codevoyagers.com
Design
Apple’s Recipe for Making Successful Apps
As of summer 2015, the App Store contained over 1.5 million apps and the task of making your app stand out amongst this multitude of competing apps can be a real challenge. The important question then is what makes one app successful and another not? In this article, @robjama digs into this problem, dissecting some of Apples design and App Store recommendations to try and identify just what goes into making a successful app.
medium.com
Swift
Selector Syntax Sugar
I’ve never been particularly happy with the syntax for using selectors as it always seems quite verbose but these tips from @AndyyHope make things a whole lot cleaner and with the additional selector safety introduced in Swift 2.2 I’m pretty sure I’ll be adopting them in my own code going forwards.
medium.com
Code
An Introduction to Unicode
This week I went slightly off-topic on the blog with this introductory article to Unicode. Unicode is the underlying text encoding standard that Apple used to underpin both the Character and String data types in Swift and in preparation for up coming articles on those data types I wanted to dive into the standard itself to see how it worked. It turned out to be more complicated than I remembered. As ever, I’d welcome any feedback you have.
andybargh.com
Ray Tracing in a Swift Playground
@mhorga_ starts what looks like a promising series of tutorials on how to perform ray tracing within a Swift playground. Worth keeping an eye on if you’re interested in this sort of topic.
mhorga.org
Errors: Unexpected, Composite, Non-pure, External
In this article, @cocoawithlove takes a deep dive into the concept and nature of errors, looking at what errors actually are and looking at some of the complications that surround them.
cocoawithlove.com
Libraries and Frameworks
When to Avoid Libraries
Hot on the heels of node-magedon, I came across this article from @sandofsky in which he talks about due diligence and the decision making process you should be going through when deciding whether or not to use a third-party library within your app. It’s worth a read.
sandofsky.com
Permission
When building iOS apps, there are a whole range of things that we need to ask our users permission for. Accessing the camera or photo library, using the microphone, checking the users location and motion or accessing the address book are just a few examples. The downside is that each of these iOS APIs have their own way of asking the user for permission. What if instead, we could have a unified API that provided a single consolidated API? This is where Permission comes in.
github.com
SwiftyStoreKit
In recent years, in-app purchase has become an increasingly important revenue stream for developers but adding in-app purchase functionality to your app often involves a lot of boilerplate code. SwiftyStoreKit from @biz84 aims to help with this by providing a lightweight, pure Swift API that supports product retrieval, the product purchase process, restoration of previous purchases as well as receipt validation.
github.com
Videos
The Design of Everyday Swift
In this talk from try! Swift, @bobbins talks about the 7 Principles of Design. Taken from the book The Design of Everyday Things by Don Norman she shows how these very same design principles can be applied to the app design process to enhance (amongst other things) with discoverability of your apps and the feedback that your users get when using them.
realm.io
Creating a Swift Library
In this second talk from try! Swift, @jeffhui talks about all the things that you need to think about when creating a library of your own including APIs, testing, continuous integration and package management. As part of the talk he walks through a complete example which definitely helps with the understanding.
realm.io
Comment
So if you’ve been paying attention this week you might have heard the news in the JavaScript community about node-magedon where one developer managed to break Node, Babel and thousands of other projects by taking down his open-source projects. Now, you might not think that this is directly relevant to iOS development but it has triggered a lot of discussion in the Swift and iOS community this week on the nature and use of third-party libraries and their associated package and dependency managers.
The main point in all these discussions is that although these libraries and dependency managers allow you to quickly and easily add functionality to your projects they can also bite you. The issue is one of control. If you do not have direct control over everything that is needed to build and release your project (and instead pull those dependencies down at build time), you are at significant risk of those dependencies either disappearing (as in the Node case) or at least changing under your feet (as is the case if you don’t specifically state the versions of those third-party dependencies).
The lesson then, is to make sure that you have everything you need to build your projects fully controlled in a version control repository that you own. That means the code, the libraries, the tools you use to build them and any other resources that you may use. That way, if things do disappear or change unexpectedly, you are fully insulated from those changes, you can still build your projects, and you can then make conscious decisions about if, and when, you are going to upgrade. This week has been a warning shot across the bows for many and one that is worth paying attention to.