Sponsored Link
Scan documents directly from your app with the Genius Scan SDK
Integrate Genius Scan and let your users quickly capture documents and convert them into legible PDFs. Everything runs locally for performance and privacy: real-time document detection, perspective correction, color and b/w enhancement. With a simple API, our iOS, Android, Cordova and React Native SDKs power apps used by millions of end users.
News
Global App Revenue up 23% Year-Over-Year
Incredible growth, especially for a ten year old industry. This is great news no matter how you look at it, but it's especially good when you that consider that while revenue was up ~20%, downloads were only up by ~3% which means that average revenue per download also increased significantly. π
Swift REPL Support for Swift Packages
Obviously we have playgrounds, which are a REPL of sorts. But did you know there was an actual REPL for Swift? Did you also know that unlike Playgrounds, it now supports Swift package manager? Well, now you do!
Tools
Sizes
Running all the sizes of simulators, or even worse, connecting all the different sizes of actual device is a huge pain when you're trying to fix an issue with layout. Marcos Griselli put together a library that'll save you a huge amount of time. Integrate it and switch between all the sizes, orientations and font sizes with the tap of a few buttons.
How to Extend LLDB to Provide a Better Debugging Experience
Daniel MartΓn with a great article on LLDB. He covers extending it with commands, custom data formatters, children providers (which were new to me!) and advanced logging. A good reminder how powerful LLDB can be if you put the time into working well with it.
Code
Smoke Framework
First IBM, and now Amazon with a new server-side Swift framework. The big players are certainly interested in Swift on the Server. This isn't a framework for building web apps so much as something to help you with a quick REST server, but isn't that what a lot of iOS apps need?
UIFontMetrics and Dynamic Type
I missed this when it was first published but it was brought to my attention again this week and it's great. I've linked to posts about dynamic type and custom fonts before, but never anything as comprehensive as this from Dave Lyon. It starts with the basics of scaling a font, but finishes with a simple custom label that'll allow you keep dynamic type, with custom fonts, in Interface Builder. π
Empowering NSAttributedString
My first thought when I read this post from Ennio Masi was that I am very grateful that I haven't had to work on an app which included text from two different scripts in the same UI. Then it made me think how glad I'd be for a framework like CascadeKit when I understood the problem properly.
HapticTouchGestureRecognizer
From what I can gather, the "Haptic Touch" of the iPhone XR is simply a long press with a haptic tap at the end. If you want to implement it in your own apps, this gesture recogniser class from Aaron Brager will do exactly that for you.
Migrating to Swift
Really interesting post from John Scott about migrating his app, Herd from Objective-C to Swift. He approached it in a very clear, systematic way and the result was a success. This line stood out to me as the best advice of the article though:
To summarize, this project would have been a failure if Iβd tried to redesign the app while migrating.
Absolutely. One step at a time!
Business and Marketing
I gave my app away for free.
What happens when Apple decide to offer you the opportunity to be featured in the Apple Store app (rather than the App Store app)? Ben McCarthy talks about his experience when Obscura was featured. Good article in general, but specifically I found the fact that this generated lots of requests for localisation really interesting.
Sponsored Jobs
iOS Developer @ Badoo, London
Come join our iOS team, made of dynamic and fun-loving coders at the top of their game!
Comment
iOS 12 is already at 50% adoption, and in record time! As happy as I am to hear this news, I'm quite curious to know why it happened. I can see a couple of potential reasons:
I'd like to think it'sΒ #1, but I fear it may be #2... Either way, Iβm happy!
Dave Verwer