Sponsored Link
Want to automatically build, test, and release your apps? Try App Center
From the creators of HockeyApp: Ship better apps faster by connecting your app's GitHub repo and automating the rest! After pushing new code, App Center can build your app in the cloud, test it on thousands of real iOS devices using XCUITest, release to beta testers or the App Store, and monitor production with crash reports and analytics. Sign up now.
News
Update Your watchOS Apps
Are you still shipping a watchOS 1 app? If you are then you'll want to take note of this update from Apple stating that as of April next year you'll no longer be able to ship anything less than a native app built with at least watchOS 2. Take note!
Introducing Kitura 2.0
I've not given Kitura much coverage, even though it's been around for quite a while but recently it hit the milestone of 2.0 so let's give it another mention. The highlight of the release is codable routing but if you haven't tried your hand at server side Swift yet, maybe this is a good opportunity to have a play?
Introducing App Center
Things have been pretty quiet from HockeyApp since the acquisition by Microsoft almost 3 years ago (time really does fly!) but this week saw a relaunch of it as part of App Center from Microsoft. There are still echoes of the old HockeyApp that remain but this is very much a changed service, with much more functionality. The cloud based testing service looks especially interesting.
Note: Yes, this is also this week's sponsored link but I'd have linked to this story anyway and so I figured I should still do that.
Tools
Treat Warnings as Errors in Swift
Like Daniel Jalkut, I am also a believer in maintaining a strict zero tolerance policy for warnings when it comes to committing features/fixes or doing releases. I've never gone as far as switching "Treat warnings as errors" on as I can generally trust myself just not to do it 😅 but if you're a fan of this compiler switch then here's a little gotcha that might catch you out.
Stop Xcode from constantly rebuilding your project because of @IBDesignable
I've never really bothered with @IBDesignable
so I hadn't come across this problem but if you have, then Arek Holko has a tip to stop with the constant rebuilding. Looks like it might be fixed in Xcode 9.2 but until then this is going to save some time.
Code
Observing the A11's Heterogenous Cores
Let's kick this week's code section off in the most hardcore way possible. The A11 is an amazing chip and Mike Ash is going to give you a wonderful tour of the heterogeneous cores in the new processor. 🚀
A Better MVC
This four part article (1, 2, 3, 4) from Dave DeLong doesn't directly follow up on last week's commentary on MVC but it's definitely tackling some of the same issues. Well worth a read and it's really nice to see Dave blogging openly now that he's able to!
SkeletonView
I really like this library from Juanpe Catalán for showing placeholder "skeleton" views while data is loading. This isn't a new idea but the hierarchical implementation makes this really easy to adopt if you have an app that loads data progressively.
Design
An analysis of the interactions on iOS 11
Adhithya Kumar with a really interesting article on the new gestures and interactions that come along with the iPhone X. These new gestures have fallen into place incredibly naturally for me and I've really been surprised how quickly I adapted to them, but how about some real user research? Here you go.
Sponsored Jobs
Staff iOS Engineer, Slack, Position is based in San Francisco, CA (no remote work)
Join us in building Slack's iOS architecture 2.0, Enterprise, i18n, mobile calling + Shared Channels!
Join Mobile Engineering at Expensify in San Francisco or Portland
Passionate about mobile apps and automating mundane tasks? Help build expense reports that don't suck!
Comment
It was just a few short weeks ago that we linked to this article about Luna Display using the light sensor in the iPad to simulate a hardware button. I thought it was a really clever idea and I couldn't see a downside with the way it was implemented, but unfortunately it didn't make it through review. 😢
Did it break a rule? Yes, and that rule is written in black and white which the developers almost certainly knew when they submitted it. Did the App Store lose a neat feature in an app by not allowing this to get onto the store? I think that's also a yes. The bigger question is whether these policies have a net positive or negative effect on the store? Yes, it's easy to point to examples like this and say "APPLE IS STIFLING INNOVATION WITH POLICIES LIKE THESE" but how many bad UIs are we being saved from? We'll never know as it's only really talked about when something really cool gets rejected.
The reality is, the rules (guidelines? 🤣) are documented and that's a good thing. Apple have also showed that they can and do compromise on issues like this before. Remember Camera+ and the rejection for using the volume button to take a picture? Apple not only reversed that decision but then ended up adopting that technique in their own camera app.
It's tricky to say where the line should be drawn. Yes, I'm pretty sure I wouldn't have been confused by this feature in this app but the App Store is massive, and mainstream. Just because I (who spends tens of hours a week immersed in the iOS world) wouldn't get confused by this app doesn't mean my Dad also wouldn't if the BBC news app suddenly started showing a menu when he randomly put his hand near the top of the phone covering the light sensor he's probably not even aware exists.
Overall, I think the App Store still moves mostly in the right direction, if a little slowly, but that comes with being mainstream and I'm still very happy that iOS is a mainstream platform.
Dave Verwer