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.
News
MongoDB to Acquire Realm
So the big news this week is obviously the announcement of the acquisition of Realm by MongoDB. As you might expect, both sides are putting a positive spin on things but with similar MBaaS services disappearing (or at least pivoting) following similar acquisitions in recent years and a selling price for Realm that is reportedly less than it’s funding, it doesn’t sound like everthhings as rosy as it may seem. In this case though I really hope I’m wrong as in my experience, Realm’s technology works really well and is a great alternative to first-party solutions such as CloudKit.
realm.io
Business
Rarely Say Yes To Feature Requests
As your app increases in popularity there are inevitably going to be feature requests from customers, team mates and even company management but when should you say ‘yes’ to these requests and when should you kick them to the kerb? @destraynor has a useful checklist to work through when trying to make these decisions.
intercom.com
App Re-Engagement: Competitive Research & A/B Test Results
As developers we invest huge amounts of effort into marketing and the acquisition of new users but often, keeping existing users engaged and using your app can be a more cost-effective approach. @MartinMazanec has been doing some research into how to achieve this using push notifications with some interesting competitor analysis in the area of health and fitness apps.
medium.com
Design
App Form Design Best Practices
Mobile forms are everywhere from user login and sign-up screens to shopping and searching. Rebeca Costa has written a great article with 10 tips to keep in mind when designing your next mobile form.
justinmind.com
Swift
Protocols I: “Start with a Protocol” He Said
@cocoaphony digs into the world of generics, protocol oriented programming and associated types with a look at some of the questions you should ask when using protocol-oriented programming, how it differs from other programming approaches and how to determine whether you’ve come up with solution that is actually ‘good’.
robnapier.net
Code
UIMotionEffect: Easily Adding Depth to Your UI
@NachoMan takes a detailed look at one of UIKit’s most under-appreciated features – UIMotionEffect
and shows you how to incorporate subtle UI effects into your designs that react to the motion of the device and give your interfaces a feeling of depth.
nachbaur.com
Animated Routes with MKMapView
@idanboadana brings some movement and animation to the MapKit framework and your MKMapViews
, with an article on how to animate an MKPolyline and gradually build up a route over time.
medium.com
How To Make Auto Layout More Convenient in iOS
Whether we prefer to do it in code, or via a storyboard, Auto Layout is now the preferred way to create declarative layouts for our applications. In this article, @onmyway133 reviews some of the improvements that have been made to Auto Layout over the years as well as some tips on how to make things even easier through the use of the builder pattern.
medium.com
URLSession: Common pitfalls with background download & upload tasks
Easy to get started but more difficult to get right. @twannl highlights some of the common pitfalls in using URLSession to perform background uploading and downloading in your app.
avanderlee.com
Tools
Simple XCTest Log Formatter in Swift
In this article, @VojtaStavik shows you how to tailor the output from xcodebuild for cleaner, more expressive output that is more relevant to your specific needs.
vojtastavik.com
Libraries
Swift Location 4.0.0
This week saw @danielemargutti‘s popular location-based framework, SwiftLocation reach version 4.0.0. With it comes Swift 5 support, a bunch of new features, API consolidation and an overall cleaner design. Good to see things moving forward.
danielemargutti.com
Comment
And here we are. Issue 181. Rolling toward the big 200 and not long to go now before the excitement of WWDC! Although I’ve kept it rather quiet, I’ve had some time off over the last week which has been a great relief. Not only has it given me a chance to rest and recuperate (something that was definitely needed) but it’s also given me some time to work on various side-projects that I’ve been neglecting. This has included incorporating some of Swift 5’s new features into these projects – something that’s actually been a pretty pleasant experience in practice – with the new
Result
type, changes to raw strings and string interpolation and the new enum case handling all contributing toward a cleaner code-base overall. Definitely gets a thumbs up from me ?