Swift Island 2018

On July 4 - 5 2018 the first edition of Swift Island took place in Texel, The Netherlands. Marino Software were so nice to send me back home to attend this conference.

Swift Island 2018

What is Swift Island I hear you ask?

"Swift Island is an all-inclusive experimental conference happening a month after Apple's WWDC 2018." - swiftisland.nl/#about

To get over the after WWDC blues Niels and Sidney created a conference a month after WWDC to go over all the new things announced there. The setup is very straight forward. Eight mentors talking about eight subjects over the space of two days. You get to do three workshops a day, so you don't miss out on too much.

I really enjoyed this setup, because at most conferences (WWDC included) you miss out on quite a few talks. The workshops weren't just a mentors talking about the new stuff, we were actively programming along with the mentors. So it was very hands on. This kind of approach suits me very well, you learn a lot more when you work along and get to ask questions about things that you get stuck on straight away.

Available Workshops

As mentioned before, there were eight workshops to choose from. All given by very experienced mentors.

My main takeaways

I chose to go to Siri Shortcuts, Machine Learning, Dynamic Swift, ARKit 2 (both) and Instruments. I won't go into to much detail about all the workshops, but I will go over what the main takeaways were for me.

Siri Shortcuts

Siri shortcuts will be a very handy feature for apps if used correctly. You can make a shortcut available to Siri for actions your user does a lot inside your app. Quick balance in banking apps, Writing a new tweet or checking that one bus stop's Real Time Info (hint Dublin Bus). Siri will learn over time where and when you use these shortcuts so that they will only be available when you need them to be.

Be sure to only use them for actions that happen a lot in your app, because otherwise you'll flood the Siri suggestions page and create a bad user experience.

Dynamic Swift

In this workshops I learned about a great new feature in Swift 4.2, @dynamicMemberLookup. From the Swift-evolution proposal:

[pre type="swift"]

enum JSON {

 case StringValue(String)

 case DictionaryValue(Dictionary<String, JSON>)

}

extension JSON {

 var stringValue : String? {

   if case .StringValue(let str) = self {

     return str

   }

   return nil

 }

 subscript(key: String) -> JSON? {

   if case .DictionaryValue(let dict) = self {

     return dict[key]

   }

   return nil

 }

}

let firstName = json["name"]?["first"]?.stringValue // works
[/pre]

If you add @dynamicMemberLookup in the following way however, you get something close to the expressivity of Javascript, while being fully type safe.

[pre type="swift"]

@dynamicMemberLookup

enum JSON {

 // ...

 subscript(dynamicMember member: String) -> JSON? {

   if case .DictionaryValue(let dict) = self {

     return dict[member]

   }

   return nil

 }

}

let firstName = json.name?.first?.stringValue // works

[/pre]

Machine Learning

Knowing nothing about how to use ML I was a bit hesitant of attending this workshop, but being promised it was for all levels I went for it. Sadly because of the bad WiFi connection I couldn't follow along on my own MacBook, but joining a neighbour did the trick for me. We went over some of the basics of ML and how to use Apple's Turi Create.

In this workshop we learned how to create an image classifier (is a painting Van Gogh or Dali?). And we also learned how to use ML to Van Gogh-ify any photo, with quite some impressive results.

I will still have to practice a lot more to fully understand ML, but this workshop gave me a good basis and some confidence I can do it.

ARKit

Before Swift Island I had never worked with ARKit. I had thought of giving it a go a couple of times, but never thought I had enough time to properly try it out. Little did I know that it's actually quite easy to get started with some simple AR features.

This workshop was divided into two. A beginners and an advanced workshop. So on the first day I started off with the beginners workshop and continued on with the advanced workshop the next day.

New to ARKit 2 is image tracking. Before you were able to detect images and put something on top, but not track a moving image. Those days are over. A very nice example made by @codePrincess.

Combining what I learned here with what I learned at the Machine Learning workshop I created a little app for the ARKit competition. You take a photo, it gets Van Gogh-ified and placed in the real world (AR) in a picture frame.

AND I WON!! 

Conclusion

Swift Island was one of the best conferences I've been to. I learned a lot because of the hands on approach and had a lot of fun doing it. I met some great people and ate some great fresh Shrimp. Going again next year? Yes please!

!@THEqQUICKbBROWNfFXjJMPSvVLAZYDGgkyz&[%r{\"}mosx,4>6]|?'while(putc 3_0-~$.+=9/2^5;)<18*7and:`#

Need a Quote for a Project?

We’re ready to start the conversation however best suits you - on the phone at
+353 (0)1 833 7392 or by email