Ok, I’m hoping you’ll have heard about this by now but this week, a massive security flaw was discovered in macOS (High Sierra). The bug allows anybody to log onto your machine with the root account and a blank password (or a password of their choosing) – as you can imaginge – a pretty serious problem. Apple have already rushed a fix out (although the first attempt was a little too rushed), so if you haven’t already, I’d recommend a visit to the Mac App Store to grab the updates. On top of this, if you’re of a more curious nature and want some insight into how this actually happened, @objective_see has written detailed explanation of what was involved. From a development point of view it’s a good reminder that checking return values in your code is always a good idea! 😉
After months of work you’re app is finally in the store and the sales are starting to trickle in but it’s no where near the smash hit you were hoping for. hellosunschein shows you how to improve this situation by undertaking ongoing user research and how you can use the information you learn from that research to iterate and move your app toward the ever-illusive product-market fit.
Swift’s String APIs have been through a number of iterations since Swift was first introduced. Now that things look like they might be settling down a little, @gregheo dives into Swift substrings, looking at how they are implemented and some of their implications for memory usage.
I enjoyed this article from @nathangitter in which he discusses the topic of local reasoning in Swift. This is the idea of making your code more readable by orgnanising your code in such a way that anybody reading it can make sense of it without having to dig through the entire code base. Remember code is generally write once and read many times so be kind to the future you, read Nathan’s article, and use some of the ideas make your code as readable as you can.
A nice write-up from @twostraws on Apple’s new
Utilities framework, a collection of open-source utility code for Swift developers that has grown out of the Swift Package Manager project. It includes a whole range of new goodies including useful new data types as well as some useful helpers for common tasks like temporary files and SHA hashing.
If you’ve ever done any unit testing in Swift you’ll have no doubt grappled with the challenges of making sure you’re code is testable. A key component of this is the ability to isolate the code under test. When testing object-oriented code this isn’t usually too difficult but what about when you’re trying to test standalone functions? The key is the idea of code ‘seams’. @qcoding explains more.
If Realm is your persistence technology of choice, you’ll probably want to pay attention to Icecream. This library by @caiyue5 helps with synching your Realm Database with CloudKit letting you get the best of both worlds.
Whether you’ve just started on your development journey or are seasoned veteran, finding the root cause of an error in your app can be an intimidating, and sometimes daunting prospect, especially when you have users clamouring for a fix. Although there is no single best answer for how to tackle these tricky situations, @davedelong has some guiding principles that can go a long way toward heading you down the right path.
Although I’m obviously biased and think Swift Developments should be your number one pick 😉, we are blessed within the Swift and iOS development community to have a wide variety of Swift and iOS newsletters to choose from. @LisaDziuba has written a nice roundup of many of many of these and has also written some very kind words at the end of the article which I not only appreciate but also echo. As Lisa says, writing a newsletter every week it not a small amount of work but like every other newsletter maintainer, I try to put out the best publication I can for each week. However, as with everything, there is always room for improvement so if you ever have suggestions for Swift Developments, whether that be links that might be a good fit or overall improvements that you think might improve the newsletter in general, then drop me note – I’m always open for suggestions!
So you’re just getting started with iOS development and you’ve had an idea for an app, but how do you transform that idea into reality? In this article @thedevme focuses on the design side of things breaking down the design of an existing app before recreating it inside Interface Builder. It’s a nice gentle introduction if you’re just getting started with iOS development.
@marmelroy on the search for that one killer tool or technology that will make your code better, bug-free and easier to maintain. It’s a great talk and contains some hard-won, and extremely useful, advice to keep in mind.
Working on large code bases with distributed development teams creates a lot of challenges for many app development teams. In this talk, @yuseinishiyama presents a number of tools that development teams can use together to overcome these challenges by speeding up build times, improving code modularization and enhancing overall code quality.