June 09, 2019 in articles
This year I’m one of the lucky developers who got the chance to attend Apple WWDC. This was my second WWDC and the first one which I attended with the lottery ticket. When I went for the first time in 2013, it was still the race of refreshing the web page.
This year WWDC was a blast and I’m writing this to tell you my experiences and why I hope I will win the lottery again next year.
This year’s free jacket was pretty cool. It’s reversible and it has emojis on one side. We also got some pins on registration. Everyone got different pins.
But the t-shirts in the WWDC store were more awesome. The exploding memojis art on the t-shirts were fabulous. There were a long line on the first day of the opening of the store since everyone didn’t want to miss getting the size of their choices. On the last day, there were only the warthog and chicken memoji T-shirts left for the medium size.
I don’t know how many Indonesian developers went to WWDC last year or every year since 2013, but I can tell you that this year the number of developers from Indonesia was more than I expected. I met 5 scholarship winners from Indonesia (and Australia) and few other professional developers from companies in Indonesia and abroad.
Meeting a few fellow Indonesians in the sea of international developers was an interesting and refreshing experience. Since I have been away for most of my adult life, I have no idea how the community of Apple developers in Indonesia is. From them I learned more about it.
If you read what people say about going to WWDC, you’ll notice that most of them will highly recommend to go to the lab and to speak with the Apple engineers about your development problems. You can download and watch the session videos but you can only meet the engineers during the event.
This year I came to WWDC with a problem in my project in which I hoped any engineers there could help me. The problem was in my Swift app project, I could not archive the app anymore since Xcode 10.2.1. It got stuck in “Compiling Swift source” step forever and caused my CPU to go to 100%. It had no problem in Xcode 10.2.0. I had been trying to change many settings in the build configuration and found out that if I disabled the optimization mode, the project finished without any problems.
So I went first to the Xcode lab to ask if maybe they can show me how to debug this problem. But unfortunately the Xcode engineer didn’t know what to do and asked me to submit a bug report instead. But they also told me to go to the Swift lab since maybe the Compiler engineers could help me.
In Swift lab, an engineer tried to find the problem but couldn’t. Then he asked for help from his collegue. This time, he asked me to add a build flag and voila, it finished archiving without disabling the optimization mode! He told me this was a bug in the compiler and he would looked into my bug report.
Note: You can get different kind of stickers from each of the labs.
Apple announced so many new stuff for iOS, Mac, and iPadOS. But the main star of this year is SwiftUI, the new declarative UI framework for all Apple platforms. SwiftUI could reduce the number of lines of code in your project. And like many iOS developers who are also React developers, I feel at home with the declarative layout, the data flow, and single source of truth. I can’t wait to play around with it and make an app using it.
Another cool things I learned from one of the sessions I went to was One-Shot Object detection and Drawing classification. I have never played with CoreML but I found these new two stuff interesting. With One-Shot Object detection, we can train our model to identify a static 2D image with just a single image for each of the classes. For example, to identify the face of playing card, we can use a single image for each of the card to train the model. We don’t need to provide multiple images for each of them. Another example is if we want to detect company’s logo.
The drawing classification is a new classification Apple added to identify drawing. Developers can use this to identify what user draws. It reminds me of the Quick, Draw! game from Google.
Pro tip: If you want to try Xcode 11 beta in Catalina, install Catalina in a separate APFS volume by following this steps. You can install Xcode 11 beta and play around with SwiftUI in macOS Mojave, but you won’t be able to use the live preview in Xcode.
In 2013, WWDC was held in Moscone Convention Center in San Francisco. But this year’s San Jose Convention Center was a better venue for WWDC than Moscone Convention Center in my opinion. It has outdoor areas where people can relax and hang out. The weather was nice so it was refreshing to soak up the sun outside after spending hours in sessions.
It is also close to a place called Japan Town. I went there with other developers and we bought sushi from a small Japanese supermarket. I love eating sushi when I lived in Japan and I can tell you that the sushi we bought was authentic.
One thing that caught me completely off guard when I arrived in the convention center was over hyped WWDC staff. They started welcoming everyone from outside the building. Not a simple greeting. They cheered and high-fived everyone! They were so happy it felt disturbing. And it didn’t stop on the first day. They kept the spirit up until the very last day.
From my twitter timeline, I can tell that many also felt uncomfortable with this artificial happiness. But as we entered day 3, I got used to it and it actually was kinda .. nice. With all the excitement from learning new stuff, long time standing in lines, and talking to people, we all got exhausted. Without the energy shared by the staff, the conference could become so depressing.
Apple provided physical activities everyday in the morning during WWDC, like yoga session. I didn’t join the morning activities but I’m interested to participate next time if I’m lucky to win the lottery again. I did join one physical activity though, the SwiftStrike game. It’s an AR bowling-like game. Two players enter the ring and are given an iPad for each of them. Using AR, the players can see a ball and bowling pins on the stage. The objective is to knock down the opponent’s bowling pins by pushing the ball using the iPad. It was kinda difficult but pretty fun!
In the last day, there was special SwiftStrike tournament where only 64 pairs can join. I lost in the first game 🤣 But funnily enough, in the end, the final game was between two Indonesians. The winner got a special WWDC polo shirt which was the same one the staff was wearing and was not sold anywhere. In addition to that, the winner also got all the pins which were available in the event. By default, every one only got a few number of random pins.
This year’s bash performer was Weezer! It was awesome! Although Apple’s choice this year revealed age gap between me and the other Indonesian developers 😆
Apple went all out with inclusivity in the bash by including staff that translated the songs to sign language! It was pretty cool. Another great thing was that the bash was held on Thursday, which is not the last day of the event. It’s great because for people like me who needed to go back on the last day wouldn’t miss the bash.
Did you go to WWDC too? Let me know what you think about it on Twitter!
Articles, drawings, and codes by Nico Prananta, a software developer (iOS and web) and digital artist (for fun!) in Basel, Switzerland. I'm on Twitter.