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.


Mastering MapKit

Tim Nugent, University of Tasmania

Audience: Intermediate

Abstract:

This talk will cover the basics, and a few of the advanced features of CoreLocation and MapKit frameworks to use the location and map services provided with iOS devices. Starting with how to add maps into your apps and how to show and follow the user on the map, moving onto adding annotations and overlays for additional information, how to geocoding and display addresses. Moving onto how to do both foreground and background location monitoring, with different levels of accuracy, and finishing up with some some techniques to debug and test your apps.

Speaker Bio:

Tim is a UTas PhD student in the School of Computing and Information Systems, and his research area is awareness systems – systems that allow people to get an insight into what other people (and occasionally themselves) are doing. He is particularly interested in further exploring what use location has in promoting awareness amongst groups of friends towards the goal of task completion, and has a good knowledge of iOS development both from his own tinkering and from his university studies. For his honours research Tim wrote a custom MapKit and CoreLocation based app to try and enhance awareness amongst a small group, and has since refined and enhanced that application for his first round of PhD experiments. Tim presented at /dev/world/2010 on using and enhancing the MapKit Framework.


An Introduction to the Bump API for iOS Applications

Zac Fitz-Walter, Queensland University of Technology

Audience: Intermediate

Abstract:

Bump is a service that allows two users to connect and transmit data to each other by ‘bumping’ their mobile devices together. Bump works in two parts, an app running on the device and a smart matching algorithm running on the Bump servers in the cloud.  Using the accelerometer the app can determine when a physical bump occurs and send that information to the cloud. The matching algorithm listens to bumps from around the world and pairs phones together that bump at the same time.

This presentation will provide an overview of Bump, explore how it works and provide an introduction to integrating it into your iOS application. We’ll work through developing a simple Bump application in Xcode that covers creating a Bump session, transmitting data to another phone and then terminating the session.

Speaker Bio:

Zac is a Phd Student, tutor and guest lecturer at QUT.  His achievements include the award of a Student Developer Scholarship from the AUC in 2011, an APA scholarship for PHD studies and a top up scholarship for PHD studies from the Smart Services CRC in 2012.


Getting Your App Out There – Marketing from the App Store

Tim Oliver, Edith Cowan University

Audience: Beginner

Abstract:

Building the app is only the first step.  Once the app is released, it’s not enough to sit back and rely on the App Store ratings – the app must needs to be promoted so more users are made aware of it.  This presentation will cover what to expect once an app has been made live on the App Store, and what can be done to help improve the app’s prominence on the World Wide Web.

The main points I will present include:

  • what to expect on the App Store, including general downloads in proportion to the App’s current rating
  • tips on choosing effective keywords that can be used to search for the App
  • the process of submitting Apps for review by third-party websites
  • the benefits of localization and the possible outcomes of it
  • engaging users with social media tools like Twitter
  • providing a user feedback facility so users can contact you
  • taking note of user reviews (and not letting the trolls get to you!)
  • incorporating analytics services into your App to allow tracking of App usage
  • third party services that can track App metrics better than iTunes Connect

Speaker Bio:

Tim is a Multimedia Developer at the Centre for Learning at ECU.  His responsibilities include maintaining the centre website, graphics design, video production and new technologies research, and his areas of expertise include web development, graphics design, 3D animation, games development, iOS development.  Tim recently developed an iOS app that reached 250,000 downloads and made it to #7 on the Japan App Store.


Creative Coding with Apple Devices

Andrew Clayphan, University of Sydney

Audience: Beginner to Intermediate (C++ knowledge helpful, but not essential)

Abstract:

While the Apple ecosystem brings us a lot, some people ultimately have other backgrounds and are familiar with them.  One that has sparked interest of late is openFrameworks.  This is a C++ toolset for creating rich applications, information visualisations and rapid prototypes. Due to its widespread uptake in the design community (especially amongst people coming from a sandboxed Processing world), a number of bridges have been created for the iPhone, which leverage pre-existing codebases to provide an enormous set of opportunities.

In this talk I take a cursory overview of this framework, what it supports for the iPhone/iPad, and a quick demonstration of how to build an integrated application featuring some of its libraries.  My aim is to enrich the AUC community by bringing together even more developers, programmers and designers who have varied backgrounds to offer.

Speaker Bio:

Andrew is a PhD student and is currently exploring the fascinating world of tabletop computing and how it can be used to enrich small group interactions.  He looks at how people come together for a meeting, long term task, project or goal.  Andrew is currently trying to piece together a framework for understanding past interactions on this medium to help facilitate the capture and movement between states of a task.  His hope for this work is to bring about a unified view towards past interactions such that future designers for this platform are aware of what is required to build robust interactive applications that can take advantage of historical events.  This work is done within the Computer Human Adapted Interaction Research Group, with support from the Smart Services CRC.