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.
This weeks Apple have announced that as of Feb 27, your developer account will need to be secured using two-factor authentication before you’ll be able to login. Whilst this is obviously a good thing from a security standpoint, it also causes many developers an issue due to having separate accounts for personal and development use. Although obviously not ideal, @scriptingosx has a straightforward workaround that will hopefully make things a little easier.
App Store Optimisation traditionally revolves around keyword research and optimising the position of your app in App Store search results but that’s only part of the story. Without users actually tapping on your app to download it, you’re still missing out. So how do you optimize for that last step? The team at @appfigures have some tips.
Acting as a product manager for a successful mobile application is a multi-functional role mixing management, research, development, planning, maintenance activities and more. To help lighten the load @AmaliaHelenS and the team at @appsee have put together a comprehensive product strategy checklist with some tips to help develop and guide you toward delivering the best mobile app you can.
Skafos is the tool for iOS developers to deploy machine learning to their app. Get started with a pre-trained model, drop in the SDK and then updates are pushed to your app in the background. Sign up for the free beta today.
Following on from the articles I linked to in last week’s issue, @jckarter looks at the implications of delivering Swift as part of the OS rather than bundled with each app and answers some common questions on how Swift will evolve moving forwards.
Although Swift 5 will get us to the point were we have runtime ABI stability, we’re not yet there on the compile-time side of the fence (see last weeks issue). Although this is being worked on currenlty we have no means of compiling and shipping binary frameworks. Or do we? @HeshamMegid has come up with an interesting workaround – one that appears to be viable. Maybe an option to look at if shipping binary frameworks is critical.
Reflection is a common programming language feature that lets you inspect and work with the members of a type at runtime. Whilst this might not sound like it fits well with Swift’s strongly typed, compile-time type checking, Swift does support the concept of runtime reflection through it’s Mirror API the topic of this weeks article from @johnsundell.
Localization isn’t exactly a core part of the workflow in Xcode as it lacks many of the conveniences we might be used to from more polished workflows such as writing and compiling code. However, all is not lost. As @dschee explains in this article, with a touch of build-script magic and the help of open source tools such as SwiftGen and BartyCrouch we can make app localization a much more pleasant experience.
If your looking for a project for next weekend, then check out this article from @sayaleepote. Combining Google’s ML Kit with Google Translate to automatically recognize english text in an image and translate it into a language of your choice it’s not quite a universal translator but it’s getting there!
Ok, so you might not be writitng a secure note-taking app, but this article from @vixentael contains a great bunch of tips that are almost entirely applicable to other categories of app as well. Definitely worth reading if you want to keep your users data safe.
Test-Driven Development (or TDD for short) can be a great way to drive out the design of your application whilst simultaneously minimising the chances of bugs creeping in. If you’re looking to take get started @mokagio has written a useful step-by-step guide.
If you’re looking to speed up your UI test suite, then you’ll want to take a look at Emcee, a new open-source tool from @avitotech that provides a fast, flexible and scalable way to run your UI tests in parallel using multiple simulators across multiple Macs.
Introduced in Feb 2018, SwiftNIO is a fast, cross-platform asynchronous, even-driven networking framework for developing high-performance protocol servers and client applications. In this talk, @tomerdoron digs into some of the problems in developing high-performance network applications, why you might want to use a custom networking protocol and shows you how to extend SwiftNIO’s basic protocol support to add a custom network protocol of your own.
We start writing our applications with the best of intentions. We create clearly defined classes with clear responsibilities that are easily testable and life is good. Over time though, things deteriorate. We add new features to our code, our abstractions break down and technical debt creeps in. In this talk, @khanlou looks at how to tackle these problems, and discusses how to rebuild our abstractions and re-introduce some goodness.