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

NSObject: The Inheritance Curse!

Here is an article that provides a whimsical take on the evil that is NSObject. If you use classes that inherit from UIKit classes then you directly or indirectly inherit from NSObject.

There are ways to stop this inheritance madness in your classes by marking them as final so it cannot be subclassed. It allows some compiler optimizations, and also makes the code more consistent by removing features that can be achieved in a more Swifty way like code reuse with protocol extensions, generics or composition and polymorphism with protocols.

Read on at the link below to find out more tips:

Source: The Inheritance Curse – Swift Programming – Medium

Why App Preview Videos Are Vital in iOS 11!

With iOS 11, Apple is planning to introduce a slew of exciting new changes to the App Store and one big feature that stands out is auto playing app preview videos.  Video previews will become extremely vital for developers going forward given how prominently placed app video previews are in the app store and well they portray the capabilities of your app (compared to plain screenshots). Also, if your app listing doesn’t have preview videos they will stand out like a sore thumb.

Check out this excellent article that covers in depth the benefits of including app preview videos in your app listing and some great tips.

Source: Why App Preview Videos Are Vital in iOS 11 | App Launch Map

Why Core ML will not work for your app!

If you have been lassoed into the recent buzz surrounding Machine learning and are intrigued by Apple’s Core ML Framework you should read the article linked below before you start coding your next big app. While Core ML could work perfectly for a particular app, it doesn’t mean it will fit the needs of the app you are planning on building.

Core ML has many limitations and could mean a show stopper for many. Before you venture into the deep end, read the article below:

Source: Why Core ML will not work for your app (most likely)

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

Server Side Swift vs. The Other Guys

The battle for the best server-side framework is just getting started, and Vapor which is a server side framework implemented using pure Swift is giving the big guys a run for their money.

Vapor surprised us with how close it got to Go. The pure Swift HTTP server Vapor uses is thread based where as Go uses coroutines. Coroutines can be a lot faster but require additional libraries and setup. Its possible Vapor could adopt this type of parallelism in the future. (Read more about threads vs. coroutines in the code section).

Additionally, Swift on Linux is still beta and compiles with unoptimized toolchains. As the compiler nears production in the coming months, Swift has the possibility to dethrone Go.

Source: Server Side Swift vs. The Other Guys 

Tutorial: Introduction to MVVM in Swift 3 With Code!

In recent times the MVC (model-view-controller) design pattern has lost its place as a de facto pattern ever since better architectural patterns have come to light.  MVC is now infamously called a Massive(or Messy)-View-Controller pattern, the reason for that is it’s very easy to pile up 1000+ lines of code inside a View controller. Even Apple is famous for shying away from following the MVC pattern in their sample code. MVVM (model-view-viewModel) is an architecture pattern that is an alternative to MVC which makes it easier to further isolate the UI specific responsibility of a ViewController to a View Model.

If you are new to MVVM and want to know more about how to implement one, then check out this great in-depth article by Erica Millado linked below.

Source: Dabbling with MVVM in Swift 3

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

Phased Releases: in iTunes Connect!

A nice new feature announced at WWDC this year was phased releases. This is the new ability to be able to gradually release your app update to users over a period of 7 days. This has long been the envy of iOS developers looking over at their Android developer colleagues. Phased releases don’t quite have the same flexibility as the Android staged-rollouts but it is certainly much better than releases to potentially millions of users simultaneously.

Source: Phased Releases in iTunes Connect

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

11 Considerations: to Update Your App for iOS-11!

Are finding it overwhelming to digest all the great announcements that Apple introduced during the WWDC week — then this is the article for you. Ken Yarmosh, Founder & CEO of Savvy Apps, gives a quick rundown on all the new features introduced in iOS 11 and gives his take on what you should focus on for your assortment of apps.

Source: 11 Considerations to Update Your App for iOS 11 – Savvy Apps

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