<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/feed.atom.xml" media="screen"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <id>tag:speakerdeck.com,2005:/renaudmathieu</id>
  <link rel="alternate" type="text/html" href="https://speakerdeck.com"/>
  <link rel="self" type="application/atom+xml" href="https://speakerdeck.com/renaudmathieu.atom"/>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1527308</id>
    <published>2026-04-09T09:32:53-04:00</published>
    <updated>2026-04-09T09:39:10-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/offline-should-be-the-norm-building-local-first-apps-with-crdts-and-kotlin-multiplatform"/>
    <title>Offline should be the norm: building local-first apps with CRDTs &amp; Kotlin Multiplatform</title>
    <content type="html">In 2026, a loading spinner in the subway isn’t “bad connectivity”. It’s a cloud-first app showing its limits. This talk is about offline-first architecture: write locally first, and treat sync as a background process, not a user-blocking gate. The hard part is concurrency: Alice edits a to-do offline while Bob checks it off. Who wins? Definitely not “last-write-wins”. We will unpack CRDTs, a data structure designed to merge changes without conflicts and converge reliably. Then we go hands-on with Kotlin Multiplatform by designing a practical local-first architecture, local persistence, a sync engine built around deltas, and the real-world challenges (tombstones, pruning, UI “glitches”). The goal: one robust, shared sync core for Android, iOS, the Web, and apps that stays trustworthy even when the network isn’t.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/9e4a9b9b5f204e11848f9eae9edfa110/preview_slide_0.jpg?39034538" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1458386</id>
    <published>2025-10-29T09:11:48-04:00</published>
    <updated>2025-10-29T09:17:14-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/common-pitfalls-in-engineering-teams-and-how-to-avoid-them"/>
    <title>Common pitfalls in engineering teams and how to avoid them</title>
    <content type="html">Let’s be real: building amazing tech isn’t just about writing great code; it’s about having a team that works well together. As a freelancer, I’ve faced some of the same issues popping up repeatedly in different teams or companies. I will share the most common struggles tech teams face daily. Whether you’re a developer, a manager, or just someone who wants to improve the workplace, you’ll leave with practical tips to help your team work better together, stay motivated, and hit your goals!</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/3de04a1331444feea7aa840bf707f74e/preview_slide_0.jpg?37155675" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1445871</id>
    <published>2025-10-01T05:30:13-04:00</published>
    <updated>2025-10-01T05:33:38-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/strumming-up-a-music-player-with-cmp"/>
    <title>Strumming up a music player with CMP 🤘</title>
    <content type="html">Building a customer-facing music player requires a high level of precision in terms of design and music controllers. In this talk, we’ll level up the volume on creativity as we design and develop a fully functional music player with Compose Multiplatform. From crafting a UI that’s in tune with user needs to building a music controller that never misses a beat, this session will have you grooving to the rhythm of Kotlin Multiplatform 💃🕺

</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/57b9ce8f0d3047deb4b55bec72b10285/preview_slide_0.jpg?36793623" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1382751</id>
    <published>2025-06-12T07:27:15-04:00</published>
    <updated>2025-06-12T07:35:49-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/jouons-de-la-musique-avec-compose-multiplatform"/>
    <title>Jouons de la musique avec Compose Multiplatform</title>
    <content type="html">Préparez vos partitions, dans cette conférence, nous mettrons l’accent sur la créativité en concevant et en développant un lecteur de musique entièrement fonctionnel en Kotlin avec Compose Multiplatform. Au programme, une interface utilisateur qui groove comme jamais, un contrôleur de musique toujours au tempo, et surtout… une session qui vous fera vibrer au rythme de Kotlin Multiplatform 💃🕺</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/2a07433de1cd48f1bc048534116a6ab7/preview_slide_0.jpg?35436761" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1353780</id>
    <published>2025-04-13T04:07:40-04:00</published>
    <updated>2025-04-15T02:45:26-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/les-pieges-courants-dans-les-equipes-techniques-et-comment-les-eviter"/>
    <title> Les pièges courants dans les équipes techniques et comment les éviter</title>
    <content type="html">Soyons honnêtes : construire de super produits n’est pas juste une question de beau code, c’est surtout une question d’équipe qui fonctionne bien ensemble.

En tant que freelance, j’ai pu constater que certains problèmes sont souvent les mêmes dans différentes équipes et dans différentes entreprises.

Au travers cette session, je partagerai les difficultés les plus courantes auxquelles les équipes techniques sont confrontées au quotidien et comment les résoudre !

Que vous soyez développeur, manager ou simplement quelqu’un qui souhaite améliorer l’ambiance de travail, vous repartirez avec des conseils pratiques pour aider votre équipe à s’améliorer !</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/74d30b3ca9184ed2a449cf44bba366fd/preview_slide_0.jpg?34689567" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1197700</id>
    <published>2024-06-07T14:09:18-04:00</published>
    <updated>2024-06-07T14:20:12-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/seamless-mobile-real-time-communication-with-webrtc"/>
    <title>Seamless mobile real-time communication with WebRTC</title>
    <content type="html">The WebRTC project allows developers to build strong voice and video communication solutions by facilitating the transmission of data between peers.
During this talk, we will discover the WebRTC project, its design, and how to implement a simple mobile app in a Kotlin Multiplatform project.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/0407e70883db418ea6bc37eaf4e33d26/preview_slide_0.jpg?30524541" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1176862</id>
    <published>2024-04-29T06:00:00-04:00</published>
    <updated>2024-04-29T06:01:46-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/building-a-joystick-controller-using-compose-multiplatform"/>
    <title>Building a Joystick Controller using Compose Multiplatform</title>
    <content type="html">Ready to play and learn with Compose Multiplatform? Let’s discover the Gesture APIs to craft our very own joystick.
This hands-on session is perfect for developers keen on improving their Compose skills across platforms. You'll get to mix a bit of trigonometry fun with the practical magic of Compose Multiplatform, applicable for both iOS and Android. Come along for an adventure in coding - it's going to be educational, practical, and most importantly, a lot of fun!</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/b3a71914fd7948598e6099f6f104e02d/preview_slide_0.jpg?29923635" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1046851</id>
    <published>2023-07-06T08:48:18-04:00</published>
    <updated>2023-07-06T09:16:14-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/discovering-material-3"/>
    <title>Discovering Material 3</title>
    <content type="html">Material 3 was announced on October 28, 2021, and how come we developers don't seem to be in a rush to transition to Material 3?

Is the adoption slow because our designers don't see much value in it or because we developers are already putting our efforts into a transition to Jetpack Compose?

In this talk, we will see how Material Design has evolved over the year and we will provide in deep dive into Material 3. We will then delve into the new components and patterns introduced in Material 3, such as the new `SearchBar`, `DatePicker`, and `BottomSheet`. We will also discuss how Material 3 supports the latest Android platform features, including a foldable device theming system. We will explore how Material 3 can be used to enhance user experience.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/c19ea688121a4d93b97b81f7e6ca64c8/preview_slide_0.jpg?26245019" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1021114</id>
    <published>2023-04-27T11:59:08-04:00</published>
    <updated>2023-07-08T13:47:24-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/i-have-a-date"/>
    <title>I have a Date</title>
    <content type="html">One common task in Android app development is working with Date objects, and Kotlin provides several options for managing it. 
In this talk, we will explore the different ways to represent and manipulate dates in Kotlin, including using the built-in java.util.Date class, the third-party Joda-Time and ThreeTen libraries, and the java.time package introduced in Java 8. 

We will also discuss common problems, and handling time zones. By the end of this talk, attendees will have a strong understanding of how to effectively manage dates in their Kotlin Android apps.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/89f6161b96d04e23a90f1e6236d32daa/preview_slide_0.jpg?26269403" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/598148</id>
    <published>2020-01-30T04:05:12-05:00</published>
    <updated>2020-01-30T04:18:25-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/how-to-effectively-scan-barcodes-on-android"/>
    <title>How to effectively scan barcodes on Android</title>
    <content type="html">Android does not provide a native solution to detect barcodes in your application. However, some barcode image processing libraries are available but it is not always easy to use it for top performance.

Through this talk, we will see how to implement barcode detection in your Android application from camera management to optimization of barcode recognition thanks to machine learning.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/5ed2c931cb4344d3a456f6f4602c98fd/preview_slide_0.jpg?14763428" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/496817</id>
    <published>2019-02-22T09:19:17-05:00</published>
    <updated>2019-02-22T09:32:10-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/designing-effective-navigation-in-android"/>
    <title>Designing effective navigation in Android</title>
    <content type="html">From principles to implementation, the new Navigation Architecture Component helps to design the interactions that allow users to navigate across, into, and back out from the different pieces of content within the app.

Renaud will explore the basics and then dive into specific use cases such as deep-linking, manipulating the back-stack or even providing safe arguments.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/7b1a355ff40b4b0cb63937100c8e9a27/preview_slide_0.jpg?11894489" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/440657</id>
    <published>2018-04-24T09:24:47-04:00</published>
    <updated>2018-04-24T09:29:50-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/quickly-build-your-app-alone-with-firebase-android-makers-2018"/>
    <title>Quickly build your app alone with Firebase- Android Makers 2018</title>
    <content type="html">Creating a personal Android app requires us to solve a lot of common challenges. Sometimes some of these challenges require so much time that we start to forget about the product we are building. Firebase can act as a toolbox to give functionality like analytics, databases, messaging and crash reporting so we can move quickly and focus on our users.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/01728ac7737f46b493b5319db5bf7da9/preview_slide_0.jpg?9897665" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/374782</id>
    <published>2017-01-05T11:02:18-05:00</published>
    <updated>2017-01-05T11:03:37-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/android-best-practices-string-resources-cheat-sheet"/>
    <title>Android Best Practices – String resources cheat sheet</title>
    <content type="html">Android runs on many devices in many regions. Any application should handle text and numbers in ways appropriate to the locales where the app is used. Using a Localization management platform to manage the String resources brings many benefits:

- Automate. New strings can be put to your codebase automatically (#FailFast)
- Collaborate. Allows many people to work on your translation project (translators, product team, etc.)
- Statistics. So you don’t miss what is important

See http://renaudmathieu.fr/android-best-practices-string-resources-cheat-sheet/ for further details.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/d7c5a867aa50419c878517da5c913520/preview_slide_0.jpg?7403325" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/379982</id>
    <published>2017-02-17T06:20:34-05:00</published>
    <updated>2017-02-17T06:27:03-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/think-push-notification"/>
    <title>Think Push Notification</title>
    <content type="html">Push notifications are more effective than you think. 
Businesses are facing an app engagement crisis. To overcome this, brands are increasingly turning to tactics such as push notifications to re-engage lapsed users.
This talk is about best practices takeaways and push notification strategy here at Viadeo</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/fffcdfe1ea6c4f618461b06fcb24e1d2/preview_slide_0.jpg?7564371" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/342437</id>
    <published>2016-05-19T07:59:52-04:00</published>
    <updated>2016-05-19T08:01:05-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/o-2016"/>
    <title>Android at Google I/O 2016</title>
    <content type="html">The most important announcements from Google I/O 201 regarding Android platform</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/ef6e66ca2d9e410e813676534dfa0a87/preview_slide_0.jpg?6313976" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/330791</id>
    <published>2016-02-29T04:13:24-05:00</published>
    <updated>2016-02-29T04:14:16-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/renaudmathieu/a-small-dive-into-android-testing"/>
    <title>A Small dive into Android Testing</title>
    <content type="html">AWS device farm, Espresso, UiAutomator, Android July 2015</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/8d5dd94619a84dca8ff974339fae13d6/preview_slide_0.jpg?5931983" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Renaud MATHIEU (@renaudmathieu)</name>
    </author>
  </entry>
  <title>Renaud MATHIEU (@renaudmathieu) on Speaker Deck</title>
  <updated>2026-04-09T09:32:53-04:00</updated>
</feed>
