Spoiling the Dark plot with Kotlin May 01, 2021 Intro As promised in my last post, it’s time to use our family tree DSL to spoil the plot of Netflix’s Dark series! 😈 To quickly recap, we have a small but functional (my puns are always intended) DSL for building a family tree in Kotlin: The Dark family trees in code The family trees are of course the focus of the series as they are revealed to us piecemeal; episode by episode, season by season. ...
Building a Family Tree DSL with Jetpack Compose syntax Mar 21, 2021 Originally published on ProAndroidDev Why build a DSL? Ever since first getting into Kotlin, I’ve known it has a few things that makes building domain-specific languages (DSLs) easier. I’ve read the mind-expanding type-safe builders guide for building a DSL for HTML, but until recently I hadn’t found a good use case for building a DSL of my own. My team at Zalando maintains server-driven UI libraries for Android & iOS that power completely dynamic screens such as home, brand homes, collections, and various landing pages in the Zalando fashion store apps. ...
Flexbox Layout Behavior in Jetpack Compose Mar 16, 2021 Originally published on the Zalando Engineering Blog Introduction The CSS Flexible Box Layout specification (AKA flexbox) is a useful abstraction for describing layouts in a platform agnostic way. For this reason, it is widely used on the web and even on mobile. Readers familiar with ConstraintLayout can think of flexbox as conceptually similar to the Flow virtual layout it supports. This type of layout is ideal for grids or other groups of views with varying sizes. ...
Top Albums of 2020 Dec 22, 2020 This year was full of unexpected surprises, disappointments, and more for everyone, but music was here to comfort us throughout. Here’s my list of favorite albums for the year: Hum - Inlet Anyone who’s talked music with me long enough has heard me express my adoration for Hum. They were the first/one of the first bands I’ve seen live. Their particular brand of space rock/shoegaze/whatever-you-want-to-call-it has always been one of my favorites. ...
Jetpack Benchmark on Firebase Test Lab Mar 06, 2020 As previously outlined in my talk at Mobius Conference in Saint Petersburg last year, our team at Zalando is building a server-driven UI platform we call AppCraft. AppCraft allows us to add or update screens in our app with only server changes instead of the normal app release constrained way of doing things. On the client side, we are building every screen the same way: fetch layout & data from the server, parse it, and render it. ...
Top Albums of 2019 Dec 23, 2019 Time files and it turns out it’s been several years since I last shared my favorite albums of the year. Despite the lack of posts, I still keep a list every year and decided it’s time once again to highlight some of the albums I’ve enjoyed most: Oh Sees - Face Stabber Any year that includes an Oh Sees release will find it in my top albums list, so here it is. ...
AppCraft: Faster Than a Speeding Release Train Dec 22, 2019 It was a pleasure speaking at Mobius Conference in Saint Petersburg this past May. I never got around to finishing the transcript of the talk I intended to write, but you can find the slides on Speaker Deck and the video on YouTube:
Introducing Biografy Dec 24, 2017 What is Biografy? Biografy is a lifelogging app that automatically builds a timeline of each day. The Events view logs events from various apps including music, podcasts, videos, calls and chats. Each event includes rich detail such as the time, activity (stationary, walking, biking, etc.), and location/place. The Motion view lists car/transit trips, bike rides, runs, and walks. With the Map view, you can see where you were when each event occurred and gain insights like where you spend your time based on the clusters of pins. ...
React Native: Is It Worth It? Nov 27, 2017 Intro When new technologies start gaining momentum in the Android community, the pragmatic (or lazy) among us eventually have to ask ourselves, “Is it worth it?” After the initial arrival and departure of the hype train, some of these become trusted tools we use in almost every app. Think RxJava and Dagger. React Native may be on its way to earning a place in the same club. Once we get past the fact that JavaScript on Android and HTML in JavaScript seem pretty damn weird at first, there’s a lot to like. ...
Things I've Learned Since Moving to Berlin Sep 23, 2017 I’ve lived in Berlin for a bit more than six months now. Here’s a list of some of the things I’ve learned: It is possible to survive a summer without air conditioning. It’s also possible to go all summer without a mosquito bite. I don’t miss having a car. Public transit is great here so I typically only need one to haul things like furniture. And I can rent one on demand pretty easily with apps like DriveNow. ...