Sponsored Link
Buddybuild: an iOS Continuous Integration and Deployment system that "just works"
Buddybuild fundamentally changes the way you think about iOS build and deployment processes. Send builds to your users without the headaches of processing times, managing UDIDs, provisioning profiles and signing identities. With a built-in email and Slack based deployment system, new users and their devices are instantly provisioned. Stop wasting time with build scripts and focus on building awesome apps! No sign-up required to try the demo!
News
Xcode 7.3 b4, Swift 2.2
What's new the latest release of Swift 2.2? Russ Bishop has a good round up as always. I like the new Swift version availability checks and the removal of the ugly, C style __SOMETHING__ symbols. The new #selector functionality is also in this release which is great news!
What Is the Secure Enclave?
So the Secure Enclave has suddenly had a lot of attention over the last week. Mike Ash takes a detailed look at exactly what it is, and how it works. Much of the information here is taken from the iOS Security Guide which I've linked to before, but this very readable and detailed post is absolutely worth your time even if you've read that.
Tools
Introducing the Swift Package Catalog
IBM with a Swift package repository. Interesting! It's open to submissions of new packages but as far as I can see, development of the repository software itself is not open to contributions. I must admit, this announcement is a little bittersweet to me. I'd have loved to see them work with the CocoaPods team to leverage that huge dataset and the years of work that went into genuinely useful features like mandatory license files, the quality index and so much more.
Fabric iOS App
If you're using Fabric for Crashlytics or Answers then this should definitely be on your phone. Instant access to your crash data and overview analytics along with useful notifications so you're always aware of what's going on. I may be a little sceptical about Twitter as a company sometimes, but the Fabric team are doing some great work.
Danger - Formalize your Pull Request etiquette
What a great idea! The best way to think about Danger is as a lint for your pull requests. Define rules for checking various bits of a PR and then have them automatically checked by your CI server. The README mentions that this is not ready for public use yet but I couldn't resist linking to it as the concept is so great. 👍
Code
Validated
Benjamin Encz with a tiny library for quickly generating new types with built in validations. I really love the idea of making types more descriptive based on the restrictions you put on what data makes them valid. Great idea.
Kitura
More from IBM! I guess both of these mentions today are the fruits of the partnership announcement last year. Kitura is another web framework and HTTP server written in Swift, and like all the others it's still very early days. If you want to have a play with it there's instructions in the README, or there is a tutorial written by Cocoa Dev Central on getting it up and running on a Digital Ocean VM.
Maybe server side Swift frameworks are this year's Swift JSON frameworks?
Swift Algorithm Club
Looking for an implementation of an algorithm in Swift? This repository has probably got you covered. Matthijs Hollemans has put together this collection of over 40 algorithms already, and more are being added all the time. Even if you don't directly need any of these right now, they're a great learning resource.
Design
Designing for the Apple TV
Michael Flarup writes some tips for getting design right when working with the Apple TV. He covers all of the basics but also some interesting points like making sure you meet the expectations of a TV based platform in terms of displaying and taking advantage of video based content.
Videos
Apple TV Tech Talks
If you didn't get a ticket, or weren't able to attend the Apple TV tech talks which recently happened then here's some good news. All of the content from the sessions is now published for your viewing pleasure. Note that these are not officially available on the Apple TV (why not?!) but Aaron Stephenson has an app which can help with that.
The Care and Feeding of Gesture Systems
Fantastic lightning talk from Andy Matuschak on the touch and gesture system on iOS from last week's React.js conference.
Sponsored Jobs
Senior iOS Engineer @ PSPDFKit, Remote
Build a framework used by thousands of companies and millions of people.
iAdvize - iOS developer (Nantes, France)
Join a great team and help us build our future messaging app.
And finally...
How to Rickroll someone in 3 lines of code
I promise the link itself isn't a Rickroll. You can trust me! 😇
Comment
There was an interesting story this week that triggered another round of conversation on the App Store review process. Claud Xiao wrote about an app released late last year which presented one of two sets of functionality based on your location. When launched outside China it showed a fully featured app to help you learn English, but inside China it showed an App Store style app that (ab)used enterprise certificates to install pirated apps.
App Store review is (and always has been) fundamentally flawed in this respect and there's no easy solution. This time it was the user's location that was used as the gate to the alternative functionality, but it could have used any number of other checks to appear well behaved during the review process. Unfortunately the way that app review currently works makes situations like this almost impossible to prevent. Even if it were possible, these kind of gates are used by all sorts of apps for completely innocuous, or even user beneficial reasons as well. Trying to shut this kind of hole down isn't the answer.
So, is App Store review still providing a useful service? Did it ever? My opinion is that at the very start it definitely set a tone and stopped the immediate flooding of the store with crap. However at this point, I'm not sure it's really providing many benefits. Half finished and completely useless apps still get through all the time so it's definitely not providing the quality control that was promised. More importantly, it continues to stifle innovation through fear of (and the reality of) rejection as we've seen time and time again.
I'm just not sure that the legitimately rejected apps are worth the trade off anymore.
Maybe I'm wrong and it is protecting us from a store full of malware, pirated apps and all sorts of other problems. Certainly things like trademark violations are easy to check in a human review, and so maybe a reduction in scope for the review process would be best? But as this story and many others like it show, you can trivially bypass parts of the review related to app functionality. At that point you're faced with just having to pull apps like these when they're discovered, and that already happens when apps sneak past the review process.
Note: I'm not saying that the guidelines are a bad idea, just that the review process itself is not able to enforce the. Apps that clearly violate them are still getting through on a regular basis.
Dave Verwer