Let’s Settle this UI/UX Thing Once and for All

James White, Colourfool Creative Part of DW18

Is it cool these days to say there’s a difference between UI and UX? Or cool to say that there isn’t? It’s so hard to keep up.

In this session James White dips into the history of UX as a discipline, pop psychology from the noughties, unpop psychology from the thirties, dank memes and a deep well of personal opinion to explore user experience and where it fits in modern development workflows. You’ll learn how designers and developers can benefit from both subjectivity and objectivity in their design decisions, and most importantly, how we can help users to love our apps.



Machine Learning …minus the Machine

Mars Geldard, University of Tasmania Part of DW18

This talk covers some key Machine Learning concepts including classification, clustering and regression methods that are used in applications such as recommendation, detection and prediction systems.

Sound dense? Don’t worry. We’ll be doing simple demonstrations, and performing tasks on paper. It’s crucial to understand the steps being done by a computer when you use tools like CoreML and CreateML in order to make informed decisions in the human-driven design and data selection stages that come before model training.

Pen and paper–or Apple Pencil and iPad–recommended. Enthusiasm for mathematics optional.



Fun with Fudge Factors: Prototyping Vague Things

Keith Lang, teampurr.com Part of DW18

This talk covers the design of fuzzy things. We’re all familiar with designing for default, typical, and error states. But how do we design for our users’ state of mind? Or, physical state? Or the state of the art in machine vision?

Two powerful trends are pushing design into fuzzier areas: ubiquitous sensors and Machine Learning. Our iPhones and Watches capture more and more about our physical activity and environment. How can we use this data when designing great experiences?

The first half of this talk looks at the design of heuristics, with common approaches and tools for fast prototyping. The second half contains strategies for wrestling with machine vision or machine learning results in your UI design. This includes strategies on mapping “confidence levels” to UI, and avoiding Clippy-isms like “It looks like you’re writing a letter”. It concludes with some real-world app examples to inspire new levels of ML integration.



Practical Approaches to Cognitive Accessibility

Duncan Babbage, AUT Centre for eHealth Part of DW18

Cognitive accessibility has been described as the ‘last great frontier’ in accessibility and universal design. Aiming for a clean and simple design is commonly valued already in mobile software, and often this is probably the only step that is taken towards cognitive accessibility.

This talk will cover two practical approaches to enhance cognitive accessibility in mobile software. Firstly, it will propose that instead of a one-size-fits-all approach, apps could provide a user setting that gives an overall control of the degree of complexity that an app will present. The talk will outline a practical example of this, including the app architecture decisions and code required to implement this into an existing app.

A second approach to cognitive accessibility was used in an iPad app for inpatients in a brain injury rehabilitation service, where we implemented a novel authentication mechanism using inexpensive Bluetooth wristbands. The authentication mechanism was trialed over several months with a series of six clients of the brain injury service who were part of the initial pilot of this Rehab Portal app, using signal strength information from the wristband as an indicator of proximity to iPads mounted to the wall in a client’s bedroom.

The primary take-home message from this presentation is there are practical cognitive accessibility opportunities in the design of mobile apps. The Rehab Portal project discussed in this presentation was supported by a seed grant (#3705718 / A582) from the Medical Technologies Centre of Research Excellence (MedTech CoRE), funded by the Tertiary Education Commission of New Zealand.



State Machines are Your Friend

Matthew Delves Part of DW18

State Machines are an amazingly powerful but often under-utilised tool amongst iOS developers. As iOS apps become more and more complex, the business rules and logic introduced into the apps grows. There’s a need to be able to handle all of the rules in an app and make sure that the user experience is amazing and delightful. State Machines are a great tool to use when approaching problems that have intricate rules for navigation between parts of the app. This talk aims to equip the listeners with the knowledge around what a state machine is, how it solves problems and what it looks like in an iOS app.

A State Machine is a pattern that allows for navigation between a finite list of states that are defined. By using a finite list of states, we are able to define precisely the users interaction with a part of an app and make sure that the user doesn’t reach a point where they shouldn’t be. The State Machine is then responsible for defining the possible transitions between the states. What happens before a state transition and what happens after a state transition. To achieve this, I will demonstrate the code that drives a State Machine and how it allows for and prevents the interactions. There’ll be demonstration around how the state machines can be tested. There’ll also be discussion around the tradeoffs between compile time and run time checks with regard to the usage of state machines and what the alternatives are.

In the end, I hope that the listeners will be able to take some of the following away from the talk:

  • Knowledge of what a state machine is
  • Knowledge of when a state machine should be used
  • Knowledge of when a state machine shouldn’t be used
  • Ability to define a state machine in swift
  • Ability to translate theoretical ideas into solvable problems in iOS apps by using a state machine

This talk will encourage people to use the pattern appropriately and not be frightened when encountering them in the wild.



Solving the Massive App Problem: 
Rearchitecting a 5 Year Old Codebase

Tim Oliver, Mercari Part of DW18

As a tech company grows over time, so too does the codebase for its products. As much as we can try to avoid it, this can lead to growing technical debt, spaghetti code, and of course, the classic massive view controller problem.

This talk covers how we’re solving these problems at Mercari for the company’s flagship iOS app. This includes gradually migrating from Objective-C to Swift, network API architectural design, siloing code in frameworks, and a new spin on breaking up large view controllers.



In App Purchases with StoreKit

Jane Abernethy, Canva Part of DW18

This will cover in app purchases. Specifically:

  • Setting up promoted in app purchases
  • Debugging in app purchases – some tips and tricks I learnt around this
  • Getting in app purchases approved – such as providing an option for the user to restore purchases
  • Tips like: don’t cache in app purchases, make sure you use the currency of the current user, etc
  • UX tips around In App Purchases


Structuring Your Code with the Model-View-Presenter Pattern

Sam Jarman, BNZ Part of DW18

MVC or Model View Controller has been the tried and true way for iOS programmers for years, but nowadays developers find it hard to test, structure and that it violates a few key architecture principles. Enter Model-View-Presenter, a much cleaner architecture that allows for separation of concerns, easier testing, and greater programmer happiness. This talk covers programming a standard iOS use case putting data from the server onto a screen, with the MVP pattern, plus a few other patterns to allow for maintainable and scalable iOS development.



Push Notifications and the Limits of Innovation

Thomas Karpiniec Part of DW18

Many types of app demand push notifications, such as messengers and social networks. Push notifications are also one of the most tightly controlled functions on Apple’s platforms. For “normal” development companies everything works fine. For volunteer developers or authors of decentralised software, the assumptions baked into push notifications limit the types of technology that we can create on iOS mobile devices. This talk discusses why push notifications are unusually crucial for new uses, provides examples of real-world workarounds, and invites the audience to see the mobile app ecosystem as more than the specific services Apple provides.