Swift on Android 
at try! Swift Tokyo

I was invited to speak at the try! Swift Tokyo conference about Swift on Android. Since I’m something like only 1 of 4 people in the world who know anything about this, I eventually got asked. 

Swift on Android

The talk went extremely well. Even though it was by far the longest talk of the conference (slotted for 45 minutes instead of the usual 20), attendees told me it went by fast. It also provoked a lot of strong responses such as “unforgettable” and “intense”.

krzysztof siejkowsli: The @ewingfighter talk on Swift on Android was sooo impressive. Also, it shows how C is the JS of non-web development :P #tryswiftconf
Yasuhiro Inami: Really awesome Swift on Everywhere talk by @ewingfighter ! #tryswiftconf
Jon Reid: .@ewingfighter blowing my mind with brutal honest about how otherworldly Android development is. #tryswiftconf

Swift on Android covers a lot of ground including:

  • The Android NDK
  • C++ issues
  • Dependency issues
  • The Android SDK & Java JNI
  • Build systems / CMake
  • Cross-platform app development & libraries
    • SDL (games)
    • Nuklear (non-native GUI)
    • IUP (native GUI)
  • Blurrr SDK
  • Carlos Icaza tribute / Dance of the Fairies

I also used this opportunity to introduce Blurrr SDK, which is what I’ve been working on to make cross-platform Swift development a reality. And this is the reason why I know about this topic.

And I used this opportunity to remember my friend, mentor, and former co-founder, Carlos Icaza, who unexpectedly passed away this summer. He was known as @CodingInSwift with over 18,000 Twitter followers. So with over 700 Swift developers attending try! Swift and probably not aware of why his channel went silent, this was the moment I needed to do this. My speech ends with my Dance of the Fairies “demo” tribute, obviously made with Blurrr.

Dance of the Fairies

But you can watch the full presentation for yourself. Thanks to the good people at Realm, they have hosted the video and provided captioning.
(Note: Realm invented the tagline/subtitle on their web page. It is not in the talk.)

You can also download a PDF copy of my slides here.

I am eternally grateful to Natasha the Robot (of try! Swift) for making this happen. This was my first time to Japan, and it was an incredible experience for me.

Game Workshop

On the last day of the conference (Hackathon day), I taught a workshop, Introduction to cross-platform 2D Game Programming with SDL. (Blurrr provided the infrastructure to get everybody building real projects in a matter of minutes.)

I was very nervous about teaching the workshop. I worked up to the wire for both the Swift on Android talk and writing Dance of the Fairies. (I was a bit paranoid about things going wrong, so I prepared backup plans for everything in my talk, including a pre-recorded video they could play in case I got hit by a bus or something. I think I was the only speaker who did that.) So I continued frantically working on the lesson plan and code examples on my flight over.

Final lesson (shaders with SDL_gpu and GLSL: ripple effect)

Shader ripple effect

But I had fantastic students and we all had a lot of fun.

Jean S: Never been really interested in game dev't but the 2D game workshop was really fun! Thank you, @ewingfighter! #tryswiftconf #blurrrsdk

krzysztof siejkowsli: Having much fun at 2d crossplatform gamedev workshop at #tryswifthack #tryswiftconf by @ewingfighter. Check blurrrsdk.com for more

The last image cracks me up. I ship a high quality Flappy Bird clone implementation with the SDK as example code. They quickly hacked it to use the try! Swift Tokyo mascot, Riko, and made the pipes fat to match.

Riko the try! Swift Tokyo mascot

Flappy Riko

A big thank you to all my wonderful students for making this such a great experience!

My wonderful students at try! Swift

Other Related Talks

I was preparing for this talk for quite a few months. So there are other talks that may be of interest.

First, I had to implement all those native backends for IUP you saw in the talk. Because I’m serious about this work, I made a video presentation for the IUP community proposing how the iOS and Android backends will work.

IUP (Portable User Interface) for Android & iOS

Next, I presented two talks at the Lua Workshop 2016 in San Francisco

"Tales of a Lua embedder thrown into the JavaScript world” contains some material I was testing for try! Swift because there is an overlap with the Android NDK. In many respects, this is actually just our Ouroboros serpent again, but applied to JavaScript instead of Swift. But there are a lot of specific JavaScript issues I discuss which some of you may find interesting. Incidentally, this is also the tale of Lanica (and also hence connected to Carlos).

My other talk is “The History & Design of LuaCocoa”. Since this is a Swift-related entry, some of you may find this interesting since LuaCocoa dives deep into the Objective-C runtime. LuaCocoa also has a lot of personal connections for me because I wrote the bulk of it while my mother was dying from GIST Cancer.

Related entries

Spring 2017 blog update summaries

Swift on Android full presentation (hosted by Realm)

Why We Loved Sierra Games

Dance of the Fairies / QFG inspired demo & RIP Carlos Icaza

Thank you / Why We Loved Sierra Games followup

DuckTales 2017 & pics of McDuck’s at DisneySea (Tokyo)

Blurrr SDK soft launch (PlayControl blog)

Blurrr SDK (official site)

Copyright © PlayControl Software, LLC / Eric Wing