• Kotlin named Breakout Project of the Year at OSCON
    by Android Developers on July 18, 2019 at 6:09 pm

    Posted by Wojtek Kaliciński, Developer Advocate, Android Stephanie Saad Cuthbertson announces support for Kotlin during the Developer Keynote at I/O 2017. Today at OSCON (the O’Reilly Open […]

  • Supporting Android Q gestural navigation
    by Jeroen Mols on July 16, 2019 at 10:00 pm

    From Android Q onwards devices can now operate in a fully gestural system navigation mode. In that mode, there is no longer an on-screen back button, instead users can swipe from both edges to […]

  • Android Dev Summit 2019 Registration is Open
    by Android Developers on July 16, 2019 at 4:00 pm

    Posted by Sean McQuillan, Developer Advocate, Android Registration is now open for Android Dev Summit 2019! Learn, share, and connect at #AndroidDevSummit 2019. It’s a great place to learn new […]

  • Exploring App Actions on Android: What are App Actions?
    by hitherejoebirch on July 16, 2019 at 12:09 pm

    At Google I/O 2018 we were introduced to App Actions, but it was only at I/O this year that we were given the ability to hook into this functionality within our own apps. In this first part of […]

  • Need a Magic Constant? Choose Something Obscure
    by Mark Murphy on July 15, 2019 at 11:33 pm

    We all have various constants in our code, whether they are integers for use with startActivityForResult(), strings for Logcat tags, and so forth. Most of these are internal to our code and do not […]

  • Keeping cool in Android Q with the Thermal API
    by hitherejoebirch on July 12, 2019 at 11:53 am

    We’ve all been there are some point – using our Android device and things start to feel like they’re getting a bit warm in our hands. Whether we’re playing a game or using an […]

  • Parallax Scrolling
    by Mark Allison on July 12, 2019 at 9:00 am

    Parallax scrolling can be a really interesting technique to use to give parts of your app a bit more life and character. It is a technique built on the mathematical principle if we are moving then […]

  • What’s new for text in Android Q
    by Android Developers on July 11, 2019 at 5:10 pm

    Posted by Florina Muntenescu, Android Developer Advocate Displaying text is an important task in most apps, so in Android Q we’re continuing to introduce new features to support your needs and […]

  • Android Q Beta 5 Update
    by Android Developers on July 10, 2019 at 4:59 pm

    Posted by Dave Burke, VP of Engineering Android Q Beta 5 launches today! Today we’re rolling out Beta 5, bringing Android Q Beta very close to the system behaviors you’ll see in the final […]

  • Android Development Podcasts – 7 Options to Choose From
    by goobar.io on July 9, 2019 at 1:48 am

    I’ve had a number of questions lately about which podcasts I’ve been listening to, and where to find them, so I thought I’d share a small list of relevant Android development […]

  • 5 Tips For Preparing Your CFP Abstract
    by goobar.io on July 9, 2019 at 12:56 am

    I want to share 6 tips for creating conference talk proposals that are clear, concise, and tell a story. These tips can help you start writing better proposals for conference CFPs and hopefully […]

  • On-Device Debugging Part IV: Log All The Things!
    on July 8, 2019 at 12:00 am

    Over the past year, my team have been steadily building a Developer Options screen for our app. It is a simple PreferenceScreen available on debug builds that help us: figure out what’s going […]

  • Getting Started with Android Canvas Drawing 🖼
    by franks.rebecca on July 6, 2019 at 7:54 am

    Learn the basics of drawing with the Android Canvas Class Diving into using the Android Canvas class can unlock magical super powers you never knew you had 🤯. Imagine being able to draw […]

  • ViewPager2
    by Mark Allison on July 5, 2019 at 9:00 am

    ViewPager has been around for a number of years now, and was added in support library V22.1.0. In February 2019 the first alpha of ViewPager2 was released. In this post we’ll take a look at how […]

  • Leaky APIs are Leaky
    by Mark Murphy on July 3, 2019 at 3:24 pm

    For years, I have been advising developers against doing the sort of thing seen in this Stack Overflow question, where the developer is hacking in arbitrary SQL to a query() on a ContentResolver. […]

  • Capturing Audio in Android Q
    by Android Developers on July 3, 2019 at 2:00 pm

    Posted by Don Turner, Developer Advocate for Android Media In Android Q there’s a new API which allows applications to capture the audio of other applications. It’s called the […]

  • Philips Hue adaptive icon
    by Jeroen Mols on July 2, 2019 at 10:00 pm

    Your icon is one of the most important assets in your app. With a bit of luck, users might even put it on their main launcher screen! As various Android launchers, versions or devices might […]

  • Indie Games Showcase from Google Play – meet the winners!
    by Android Developers on July 2, 2019 at 4:41 pm

    Posted by Patricia Correa, Director, Developer Marketing We just wrapped up the Indie Games Showcase in Europe, Japan & South Korea! Back in March we started our search for some of the newest […]

  • On-Device Debugging Part III: Inspect, Reset, Repeat
    on July 1, 2019 at 12:00 am

    Over the past year, my team have been steadily building a Developer Options screen for our app. It is a simple PreferenceScreen available on debug builds that help us: figure out what’s going […]

  • Parcelize
    by Mark Allison on June 28, 2019 at 9:00 am

    A Parcel is an optimised serialisation format for Android which is designed to enable us to transfer data between processes. This is something that most Android developers need to do occasionally, […]

  • Advanced in-app billing: handling alternative purchase flows
    by Android Developers on June 26, 2019 at 5:31 pm

    Posted by Oscar Rodriguez, Developer Advocate When designing and developing an app or game, at some point you may ask yourself if you want to monetize it. If you choose to do so by selling […]

  • A Dependency Injector’s 3 Jobs
    by Jesse Wilson on June 25, 2019 at 1:30 am

    You can do dependency injection (DI) manually or with a library. Constructing your application’s dependency graph by hand is a cute exercise but not practical beyond toy examples. You’ll […]

  • On-Device Debugging Part II: Timbeeeeeeer!
    on June 24, 2019 at 12:00 am

    Over the past year, my team have been steadily building a Developer Options screen for our app. It is a simple PreferenceScreen available on debug builds that aims to help us: figure out what’s […]

  • On-Device Debugging Part I: Now It’s On, Now It’s Off
    on June 22, 2019 at 12:00 am

    Over the past year, my team have been steadily building a Developer Options screen for our app. It is a simple PreferenceScreen available on debug builds that aims to help us: figure out what’s […]

  • HEIF Images
    by Mark Allison on June 21, 2019 at 9:00 am

    One of the new features in Android Q is support for High Efficiency Image Format (HEIF) images, but why is this important? In this post we’ll take a look at what HEIF actually is, and […]

  • Tintable Toolbar Things
    on June 21, 2019 at 12:00 am

    A few weeks ago, I merged a pull request that updates our app’s theme to Material Components from the Bridge version. […]

  • Android Q, uiMode, and Configuration Changes
    by Mark Murphy on June 19, 2019 at 1:00 pm

    If you are a regular follower of my blog posts, I have complete confidence that you are a fine Android app developer and that all of your apps support configuration changes. However, there seem to […]

  • Exploring Android Jetpack: Preferences
    by hitherejoebirch on June 19, 2019 at 12:26 pm

    Settings screens provide a way for our users to configure our application for the way in which they want it to look, feel and behave. As well as this, it’s also a great place for us to provide […]

  • "Elements of Android Q" Version 0.4 Released
    by Mark Murphy on June 18, 2019 at 4:49 pm

    Subscribers now have access to Version 0.4 of Elements of Android Q, in PDF, EPUB, and MOBI/Kindle formats. Just log into your Warescription page to download it, or set up an account and subscribe! […]

  • Biometrics – AndroidX
    by Mark Allison on June 14, 2019 at 9:00 am

    Android has supported fingerprint sensors since API 23 and previously we looked at the new APIs to handle them using BiometricPrompt and BiometricManager. For the latter we looked at how to create a […]

  • Kotlin vs Flutter? Are you comparing them fairly?
    by goobar.io on June 14, 2019 at 2:59 am

    Kotlin vs Flutter. Which should you learn? This post aims to explore this question and whether or not you’re comparing them fairly. The post Kotlin vs Flutter? Are you comparing them fairly? […]

  • Is iOS starting to get fragmented?
    by Kaushik Gopal on June 13, 2019 at 7:00 am

    I’ve been dipping my toes into some iOS development recently. Nothing too crazy, just pairing with some colleagues and trying to see how we can jointly improve the technical design on both […]

  • DevFest DC Update!
    by Mark Murphy on June 12, 2019 at 1:30 pm

    On Friday, I will be speaking at DevFest DC on the changes to storage in Android Q. That’s not new. What is new is that my presentation has been moved to 10am from its original ~4pm slot. […]

  • Modularization – Lessons learned
    by Jeroen Mols on June 11, 2019 at 10:00 pm

    Wrapping up this series on modularization I’d like to share some of the things we’ve learned at Philips Hue while going through this process the past year. Part five of this series will […]

  • Moving Android Studio and Android Emulator to 64-bit versions
    by Android Developers on June 11, 2019 at 6:12 pm

    Posted by Sam Lin, Product Manager, Android With Project Marble, the Android Studio team focused our efforts on making the fundamental features and flows of the Integrated Development Environment […]

  • "Elements of Android Jetpack" Version 0.4 Released
    by Mark Murphy on June 11, 2019 at 1:31 pm

    Subscribers now have access to Version 0.4 of Elements of Android Jetpack, in PDF, EPUB, and MOBI/Kindle formats. Just log into your Warescription page to download it or read it online, or set up an […]

  • Quickly Edit Color Resources In Android Studio
    by goobar.io on June 11, 2019 at 7:15 am

    This week’s tools & tips video is another Android Studio tools tutorial demonstrating how you can quickly edit color resources using Android Studio. We can use this tool for several useful […]

  • Never break the chain: use Kotlin’s extension functions
    by Dan Lew on June 10, 2019 at 2:00 pm

    Years ago I wrote about properly reusing operators in RxJava. In summary, the wrong way to reuse operators is to wrap the Observable (which is bad because it breaks the fluency of the code), whereas […]

  • Value Objects, Service Objects, and Glue
    by Jesse Wilson on June 10, 2019 at 3:03 am

    This post expands on a section in my Writing Code That Lasts Forever talk. When I was learning object oriented programming I struggled to define boundaries between classes. Should a Chess […]

  • Why is processing a sorted array faster than processing an unsorted array?
    by Kaushik Gopal on June 8, 2019 at 7:00 am

    This super intesting stack overflow answer explains why -in programming- if you have a sorted array, somehow magically it can seem like it’s easier to process each element vs processing the […]

  • Shortcuts to Shortcuts
    on June 8, 2019 at 12:00 am

    It has been a few years since I last looked at implementing app shortcuts, and lately I have been looking at them again. I remember implementing them the first time they were released for Android N, […]

  • The Death of External Storage: The End of the Saga(?)
    by Mark Murphy on June 7, 2019 at 11:51 am

    If Q Beta 4 really does have the final APIs, then we may now have the final implementation of scoped storage. While external storage as we know it is still going away, it will not be for a while, and […]

  • Burnout
    by Mark Allison on June 7, 2019 at 9:00 am

    Recently I saw a tweet by Britt Barak stating that we don’t talk about burnout enough and she’s also recorded a podcast about it. This made me think about my experiences with burnout and […]

  • Random Musings on Q Beta 4
    by Mark Murphy on June 6, 2019 at 12:51 pm

    Each time Google releases a new developer preview beta, I putter around the API differences report the high-level overviews, and even the release blog post, to see if there are things that developers […]

  • Android Q Beta 4 and Final APIs!
    by Android Developers on June 5, 2019 at 5:08 pm

    Posted by Dave Burke, VP of Engineering Last month at Google I/O we talked about what’s new for Android developers, from new features in Android Q to the latest in Kotlin and Jetpack. […]

  • The Storage Access Framework: Counterpoints
    by Mark Murphy on June 5, 2019 at 11:52 am

    Last Friday, XDA Developers ran an article entitled “The Storage Access Framework is the only way for apps to work with all your files in Android Q. And it’s terrible.”. As you […]

  • Space Shuttle style programming
    by Kaushik Gopal on June 5, 2019 at 7:00 am

    Sometime back I ran across a thread where folks talked about this programming style called “Space Shuttle style” that the Kubernetes codebase followed. […]

  • Indie Games Accelerator – Introducing class of 2019!
    by Android Developers on June 5, 2019 at 6:00 am

    Posted by Vineet Tanwar, Business Development Manager, Google Play In April we opened applications for the 2019 class of Indie Games Accelerator, a program to help top mobile game startups from […]

  • Jetpack Compose: Optimism and Opportunity
    by Mark Murphy on June 4, 2019 at 6:21 pm

    When Google announced Jetpack Compose at Google I|O, I held out modest hope that it might come to fruition. A re-envisioning of the Android UI rendering system, with an eye towards React/Redux-style […]

  • Improved app quality and discovery on Google Play
    by Android Developers on June 4, 2019 at 4:00 pm

    Posted by Kosuke Suzuki, Product Manager, Google Play Every month, more than 2 billion users from over 190 countries visit the Google Play Store to browse and discover new apps and games. As part […]

  • Google Play services and Firebase migrating to AndroidX
    by Android Developers on June 3, 2019 at 6:23 pm

    Posted by Doug Stevenson, Developer AdvocateLater this year, the Google Play services and Firebase SDKs will migrate from the Android Support libraries to androidx-packaged library artifacts. We are […]

  • IO vs CPU operations
    by Kaushik Gopal on June 3, 2019 at 7:00 am

    This is a fantastic post by Erik where he explains the nuance between IO-bound and CPU-bound operations in programming. […]

  • Adding in-app purchases to Flutter apps
    by hitherejoebirch on May 31, 2019 at 12:47 pm

    In many applications that we build we want to offer some way to monetize the product. Be it through subscriptions, one-off purchases or upgrades – these all provide a way to offer more value to […]

  • Gesture Navigation – Window Insets
    by Mark Allison on May 31, 2019 at 9:00 am

    One of the big Android announcements at Google I/O 2019 was the introduction of gesture navigation on Android Q. Initially it may feel like this is purely a system-level change and does not affect […]

  • Building a safer Google Play for kids
    by Android Developers on May 29, 2019 at 2:06 pm

    Posted by Kanika Sachdeva, Product Manager, Google Play At Google Play, we’re committed to providing a positive, safe environment for children and families. Over the last few years, […]

  • Our favourite things from Google I/O 2019
    by hitherejoebirch on May 29, 2019 at 12:46 pm

    This year I was lucky enough to attend Google I/O with some great company. Over the course of the event we attended many sessions, so we decided to write a short post together on our favourite parts […]

  • I/O 2019 Android Track Picks & Insights
    by blundell on May 29, 2019 at 10:55 am

    Google I/O is a wrap. The conference celebrated product and platform innovations at Google. As part of the Google Developer Expert programme a group of us travelled to I/O and enjoyed learning […]

  • Improved Pull Requests With GitHub Pull Request Templates
    by goobar.io on May 28, 2019 at 9:34 pm

    Learn how to improve your pull requests by leveraging pull request templates to reduce the effort required to create descriptive, useful pull requests. The post Improved Pull Requests With GitHub […]

  • Exploring Flutter Packages: Date Time Picker
    by hitherejoebirch on May 24, 2019 at 3:00 pm

    When it comes to developing applications, theres often some form of component or functionality that you need that doesn’t quite come as standard. In this new series I want to share some of the […]

  • Gesture Navigation – Edge Cases
    by Mark Allison on May 24, 2019 at 9:00 am

    One of the big Android announcements at Google I/O 2019 was the introduction of gesture navigation on Android Q. Initially it may feel like this is purely a system-level change and does not affect […]

  • Flutter Just Might Work
    by Donn Felker on May 23, 2019 at 2:56 pm

    I’ve been posting on twitter about how mobile developers should not ignore the Flutter technology and in response I received a lot of questions to why I’m stating this. I hope this post […]

  • Congratulations to the finalists of the Indie Games Showcase from Google Play
    by Android Developers on May 23, 2019 at 6:00 am

    Posted by Patricia Correa, Director, Platforms & Ecosystems Developer Marketing Back in March we opened submissions for the Indie Games Showcase, an international competition for games […]

  • Exploring CameraX on Android: Use Cases
    by hitherejoebirch on May 22, 2019 at 12:42 pm

    In my last article we introduced the CameraX API, along with the Camera View component found within the source of the project. In this article we’re going to dive into the second part of the […]

  • Factory or Extension Function?
    by Jesse Wilson on May 22, 2019 at 3:35 am

    I’m working on OkHttp’s Kotlin upgrade. Java callers use this code to go from a String to an HttpUrl: String string = … HttpUrl httpUrl = HttpUrl.get(string); Should it remain the […]

  • Wide Color Photos Are Coming to Android: Things You Need to Know to be Prepared
    by Android Developers on May 20, 2019 at 7:13 pm

    Posted by Peiyong Lin, Software Engineer Android is now at the point where sRGB color gamut with 8 bits per color channel is not enough to take advantage of the display and camera technology. At […]

  • Gesture Navigation – Overview
    by Mark Allison on May 17, 2019 at 9:00 am

    One of the big Android announcements at Google I/O 2019 was the introduction of gesture navigation on Android Q. Initially it may feel like this is purely a system-level change and does not affect […]

  • Independent Conference Project
    by goobar.io on May 17, 2019 at 12:33 am

    Conferences made easy What is this project all about? Building and releasing the artifacts you need to run your own independent conference. What does that include? This project will […]

  • Kotlin Is Everywhere! Join the global event series
    by Android Developers on May 16, 2019 at 5:51 pm

    Posted by Posted by Florina Muntenescu & Wojtek Kaliciński, Developer Advocates, Android Last week at Google I/O, we announced a big step: Android development will become increasingly […]

  • New! Learn How to Build Android Apps with Android Jetpack and Kotlin
    by Android Developers on May 15, 2019 at 9:14 pm

    Posted by Dan Galpin Developing Android Apps with Kotlin, developed by Google together with Udacity, is our newly-released, free, self-paced online course. You’ll learn how to build Android apps […]

  • Supporting Google Play developers regarding local market withholding tax regulations
    by Android Developers on May 15, 2019 at 4:25 pm

    Posted by Gloria On, Program Manager, Google Play Many developers are increasingly focused on growing their businesses globally, and there were more than 94 billion apps downloaded from Google Play […]

  • Exploring CameraX on Android: Camera View
    by hitherejoebirch on May 15, 2019 at 12:31 pm

    If you’ve ever used the Camera APIs on Android, you may have felt that they’ve never been the simplest thing to implement. There was originally the Camera API, which was deprecated in […]

  • Metrics for OkHttp’s Kotlin Upgrade
    by Jesse Wilson on May 13, 2019 at 1:50 am

    We’re upgrading OkHttp’s implementation language from Java to Kotlin. It’s a big process, especially as we’re maintaining strict compatibility with OkHttp 3.x. Fortunately […]

  • Biometrics – BiometricManager
    by Mark Allison on May 10, 2019 at 9:00 am

    Android has supported fingerprint sensors since API 23 and we previously covered the APIs for handling user authentication on Styling Android. However the FingerprintManager class which those […]

  • What Blog Platform Should I Use?
    by Donn Felker on May 9, 2019 at 6:49 pm

    In a very recent email I wrote about how you need to have a blog. The question that pops up next is usually … What blog platform should I use? Medium? WordPress? Gatsby? Jekyll? Or something […]

  • Queue the Hardening Enhancements
    by Android Developers on May 9, 2019 at 3:30 pm

    Posted by Jeff Vander Stoep, Android Security & Privacy Team and Chong Zhang, Android Media Team Android Q Beta versions are now publicly available. Among the various new features introduced […]