The Swift Algorithms Book (Revised for Swift 3.0)
Written for students and professionals, the 2nd edition of Swift Algorithms & Data Structures blends modern code, illustrations and computer science to help you pass the interview or build your next app. Revised and updated for Swift 3.0, the new book takes a fresh approach to explain concepts that power search engines, databases and social networks. Use coupon code "IOSWEEKLY" at checkout to receive a 20% discount!
Plans for Swift 4.0
The Swift Evolution readme was updated this week with an outline of the release schedule, and priorities for version 4. Predictably the final release is scheduled for fall next year, presumably alongside iOS 11, Xcode 9, etc... However, during the year there's going to be two main phases of development. Changes that affect source and ABI compatibility first, then other changes as we get towards the release. Sounds good to me.
Swift on Android, Part Two: What Now?
There has been talk (and even action) around using Swift on Android ever since it was first open sourced. This week, Brian Gesiak wrote on the continuing progress as well as talking about whether it's the right choice. Ultimately, I feel this is always going to be of limited practical use, but it's interesting to watch the progress.
"Unable to simultaneously satisfy constraints" is never a welcome message in your console. Your life is just about to get easier though with this very useful tip from Rafael Machado for making debugging Auto Layout problems easier.
Import: Xcode extension to automatically add imports
Let's face it, there's a definite lack of code assistance and refactoring tools in Xcode, especially when writing Swift. With extension support (RIP plugins) at least some types of helpers can be built, and this is what Marko Hlebar has done. Type your
import statement, hit a keyboard shortcut and it'll get moved to the right place. It's not going to save you hours, but every little bit helps!
Open Sourcing IGListKit
IGListKit is a new open source library focused on splitting up your massive collection view controllers, and also being more efficient with how it diffs and redraws cells. In this post Ryan Nystrom gives us an overview of the library along with some sample code. There's also a video recorded recently which goes into more detail on how it came to life through the Instagram app.
Smooth Scrolling with AsyncDisplayKit
It's all about increasing performance of scrolling lists this week with this post by Andy Yates on speeding up the Buffer iOS app with AsyncDisplayKit. The video at the bottom really does show a stark improvement in dropped frames so if this is something you're struggling with, you should maybe consider it!
Optional Non-Escaping Closures
The change to making closures non-escaping by default in Swift 3 has probably had you thinking about them a little more than you did with Swift 2. Ole Begemann has written up a very comprehensive post on everything you need to know on the subject.
Updating Strings for Swift 3
Great post by Keith Harrison on strings in Swift 3 and the syntax changes since Swift 2. There's also an updated playground file with some examples of everything he talks about.
Business and Marketing
The Man Who Passes the Sentence…
There's been talk on Twitter this week about whether it's ethical to use App Store ads to bid on your competitor's keywords directly. Joe Cieplinski followed up on the conversation with this post, and I must say I agree with him. Would it be better if it wasn't allowed? Maybe. But not doing it, when everyone else certainly will is just counter productive.
Extending Xcode 8
Daniel Jalkut with a great talk on Xcode 8 extensions. It's not a particularly technical talk in terms of code but there's some great information in here about how they operate internally, how the security model works, code signing issues and debugging. Let's hope they get extended in scope for Xcode 9.
The Best Jobs in the World, (all in one place)
As a talented iOS developer, shouldn't companies apply to you? Hired empowers you in your job search by having companies apply to you, with transparency into their job offers. 📲
Lead iOS Engineer, Target Corporation, Minneapolis, MN
As a Lead iOS Engineer you'll build a new registry native app from ground up.
iOS Mobile Software Engineer - MyDrive - London, UK
Smart mobile telematics - Come and be a smart member of our mobile team.
Unintended iMessage extension consequences
This is an amazing idea...
Well, the Dash situation got even messier this week and unfortunately it looks like the end of this story is a sad one. Dash is gone from the App Stores for good, and the developer account will stay closed. 🙁
At the start of the week, I was actually pretty hopeful that it was all going to get sorted out. Apple made a statement and Bogdan made a post explaining things from his side. Both of these talked about two accounts that Apple had linked together by using bank account/credit card details. It appeared that the 2nd account, operated by a family member of Bogdan's was the one in violation of the rules. If Bogdan agreed to make a blog post saying Apple was not at fault, the main Dash account could be reinstated and everything would be OK.
Unfortunately, after sending a draft of that post to Apple, he made another post on his blog to try and clear things up and included an audio recording of a phone call between him and Apple. This was a really silly move, and I wouldn't be surprised if this is what caused the communication with Apple to break down, and why he didn't hear back about his draft post. Later that same day he posted a final update on his blog saying that the account was closed and Dash would not be returning to the store.
Anyway, the final chapter of this came yesterday with this statement he mailed to iMore. This finally feels like the full story, and while his intentions seemed good, I simply can't believe he was clueless about what was going on.
This is a messy story from start to finish. If it's true that Apple didn't email both accounts that they were going to shut down then that's a problem, but apart from that they were clearly in the right and the rest of the mistakes seem to be on Bogdan's side. What a shame for both Bogdan, and for the users of his apps. 😒
UPDATE: I just received clarification from Bogdan that his post talking about the draft he sent to Apple was made two days after the draft was made and sent over. The timeline is actually right there in the post but I made a mistake putting it together. This makes it much less likely to be the reason they didn't reply.Dave Verwer