So there were some pretty big announcements from the Google I/O conference this week including a very impressive demo of Google Duplex Google’s new AI assistant, various updates to Apple maps (including augmented reality directions similar to those demoed by @AndrewProjDent last year), and a whole range of other AI driven improvements across their product suite. From an iOS perspective, one of the more interesting announcements was the introduction of ML Kit for Firebase. With both on-device and Cloud APIs, the new framework provides an alternative to CoreML and supports many of the standard ML use cases such as barcode scanning, text recognition, face detection and image labelling. On top of this, the new framework also includes support for deploying your own TensorFlow lite models and integrates with many of the existing featuers of the Firebase platform as well. Worth checking out.
Following the recent move to Discourse and with continuing growth in popularity of the Swift language, the Swift.org forums have this week expanded their scope with the introduction of new categories for discussion of open-source Swift-related projects such as Vapor, Kitura, SwiftLint and more. They’re also inviting suggestions for further subcategories as well. Good to see.
How do you prioritise the new features for your app? Which one of them should you add next? Can’t decide? One powerful technique to help with this decision is the 2×2 method. Traditionally a risk management technique, the 2×2 technique can also be applied to the problem of app feature prioritisation. @allie_wonders explains how.
In this article, @johnsundell looks at MVC (no not that MVC the – Massive View Controllers – MVC) and explains how to combat view controller bloat by pulling functionality out of view controllers into a separate logic controllers.
TouchID and FaceID let you add both convenience and security to your iOS app by leveraging Apple’s in-built security APIs to add on-device authentication features. Implementing TouchID and FaceID isn’t always straight-forward though, so with this in mind, @mluisbrown has published a nice write-up of some of the things he’s learnt when adding these features to his companies app.
Core Data is one of Apple’s more contentious frameworks with a reputation for being somewhat difficult to work with. In a challenge to this viewpoint, @davedelong has this week published his own personal rule-book for using Core Data in his projects laying out a number of laws that, when followed, help avoid many of the issues of working with Core Data. Although Dave makes alot of good points in his article not everyone has agreed with everything Dave has outlined and this has prompted @mzarra to write a useful (and interesting) follow-up. Both articles are definitely worth reading.
Continuous delivery is an extremely useful technique for rapidly iterating your your app design and whilst ensuring that your app remains stable and bug-free. One aspect of the CD pipeline is the need to continously increment and track the version and build numbers for any particular release and in true continuous delivery fashion, the only real way of doing this is automatically. In this article, Shashikant Jagtap runs down some of the different approaches that you can take.
There are all sorts of reasons that you may not have added unit tests to your app project but with this article there’s no excuses. @twostraws continues his count-down to WWDC with this in-depth article on how to refactor your app to add unit tests to your existing code base.
If you’re not careful, memory leaks can lead to an increased memory footprint, unwanted side effects and, in the worst case, crashes. Leandro Pérez looks into their root causes, how to avoid them and how to write unit tests that test for them.
Date handling can be one of the more trickier topics in computer science and working with them in Swift is no exception. In this talk, @corpunknown dives into the detail of working with dates and calendars in Swift and discusses some of the edge cases you need to account for along withsome best practices to incorporate date handling into your own apps.
If you’ve been around the Swift and iOS community for any length of time you will no doubt have run across RayWenderlich.com. Well this week, they passed a pretty big milestone – their 2000th tutorial! With this in mind, I just wanted to sign off this week by sending my congratulations to @rwenderlich and the whole raywenderlich.com team on some great work and on achieving a very impressive milestone! Well done all! 👏