Sponsored Link
Tired of manually publishing updates to your iOS apps?
App Center helps you distribute, validate, and publish releases without any manual work. You'll automatically redistribute your iOS apps to beta testers, based on crash and analytics data - with nothing more than an automation script, and simple App Center set-up. Learn how.
News
Trusting third party SDKs
Felix Krause with a pretty sobering article about man in the middle attacks in both closed, and open source frameworks that you might use in your apps. It's a scary story, especially if you (or anyone who contributes to your app) ever develop on untrusted WiFi networks.
It's a serious problem, but it's also worth remembering that including any third party framework in your app presents risk, even without a MITM attack like this. How many of us really look at the internals of a framework that we choose before we use it? Also, now CocoaPods includes the ability for pods to add "Run Script" phases to our projects, that's yet another vector.
Just to go back to this MITM attack though. Do yourself a favour and use a VPN when you're connected to untrusted networks. Most of them can even detect untrusted WiFi and automatically connect. Why even risk it?
Tools
How to run sysdiagnose on iOS
If you've ever filed a radar about something on your Mac, you've probably been asked to run sysdiagnose. Did you know you could run it on iOS, tvOS and even watchOS though? Well, you can and Jesse Squires has all the information you need.
Code Size Optimization Mode in Swift 4.1
Erik Eckstein talking on the official Swift blog about the new compiler option shipping with Swift 4.1 to change the optimisation mode from speed priority to size priority. Is binary size really something you worry about in a shipping app? I must admit, it's not top of my list but I'm curious to see what results this will give in real world tests.
Code
Serialization - Speed and Size
Dirk Holtwick with a slightly surprising (to me at least!) set of results from some speed/size tests of serialisation methods. Of course, I expected something like MessagePack to win on size, but I didn't expect NSKeyedArchiver to be so far behind in both speed and size! If you're doing a lot of serialisation, you might be able to get some gains from switching things up a bit.
Swift Tip: String to Data and Back
If you're anything like me, your Swift code tends to get a little cluttered with the constant avoidance of optional values. But is it always necessary? Take this example of converting a Data object into a String and back again. Is it OK to sometimes force unwrap? I think it's all too easy to fall into a mindset of never letting it happen?
Unit testing asynchronous Swift code
John Sundell with a look into one of the most common testing problems in any language. He starts with a couple of options for testing async code, before going on to discuss the alternative. Making your async code synchronous again!
Business and Marketing
What happens to the traffic you send to the App Store?
Great facts and figures from the folks at iA Writer on various experiments they did with their App Store listings. Specifically, this post is about how your sales could be affected by increasing your blogging activity. Fascinating.
Update: Oops, this is a duplicated link! Sorry about that.
Up to Speed
The Going Indie Spreadsheet
If you're thinking of starting out on your own, there's a lot to think about and I really enjoyed this double episode (Part 1, Part 2) special from Under the Radar. It's quite US centric but there'sd still some great advice in here.
Videos
dotSwift 2018 Videos
Just a couple of weeks ago, Paris was the location for dotSwift 2018 and already we have videos to watch, isn't that wonderful! 🎉
Sponsored Jobs
iOS Engineer @ Scoop
Join Scoop in bringing convenient and enjoyable carpooling to commuters across the nation!
And finally...
Happy Valentines Day from your compiler
I know it's a couple of days late but this made me smile. 😀
Comment
Does filing a radar work? Certainly a radar will increase your chances of getting a bug fix or improvement implemented from 0% to some value very slightly above 0%. 😀But you know this already, so what's my point?
Back in Issue 323, James Dempsey's article caught our attention with his appeal to change Xcode's implementation of
git blame
to not include the word blame. I liked the post, and I agreed with it but I must admit I never thought it would happen.Then the betas of Xcode 9.3 started appearing in late January (yea, I know this news is a couple of weeks old now!) and sure enough the blame view is now "Authors View" and "Show Blame for Line" is now "Show Last Change for Line"! 🎉
So next time you find yourself complaining about something in Xcode, make sure you also file that radar at the same time. You never know what might happen!
Dave Verwer