What is Swift UI?

SwiftUI is a new technology Apple iOS and macOS developers can use to create native applications for Apple platforms. As the name implies, developers must use the Swift programming language to create applications with SwiftUI.

SwiftUI has the potential to dramatically improve developer productivity, reduce the cost of developing native applications for Apple platforms, and make it far easier than before to target multiple device platforms with substantially the same codebase.

What SwiftUI is Intended to Replace

Before SwiftUI, Apple developers used different technologies to create Mac and iOS software: AppKit for macOS; UIKit for iOS and other Arm-based platforms. …


In this post, I’ll build a simple bar chart in code, and add it to a the default UIViewController created by an Xcode template project.

The techniques you’ll learn in this article are:

  • Creating a UIView entirely in code
  • Adding Auto Layout constraints to views in the hierarchy using code
  • Calculating view sizes and relationships at runtime
  • Applying a corner radius to a UIView
  • Using a tap gesture recognizer to detect user interaction
  • Using hit testing to determine which subview (i.e. bar) is underneath a user tap

Requirements

Here are the requirements for the simple bar chart. Read the requirements and think about why this is not a good…


Helping users discover our apps is challenging and sometimes expensive — whether via advertising, word-of-mouth, search engine optimization or a combination. Once we get new users in the door, our next challenge is to keep them engaged while our app becomes part of their daily habit.

Building an App Engagement Framework

Successful, long-term app engagement requires doing three things well:

Building a great app. Mobile users are accustomed to apps that have excellent usability, fast performance and provide a compelling solution for a problem or a want they have. Apps that have poor design or laggy performance are quickly abandoned.

Making adoption frictionless. Once the…


In a previous post, I introduced Xcode Server bots and mentioned that an integration can fire an email trigger — for example to notify team members of successful integration completion or of exceptions encountered as the integration ran.

In that previous post I presented this diagram to illustrate an Xcode server automation that builds an app after a git branch is pushed to a remote repository on GitHub. Note the step in the bottom-right corner, which sends an email to the development team to communicate the outcome of the automation, or the overall status of the project.


In my previous post on Xcode Server, I discussed the Xcode Server feature to send issue notification and summary email messages, and how to configure email triggers as part of integration configuration. In this post, I’ll discuss how to configure a MacOS Xcode Server machine to actually route email messages to the development team.

The Documented Way to Configure Xcode Server

As of this writing, the Xcode 10 documentation provides a single — and sparse — manual page on configuring Xcode Server to send email via SMTP:


Xcode Server is a powerful and easy-to-use CI/CD solution that every Xcode 10 developer already installed — even though many of them don’t know it! In this article, I’ll overview the product architecture and discuss some of the plus and minus factors for using Xcode server vs. 3rd-party alternatives.

What does Xcode Server Do?

Like other CI/CD platforms, Xcode Server’s primary role is to automate the integration, analysis, unit testing, assembly and distribution of applications.

Typical use cases include:

  • Pulling an integration or distribution branch from a source code repo when commits are made (and/or on a nightly schedule).
  • Automatically run unit tests to verify…


The time for Mobile ML is here, and the possibilities are many. If you’ve not yet given much thought to how Machine Learning technology can make your mobile software better, now is the time!

Machine Learning has long been a big part of our lives (even if we don’t often think about it). Estimating a customer’s likelihood to pay a bill or ranking pages in a web search result are common ML implementations we use often but rarely think about.

In part due to the expense of processing power (CPU/GPU) and data storage requirements, ML has for decades been the…


Many mobile applications incorporate remote web pages, either as passive (static) content — or as in this case as integral parts of the UI. Using the WebKit/WKWebView techniques presented here, your native apps can be better integrated with web content and provide a superior experience to end-users.

Two-way Integration between Swift and JavaScript

In this article we’ll build a full working example of a hybrid native/web application that uses two-way function calls between a native iOS app (written in Swift) and a mobile web page (written in HTML/JavaScript).

By leveraging these two features allows us to build a highly robust, hybrid application where the native and…


Modern and high-quality iOS applications are expected to perform flawlessly. An important input to ensuring flawless, regression-resistant code is to add comprehensive unit and integration testing as part of the development process. This article steps through a methodology for building repeatable, automated database unit tests for iOS applications using CoreData as their persistence layer.

Intended Audience

This article assumes you know the basics of using CoreData in an iOS application, and have probably used it in your own work. …


Every year I look forward to WWDC — it’s like Christmas morning for apple developers, where we get to take the wrapping paper off the next version of Xcode and the various iOS, tvOS, macOS and watchOS SDKs.

This year is no different! The press focuses more on the operating systems themselves. But I’m a lot more interested in what SDK goodness is coming down the line to provide more tools and hooks to build even better software! 2018 hasn’t disappointed at all!

Here are the top five sessions I saw in terms of value to me personally this year:

Platform State of the Union

Rob Kerr

Software Engineer (consultant) specializing in #iOS. Blog at http://www.robkerr.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store