iOS 11: Location Permissions and avoiding the Blue Bar of Shame!

Apple has always been known to be a flag bearer for user privacy and the evidence for it is now even clearer with iOS 11. With iOS 11 if an app collects location data in the background, then a big ugly flashing blue bar shows up over the status bar.

If you have an app or planning to develop one that continuously scans user location, then check out the article linked below that details how to avoid it.


Source: Location Permissions in iOS 11 and avoiding the Blue Bar of Shame

Refactoring: How to deal with technical debt and save your sanity!

Refactoring code may not have any innate business value ( an exception being small performance optimization) and your business won’t immediately get better once refactoring is done. But refactoring is an essential part of software development and frequent refactoring is what keeps the code well oiled to prevent it from going obsolete.

Also, if you are working as part of a team and your team diligently conducts code reviews, then just the fact that your code will be assessed sends signals to the brain making you extra aware to maintain your code clean and keep it well optimized.

An ordered and clean environment, one that is maintained, sends the signal that the area is monitored and that criminal behavior is not tolerated. Conversely, a disordered environment, one that is not maintained (broken windows, graffiti, excessive litter), sends the signal that the area is not monitored and that criminal behavior has little risk of detection.

Check out this article linked below to find out how refactoring can greatly reduce your technical debt.

Source: How to deal with technical debt and save your sanity

Swift 4: Ultimate Guide to JSON Parsing!

With Swift 4 came built in support for JSON parsing with a refreshingly easy to use API. There have been a number of great libraries for JSON parsing in the past but now that Swift 4 has built-in support for it, the use of 3rd party libraries has become questionable. The new JSON parsing API is super easy to adopt and also provides the customization required to encode and decode complex scenarios.

Check out this linked article below to learn more:

Source: Ultimate Guide to JSON Parsing with Swift 4 – Ben Scheirman

Tutorial: Getting Started with Vision on iOS 11!

Apple introduced Core ML the new machine learning framework at WWDC 2017 and included with it is a new vision framework providing high-performance computer vision features for tasks such as image and face detection.

Check out this starter tutorial from Jeffrey Bergier who shows you how to get started with the Vision framework and perform object detection on a live video feed.

Source: GitHub – jeffreybergier/Blog-Getting-Started-with-VisionS 11

Tutorial: Getting Started with URLSession!

The URLSession class provides an API for downloading content via HTTP by offering a rich set of delegate methods to support authentication & to give your apps the ability to perform tasks in the background. If you have been using URLConnection in the past or have been using a third party library like Alamofire, then you should take a second look at the much improved URLSession class.

Check out this excellent tutorial written by the folks at Raywenderlich to find out more about URLSession.

Source: URLSession Tutorial: Getting Started

How to open Deep Links, Notifications, and Shortcuts!

Deep Linking is becoming quite prevalent in apps these days and it’s important for developers to have an understanding of it. Deep linking consists of using a hyperlink that links to a specific piece of content within an app. The specific content could be a page, view, or a certain tab. You can deep link from another app or even from a website to your app. Check out this excellent article by Stan Ostrovskiy who explains the concept with some easy to understand sample code:

Source: iOS: How to open Deep Links, Notifications and Shortcuts

Tutorial: Core Machine Learning for iOS Developers!

Machine learning is a technology that’s been there since 1950’s but it’s all the rage today. It’s being increasing adopted in many industries, not just at tech companies. Many people have heard about it, but only a few know what it is. Apple has made available a ton of great resources covering Cover ML including their in-depth documentation along with 2 WWDC sessions – Introducing Core MLCore ML in depth.

If you are looking for a starter tutorial to get you going with Core ML, then check out this article linked below.

Source: Core Machine Learning For iOS Developers – Towards Data Science – Medium

How Reddit’s iOS App Was Architected!

It’s very rare to find a big company like Reddit reveal intimate details of their app’s architecture. But when they do, it’s a boon to the rest of the development community who are inquisitive to know how an app can be designed and implemented to scale.

Check out this insightful article from the app developers at Reddit, who reveal the different architecture patterns they used for their app’s design.

Source: Building the Feed for the Reddit iOS App – Upvoted

Opinion: The Case for Deprecating UITableView!

Apple introduced big improvements to UICollectionView with iOS 8 and ever since then there have been numerous discussions on the interwebs about the need for UITableView anymore. Some argue that UITableview offers the simplest solution and should be used whenever it suits the need.

In the article linked below, Peter Steinberger and Michael Ochs make the case for deprecating UITableview even stronger. Read on to find out more…

Source: The Case for Deprecating UITableView | Inside PSPDFKit

Swift: UIKit Global Functions!

As an iOS developer, you will find yourself using UIKit framework the most while developing applications. It defines the core components of an iOS application, from labels and buttons to table views and navigation controllers.

It’s refreshing when someone does the deep digging and finds some hidden gems so that the rest of the developer can benefit. One such article(linked below) was written by Jordan Morgan who provides some really great shortcuts and code snippets that will save you a bunch of time while using UIKit Framework.

Source: UIKit Global Functions – The Traveled iOS Developer’s Guide – Medium

Try Swift 4.0 today: Easy starter playground!

Swift 4.0 is probably a couple of weeks away from an official announcement at WWDC 2017, but that doesn’t mean you have to wait that long to give it a test run. All you need is XCode 8.3 and the latest Swift 4.0 snapshot from to try out some code. But want it even easy? There is now a Swift playground written by Ole Begemann to get you started, check out the link below:

Source: GitHub – ole/whats-new-in-swift-4

Beginner: Guide to Protocols and Protocol Oriented Programming!

It’s hard to think beyond Object Oriented programming (OOP) these days since it has become the de facto standard to build large software projects.

With the introduction of Swift 2.0, a new paradigm called Protocol Oriented Programming came to light. This WWDC 2015 talk gives an amazing introduction to Protocol Oriented Programming. I cannot recommend it enough.

Protocol are extremely powerful and can transform the way you write code. Check out this beginner tutorial below, you’ll explore the different ways you can create and use protocols, as well as use protocol-oriented programming patterns to make your code more extensible.

Source: A Beginner’s Guide to Protocols and Protocol Extensions in Swift

Migrating from objective-C to Swift: Learnings and Pitfalls!

Apple changes versions of Swift programming language almost as often as the season’s change (at least it seems so).  This makes our lives as developers a living nightmare. We have to spend more time revising old code instead of writing new code. On top of it, there is an additional headache of making sure the open source libraries that are being used are compatible with the newer versions of Swift. In many cases, it’s usually a wait for the third party libraries to get updated but if that doesn’t happen, then there is this additional burden of updating them ourselves.

Converting an Objective-C app into pure Swift can be very challenging to do it manually, but fortunately, there are a handful of excellent tools available to help you with the migration process. For example, Swiftify is a tool that can assist in converting the Objective-C code to Swift (Just don’t expect the conversion to be 100% perfect, it will require some patch work for edge cases). Another great tool is SwiftLint which is a linker tool for Xcode that can enforce Swift style and conventions.

Check out this developer article below to find some of their learnings in migrating their app from Objective-C to Swift.

Source: Migrating from objective-C to Swift. Learnings and Pitfalls