<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Droidcon Berlin on Ash Davies</title>
    <link>https://ashdavies.dev/tags/droidcon-berlin/</link>
    <description>Recent content in Droidcon Berlin on Ash Davies</description>
    <generator>Hugo -- 0.150.1</generator>
    <language>en</language>
    <lastBuildDate>Wed, 24 Sep 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://ashdavies.dev/tags/droidcon-berlin/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Crafting Idiomatic APIs with Kotlin and Compose</title>
      <link>https://ashdavies.dev/talks/crafting-idiomatic-apis-berlin/</link>
      <pubDate>Wed, 24 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://ashdavies.dev/talks/crafting-idiomatic-apis-berlin/</guid>
      <description>&lt;p&gt;What’s in a language? What does it mean to be idiomatic? Writing clean, intuitive APIs isn’t just about functionality — it’s about designing interfaces that feel natural and intuitive. With Kotlin and Compose, we have a powerful set of tools and syntax that, when used effectively, can reduce cognitive load and make your APIs both elegant and expressive.&lt;/p&gt;
&lt;p&gt;In this talk, we’ll dive into the principles of idiomatic Kotlin and explore how they apply to designing Compose APIs. You’ll learn how to leverage Kotlin’s language features, from DSLs and inline functions to advanced type safety and composable conventions, to craft APIs that are a joy to use. By mastering these techniques, you can deliver APIs that not only “work” but truly feel like Kotlin.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Testing in Practice: Keeping Your Tests Concise and Declarative</title>
      <link>https://ashdavies.dev/talks/testing-in-practice-berlin-droidcon/</link>
      <pubDate>Wed, 03 Jul 2024 00:00:00 +0000</pubDate>
      <guid>https://ashdavies.dev/talks/testing-in-practice-berlin-droidcon/</guid>
      <description>&lt;p&gt;Testing isn&amp;rsquo;t always everybody&amp;rsquo;s favourite task, but that doesn&amp;rsquo;t need to be the case! Writing tests can be an enjoyable way to practice your coding techniques!&lt;/p&gt;
&lt;p&gt;But with conflicting opinions on writing test code that is declarative, explicit, terse, concise, and isolated, it can be tough to know how to satisfy all of these whilst still retaining your will to live.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll be covering a few techniques, and mechanisms, for writing idiomatic Kotlin code that leaves you with a beautiful test case that not only fulfils all this but gives you accurate code documentation for your project.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What a Long Strange Trip it&#39;s Been: This Year In Android</title>
      <link>https://ashdavies.dev/talks/this-year-in-android-berlin/</link>
      <pubDate>Fri, 07 Jul 2023 00:00:00 +0000</pubDate>
      <guid>https://ashdavies.dev/talks/this-year-in-android-berlin/</guid>
      <description>&lt;p&gt;The Android community is a fast evolving society of excellent people who passionately involve themselves in their ecosystem. This means the progress of developments can be fast, blazingly fast!&lt;/p&gt;
&lt;p&gt;Inspired by other content creators and newsletters that keep us informed about the most recent events, I decided to document news, events, and releases every week for a year. Starting from the end of Droidcon Berlin, the world’s best Android developer conference.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Beyond the Mockery: Why We Should Embrace Testing Without Mocking Frameworks</title>
      <link>https://ashdavies.dev/talks/beyond-the-mockery-berlin/</link>
      <pubDate>Thu, 06 Jul 2023 00:00:00 +0000</pubDate>
      <guid>https://ashdavies.dev/talks/beyond-the-mockery-berlin/</guid>
      <description>&lt;p&gt;In software development, mocking is a popular technique used to simulate dependencies and test behaviour without relying on external systems. However, as with any technique, there are pros and cons to using mocks.&lt;/p&gt;
&lt;p&gt;In this talk, I&amp;rsquo;ll discuss why using mocks may not be the best approach and why we should instead use fakes or in-memory implementations of well-defined interfaces. We will explore the drawbacks of mocks, including how they can lead to brittle tests, slow down development, and make it difficult to refactor code.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hype Driven Development</title>
      <link>https://ashdavies.dev/talks/hype-driven-development-berlin-droidcon/</link>
      <pubDate>Wed, 06 Jul 2022 00:00:00 +0000</pubDate>
      <guid>https://ashdavies.dev/talks/hype-driven-development-berlin-droidcon/</guid>
      <description>&lt;p&gt;Ever wondered what it would take to combine all the experimental features of a language you love (Spoilers&amp;hellip; It&amp;rsquo;s Kotlin!) into one big bundle?&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m a lover of new and shiny stuff, so let me share with you my experience of using everything shiny, and new, in my pet project, to show you how to &lt;em&gt;not&lt;/em&gt; do all the things you might want to do with yours!&lt;/p&gt;
&lt;p&gt;JetBrains Compose for Desktop, Unstable Coroutines APIs, version catalogues, Gradle composite builds, multiplatform navigation support, multiplatform paging, GraphQl, Firebase Cloud Functions, Molecule, Mosaic, what could go wrong?!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Everything is an API</title>
      <link>https://ashdavies.dev/talks/everything-is-an-api-berlin-droidcon/</link>
      <pubDate>Wed, 20 Oct 2021 00:00:00 +0000</pubDate>
      <guid>https://ashdavies.dev/talks/everything-is-an-api-berlin-droidcon/</guid>
      <description>&lt;p&gt;When creating a new app module, or modularising an existing one, it becomes easy to forget who might be consuming it. It becomes easy to forget that every decision you make will affect how it is used, or in the worst case, abused. We’re told that code should document itself, but how do these design decisions reflect in the understanding of intended use?&lt;/p&gt;
&lt;p&gt;Just because we might not be exposing a module as a public or open-sourced library, doesn’t mean we can’t benefit from making good decisions towards an effective and sensible API. By taking the stance that every piece of code we write is an API we can build more versatile and scalable applications.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Navigation and the Single Activity: Learnings from a Skeptic</title>
      <link>https://ashdavies.dev/talks/navigation-and-the-single-activity-berlin/</link>
      <pubDate>Tue, 02 Jul 2019 00:00:00 +0000</pubDate>
      <guid>https://ashdavies.dev/talks/navigation-and-the-single-activity-berlin/</guid>
      <description>&lt;p&gt;Fragments have often been controversial, and to some, the stuff of nightmares, with the inconsistency of lifecycle events, complex UI interaction, and unexpected behaviours making many Android developers suspicious of their usage.&lt;/p&gt;
&lt;p&gt;But with the development and recent stable publication of the navigation library, it may be the right time to give them a chance. Giving Fragments a second chance is not something I’d ever thought I’d be saying, but it’s a fantastic opportunity to find a solution to sharing data across a single screen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Leveraging Android Data Binding with Kotlin</title>
      <link>https://ashdavies.dev/talks/leveraging-android-databinding-with-kotlin-berlin/</link>
      <pubDate>Fri, 27 Jul 2018 00:00:00 +0000</pubDate>
      <guid>https://ashdavies.dev/talks/leveraging-android-databinding-with-kotlin-berlin/</guid>
      <description>&lt;p&gt;Android Databinding is considered as both a powerful toolchain, empowering your views with access to view data without the necessity to build cumbersome presenters, and conversely as an overly complex, convoluted mess of binding statements opening the door to unnecessary, irresponsible domain logic in your view layouts.&lt;/p&gt;
&lt;p&gt;Whilst the latter of these statements can be true, Databinding offers a very powerful code generation syntax, allowing you to utilise the power of the compiler to ensure that your binding statements are runtime safe. Combining this with the concise syntax afforded by Kotlin allows us to dramatically cut down on boilerplate and build complex user interfaces with relative ease.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rx Must Die</title>
      <link>https://ashdavies.dev/talks/rx-must-die-berlin/</link>
      <pubDate>Fri, 27 Jul 2018 00:00:00 +0000</pubDate>
      <guid>https://ashdavies.dev/talks/rx-must-die-berlin/</guid>
      <description>&lt;p&gt;Is the learning curve of Rx too steep? Do we overuse Rx Java? Is LiveData an alternative? Do Coroutines and Kotlin build-in features make it obsolete?&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href=&#34;https://thecontext.github.io/website/episodes/21-droidcon-rx/&#34;&gt;The Context: Episode 21: Rx Must Die&lt;/a&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
