Avsnitt

  • 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

  • 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

  • Saknas det avsnitt?

    Klicka här för att uppdatera flödet manuellt.

  • 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

  • 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

  • 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

  • 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

  • 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

  • In this episode, Tor, Romain, and Chet talk with Aurash Mahbod from the Play Games team at Google -- covering trends in mobile games, challenges for Android games developers, console games, and more!

    Chapters:

    Intro (00:00)

    What’s Aurash working on currently? (02:40)

    How much is Play store providing users with content based on previous interests? (05:29)

    Longstanding games vs new games (08:34)

    Mobile gaming vs console (10:07)

    Are there stats on what type of games people are playing? (18:07)

    Difficulties and solutions for transitioning games from various devices (21:14)

    Movie corner - War Games (25:15)

    How does Play console help devs optimize engagement? (26:23)

    What is the breakdown of tools that devs actually use for games? (27:53)

    Reducing the backend costs for devs (30:18)

    Where does loyalty content surface? (34:28)

    Balancing add load (35:16)

    Cloud saves (38:18)

    Aurash’s history with Play store (42:18)

    Wrap up (42:58)

    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

    Aurash: https://twitter.com/aurash - @aurash


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

  • In this episode, Tor, Romain, and Chet talk about one of Tor’s favorite topics: Lint! Specifically, we talk about Lint checks and the annotations that use them to enable better, more robust, and more self-documenting APIs.
    Lint: It’s not just for pockets anymore.

    Chapters:

    Intro (00:00)

    Lint checks for annotations (01:50)

    Lint checks in Android (05:38)

    Logic checks (07:34)

    Color representations (10:01)

    How does lint know the type of integer? (14:40)

    Kotlin annotations (17:19)

    Unsigned (20:10)

    HalfFloat (22:25)

    Thread annotations (25:12)

    @CallSuper (28:18)

    LayoutOpt (30:26)

    Lint checks in AndroidX (32:00)

    Restrict to annotation (36:45)

    Writing your own custom Lint checks (39:51)

    Lint testing framework (43:26)

    Kotlin buildList Lint check example (45:25)

    @Discouraged (48:15)

    Wrap up (50:08)

    @Deprecated Chet (50:50)

    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

  • In this episode, Tor, Romain, and Chet talk about some of the many things that happened this year in the world of Android development, including new devices and form factors, tool improvements, AndroidX features and libraries, and Jetpack Compose releases. And any tech podcast would be remiss without mentioning AI/ML, so we talk about that too.

    Tor, Romain and Chet

    Chapters:

    Intro (00:00)

    Google engineers vs Android (00:57)

    Big changes of 2023 intro (3:03)

    AI (3:38)

    Programming with AI (5:08)

    Writing with AI (8:52)

    New devices from Android - Pixel fold (12:31)

    Pixel watch (18:50)

    Bard (19:37)

    Changes in device release times (20:23)

    Major changes in devices vs incremental updates (21:42)

    Camera (22:40)

    Platform developments - mainline modules (24:03)

    More testing for Android (25:12)

    Flaky tests (26:55)

    Jetpack compose features (32:32)

    RTO (38:00)

    Shapes library and KMP (42:42)

    Final thoughts on big events of 2023 (45:03)

    Studio build improvements (46:43)

    Baseline profiles (49:21)

    Listener mail (50:45)

    Where has Chet been? (52:46)

    Metalava question (55:46)

    Wrap up wrap up (57:00)

    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

  • In this episode, Tor and Romain chat with Aurimas Liutikas from the AndroidX team. Topics include performance tuning the AndroidX Gradle builds using configuration caching, local caching and remote caching, as well as tracking API compatibility using the Metalava tool.

    Aurimas, Romain and Tor

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

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

    Aurimas: androiddev.social/@Aurimas and www.liutikas.net/blog-posts

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

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

  • In this episode, Tor and Romain chat with Greg Baker and Joe Baker-Malone about exciting new Android Studio features made possible by Firebase integration. Physical device streaming allows you to connect remotely to physical devices hosted in Google’s secure data centers and use them for all your development needs. We also explore other time saving features like the ability to go from a crash report directly to the correct line of code, even across git branches.

    Tor, Romain, Joe, Greg

    Links:

    Android Device Streaming from Android Studio feedback form

    App Quality Insights and Firebase Crashlytics



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

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

    Greg: @bakergo@fosstodon.org

  • In this episode, Chet and Romain speak with Ken Russell and Corentin Wallez from the WebGPU team. WebGPU is a new API that brings modern GPU rendering and compute functionality to web and other platforms (including Android!). We talk about the genesis and capabilities of WebGPU, WGSL (WebGPU’s new shading language), the state of WebGL (the predecessor API for web GPU rendering), and lots of other fun related graphics topics.

    Ken, Romain, and Chet (not pictured: Corentin, who is on the monitor behind the photographer)


    Links:

    Samples (and its github repo)

    Google I/O Codelab

    Google I/O presentation Introducing WebGPU (and associated blog post)

    Series of articles teaching WebGPU and WGSL

    Series of articles of WebGPU Best Practices

    Draft specs for WebGPU and WGSL

    Dawn from Google/Chromium

    wgpu from Firefox

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

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

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

    Ken: @gfxprogrammer
    Corentin: @DaKangz and @DaKangz@mastodon.gamedev.place

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

  • This time, Romain, Tor, and Chet talk with Leland Richardson, George Mount, and Chuck Jazdzewski from the Jetpack Compose team about performance. The team has been looking at performance issues recently and discusses what they’ve found, what gotchas lie in wait for library developers, what tools and compilers can magically handle for you... and what they can’t. Tune in to learn about why we worry about autoboxing (and why you probably shouldn’t).

    Foreground: Romain, Tor, George, and Chuck
    Background (on the monitor): Chet, Leland, and Cody (audio engineer/producer), plus another view of the Studio with Romain, Tor, George and Chuck again, for your recursive pleasure.

    Links:

    Jetpack Compose

    Android Studio Memory Profiler

    Macrobenchmark

    Baseline profiles

    Kotlin bytecode decompilation

    Romain: @romainguy and romainguy@androiddev.social

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

    Chet: @chethaase and chethaase@androiddev.social

    Leland: @intelligibabble

    George: @georgemount1

    Chuck: @chuckjaz

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

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

  • Since our original episode on location nearly nine years ago, a lot has happened in the location support for Android. In this episode, Wyatt Riley and Roy Want answer all of Tor's questions about how it works and cover recent developments like indoor location, elevation, and some tips for developers.

    Wyatt, Roy and Tor.

    Links:

    Getting started guide

    Precise indoor location

    Wi-Fi Alliance(WFA) : Wi-Fi Location(TM) demonstrated at a recent WFA member event

    Android Developer resources for Wi-Fi RTT (IEEE 802.11mc) Location

    Google Play Store has three apps that demonstrate Wi-Fi RTT (IEEE 802.11mc) capabilities for devices with 11mc support.

    WifitRttLocator (phone positioning in a building with 11mc capable Access Points)

    WifiRttScan (Phone to Access Point ranging)

    WifiNanScan (Phone to phone ranging)

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

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

  • You saw it at Google I/O - now you can hear about it in the comfort of your own headphones! Tor, Romain, and Chet talk with Siva Velusamy and Sandhya Mohan from the Android Studio team about the just-launched Studio Bot. This new AI-powered assistant enables conversational queries in the IDE to help with coding, commenting, confusion, or if you just need a friend.

    Chet, Tor, Romain, Sandhy, and Siva in the Sunnyvale studio

    Studio Bot: https://goo.gle/3BBEKZI

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

  • Raluca Sauciuc joins Tor and Romain to talk about what goes on behind the scenes in Android Studio. Raluca takes us through the tools and workflows used by the Android Studio team to improve performance and memory usage, and avoid future regressions. She also explains how the team adopts new versions of the IntelliJ IDE and platform, and how they can deal with massive code merges.

    Raluca, Romain, and Tor

    Romain: @romainguy and romainguy@androiddev.social

    Tor: @tornorbye and tornorbye@androiddev.social

    Chet: @chethaase and chethaase@androiddev.social

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

  • Chet and Romain talk to Jeff Hamilton and Anton Hansson from the Mainline team about "modular system components", and the new SDK extension framework which lets developers access them.

    Anton Hansson top right, and Jeff Hamilton bottom left, with Romain and Chet

    Blog post: https://goo.gle/3S1c3g4

    AndroidX convenience constants, e.g. T_EXTENSION_INT: https://goo.gle/3lEJwRx

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

  • This time, Tor, Romain, and Chet were joined by Siyamed Sinir and Sean McQuillan from the Android Text team to talk about, well, text. Which, it turns out, is a very deep, complicated, and constantly evolving technology. The conversation covered everything from the fundamentals of the text stack on Android to the capabilities and implementation of text in Jetpack Compose to internationalization to fonts to emojis to performance to.... you get the idea. There was a lot of stuff to talk about. And so much subtext.

    Romain, Chet, Sean, Tor, and Siyamed (using RTL support: Siyamed, Tor, Sean, Chet, and Romain)

    Links:

    Text In Compose Compose Variable Fonts ComboBreaker ColrV1 Fonts i18n & Text in Android 13 Text is hard! Rendering & Editing Compose Downloadable Fonts

    Romain: @romainguy and romainguy@androiddev.social

    Tor: @tornorbye and tornorbye@androiddev.social

    Chet: @chethaase and chethaase@androiddev.social

    Siyamed:@siyamed

    Sean: tech.lgbt/@objcode

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

  • In this episode, James Ward joins Chet, Tor, and Romain to talk about Kotlin. We talked about Kotlin Multiplatform (both KMP and KMM) and what’s coming for Kotlin in 2023, especially the new K2 frontend.

    James, Tor, Romain, and Chet.

    Links:

    Kotlin Kotlin Multiplatform (KMP) Kotlin Multiplatform Mobile (KMM) Jetpack Multiplatform Libraries Compose Multiplatform by JetBrains

    Romain: @romainguy and romainguy@androiddev.social

    Tor: @tornorbye and tornorbye@androiddev.social

    Chet: @chethaase and chethaase@androiddev.social

    James: @_jamesward

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