You should be keeping an eye on what’s new in Android O. One change on the way surrounds user control over Device Identifiers. The user now has more control as you request account information, and there are a few other changes in how other identifiers work. 

Of all the changes in Android O, you will really need to address How to Handle Background Services limitations. If you use these heavily in your current app, you’re going to need to start investigating how these changes affect you. 

Parcelable can be a difficult thing to test correctly. Here, Dan Lew explains how to achieve Proper Parcelable Testing

Sticking with unit testing, here’s how to use some new features in JUnit 5 with Kotlin.

Build times getting you down? Here’s a video on how to get Extremely Fast Android Builds with Gradle

This series of object oriented trips is pretty good. Start off with the first one, all about The Art of Command Query Separation and move on to The Law of Demeter.Your code will be so much cleaner as a result.

Some projects to check out: 

  • cropiwa: Configurable Custom Crop widget. 
  • FingerprintManager: A small library to handle the Android fingerprint API. 
  • Isometric: An isometric drawing library.
  • Grav: Configurable animations based on points. 
  • PatternLockView: An easy to use, customizable, Material Design compliant Pattern Lock view for Android.


Jesse Squires has a great piece on his Thoughts On Swift Access Control. If you find yourself frustrated by the evolution of the language, whether for dropping features or for keeping fileprivate alive, you should read this. As Jesse says, “Every change has a cost, as does every deferment." 

Swift attributes are an often overlooked feature, but they can be so powerful, as demonstrated here by Jordan Morgan. If you're building a library, either internally in your company or publically on Github, this is something you should consider.

Generics can help you to reduce the amount of boilerplate code, and while they may look daunting at first, they’re not all that bad. Bob Lee has a great tutorial about Generic Protocols with Associated Type

The best way to get really sharp with Swift is to use it every day, for everything! Go outside of iOS and use it for scripting tasks, like Building a Web Crawler.

If you’re on the road or stuck in commutes in the morning, I have to recommend the SwiftCoders podcast by Garric Nahapetian. It’s a great way to get to know some of the personalities out there in the Swift community.

Some projects to check out: 

  • EFQRCode: Generates and recognizes QRCode from an image.
  • SwiftSpreadsheet: Spreadsheet CollectionViewLayout in Swift. Fully customizable.
  • RequestPermission: Simple permission requests with a beautiful UI.
  • Bleu: A library that can handle CoreBluetooth easily.
  • swift-of-airbnb: A self-taught project learning Swift by making some of Airbnb's screens.

  • gliding-collection: Smooth, flowing, customizable decision for UICollectionView. 


Looking for an interesting side project? Check this interesting mashup of technologies in Building a Gas Pump Scanner with OpenCV/Python/iOS

As you move along in your software development career, you may need to handle moving from engineer to manager. While that might be fine, you’ll want to keep your technical skills; here’s how.

3 Ways to Improve Your Visual Design Skills has some of the basic design principles really well explained. If you want to get more into design, this is a good read. 

Joe Lennon has started a sobering series, Shit Startups Do, starting off with spending too much money on hosting. Does any of his article ring true for you?