Maximum Tweakability

Jon Manning, University of Tasmania

Track: iOS; Audience: Intermediate

Over the years, Secret Lab has built a bunch of applications, and have ended up at the stage where we’ve been making minor tweaks over and over again. We’ve developed a set of techniques that maximise our ability to quickly make tweaks to applications by both developers and non-developers, during shipping and after the app’s been in the app store.

In this talk, you’ll learn how Secret Lab blends unit tests, the Objective-C runtime, easy-to-access resource files, scripting and other techniques to make applications as easy to tweak, tune, modify and subvert as possible. The end result? Better applications made faster.


Custom Interface Controls from Scratch for Mac & iOS

Douglas Heriot, University of Wollongong

Track: Tools & Tech; Audience: Advanced

I’ll present a solid foundation of the understanding required to develop your own custom interface controls on OS X and iOS. It’ll begin with the basics of how OS X composites windows on the screen, the history of NSCell, advantages of Core Animation, and the similarities/differences between OS X and iOS.

The bulk of the presentation will be practical examples of how to go about actually creating different kinds of controls (eg. buttons, sliders, totally new custom controls), showing some of the range of issues that come up to think about. I’ll mostly be sharing my experience on the Mac, but will compare with iOS too.

It will also cover how to handle the Mac’s new retina display, and advances in Mountain Lion to use Core Animation more extensively, moving away from -drawRect: altogether.

Some technologies being covered:

  • Core Graphics drawing
  • Core Animation, CALayer
  • AppKit/UIKit

You can find demonstration projects that accompany the talk on GitHub:

Or go to Douglas’s web site.

  162.9 MB
  8.4 MB

Responsive Web Design

Matt Gray, Australian National University

Track: Web & HTML5; Audience: Beginner

Responsive web design is a philosophy and front end development strategy that makes websites accessible on a number of devices through the use of fluid grids, flexible layouts and media queries, allowing webmasters to design a site once and format it differently for many displays, such as desktops, laptops, tablets and phones.

At present, the ANU website is designed for a minimum display resolution of 1280 by 1024 pixels, which was a common practice several years ago when mobile display of websites was still a contentious issue. However, this concept of a ‘fixed-width’ display no longer meets the needs of our users.

This talk will show the technical and design requirements for converting your web site(s) to a responsive design. We will look at examples of working sites, and show what we are currently doing at ANU to move to a responsive design.

  100.8 MB
  2.9 MB

Git Like A Rockstar

Paris Buttfield-Addison, University of Tasmania

Track: Tools & Tech; Audience: Beginner

Git is the new hotness (other than, oh, all the stuff Apple is doing…). If you’re a developer, on any platform, you need to know, understand, love, breathe and speak Git.

This session will cover the basics of Git, with a particular focus on popular Git-hosting startup GitHub (although all techniques are generally applicable to Git) and then conclude with a discussion and demonstration of the pitfalls, positives and traps of Git when coding for the Mac or iOS. Attendees will come away confident in their ability to use Git with their current and new projects, and will perhaps eventually become raging Git evangelists themselves!


Sounds Good! – Computer Generated Audio

Sebastian Beswick, University of Tasmania

Track: iOS; Audience: Beginner

Do you know if it’s worth upgrading your Spotify account to stream songs at 320kb/s?

An understanding of the fundamentals of computer sound is essential for the well-rounded IT professional. Audio is a field that is teeming with jargon, but it doesn’t have to be so scary! In this session we’ll go back to basics and take a look at the core components of sound, including how we (as humans) perceive sounds, how we can represent them within a computer, and how to avoid common gotchas. We’ll then take a quick look at some popular sound synthesis techniques, and finish up by learning how to create our own synthesiser from first principles using the low-level iOS Audio Unit.


Sensible Web API Design for people who really should know better

Chris Neugebauer, University of Tasmania

Track: Web & HTML5; Audience: Intermediate

Behind every mobile app that does something even remotely useful is a network API, and more often than not, this API will be delivered over HTTP in JSON format.

Developers love JSON, because it’s less restrictive than XML, and it’s easier than crafting your own data format. Developers hate JSON because it’s less restrictive than XML — it’s near impossible to verify, and small errors in a server-side implementation of a format can make for convoluted error handling in clients for years to come.

And then there’s HTTP — a feature-rich protocol, that can handle advanced querying, with great semantics for timeliness and formatting… Not that any server developer ever uses any of these.

If you’re a server developer, this talk will show you ways to make sure that your web-based API doesn’t suck, how to make it maintainable, and how to keep it easy for developers on every platform.

If you’re a mobile developer, this talk will equip you with the tools you need to force your server developer to make things easy for you.

This mostly code-free talk is a sequel to my popular 2011 talk, but covers entirely new material, but you’ll get value out of it, regardless of whether you attended that talk.


Apple Push Notifications for Fun and Profit

Robert Gardam, Griffith Univeristy

Track: iOS; Audience: Beginner

This presentation will explore the integration of Apple push notifications into a enterprise server monitoring system. I will give a quick overview of the importance of enterprise monitoring and how important a reliable notification system is. I then intend to explore how I used push notifications instead of SMS’s to send notifications from our monitoring system in a reliable and effective way by interfacing with a rails back end.
The major technical fields that are covered are:

  • Where to begin iOS Development
  • Apple push notification ins and outs
  • Rails integration with iOS
  • Fundamental monitoring system concepts

At the end of the presentation I will demonstrate the app that I’ve built.


Introduction to GCD and Blocks

Adam Debono, University of Wollongong

Track: Tools & Tech; Audience: Intermediate

This talk is about how to use Grand Central Dispatch and Blocks. I feel that this is a very important subject as parallelism is becoming much more useful with multi-core processors now creeping into iOS devices as well as being in desktop computers. GCD and blocks simplifies the process of parallelising programs to maximise efficiency.

Talk Outline:
1. Why use GCD & Async?

  • 1. unblock the main thread
  • 2. run background processes
  • 3. execute operations that don’t need to be run immediately

2. Intro to Blocks

  • 1. What is a block
  • 2. Where would you use blocks?
    • 1. Completion/Error handlers
    • 2. Concurrency (GCD)
    • 3. Use functions like variables.

3. Examples

  • 1. Create and use a block var
  • 2. blocks in function parameters (C and Obj-c)
  • 3. block types
  • 4. Global blocks

4. Blocks and Variables

5. Dispatch Blocks
3. Intro to GCD

  • 1. queues
    • 1. declaring
    • 2. get main/global queue
  • 2. Queueing tasks (async, sync, after, apply, once)
    • 1. dispatch_async/dispatch_sync
    • 2. suspend/resume queue
    • 3. recursive decomposition
  • 3. Looping/Multiple runs
    • 1. std. for loop with dispatch_async
    • 2. dispatch_apply
    • 3. fast enumeration/forin

4. Other

  • 1. dispatch_after
  • 2. dispatch_once -> singleton

5. lock functionality
6. groups

Plus lots of demos and examples.


Programming for Mobility

Judit Klein, Auckland University of Technology

Track: iOS; Audience: Beginner

We live in an age defined by mobility; the iPhone and iPad not only enables us to be more mobile, but also offers us new ways to engage with each other and the world around us. This talk looks at exploring what this means for creating apps when dealing with devices that are simultaneously context aware and independent. To be context aware means that the device knows where it is and how it is being held and moved. To be context independent means that the user is no longer tethered to any one physical location.

This talk will introduce how to integrate location awareness and working with the CoreLocation framework. Looking at the bigger picture, learn how to harness the potential of being context aware: go beyond simply knowing where the user is and use that information to enhance user experience.

However, it’s a scary world out there and there are some key things you have to take into account when dealing with a platform that is inherently mobile; to be context independent means providing the same user experience regardless of where they are. This talk addresses key considerations for when your app goes out into the real world and has to dynamically deal with changing environments.

Aimed at beginners, introduces some code but also look at the underlying functionality, bigger picture implications and overall best practices.


/dev/world/2012 – Call for Presenters

/dev/world/2012 is an annual conference hosted by the AUC, and aimed at developers who write for Mac OS X and iOS. In 2012 it will take the form of a 2-day conference featuring special talks, lecture presentations and social events to facilitate networking, along with a day of optional workshops. The event will cater for around 140 attendees.

The organising committee is seeking expressions of interest from the AUC and wider Apple developer community willing to present during the event.

Continue reading “/dev/world/2012 – Call for Presenters”