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.
Some great news this week with the announcement that version 43 of my favourite UI design tool @sketchapp is going to be released with a new, open, JSON-based, file format. On the face of it, this might not seem like much, but it opens up whole new range of possibilities for creating third-party tools to generate and manipulating your Sketch designs. It’s a great move by the team at @bohemiancoding and I’m going to be really interested to see what people build.
How to Prepare for an iOS Interview
Whether you’re an indie developer supplementing your in come, a freelancer or a full-time employee looking for a new role, interviewing for new iOS development positions is a fact of life. In this article, @waynewbishop provides some great advice on how to prepare for that all important interview and how you can maximise your chances of landing the job.
Gone are the days where UI design is simply about the positions of your views and buttons on the screen. Nowadays animation plays just as important a part and provides designers and developers with untold opportunities for making their designs stand out. @101babich looks at some best practices when it comes to adding animation to your designs and how to use it to enhance the UX or your apps.
To contrast the article from Nick above, I thought we’d also go for a bit of balance this week. Despite the growing importance of animation in UI design, we can always have too much of a good thing. In this article, @msNaema provides some useful tips on walking that line between animations that enhance the experience and animations that are just annoying.
Detecting the first launch of an app is an important task for many apps and the obvious solution is to use
UserDefaults. However, doing so blindly can introduce a number of issues when it comes to testing. @olegdreyman takes a look at the problem and outlines some alternative approaches.
For many the use of Interface Builder is a divisive subject. It’s Apple’s recommended route for developing interfaces for your applications but many people hate it for the complexity it introduces – especially when working in larger teams. In this article @ygtyurtsever outlines some of the reasons why he and his team at Zeplin decided to head toward the code-only route.
Automatically Incrementing Build Numbers
Although Xcode support the ability to specify the current build number for a particular Xcode project, for some reason it doesn’t support auto-incrementing it every time you build your project which in turn sometimes leads to mistakes when uploading to the app store. @nlanzaio provides some useful shell scripts that uses Xcode’s built-in tools to ensure you never make this mistake again.
The Swift language is great. Due to the increased emphasis on compile-time checks when compared to the Objective-C compiler, we can write safer, cleaner and more expressive code. However, these compile time checks come at a price and that’s compile time. @johnsundell has been investigating this issue and has a few tips for reducing the compile time of your own Swift projects.
UITableViews are a staple in many UI designs but have you ever wanted to add new items at the bottom of the table rather than that top? If you have, ReverseExtension from @marty_suzuki is exactly what you’re looking for.
Swift Archival & Serialization API Proposal
Although we still have the option of using the Foundation frameworks serialization APIs, this week has seen a new Swift Evolution proposal from @itaiferber around the inclusion of a type-safe solution for serializing external data formats into the Swift language itself. The proposal is still in early days but has a lot going for it and could remove the need for external JSON parsing libraries in future. It’s worth a read if your interested in where things may go in the future.
How to Rescue a Codebase
Great talk by @sandofsky on dealing with legacy code bases, the risks of rewrites as well tips on how to gradually improve things over time.
As the capabilities of our applications increase, the importance of good architecture becomes increasingly important. In this talk, @nzaghini walks through VIPER, one of the more structured architectural approaches, describing it’s various components and some of the benefits it can bring to your application designs.