Design
Rethinking How To Display An Installation Guide
The steps Andy and the team at Buffer used to improve their guide for how to install the Buffer share extension could be applied to many similar situations. The goal is to develop an app that doesn't need a guide, but that doesn't work when you have to show the user how to install a keyboard or change the privacy settings after they accidentally denied your app access. In this post, Andy explains how they sought feedback on how other apps accomplished this task and iterated from there.
Improving our iOS Share Extension Installation Guide by Andy Yates
Tutorials
A Comprehensive Guide To (Correctly) Implement Table Views
Most tutorials that I encountered when learning how to implement a table view put the data source and delegate code inside the view controller presenting the table. This is an efficient way to set up a tutorial, but not the best way for an actual app. I didn't know that at the time. In this guide, Matteo shows us the right way to set this up. Great tutorial for beginners and more advanced users that still throw too much code in the view controller.
Table Views In iOS With Swift: A Comprehensive Guide (Cells, Data Sources And MVC Architecture) by Matteo Manferdini
Sponsored
How to Build an Optimized Referral Program for Your App
Referral programs can work wonders if you get them right. Successful referral programs combine the right feature set with user behaviors. Use this guide to understand the essential features in a referral program and how to build them easily with Branch.
New Book: Advanced Apple Debugging & Reverse Engineering
Learn the powerful secrets of Apple's software debugger, LLDB, that can get more information out of any program than you ever thought possible.
In Advanced Apple Debugging & Reverse Engineering, you'll come to realize debugging is an enjoyable process to help you better understand software. Not only will you learn to find bugs faster, but you’ll also learn how other developers have solved problems similar to yours. You'll also learn how to create custom, powerful debugging scripts that will help you quickly find the secrets behind any bit of code that piques your interest.
Swift
Easily Load URL Images Without A Third-Party Framework
Third-party frameworks can solve all your problems. Why reinvent the wheel, right? The problem is that the more third-party code in your app, the more things are out of your control. There are also issues with maintaining that code and understand exactly what it's doing. This post is an example of how your first thought may be to search for a framework, when, in reality, the best option is to write the code yourself.
Loading Images in iOS Without Dependencies by Matthew Liam Healy
Concurrency In Swift?
Swift doesn't currently include native concurrency functionality. Umberto talks about this and what is available, including third-party alternatives. This post is extremely detailed and covers Foundation locks, Grand Central Dispatch, Operation Queues, and more.
All about Concurrency in Swift - Part 1: The Present by Umberto Raimondi
Xcode
Organizing Your App For All Configurations
Great tutorial on how to organize your Xcode project to handle all the states it can be in (debug, development, release). As you progress in your development skills, having a solid app organization plan is crucial for maintenance and sharing the code with others.
This is a guide to setting up different configurations of your app through schemes for different states of the app.
Guide To Organizing Your iOS Debug, Development, and Release States With .xcconfig Files by Julia Geist
Fix A Bunch Of Errors At The Same Time
A simple tip on how to fix several errors at once. If Xcode doesn't cooperate, I usually copy the code to a text editor and fix the errors there.
Revenue
Diversifying Your Revenue Stream
Developer Marcin Krzyzanowski had an idea for an Objective-C t-shirt and decided to see what kind of money he could make in a three-day sale. Marcin points out that he made more in three days of t-shirt sales than his app makes in a month.
Independent developers must have their eyes open for opportunities to diversify their income. It's difficult to make a living on the App Store and you need to be open to other ways of generating income. I've mentioned before that I am an Amazon/eBay seller. I enjoy it and it works great with app development. When development is slow, I buy products to resell. It's also a great change from standing in front of my laptop all day. If you're struggling to make enough with your own apps and contract work, consider other ways to make money like an online course, blogging, or an iOS newsletter. ;)
Selling t-shirt > selling mobile apps. Dinosaurs. by Marcin Krzyzanowski
Frameworks
Dealing With NSArray, NSDictionary, And NSSet
We all deal with NSArray, NSDictionary, and NSSet plenty. This framework makes working with these data sets easier. Check it out.
Funky is a functional utility library written in Objective-C.
Funky from Laszlo Teveli
Code
So Which App Architecture Should I Use?
In this talk, Krzysztof explores the different architectures used in iOS and gives his opinions on each. He also talks about why much of Apple's sample code is bad, in his opinion, along with why they did it that way. Full text of the talk is available if you don't have time to watch the presentation.
Good iOS Application Architecture: MVVM, MVC, VIPER Which Architecture is the Best? from Krzysztof Zabłocki
Tools
Getting Your Timing Right
Timing is an excellent app for anyone needing to track their time on the Mac. It is non-intrusive and you hardly know it's there until you need it. It's a great way to track your productivity or client work. Version 2 was just released with even more features. Congrats to Daniel Alm, the independent developer behind Timing, on this release. I highly recommend!
Welcome! Lots going on in the iOS world this week. It seems things are really picking up with WWDC just around the corner. Some good stuff in this issue, so let's get to it. - @cdbeshore
chris beshore