• "Elements of Kotlin Coroutines Version 0.1 Released
    by Mark Murphy 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 […]

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

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

  • Harmony and Compatibility
    by Mark Murphy on August 11, 2019 at 12:13 am

    Huawei’s rumored operating system is now less of a rumor and more of a reality. At the Huawei Developer Conference, they announced Harmony OS, to be used on the Honor Vision TV and perhaps the […]

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

  • Room and Flow!
    by Mark Murphy on August 8, 2019 at 2:25 pm

    At next week’s Android Summit, I will be leading a workshop, “From RxJava to Coroutines”. The idea is that we would take a small Retrofit-and-Room app and rewrite it to use […]

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

  • ACTION_OPEN_DOCUMENT: May Not Be Read-Write
    by Mark Murphy on August 6, 2019 at 4:31 pm

    While I think that the death of external storage in Android Q is a good move overall, and while I think that the Storage Access Framework is OK for basic scenarios, there will be “growing […]

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

  • "Elements of Kotlin Version 0.2 Released
    by Mark Murphy on August 5, 2019 at 1:35 pm

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

  • Mandelbrot: Rendering
    by Mark Allison on August 2, 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 […]

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

  • "Elements of Android Q" Version 0.5 Released
    by Mark Murphy on July 29, 2019 at 12:19 pm

    Subscribers now have access to Version 0.5 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! […]

  • Mandelbrot: Basic Theory
    by Mark Allison on July 26, 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 […]

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

  • Code Confessions
    by Craig Russell on July 25, 2019 at 11:16 pm

    This post describes code confessions; openly confessing your coding sins to your team. I want to tell you about something I do regularly which I call a Code Confession. It’s how I unburden […]

  • Presenters, Please Use Bigger Fonts!
    by Mark Murphy on July 24, 2019 at 1:43 pm

    A decent chunk of the conference presentations that I see have unreadable content, because the fonts are too small. If designing UIs for TVs is “the ten-foot view”, designing presentation […]

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

  • Android Summit 2019!
    by Mark Murphy on July 22, 2019 at 12:26 pm

    I’ll be back at the Android Summit this year, being held August 14-15 in the Washington DC area! I am leading a short workshop: “From RxJava to Coroutines”. As the name suggests, […]

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

  • MotionLayout: Dynamic Toolbar
    by Mark Allison on July 19, 2019 at 9:00 am

    Regular readers of Styling Android may have guessed that I rather enjoy animating things. MotionLayout offers amazing scope for animations and it’s possible to create some really interesting […]

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

  • Kotlin Course – Tutorial for Beginners
    by goobar.io on July 13, 2019 at 5:58 am

    I’m happy to share that my 2.5 hour Kotlin tutorial is now available via freeCodeCamp! Learn the… The post Kotlin Course – Tutorial for Beginners appeared first on goobar.io. […]

  • 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… The post Android Development Podcasts – 7 Options to Choose From appeared […]

  • 6 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… The post 6 Tips For Preparing Your CFP Abstract appeared first on goobar.io. […]

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

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

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

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

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

  • 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… The post Quickly Edit Color Resources In Android Studio appeared first on […]

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

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

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

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