zsmb.coHot off the keys



Appearances

2021
2020
2019
2018
2017

Talks

How to Build Awesome Android Libraries

This talk is a collection of advice about building Android libraries or SDKs, highlighting some of the less obvious things you can do to make your library great.

It’s Compose O’Clock on Android

Jetpack Compose is changing how UI is being built on Android. This new toolkit is replacing the now 10-year-old, somewhat tedious View system with a declarative, functional approach, and promises to simplify and speed up UI development. This session explains what Jetpack Compose is, and then shows a quick example of interesting UI with it.

Mastering API Visibility in Kotlin

When designing a library, minimizing your API surface - the types, methods, properties, and functions you expose to the outside world - is a great idea. This doesn't apply to just libraries: it's a consideration you should make for every module in a multi-module project. In this talk, we'll look at all the ways that Kotlin lets you get your visibility just right.

Krate ft. Moshi

Krate is a SharedPreferences wrapper library based on Kotlin's delegates. This talk takes you on a journey where you'll learn how the new Moshi-based addon for the library was implemented. We'll touch on type erasure and reflection, testing, debugging, and various advanced Kotlin features along the way.

Android Complexity

Android development can often feel overwhelming – there’s so, so many things to take care of around a single app. Here’s a brief look at all the things* that an Android developer would have to consider, do, and test for in order to create the theoretically perfect application, to serve as a practical checklist for starting your next Android project.

Become a Pro in Android Studio

A tips and tricks session on making the most out of our best friend - and sometimes worst enemy - Android Studio.

Handling View State and Events with RainbowCake

RainbowCake is an architectural framework built on top of the best & latest of Jetpack and Kotlin. One of its core features is its view state and view event handling mechanism, which is somewhere between MVVM and MVI, and is powered by LiveData. In this talk, we’ll first look at the client side API of the framework, and the design decisions that went into it. Then, we’ll dive into how all of this is implemented under the hood by customizing LiveData. While the talk discusses this specific framework, the ideas in it are universal and can be used independently in any project.

Say “hi” to Moshi

JSON serialization is an everyday task for Android developers, but it's still not a trivial one. Long used solutions such as Gson have serious pain points, especially when using them with Kotlin. Could Moshi be our saviour when it comes to dealing with JSON on Android? We'll look at how to use it, what problems it solves, and how nicely it plays with our favourite JVM language.

Idiomatic Kotlin

'Idiomatic' is a word often used by Kotlin experts to describe elegant patterns or solutions that make excellent use of Kotlin's features. Let's turn this attitude around for a change, and have some fun by taking a look at the worst ways you can twist and abuse language features to take shortcuts, create tricky solutions, achieve exciting syntax, or confuse others who dare enter your codebase.

Dekompiling

Kotlin has many features that are leaps and bounds ahead of Java. However, its primary target platform being the JVM, all of these features still need to compile to the same bytecode as Java does. This is a look at how a variety of interesting Kotlin features are compiled to bytecode, and what their Java equivalents would be. Even though Kotlin abstracts away much of the virtual machine and the original feature set of Java with its own features, it’s still important to know what your Kotlin code compiles to. Not only can this knowledge give you the power to optimize your code, but it will also help you avoid subtle bugs that would otherwise be near impossible to track down.

Reviewing Kotlin

I have been teaching our rapidly growing team of Android developers Kotlin for about a year, and for the last few months, I’ve been reviewing tens of thousands of lines of code written by almost a dozen people at times. Here’s what we’ve found out together about learning, teaching, and reviewing Kotlin. I’ll tell you what worked for us and what didn’t, so that you may be more prepared for this path than we were. I’ll also point out some of the issues that most often arose in the code while our developers were getting familiar with the language.

Tweaking LiveData

LiveData is a well-known tool by now, 2 years after its initial release. Let's take a brief look at what it does, and then see how we can create custom implementations - as well as test them!"

Delightful Delegate Design

When developing a library, designing an easy to use API while hiding unnecessary implementation details from clients is fundamental. This talk and article looks at some of the API design choices we've made for our library Krate, an Android SharedPreferences wrapper.

Android app architecture powered by Jetpack & Kotlin

A 3+ hour workshop first introducing coroutines and some Jetpack architecture components, then showcasing an app architecture built on the aforementioned technologies. Then, showing how this architecture can be used in practice with a half-complete example application built using that architecture that can be developed further during the workshop.

Typical Kotlin

The talk covers some of the basic built-in types of Kotlin (Any, Unit, Nothing), and how we interact with these types - whether we know it or not - when using basic constructs (the Elvis operator, return statements, null itself) of the language.

Android KTX

A lightning talk showing off some of the syntax gains that Google's Android KTX library offers.

Top 10 Kotlin Stack Overflow Questions

A selection of some of the most frequent questions about Kotlin on Stack Overflow, asked, answered and explained. Something in there for everyone, from beginners to experts.

DSL Design

A talk presenting the basics of what a DSL is, what use cases there are for them, and looking at some of the design choices we can make while creating one.

A Taste of Kotlin on Android

An introductory talk on Kotlin prepared right before Google made it an official language on Android. A brief history of where the language comes from, what benefits it offers, and many examples of its syntax and features.