• Episode 213: Compose runtime and performance
    Mar 4 2025

    In this episode, Tor and Romain chat with Leland and Chuck from the Compose team about performance -- recent optimizations, upcoming optimizations, and challenges.


    Leland: @intelligibabble.bsky.social

    Chuck: @chuckjaz.bsky.social

    Tor: @tornorbye.bsky.social

    Romain: @romainguy, @romainguy.dev, romainguy@androiddev.social


    Catch videos on YouTube → https://goo.gle/adb-podcast

    Subscribe to Android Developers → https://goo.gle/AndroidDevs


    #Featured #Compose #AndroidDevelopersBackstage

    Show More Show Less
    57 mins
  • Episode 212: Happy birthday, Android Studio!
    Jan 24 2025

    In this episode Chet, Romain and Tor chat with Xav and Jamal from the Android Studio team to talk about the history of Android’s IDE.

    Chapters:

    Intro (00:00)

    Topic of the day - Android Studio releases (00:59)

    What was before Android studio? (2:33)

    Eclipse (7:22)

    Jamal joins Android (13:56)

    Android studio 1.0 (16:40)

    Android studio 1.0 - launch (21:56)

    Android studio 3.0 (25:17)

    Differences after the Kotlin announcement (28:02)

    Studio 2.1 big complaints (31:32)

    Code names in Android (33:23)

    Favorite versions of Android Studio (38:01)

    Team growth 2010 - 2017 (41:22)

    Android Studio 4.0 - motion editor (43:26)

    Gradle (45:27)

    Profilers (53:06)

    Regrets? (54:04)

    Favorite features? (56:37)

    Wrap up (59:53)



    Links:

    • Android Studio → https://goo.gle/36F8fcS

    • Android Studio 1.0 → https://goo.gle/4h4X68z

    • Announcing Android Studio → https://goo.gle/3EapKGH

    Jamal: https://www.linkedin.com/in/jamaleason

    Xavier: ducrohet.bsky.social

    Romain: @romainguy, @romainguy.dev, romainguy@androiddev.social

    Tor: threads.net/@tor.norbye and tornorbye@androiddev.social

    Chet: @chethaase, threads.net/@chet.haase, and chethaase@androiddev.social

    Catch videos on YouTube → https://goo.gle/adb-podcast

    Subscribe to Android Developers → https://goo.gle/AndroidDevs

    #Featured #Android #AndroidDevelopersBackstage

    Show More Show Less
    1 hr and 1 min
  • Episode 211: Rules about performance tools
    Nov 26 2024

    In this episode Chet, Romain and Tor chat with Shai Barack about how the Android platform team studies performance and understands system health - and what is system health anyway? We talk about measuring performance, deciding trade-offs, and our favorite tools such as Perfetto, Compiler Explorer, and Android Studio's Memory Profiler.

    Chapters:

    Intro (00:00)

    System health (0:27)

    Efforts to make apps more efficient (3:35)

    Telemetry data (5:59)

    Trade offs between long battery life and good performance (8:21)

    Scheduling groups (10:38)

    Static drain (13:32)

    Collaborating with App developers vs operating system (19:10)

    High refresh rates (23:26)

    Reach vs engagement (32:02)

    What tools does your team use to optimize performance? (34:10)

    Godbolt.org (37:09)

    Demystifying (39:39)

    The best tools are multi-player (43:52)

    R8 or R-Not? (45:42)

    Optimizing for feature sets (48:05)

    Tools, not Rules (50:08)

    What are the tools I should be aware of as an app developer looking to upscale performance? (54:36)

    Allocation tracker (55:37)

    Open source tools (57:08)

    Useful resources for devs to understand various tools (59:04)

    Final thoughts (1:06:19)



    Links:

    • Compiler Explorer → https://goo.gle/3Zbq6DV

    • Perfetto → https://goo.gle/3OtD3UK and https://goo.gle/3B3S3p5

    • Tools, not Rules → https://goo.gle/416CyY7

    Shai:

    Romain: @romainguy, threads.net/@romainguy, romainguy@androiddev.social

    Tor: threads.net/@tor.norbye and tornorbye@androiddev.social

    Chet: @chethaase, threads.net/@chet.haase, and chethaase@androiddev.social

    Catch videos on YouTube → https://goo.gle/adb-podcast

    Subscribe to Android Developers → https://goo.gle/AndroidDevs

    Show More Show Less
    1 hr and 10 mins
  • Episode 210: Studio Jewelry
    Oct 24 2024

    In this episode Chet, Romain and Tor chat with Sebastiano about how the Android Studio team builds UIs. We talk about how Compose for Desktop is used in parts of Android Studio and how the Compose Markdown renderer available in the Jewel library makes Studio Bot tick.

    Chapters:

    Intro (00:00)

    Android Dev UX team (00:39)

    What kind of libraries and languages are used to build Android studio? (1:52)

    Swing (2:53)

    Reactive and declarative programming models (8:25)

    SKIA for Kotlin (10:01)

    Jetpack Compose widgets (11:54)

    Jewel (13:07)

    Text rendering across platforms (15:51)

    Differences in behaviors (17:40)

    Support for markdown files (20:26)

    What is markdown? (21:25)

    Swing and html (25:45)

    Selection handling in StudioBot (28:46)

    Boosting productivity with Compose (30:40)

    Standalone vs plugin artifacts (34:29)

    The difference between Jewel & Swing (35:30)

    HTML vs Markdown (39:31)

    Markdeep (41:53)

    Jewel's Markdown API (43:46)

    Where to find Jewel? (46:54)

    Sebastiano’s podcast - Code with the Italians (47:34)

    Final thoughts (49:13)

    Links:

    • Jetpack Compose

    • Compose Multiplatform, for Desktop

    • Jewel

    • Jewel Markdown Renderer

    Sebastiano: ​​https://github.com/rock3r, https://codewiththeitalians.it/

    Romain: @romainguy, threads.net/@romainguy, romainguy@androiddev.social

    Tor: threads.net/@tor.norbye and tornorbye@androiddev.social

    Chet: @chethaase, threads.net/@chet.haase, and chethaase@androiddev.social

    Catch videos on YouTube → https://goo.gle/adb-podcast

    Subscribe to Android Developers → https://goo.gle/AndroidDevs

    Show More Show Less
    51 mins
  • Episode 209: Compose animations
    Sep 12 2024

    In this episode Chet, Romain and Tor chat with Doris Liu from the Compose team about animations in Compose -- covering everything from the basic primitives up to the recently added Shared Element Transitions.

    Chapters:
    Intro (00:00)
    Animation capabilities of Compose (1:06)
    Different types of animation specs (3:43)
    Layers of functionality, transitions (7:49)
    TargetBasedAnimation (9:48)
    Vectors & velocity of color change (12:43)
    Second layer parallel to animation spec (16:39)
    Animation interruptions (18:48)
    Motion layout problem-solving (20:19)
    Both scale and move in question (25:45)
    Different mental models for layout animation in Compose vs. View (26:20)
    Shared element (31:05)
    Are there things you wish more people were aware of? (34:19)
    What's the tooling story for this? (41:57)
    What is Look Ahead? (43:16)
    All software is regret (48:49)
    New API: Modifier.animateBounds (51:52)
    How to reach Doris – leave a comment (55:57)
    Motion Frame of Reference Placement (57:29)
    Wrap up (59:10)

    Links:
    Shared element tutorial → https://goo.gle/3XrGYp5
    Shared element talk → https://goo.gle/47tm3qm
    A quick guide to compose animations → https://goo.gle/3Tm853p
    The API layers except the highest level APIs we chatted about in the podcast → https://goo.gle/3MGsiNE

    Doris: @doris4lt

    Romain: @romainguy, threads.net/@romainguy, romainguy@androiddev.social

    Tor: threads.net/@tor.norbye and tornorbye@androiddev.social

    Chet: @chethaase, threads.net/@chet.haase, and chethaase@androiddev.social

    Catch more Android Developers Backstage on YouTube → https://goo.gle/adb-podcast
    Subscribe to Android Developers YouTube → https://goo.gle/AndroidDevs

    Show More Show Less
    1 hr
  • Episode 208: Micro optimizations
    Jul 18 2024

    In this episode Tor and Romain find themselves without a guest and decide to chat about micro optimizations and writing custom tools.


    Tor and Romain

    Chapters:

    Intro (00:00)

    Micro optimizations (00:32)

    Kotlin explorer (3:25)

    Avoiding object allocations (6:49)

    Code Inefficiencies (8:10)

    Compilers (12:13)

    Understand assembly with AI (18:39)

    Layout opt (21:20)

    Programmers writing tools (21:52)

    char.isBlank (25:35)

    Lint checks (27:59)

    Companion objects (29:40)

    Java assertion mechanism (32:00)

    Hash maps (35:13)

    When to micro optimize and when not to (43:46)

    Benchmarking (47:26)

    New optimizations (48:46)

    Wrap up (50:46)

    Romain: @romainguy, threads.net/@romainguy, romainguy@androiddev.social

    Tor: threads.net/@tor.norbye and tornorbye@androiddev.social

    Catch videos on YouTube → https://goo.gle/adb-podcast

    Subscribe to Android Developers → https://goo.gle/AndroidDevs

    Show More Show Less
    51 mins
  • Episode 207: AI development assistance
    Jun 20 2024

    In this episode we talk with Kathy Korevec from the AIDA team at Google about AI assisted developer tools, such as Android Studio -- which is using Gemini AI models provided by AIDA.

    Romain, Kathy, and Tor

    Kathy: twitter.com/simpsoka

    Romain: @romainguy, threads.net/@romainguy, romainguy@androiddev.social

    Tor: threads.net/@tor.norbye and tornorbye@androiddev.social

    Check out → https://goo.gle/3wK4EM4

    Catch videos on YouTube → https://goo.gle/adb-podcast

    Subscribe to Android Developers → https://goo.gle/AndroidDevs

    Show More Show Less
    52 mins
  • Episode 206: Make it faster
    May 22 2024

    In this episode we cover ADB -- not "Android Developers Backstage", but "Android Debug Bridge", the technology powering device connections. Romain and Tor talk with Fabien Sanglard from the Android Studio team on his work to improve the debug stack -- including the new USB speed detection feature recently unveiled at Google I/O.

    Chapters:

    Intro (00:00)

    You may know Fabien from… (00:50)

    Applying relevant knowledge to Android Studio (3:28)

    Communicating with remote devices and debugging (12:18)

    Accommodating a debugger (13:55)

    Fixed protocols and how to work around (16:10)

    What other versions of ADB do you use to get the suite faster? (19:27)

    Other ways to make the debugger faster (20:38)

    The differences between USB cables (21:51)

    How to find the right cable (30:17)

    ADB over wifi (32:41)

    How to detect which usb port is faster on your laptop? (34:46)

    Complexity of new cables (36:57)

    Install time of APK’s (37:41)

    New ways of helping full stack devs (45:44)

    Final thoughts (49:19)

    Viewer questions (57:54)



    Romain: @romainguy, threads.net/@romainguy, romainguy@androiddev.social

    Tor: threads.net/@tor.norbye and tornorbye@androiddev.social

    Fabien: @fabynou,

    Check out → https://goo.gle/3wK4EM4

    Catch videos on YouTube → https://goo.gle/adb-podcast

    Subscribe to Android Developers → https://goo.gle/AndroidDevs

    Show More Show Less
    1 hr and 1 min