The iPhreaks Show is a weekly group discussion about iOS development and related technology by development veterans. We discuss Apple, tools, practices, and code.


Get episodes automatically


iPS 220: John Sundell


Gui Rambo

Special Guest: 

John Sundell

In today's episode, the iPhreak’s Gui Rambo speaks with John Sundell. John is an iOS Freelancer and currently works with a Norwegian company called Hyper.  Hyper builds customer projects and in-house apps.

John builds apps, games & developer tools. He also makes Swift by Sundell, which is a weekly blog & podcast about Swift development. He has worked for companies like Volvo & Spotify. He’s the creator of several open source projects including Unbox, SwiftPlate, Marathon & Imagine Engine.

In particular, we dive pretty deep on:

03:00 – What's Imagine Engine?

It's a game engine that runs on Core Animation.

05:00 – API

John explains what Imagine Engine provides in terms of API and functionality.

07:30 – Why not use SpriteKit?

It's hard to predict how SpriteKit is going to work under pressure, being closed source makes it hard to study.

13:20 – What's Core Animation?

It's an underlying framework that drives the drawing for the UI on Apple's platforms.

15:30 – How does Imagine Engine use Core Animation?

Just like UIKit uses it, objects are backed by layers.

19:40 – Coding for performance

You have to really think about the complexity of everything you do.

25:30 – Supporting different OSes

John started with Metal, but noticed that Core Animation was fast enough. Both are available on all of Apple's platforms.

29:00 – The display link API

Provides a callback so you can sync your code with the display refresh.

30:20 – Unit testing a game engine

Doesn't use strict TDD, but prefers to test automatically so he doesn't have to create a game to test each feature of the engine.

33:05 – Are there games we can try made with Imagine Engine?

Revazendo is in beta.

35:00 – How do you handle input and events?

Imagine Engine provides an unified event API.

38:00 – Game development architecture

There are two popular patterns: component-driven and driving from a central update method (loop). Imagine Engine uses a mix of both.





This episode is sponsored by

comments powered by Disqus