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.
The idea of the iMessage App Store had so much promise. For developers the potential for viral app downloads through user sharing and for users an enhanced communication experience that would build, develop and extend the way they communicated on iOS devices. However, since it’s launch the iMessage app store doesn’t seem to have delivered on much of this potential. This leads @ahow to ask the question – Is the iMessage App Store dying or is it already dead?
Does this sound familiar? You come up with a great new app idea, get all excited about it, and dive straight in, working away for weeks or even months on end adding killer new features to your creation, before eventually pushing it out into the world…. and then nothing. No downloads, no raving fans. It’s a huge flop. It’s actually not uncommon but there is a MUCH better way that you can approach app projects and one that significantly increases the chances of success. @robcaraway4 explains all.
User engagement plays a large part in the the long-term success of an app. In this article @vourkosa considers the part that a users feelings play in developing this engagement and how those feelings develop as a user starts using you app.
Over time, as your app grows, the AppDelegate can quickly become a massive class that has a whole bunch of responsibilities from understanding your apps dependencies and how to initialise them through to processing push notifications, dealing with the app lifecycle and a whole lot more. However, with some careful design we can bring some order to this chaos by moving many of these responsibilities off of the AppDelegate onto other classes leaving your AppDelegate nice and clean. @fmo_91 explains how.
You’ve probably come across it before – those helper classes that contain a bunch of static methods that someone thought were a good idea at the time but you later realise are preventing you from using dependency injection on the classes that use them and thus make testing those classes particularly tricky. Now, nine times out of 10 when faced with this situation the answer is to refactor the code but what if don’t have that luxury? What if you wanted to be able to use dependency injection with these new classes you still had to make use of these static methods? You’d be stuck right? Well actually that’s not the case. @mokagio provides a handy little tip to work around the problem if your in a pinch.
Object-oriented programming has been around since the days of Smalltalk but in Swift, the popularity of subclassing and inheritance has dwindled recent years in preference to the composability and flexibility of protocol-oriented programming. So should we be going all-in on protocol oriented programming or does subclassing and inheritance still have it’s place? @cocoawithlove takes a look.
If you’re a fan of unit testing you’re going to love Spry. Create by @shaps, Spry brings unit testing to Swift Playgrounds with an API almost identical to that of the Nimble which in turn allows you to write your tests in a Playground and then copy and paste them directly into your Xcode project. Nice!
Debugging code something we all have to do at one point or other so having a solid understanding of Xcode’s debugging tools can bring some serious benefits to your productivity. In this article @iTeachCoding provides an Xcode 8 / Swift 3 update to @zombietreats original tutorial on Intermediate Debugging with Xcode 8. It’s a useful read if you find yourself spending more time debugging code then a you do actually writing it.
This week as seen the release of the Twitter Image Pipeline iOS Framework, a framework focused on fetching and caching remote images. It’s a pretty comprehensive library with a bunch of documentation behind it and is definitely worth a look if image downloading is your thing.
Although there are a number of Swift JSON mapping libraries available, this week saw a new entrant in this arena with the release of Serpent by @marius_const and the engineering team at Nodes. I’ve not had a chance to try it out yet but according to the authors this is one of the more performant JSON libraries out there and comes with an associated Model Boiler tool, a small macOS app that can automatic generate the parsing code associated with your JSON model. Looks interesting.
As developers there is *always* something new to learn. Whether it be new (or continually changing) languages (I’m looking at you Swift! ?), the trendy new Apple frameworks or the latest design approaches, with so many topics and technologies to choose how do you decide on which one to focus on? @samjarman provides some suggestions.