• Lessons Learnt with Kotlin: Extension Functions
    by franks.rebecca on October 16, 2019 at 9:32 am

    At Over, we’ve been using Kotlin since we started the new Android version of the app in November 2018. From day one, we’ve been excited to try the language features and leverage them to […]

  • R8 Optimization: Enum Switch Maps
    by Jake Wharton on October 16, 2019 at 12:00 am

    Note: This post is part of a series on D8 and R8, Android’s new dexer and optimizer, respectively. For an intro to D8 read “Android’s Java 8 support”. For an intro to R8 read […]

  • Over ❤️ Kotlin – How we’ve used Kotlin to build our design app
    by franks.rebecca on October 14, 2019 at 10:32 am

    I recently presented this talk at Kotlin Everywhere South Africa as the keynote for the event. I really enjoyed preparing this talk as it spoke about how we use Kotlin, mistakes we’ve made […]

  • The Storage Situation: Removable Storage
    by CommonsWare on October 11, 2019 at 12:17 pm

    Back in 2014, I wrote a series of blog posts to try to clear up confusion around where you can read and write files in Android. I updated them in 2017 to reflect changes in Android… but […]

  • Image Convolution: Theory
    by Mark Allison on October 11, 2019 at 9:00 am

    Many commercial image processing applications have various effects which are achieved using convolution matrices. These are actually pretty easy to implement on Android and enable us to apply some […]

  • Spoiler Alert!
    by CommonsWare on October 10, 2019 at 12:56 pm

    Every weekday, as part of maintaining AndroidX Tech, I round up all of the new and updated artifacts that are available on Google’s Maven repo (those that begin with androidx., anyway). […]

  • Practical SwiftUI: Onboarding UI
    by hitherejoebirch on October 10, 2019 at 12:07 pm

    At WWDC this year we saw the announcement for SwiftUI, a new way to build user interfaces for our iOS applications in a declarative manner. Whilst SwiftUI is still in beta and there are likely […]

  • Previewing #AndroidDevSummit: Sessions, App, & Livestream Details
    by Android Developers on October 9, 2019 at 10:45 pm

    Posted by The #AndroidDevSummit team In two weeks, we’ll be welcoming Android developers from around the world at Android Dev Summit 2019, broadcasting live from the Google Events Center (MP7) in […]

  • Media Store access using openFile() on Android 10
    by hitherejoebirch on October 9, 2019 at 6:06 am

    As of Android 10, things have changed slightly with how we access files that are contained outside of our application. This change of behaviour has come from the concept of scoped storage – […]

  • R8 Optimization: Enum Ordinals and Names
    by Jake Wharton on October 9, 2019 at 12:00 am

    Note: This post is part of a series on D8 and R8, Android’s new dexer and optimizer, respectively. For an intro to D8 read “Android’s Java 8 support”. For an intro to R8 read […]

  • The Storage Situation: External Storage
    by CommonsWare on October 8, 2019 at 12:00 pm

    Back in 2014, I wrote a series of blog posts to try to clear up confusion around where you can read and write files in Android. I updated them in 2017 to reflect changes in Android… but […]

  • The Storage Situation: Internal Storage
    by CommonsWare on October 6, 2019 at 1:36 pm

    Back in 2014, I wrote a series of blog posts to try to clear up confusion around where you can read and write files in Android. I updated them in 2017 to reflect changes in Android… but […]

  • AnimatedIcons: Strikethru
    by Mark Allison on October 4, 2019 at 9:00 am

    There is a nice micro-animation library at useanimations.com which contains some useful animations which are particularly well suited for animated icons. These are all free to use and downloadable at […]

  • Using Firebase on Android with Kotlin Coroutines
    by hitherejoebirch on October 3, 2019 at 12:17 pm

    Whilst recently working on a side project I ran into a situation where I needed to make use of the Android Firebase SDKs. This project of mine uses Kotlin Coroutines for all of the asynchronous task […]

  • Continuous testing with new Android emulator tools
    by Android Developers on October 2, 2019 at 9:14 pm

    Posted by Lingfeng Yang, Android Studio team Developers often use the Android Emulator during their day-to-day development to quickly test the latest changes before they are being committed. In […]

  • View Binding: Performance
    by Mark Allison on September 27, 2019 at 9:00 am

    In September 2019 Google released Android Studio 3.6 Canary 11 to the Canary channel. This had an interesting new addition: View Binding. In this short series we’ll take a look at how it works, […]

  • R8 Optimization: Class Reflection and Forced Inlining
    by Jake Wharton on September 25, 2019 at 12:00 am

    Note: This post is part of a series on D8 and R8, Android’s new dexer and optimizer, respectively. For an intro to D8 read “Android’s Java 8 support”. For an intro to R8 read […]

  • Unlock your creativity with Google Play Pass
    by Android Developers on September 23, 2019 at 4:25 pm

    Posted by Shazia Makhdumi, Global Head of Play Pass Business Development With over 2.5 billion active Android devices, Google Play helps your apps and games get discovered by billions of users […]

  • View Binding and Android Studio Versions
    by CommonsWare on September 22, 2019 at 2:30 pm

    The documentation for view binding states: […]

  • New! Android Kotlin codelab courses are here
    by Android Developers on September 20, 2019 at 7:54 pm

    Posted by Jocelyn Becker, Senior Program Manager, Google Developer Training Want to learn to build Android apps in Kotlin? Get started with the Kotlin Bootcamp for Programmers and Developing […]

  • View Binding: Internals
    by Mark Allison on September 20, 2019 at 9:00 am

    In September 2019 Google released Android Studio 3.6 Canary 11 to the Canary channel. This had an interesting new addition: View Binding. In this short series we’ll take a look at how it works, […]

  • Calculating the true impact of zip file entries
    by Jake Wharton on September 20, 2019 at 12:00 am

    How can we determine the impact of each entry on a zip file’s size? It seems like a trivial problem, but things quickly don’t add up. There’s three built-in ways to read […]

  • Exploring View Binding on Android
    by hitherejoebirch on September 18, 2019 at 1:59 pm

    When it comes to manipulating our user interfaces within Android applications, there are a couple of approaches that we can take. In these cases, we need to obtain a reference these views in-order to […]

  • When to Use Sequences
    by author@typealias.com (Dave Leeds) on September 16, 2019 at 12:00 am

    One of the most common questions I get about Kotlin’s sequences is this: “When should I use sequences, and when should I use normal collections?” That’s the question […]

  • AnimatedIcons: Loading V2
    by Mark Allison on September 13, 2019 at 9:00 am

    There is a nice micro-animation library at useanimations.com which contains some useful animations which are particularly well suited for animated icons. These are all free to use and downloadable at […]

  • Feature flags – A successful architecture
    by Jeroen Mols on September 11, 2019 at 10:00 pm

    Now that we know how feature flags can help us release faster, it’s time to dive into the actual implementation details. How can we easily define feature flags? How to configure them both […]

  • Why I’m No Longer Traveling for Conferences
    by Dan Lew on September 10, 2019 at 2:00 pm

    I am a tech conference junkie. I owe much of my career to them: The amount of knowledge I’ve learned is immense, I greatly enjoy being surrounded by tech people, and I get a real high from […]

  • Book (P)review: Living by the Code
    by Márton Braun on September 9, 2019 at 1:00 pm

    I can’t tell you how much I’ve been anticipating this book ever since I first heard it announced. This is a very short review, because really, you should read it yourself. But let me spoil one thing: […]

  • “Elements of Android Jetpack” Version 0.5 Released
    by CommonsWare on September 9, 2019 at 12:21 pm

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

  • 2019 BMW R9T Radiator Guard Install
    by Artem Zinnatullin on September 8, 2019 at 10:40 pm

    Table of Contents Requirements Warnings Radiator Guard Directions Photos Before Photos After Requirements Radiator Guard T27 Torx Bit Driver/Wrench Extender to reach the left bolt (it’s a bit […]

  • Trust but verify attestation with revocation
    by Google Developers on September 6, 2019 at 6:40 pm

    Posted by Rob Barnes & Shawn Willden, Android Security & Privacy Team Billions of people rely on their Android-powered devices to securely store their sensitive information. A vital […]

  • Mainframer / Mirakle
    by Mark Allison on September 6, 2019 at 9:00 am

    Build speeds are an important issue when it comes to Android development. While things are certainly improving thanks to the work that the Android Tools team at Google are doing doing to the Android […]

  • Expand your app beyond mobile to reach Android users at large
    by Android Developers on September 5, 2019 at 6:58 pm

    Posted by Sameer Samat, Vice President, Platforms & Ecosystems From day one, we designed Android to be a flexible, adaptive platform. Most people picture a smartphone when they think of […]

  • Welcoming Android 10!
    by Android Developers on September 3, 2019 at 5:02 pm

    Posted by Stephanie Cuthbertson, Senior Director of Product Management, Android After more than a year of development and months of testing by early adopters, we’re ready to introduce Android […]

  • Increased Google Play Review Times?
    by goobar.io on September 2, 2019 at 11:38 pm

    Have you seen increased app review times when submitting apps via the Google Play Console? There have… The post Increased Google Play Review Times? appeared first on goobar.io. […]

  • Committed to a safer Google Play for Families
    by Android Developers on August 30, 2019 at 6:29 pm

    Posted by Kanika Sachdeva, Product Manager, Google Play In May, we launched new Families policies to provide additional protections for children and families on Google Play. As part of this policy […]

  • Mandelbrot: Progressive Rendering
    by Mark Allison on August 30, 2019 at 9:00 am

    In this series we’re going to build an app to view the Mandelbrot set. While this is not necessarily something that is likely to be of direct use to the majority of app developers (except for […]

  • Expanding bug bounties on Google Play
    by Android Developers on August 29, 2019 at 4:30 pm

    Posted by Adam Bacchus, Sebastian Porst, and Patrick Mutchler — Android Security & Privacy We’re constantly looking for ways to further improve the security and […]

  • Publishing an Android library to MavenCentral in 2019
    by Márton Braun on August 27, 2019 at 4:00 pm

    MavenCental is the place to be for serious libraries, but setting up publication to it can be a truly daunting task. Here’s the guide to how we do it. […]

  • SQLDelight 1.x Quick Start Guide for Android
    by Sam Edwards on August 23, 2019 at 8:59 pm

    SQLDelight is most well known as a Kotlin multiplatform database library. As an Android Developer, the most compelling reasons to use SQLDelight are: Kotlin first SQL first Typesafe generated code […]

  • Mandelbrot: Pan
    by Mark Allison on August 23, 2019 at 9:00 am

    In this series we’re going to build an app to view the Mandelbrot set. While this is not necessarily something that is likely to be of direct use to the majority of app developers (except for […]

  • Performing OAuth on Android with Custom Tabs
    by hitherejoebirch on August 22, 2019 at 2:31 pm

    Whether we’re building third-party clients for existing API services, or working on our own product that communicates with our own API, it’s likely that we might be working with […]

  • Introducing AndroidX Tech
    by CommonsWare on August 22, 2019 at 1:03 pm

    AndroidX Tech (https://androidx.tech) is a site that I am maintaining that contains additional information about the various androidx libraries, beyond what is offered in the official documentation. […]

  • Fix: Deploying Docker Instances to AWS Elastic Beanstalk without Default VPC
    by Donn Felker on August 21, 2019 at 6:49 pm

    File this under “I hope this helps someone else in the future“. I was learning Docker and Kubernetes recently and I was trying to get my docker instance running on Amazon AWS Elastic […]

  • The Google Play store’s visual refresh
    by Android Developers on August 21, 2019 at 5:00 pm

    Boris Valusek, Design Lead, Google Play The Google Play Store has over two billion monthly active users coming to find the right app, game, and other digital content. To improve the overall store […]

  • Android Studio 3.5 Upgrade XML Reformatting Problems
    by CommonsWare on August 21, 2019 at 3:23 pm

    If you upgrade Android Studio 3.4 to 3.5, you may run into a problem where reformatting an XML file (e.g., via Ctrl-Alt-L) reorders the XML elements in each level of the hierarchy. So, for example, […]

  • Android Studio 3.5: Project Marble goes into stable
    by Android Developers on August 20, 2019 at 5:00 pm

    Posted by Jamal Eason, Product Manager, Android Have you ever wished that Android Studio was faster, more performant, and more memory efficient? If so, then download Android Studio 3.5 today. This […]

  • Feature Flags – How to use
    by Jeroen Mols on August 19, 2019 at 10:00 pm

    Empowered with what feature flags are and why they are useful, let’s see how we can actually integrate them into an app. And how can we roll them out to our users? This mini-series will […]

  • “Elements of Kotlin Coroutines Version 0.1 Released
    by CommonsWare on August 19, 2019 at 1:30 pm

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

  • Speed up your Android Studio
    by Kaushik Gopal on August 19, 2019 at 7:00 am

    I use a 13” MacBook Pro at work these days. Android Studio frequently sent my machine into a tailspin. […]

  • assertLastValue for RxJava TestObservers
    by Kaushik Gopal on August 18, 2019 at 7:00 am

    The TestObserver is an RxJava staple for testing. […]

  • Mandelbrot: Zoom
    by Mark Allison on August 16, 2019 at 9:00 am

    In this series we’re going to build an app to view the Mandelbrot set. While this is not necessarily something that is likely to be of direct use to the majority of app developers (except for […]

  • Improving Accessibility in the Android Ecosystem
    by Android Developers on August 15, 2019 at 11:00 pm

    Posted by Ian Stoba, Program Manager, Accessibility Engineering With billions of Android devices in use around the world and millions of apps available on the Play Store, it might seem difficult to […]

  • Speaking At Android Summit 2019 – Focus On What Matters By Automating The Small Things
    by goobar.io on August 15, 2019 at 2:15 am

    I had a great time speaking at #AndroidSummit today. Here are the slides from my talk “Focus… The post Speaking At Android Summit 2019 – Focus On What Matters By Automating The […]

  • Google releases source code for Google I/O 2019 for Android
    by Android Developers on August 14, 2019 at 5:52 pm

    Posted by Takeshi Hagikura, Developer Programs Engineer Today we’re releasing the source code for the official Google I/O 2019 Android app. This year’s app substantially modified existing […]

  • Nexon increases day 60 retention and monetization with pre-registration rewards
    by Android Developers on August 13, 2019 at 6:00 pm

    Posted by Kacey Fahey, Google Play Developer Marketing Nexon Korea Company has published several games across PC, mobile, and console. With the launch of their mobile game FAITH, a MMORPG […]

  • Enabling Type Hints in Android Studio
    by CommonsWare on August 13, 2019 at 12:16 pm

    Android Studio offers type hints for Kotlin code. Basically, the IDE adds “fake” type declarations where your code does not have them, for places where the compiler is inferring the type: […]

  • Feature Flags – Why you should care
    by Jeroen Mols on August 12, 2019 at 10:00 pm

    A key ingredient to speed up modern software development is feature flags. But what is a feature flag precisely? Why should you care about them? How do you integrate them into your codebase? And how […]

  • Primaries Matter (a discussion of constructors)
    by Márton Braun on August 12, 2019 at 6:00 pm

    Primary constructors play a fundamental role in Kotlin classes. Let’s take a close look at them, and really understand what exactly is part of a primary constructor, and what makes this constructor […]

  • Android Canvas Drawing: Useful Graphics Classes & Operations 🧪
    by franks.rebecca on August 10, 2019 at 12:36 pm

    Drawing on an Android Canvas is quite overwhelming, there are many different classes and concepts to understand when drawing something. If you haven’t already read part one of this series make […]

  • Mandelbrot: Basic Viewer
    by Mark Allison on August 9, 2019 at 9:00 am

    In this series we’re going to build an app to view the Mandelbrot set. While this is not necessarily something that is likely to be of direct use to the majority of app developers (except for […]

  • Adding admob adverts to Flutter applications
    by hitherejoebirch on August 9, 2019 at 4:59 am

    In many applications that we build we want to offer some way to monetize the product. Be it through in-app purchases, subscriptions or even advertisements – these all provide a way for […]

  • Gesture Navigation: A Backstory
    by Android Developers on August 8, 2019 at 8:20 pm

    Posted by Allen Huang and Rohan Shah, Product Managers on Android UI One of the biggest changes in Android Q is the introduction of a new gesture navigation. Just to recap – with the new system […]

  • Final Beta update, official Android Q coming soon!
    by Android Developers on August 7, 2019 at 5:06 pm

    Posted by Dave Burke, VP of Engineering We’re just a few weeks away from the official release of Android Q! As we put the final polish on the new platform, today we’re rolling out […]

  • Lessons learned being a lead developer
    by Jeroen Mols on August 5, 2019 at 10:00 pm

    Three years ago, we decided ramp up internal app development at Philips Hue. After interviewing candidates (78!) for six months, I became the lead Android developer of the freshly hired Android […]

  • Make stronger decisions with new Google Play Console data
    by Android Developers on July 31, 2019 at 11:00 am

    Posted by Tom Grinsted, Product Manager, Google Play At this year’s Google I/O, we announced a slate of new features to help you take your business further with Google Play. Launching today, […]

  • Exceptions and proxies and coroutines, oh my!
    by Jake Wharton on July 31, 2019 at 12:00 am

    Checked exceptions are a concept that exist only in the Java compiler and are enforced only in source code. In Java bytecode and at runtime in the virtual machine you’re free to throw checked […]

  • Formatting Kotlin Code with ktlint – Adding ktlint to Your Kotlin Project
    by goobar.io on July 25, 2019 at 11:21 pm

    In this post, we’ll introduce you to formatting Kotlin code with ktlint, and specifically focus on adding… The post Formatting Kotlin Code with ktlint – Adding ktlint to Your […]

  • Inside Sequences: Create Your Own Sequence Operations
    by author@typealias.com (Dave Leeds) on July 23, 2019 at 5:00 am

    Sequences are a fantastic way to process collections of data in a way that can perform better than the standard collection operations, as we saw in the previous article, Kotlin Sequences: An […]

  • On-Device Debugging Part V: Strut Your Stuff
    on July 20, 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 […]

  • What’s new with Fast Pair
    by Android Developers on July 19, 2019 at 7:57 pm

    Posted by Catherina Xu (Product Manager) Last November, we released Fast Pair with the Jaybird Tarah Bluetooth headphones. Since then, we’ve engaged with dozens of OEMs, ODMs, and silicon […]

  • 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 […]