The main point in all these discussions is that although these libraries and dependency managers allow you to quickly and easily add functionality to your projects they can also bite you. The issue is one of control. If you do not have direct control over everything that is needed to build and release your project (and instead pull those dependencies down at build time), you are at significant risk of those dependencies either disappearing (as in the Node case) or at least changing under your feet (as is the case if you don’t specifically state the versions of those third-party dependencies).
The lesson then, is to make sure that you have everything you need to build your projects fully controlled in a version control repository that you own. That means the code, the libraries, the tools you use to build them and any other resources that you may use. That way, if things do disappear or change unexpectedly, you are fully insulated from those changes, you can still build your projects, and you can then make conscious decisions about if, and when, you are going to upgrade. This week has been a warning shot across the bows for many and one that is worth paying attention to.
- Libraries and Frameworks
App screenshots are a key part of the marketing for your app within the App Store. In this article @dancounsell provides a good overview of the different styles and options that you might want to choose.
With the ongoing development of Swift and Apple increasingly moving their code base in this direction many development teams are faced with the question of what to do with their Objective-C code bases. In this article, @GergelyOrosz recounts how he, and the team at Skyscanner, have been gradually transitioning from Objective-C to Swift. It provides some good tips for teams that might be facing the same journey.
As of summer 2015, the App Store contained over 1.5 million apps and the task of making your app stand out amongst this multitude of competing apps can be a real challenge. The important question then is what makes one app successful and another not? In this article, @robjama digs into this problem, dissecting some of Apples design and App Store recommendations to try and identify just what goes into making a successful app.
I’ve never been particularly happy with the syntax for using selectors as it always seems quite verbose but these tips from @AndyyHope make things a whole lot cleaner and with the additional selector safety introduced in Swift 2.2 I’m pretty sure I’ll be adopting them in my own code going forwards.
This week I went slightly off-topic on the blog with this introductory article to Unicode. Unicode is the underlying text encoding standard that Apple used to underpin both the Character and String data types in Swift and in preparation for up coming articles on those data types I wanted to dive into the standard itself to see how it worked. It turned out to be more complicated than I remembered. As ever, I’d welcome any feedback you have.
@mhorga_ starts what looks like a promising series of tutorials on how to perform ray tracing within a Swift playground. Worth keeping an eye on if you’re interested in this sort of topic.
In this article, @cocoawithlove takes a deep dive into the concept and nature of errors, looking at what errors actually are and looking at some of the complications that surround them.
Libraries and Frameworks
Hot on the heels of node-magedon, I came across this article from @sandofsky in which he talks about due diligence and the decision making process you should be going through when deciding whether or not to use a third-party library within your app. It’s worth a read.
When building iOS apps, there are a whole range of things that we need to ask our users permission for. Accessing the camera or photo library, using the microphone, checking the users location and motion or accessing the address book are just a few examples. The downside is that each of these iOS APIs have their own way of asking the user for permission. What if instead, we could have a unified API that provided a single consolidated API? This is where Permission comes in.
In recent years, in-app purchase has become an increasingly important revenue stream for developers but adding in-app purchase functionality to your app often involves a lot of boilerplate code. SwiftyStoreKit from @biz84 aims to help with this by providing a lightweight, pure Swift API that supports product retrieval, the product purchase process, restoration of previous purchases as well as receipt validation.
In this talk from try! Swift, @bobbins talks about the 7 Principles of Design. Taken from the book The Design of Everyday Things by Don Norman she shows how these very same design principles can be applied to the app design process to enhance (amongst other things) with discoverability of your apps and the feedback that your users get when using them.
In this second talk from try! Swift, @jeffhui talks about all the things that you need to think about when creating a library of your own including APIs, testing, continuous integration and package management. As part of the talk he walks through a complete example which definitely helps with the understanding.