TUTORIAL: Add User Chat to an iOS Application with Magnet
Learn how you can add real-time messaging and in app chat to your mobile app with Magnet Message. Getting started is quick and easy with our open source SDK. Download our step-by-step tutorial and start making your app a daily habit!
Xcode 7.3 Beta 2 introduces live interactive playgrounds
So beta 2 of Xcode 7.3 was released this week and the interactive playgrounds feature which briefly appeared in the beta 1 release notes is now back and working! Erica Sadun has had a play and made some example videos. We also get Swift 2.2 in this release, including the deprecation of ++ and -- along with C style for loops and several other changes.
iOS App Performance: Instruments & beyond
Igor M with a good overview of profiling your app. He starts with a few links to WWDC videos covering Instruments and then dives into some specific areas to check. Finally, he talks about potentially gathering performance stats from your users through an analytics package to see some real world results. Great idea.
Partial functions in Swift, Part 1: Avoidance
A long, but very interesting post on partial and total functions from Matt Gallagher. What's a partial function? It's a function that only accepts a subset of the possible set of input values (there's a much better explanation in the post!). There's too much here to summarise effectively but you should set aside 30 minutes and dig into this. Then subscribe (if you're not already) so you'll get Part 2 and more!
Effective Layout Testing Library for iOS
Peter Livesey with a post and associated library on testing your view layout code with unit tests. Obviously integration tests are usually left with the task of testing views but they are slow to run and sometimes don't specifically test layout assumptions. I can see an approach like this being a great way to test complex custom views that can have a huge variations in their input data.
Write Your Own API Clients in Swift
Do you really need to include a networking library in your app which wraps NSURLSession and friends? Nick O'Neill argues against it. I'd say that networking libraries can still be a valuable addition to a project, but it's always worth really understanding what's going on underneath. Marcus Zarra also wrote on a similar topic this week which is worth a read.
Bjango Design Resources
Big update to the design resources provided by Bjango this week. There's not only an update to their Actions but also a brand new app icon template covering all of the Apple platforms (iOS, watchOS, tvOS, Mac) as well as Android, Windows and even web favicons. Each template is also made for Photoshop, Illustrator, Sketch, and Affinity Designer. What a great resource.
Avoid Vibrating Color
I hadn't heard of the term vibrating colour before, but I instantly recognised the feeling I got from some of the images in this article and it's a very appropriate name! Eli Schiff explains what causes it, and how you can avoid it.
Business and Marketing
Tips for Success on Google Play
Yes, you read that correctly. Don't stop reading! It's true that this set of videos are completely about Google Play and Android apps, but that doesn't mean that they aren't worth watching. Clearly you can skip the ones specifically about the Play Store, but since the videos are all quite high level there's still plenty of good ideas in here that apply to iOS just as much as they do to Android.
Layers 2015 - Conference Videos
One of the difficult things about being at this year's WWDC was knowing that I was in the same city as, but not attending, the Layers Conference. So I was very happy to see that they've released all of the talks and panels over the last few weeks! There's some fantastic content here.
Is It Time for Swift?
Ben Sandofsky on not listening to the internet about how many other people are using Swift and instead focusing on the pros and cons. Swift is clearly the future of iOS development, but adopting it is a complex decision which depends primarily on what you're doing, not the rest of the internet.
iOS Developer at Komoot, Berlin
Change the way people explore nature with Europe's leading outdoor app.
Senior iOS Developer @ Xero
Pivotal role in a newly established Melbourne based team.
The Two Hard Problems of Software Development
Funny, without even referencing an off by one error. 😃
Terrible news yesterday if you're using Parse for your app's back end. They have announced that the service will be shutting down next year, and I must admit I'm a bit surprised. There's no explicit reason given for the closure but if Facebook couldn't make a service like this work, that's not a great sign for the other companies with similar offerings.
It's always a tricky balance between using a BaaS platform like Parse, or building everything yourself. We're all aware that any service we rely on could potentially go away at any time but there is none more disruptive than your entire back end! On the other side of the argument, you could spend years building everything you need from scratch and completely custom, then have the app not gain any popularity and have it all wasted. It's a tricky problem and there's no right answer.
The only good news here is that the closure period is generous. You've got a year to get your app migrated to something else. There's also a migration tool to MongoDB and even an open source implementation of the Parse server. It's missing features like the dashboard, but once you've got over the bad news at least there's a plan to be made.
So, alternatives? There's CloudKit of course and there's a list of other alternatives also being put together. Or, maybe it's time to build that custom back end?
Obviously for successful apps, they will start this migration straight away and get over to some other solution. That's a much harder decision for a small/less popular apps. Migration of any kind will take significant work and I'd imagine this will kill off quite a few apps when it happens.
Full disclosure: Parse have previously been a sponsor of iOS Dev Weekly on multiple occasions. As far as I know, it wasn't that which caused them to shut down though! 😃Dave Verwer