Macoscope goes to Belarus

As you probably know, a few of us here at Macoscope are actively involved in putting together a local Swift meetup in Warsaw – Swift Warsaw.

We believe in giving back to the community – not only because it’s The Right Thing to do, but simply because it pays off tremendously: we get to meet new people, forge new friendships, and learn from each other. So when Janina Łaszkiewicz, involved with Cocoaheads.by and other cool projects in Minsk, invited us to come over to the Belarusian capital and be a part of a Swift event she was putting together, it didn’t took long for me and Michał to accept the invitation. After getting all our paperwork sorted out and buying airline tickets we didn’t have to wait all that long for December 19 to come around; soon enough we found ourselves aboard a Belavia flight to Minsk. A short cab ride later we were standing right in the heart of the capital of Belarus.

The next day we met up with Marius Rackwitz, of Cocoapods #2835 PR fame, along with a couple of fellow local iOS devs and had a lovely dinner together before heading out to Space where the event was to be held. Now, we’re pretty proud of our own offices where SwiftWarsaw meetups are held (see for yourself!), but I must admit, I was very impressed by Space. There was a real, honest-to-god stage, a professional sound system, lots of seating room, and even two balconies overlooking the big room.

Truth be told, we were pretty nervous before the event, but after seeing the freaking stage and the number of people flowing in, both Michał and I got just a teensy case of stage fright. Both of us had given talks before, but there’s just something about going up on stage (as opposed to “just” standing in front of a big room filled with people) that’s… different. Luckily, we weren’t the first ones to speak.

The first two talks were in Russian, while Marius, Michał, and I spoke in English. We were at an advantage here, since Russian is somewhat similar to Polish, so I was able to mostly follow along the whole time. It’s also entirely possible that I was led astray by linguistic false friends and completely misunderstood what they were talking about – in which case I’m really sorry, dear readers, for leading you astray in turn.

First off was Denis Lebedev, with a talk titled “Code for Code.” He started out talking about why exactly developers do and why they should hack in their spare time, and then went on to present a case study of “translating” a program from JavaScript to Swift, in order to get to know the latter better. The process he proposed progressed in “steps”: first you do as dumb and direct of a translation as possible, which makes the code look similar to how natural language looks like after going through Google Translate a couple of times. As he went on, the code became more sophisticated. First we identified some bottlenecks in the code and added performance tests, then we introduced a bunch of value types and made the code more functional, eventually concluding the exercise by introducing parallelism to our program.

After that, Cyril Lashkevich took the stage to talk about “Swift for old ObjC programmers”. It’s easy to fall into the trap of comparing Swift and Objective-C syntax by showing a couple of code snippets, and I was happy to see that Cyril took a different approach. Instead, he talked more about the philosophical differences between the two languages, and what they translated to with regard to the way you’d approach problems in the two languages. In the last part, he talked a little bit about how Swift interops with Objective-C, the implications of doing @objc and dynamic in Swift, and so on.

The title of the third talk was “CocoaPods: Pioneering Swift,” and it was delivered by Marius Rackwitz. During the almost hour-long talk (!) Marius explained the issues that the CocoaPods team had while trying to support Swift, the different approaches they tried, the differences between static libraries and frameworks, and what exactly does that all mean for both CocoaPods end-users as well as the Pods maintainers. I really couldn’t do justice to this talk if I tried to explain it in more details, so I’ll just point you in the direction of a blogpost Marius has written for the CocoaPods blog – Pod Authors Guide to CocoaPods Frameworks, which also covers many (although not all!) of the things he spoke about.

All in all, this was my favorite presentation, and by the end I didn’t even have any questions for Marius, as all the things I jotted down that I wasn’t clear on were explained later in his talk!

Finally, it was time for a break – after almost two hours it was nice to have time to catch a breather and grab a cup of coffee, or almost have a heart attack because you were up next.

I’m happy to report I didn’t require the attention of medical personnel and managed to get my nerves under control. In my talk, called “Swift: Road to 1.1 and beyond”, I outlined the way the language itself took to current status, what cool things came out of the community during that time, and what still lies ahead.

Rounding off the line-up was Michał, whose talk had a horribly punny title: “What’ch up?!” and was about – yes, you guessed it – WatchKit. Michał did a good job of explaining what is and what isn’t (yet) possible with the framework and went through a lot of little gotchas that make developing WatchKit apps so similar and yet so unlike anything we’ve grown accustomed to on iOS.

Then it came to everyone’s favorite part of the meetups: networking! This one was a bit special, since there was a ‘Secret Santa’ gift exchange – what a lovely idea! After that, we stayed back in Space for a while and then headed out in a big group to have a dinner in the city. Marius introduced us to an app called Taptalk: a bit similar in concept to Snapchat, but without imposed limits on the period of time you can view the photo in, and with a big emphasis on location metadata. For some reason it seems to be very popular among iOS developers, and, lo and behold, after a couple of minutes I was getting pictures from all around the world.

Discussions on how life and work look like in Belarus, Germany, and Poland dragged well into the night, we closed shop in the wee hours of the morning and overslept so much that our hosts were starting to worry about us!

All in all, it was one of the best (if not the best) events I’ve attended in my life, I was really impressed by the effort and thought that went into putting it together, every speaker clearly invested a lot of thought, energy, and work into their talks and words cannot convey how awesome our lovely hosts were.

And thus concludes the story of how Macoscope visited Belarus.

Macoscope Becomes an Evernote Certified Developer!
Macoscope's Marshmallow Challenge