On 29th of January, the entire Novoda iOS team attended the dotSwift conference in Paris, France. We came from Berlin, London, Liverpool and Barcelona to spend a weekend there, both to learn and meet other developers, and to spend some much needed bonding time together.
dotSwift is the IOS part of the dot conference series. If you have never attended a dot conference, they are very short and focus primarily on giving you techniques and tools to help in your day-to-day development. The venue was the ‘Théâtre de Paris’, which makes for a fantastically unique setting.
The conference is a bit different from the norm. Not only does it last just one afternoon, but that one afternoon is packed full of deeply technical 18min talks, as well as 4min lighting talks, each of which are recorded Videos here.
Each talk ends with the MC (Daniel Steinberg - a very funny guy and a great presenter!), asking the speakers some questions, which always provide some extra insight into the subject matter.
Unusually, the conference does not announce the topics of the talks, just the speakers themselves - so, you never know exactly what you are going to learn until you get there! While this might seem strange, it seems to work really well, probably due to the calibre of speakers that the conference has. In my opinion, it makes the dotSwift conference a Must Do, if you live and work in Europe. You can see the full speaker line up here
The Novoda team was made up of both newbee and returning visitors to dotSwift. But regardless, one thing we were all there for was a weekend of team building and 🧀 and🍷.
Because the conference is so short, it was a great one to attend as a team, and we even managed to fit in a couple of days together before things kicked off on the Monday.
At Novoda, it doesn’t matter if you’re in the Berlin or London office, we all chat all day long - staying in touch on Slack, visiting the other offices from time to time and even have a iOS guild meeting every two weeks where we can all sit down and talk. But there’s nothing quite like all being together in one place!
Being able to just sit down over dinner and drinks, talking to colleagues about non-code related things was fantastic. It means that you get to know your coworker as more than just a Slack name or a voice while pairing or a name on a PR; you get to know them as people, have funny (and sometimes weird!) conversations, find common interests, as well as find solutions to work problems we are facing.
For example, some realized over the weekend that they all shared a common love for mathematics and mathematical models, and a Slack channel was then created to share that passion with the rest of the company. Two others shared a mutual frustration about their lack of Functional Programming practical knowledge with Swift, and so set up a date to run a kata inside the company to fix that.
These are the things that only surface after you start to get to know someone, or when the perspective or environment has changed. Having an entire weekend where we could relax, explore and just enjoy each other's company - not as developers but as people - was incredibly valuable for the dynamics of the team.
For this edition of dotSwift, one of Novoda's designers, David, created this really cool tshirt design to commemorate the entire team being there together, and our mutual love for the language. They went down a storm, and overall, it could not have been a better conference, since not only were the speakers all top of the line and the talks very interesting, one of the core developers for Swift Core Team even came to speak.
Here are some of our favorite talks from the conference, together with why we loved it and what we learnt from it:
I loved the last talk of the day, the one given by Ben Cohen, who is a developer for the Apple Swift Core Team out of San Francisco. Not only was it very educational, reminding me about features of Swift I often forget to use, but he also showed how these features get implemented into the language, how to create a good proposition for Swift 5 and he urged us to collaborate and be part of the discussion. His talk was very well done and delivered, he taught me something about Swift I can use and at the same time erased some of the fears about collaborating for open source Swift. 💯
My favorite talk was Elements of Functional Programming by Paul Hudson, which introduces an idea of how a good functional code helps to avoid state on your code and makes it easier to test.
His talk is a very playful and entertaining introduction to swift functional programming, worth every minute of your time.
You can watch it here
Swift supports important concepts of functional programming. We tends to design solutions arounds objects because most of us have a object-oriented background. On his talk Graham Lee introduces an interesting codification using functions as domain objects. I recommend to have a look at his talk if you are already familiar with the functional operators of Swift and want to exercise your brain to thinks also Functional, and not only Object-Oriented.
You can find Graham Lee slides from his talk here
It was definitely a difficult task picking out a favourite talk from the day, but for me, Ellen Shapiro’s talk on the power of protocols in Swift was particularly interesting. It is something that is very relevant to our day to day programming, and I have already been using some ideas from this talk in my work. Furthermore, learning about Sally Shepherd’s experiences with accessibility, and how this affected her use of mobile apps was fascinating, and the app that she showcased that countered any visual impairment was incredible. It was also great to see such a diverse group of speakers, from such different backgrounds, which helped compliment such a variety of talk topics.
"What if I told you, you could invent your own buckets" - this message from Ben Scheirman's talk 'Buckets of Code' really resonated with me. In his talk he explains how we can make the most of well known design patterns, like MVC, by adding new objects that complement these "buckets" and that give a more appropriate home to code that doesn't really belong in either of them.
Ben Cohen talk was definitely inspiring for everyone who is interested in taking the first step and starting contributing to swift language. He walked us through the process of creating real swift evolution proposal which he submitted just a couple of days before his speech. Ben showed us how we should think in terms of making swift proposals meaningful to others, computational performant and well named.I was fascinated by his process of thinking, attention to detail and enormous knowledge.
For me, the best talk was Graham Lee’s on functional programming. It focused a lot on the theory of FP and what really pure FP boils down to, not just describing how map or filter work. My favourite bit was how a collection of items can be represented using just a function, which I thought was really crazy! It was unusual and has definitely made me curious about learning more about advanced functional programming, and how it intersects with maths.
Peter Steinberger’s Binary Frameworks in Swift lightning talk was awesome and included an impressive amount of detail in 5 minutes. I enjoy understanding low level details, and Peter’s talk inspired me to more closely follow Swift’s evolution in this respect. His talk was a great starting point for learning about what ABI stability means for different types of Apple ecosystem developers. One broad advantage that ABI stability will bring is that the Swift standard library can be shipped with the OS instead of with every single app. This will reduce each app’s binary size by a few MB and allow smarter standard library loading — yielding significant storage, memory, and startup time improvements for your users. As far as waiting for ABI stability, binary framework developers are the most impacted (they should wait for both ABI stability and Swift Module Format stability before easily adopting Swift). Another interesting fact he shared was that the way arrays are represented in memory has changed from 24 bytes to 8 bytes during Swift’s evolution. What this means is that if a new Swift array (8 byte) is passed to Swift code compiled for 24 byte arrays, uninitialised memory will be read 😱⚡️.
Novoda has been growing and the iOS team along with it, which is fantastic, but has made it difficult for all of us to meet in person, and to really spend enough time together to build a relationship. By taking an opportunity for professional development and combining it with team building (and some cool new tshirts!), we made the most of our time together, and it proved to be hugely rewarding - and an experience we hope to repeat next year! 🎉
We'll be there to enjoy it together - hopefully with less flooding of rivers, and maybe with the chance to attend some of the workshops as well.
See you again, dotSwift!
Guilds aim is to acquire and spread knowledge inside the company ↩︎
We plan, design, and develop the world’s most desirable software products. Our team’s expertise helps brands like Sony, Motorola, Tesco, Channel4, BBC, and News Corp build fully customized Android devices or simply make their mobile experiences the best on the market. Since 2008, our full in-house teams work from London, Liverpool, Berlin, Barcelona, and NYC.
Let’s get in contact