# Grokking Android

Getting Down to the Nitty Gritty of Android Development

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## The Different Node Types in Jetpack Compose

DevFeed: [The Different Node Types in Jetpack Compose](<https://devfeed.tech/articles/the-different-node-types-in-jetpack-compose-29124.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/the-different-node-types-in-jetpack-compose/>)

Author: Wolfram Rittmeyer

Published: 2025-12-30T15:32:14Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Declarative programming](<https://devfeed.tech/topics/declarative-programming.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This article explains the different node types in Jetpack Compose and how composable functions create or delegate the creation of nodes. It discusses ComposeUiNode, LayoutNode, Modifier.Node, and SemanticsNode, including how nodes represent UI elements and form a tree.

### Source excerpt

If you look at Compose it's weird. You have tons of functions that return nothing. Yet the Android documentation says: Composable functions emit UI hierarchy. What does this actually mean? Well, from a functional programming point of view your innocuous looking stateless composable functions create loads of side effects1). Among other things they create nodes. [...] Continue Reading "The Different Node Types in Jetpack Compose" The post The Different Node Types in Jetpack Compose appeared first on Grokking Android.

## Why Android Releases Restrict APIs and App Access

DevFeed: [Why Android Releases Restrict APIs and App Access](<https://devfeed.tech/articles/why-google-limits-apis-with-every-android-release-we-devs-are-to-blame-29118.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/google-stricter-with-android-releases-due-to-us-devs/>)

Author: Wolfram Rittmeyer

Published: 2019-03-20T06:14:05Z

Content type: opinion

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [background-location](<https://devfeed.tech/tags/background-location.md>), [battery](<https://devfeed.tech/tags/battery.md>), [google](<https://devfeed.tech/tags/google.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [notifications](<https://devfeed.tech/tags/notifications.md>), [permissions](<https://devfeed.tech/tags/permissions.md>)

### AI overview

This opinion article argues that recurring Android restrictions on APIs, notifications, background execution, and location access respond to apps overusing users' battery, bandwidth, and privacy. It welcomes Android Q's finer-grained background-location permissions while criticizing the resulting fragmentation of settings.

### Source excerpt

Last week Android Q was released. And the first thing that came to my mind when reading the Android Q announcement was: "Finer grained location permissions! Thats's great!" But then, it got me thinking: "Wait a moment! Why is this even necessary?" Don't get me wrong, I really think this addition is necessary and it [...] Continue Reading "Why Google Limits APIs With Every Android Release: We Devs are to Blame!" The post Why Google Limits APIs With Every Android Release: We Devs are to Blame! appeared first on Grokking Android.

## Creating Kotlin DSLs

DevFeed: [Creating Kotlin DSLs](<https://devfeed.tech/articles/creating-kotlin-dsls-29115.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/creating-kotlin-dsls/>)

Author: Wolfram Rittmeyer

Published: 2018-12-29T03:05:09Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [domain-specific-languages](<https://devfeed.tech/tags/domain-specific-languages.md>), [dsl](<https://devfeed.tech/tags/dsl.md>), [dsls](<https://devfeed.tech/tags/dsls.md>), [extension](<https://devfeed.tech/tags/extension.md>), [groovy](<https://devfeed.tech/tags/groovy.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [languages](<https://devfeed.tech/tags/languages.md>), [scala](<https://devfeed.tech/tags/scala.md>), [sql](<https://devfeed.tech/tags/sql.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

This article explains how Kotlin can be used to create internal domain-specific languages by combining core language features. It distinguishes internal DSLs from external DSLs and discusses benefits such as concise, readable APIs, with examples including Gradle and KotlinTest.

### Source excerpt

Kotlin has many nice things going for it - be it null safety, data classes, extension functions, immutable collections or many other things. For me one additional thing is very interesting: The ability to create domain specific languages (DSLs) easily. Easily, because creating a DSL with Kotlin means that you simply choose to combine several [...] Continue Reading "Creating Kotlin DSLs" The post Creating Kotlin DSLs appeared first on Grokking Android.

## Mobile apps are not doomed by chatbots and AI

DevFeed: [Mobile apps are not doomed by chatbots and AI](<https://devfeed.tech/articles/those-mobile-apps-are-doomed-headlines-they-are-wrong-29119.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/mobile-apps-doomed-headlines-are-wrong/>)

Author: Wolfram Rittmeyer

Published: 2018-02-27T09:11:55Z

Content type: opinion

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [App](<https://devfeed.tech/topics/app.md>), [Bots](<https://devfeed.tech/topics/bots.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Bot](<https://devfeed.tech/topics/bot.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [android](<https://devfeed.tech/tags/android.md>), [apps](<https://devfeed.tech/tags/apps.md>), [bots](<https://devfeed.tech/tags/bots.md>), [chatbots](<https://devfeed.tech/tags/chatbots.md>), [mobile](<https://devfeed.tech/tags/mobile.md>)

### AI overview

This opinion article argues that headlines predicting the end of mobile apps because of chatbots, AI, or voice assistants are overstated. It suggests that apps and conversational interfaces will coexist, with each being more suitable for different user needs.

### Source excerpt

So lately there are a lot of headlines appearing that say "Businesses Moving To Chatbots, AI; Away From Mobile Apps", "The Rise of Chatbots - Why they'll replace All Your Apps!" or "How Bots Will Completely Kill Websites and Mobile Apps". First of all: Look at where those headlines appear. Some of these websites - [...] Continue Reading "Those "mobile apps are doomed" headlines? They are wrong!" The post Those "mobile apps are doomed" headlines? They are wrong! appeared first on Grokking Android.

## Using the Actions SDK to Develop for the Google Assistant

DevFeed: [Using the Actions SDK to Develop for the Google Assistant](<https://devfeed.tech/articles/using-the-actions-sdk-to-develop-for-the-google-assistant-29127.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/using-the-actions-sdk/>)

Author: Wolfram Rittmeyer

Published: 2017-10-12T06:05:56Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [SDKs](<https://devfeed.tech/topics/sdks.md>), [Google](<https://devfeed.tech/topics/google.md>), [Dialogflow](<https://devfeed.tech/topics/dialogflow.md>)

Tags: [actions-sdk](<https://devfeed.tech/tags/actions-sdk.md>), [build](<https://devfeed.tech/tags/build.md>), [develop](<https://devfeed.tech/tags/develop.md>), [gactions](<https://devfeed.tech/tags/gactions.md>), [google](<https://devfeed.tech/tags/google.md>), [google-assistant](<https://devfeed.tech/tags/google-assistant.md>), [google-home](<https://devfeed.tech/tags/google-home.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>)

### AI overview

This tutorial shows how to develop a simple Google Assistant app with the Actions SDK. The example provides bus departure information and indicates whether users should hurry or wait. It introduces Actions SDK concepts including actions and intents, while noting that a follow-up post will cover Dialogflow.

### Source excerpt

In today's post I'm going to show how to develop a simple app for the Google Assistant. For developing this app, I will be using the Actions SDK. My next post will use Dialogflow (formerly api.ai) instead. After reading both posts you hopefully will know enough to decide which approach is better suited for you. [...] Continue Reading "Using the Actions SDK to Develop for the Google Assistant" The post Using the Actions SDK to Develop for the Google Assistant appeared first on Grokking Android.

## A Primer on Cloud Functions for Firebase

DevFeed: [A Primer on Cloud Functions for Firebase](<https://devfeed.tech/articles/a-primer-on-cloud-functions-for-firebase-29120.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/primer-cloud-functions-for-firebase/>)

Author: Wolfram Rittmeyer

Published: 2017-08-22T09:35:22Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [Cloud Functions](<https://devfeed.tech/topics/cloud-functions.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [npm](<https://devfeed.tech/topics/npm.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Firebase console](<https://devfeed.tech/topics/firebase-console.md>)

Tags: [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-functions](<https://devfeed.tech/tags/cloud-functions.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [console](<https://devfeed.tech/tags/console.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [npm](<https://devfeed.tech/tags/npm.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>)

### AI overview

A practical introduction to Cloud Functions for Firebase, covering HTTP-triggered stateless services, setup requirements, Firebase command-line tools, authorization, and project initialization. The article explicitly excludes Realtime Database and Storage triggers.

### Source excerpt

Since I am going to use Cloud Functions For Firebase a bit more in coming posts on this blog, I am going to give a very brief overview of how you can use and test them. What are Cloud Functions for Firebase Cloud Functions is a node.js based offering where you can expose stateless services. [...] Continue Reading "A Primer on Cloud Functions for Firebase" The post A Primer on Cloud Functions for Firebase appeared first on Grokking Android.

## Quick Intro Into Actions on Google

DevFeed: [Quick Intro Into Actions on Google](<https://devfeed.tech/articles/quick-intro-into-actions-on-google-29110.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/actions-on-google-quick-intro/>)

Author: Wolfram Rittmeyer

Published: 2017-08-02T06:33:40Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [Google](<https://devfeed.tech/topics/google.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [gRPC](<https://devfeed.tech/topics/grpc.md>), [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>), [Internet of things](<https://devfeed.tech/topics/iot.md>)

Tags: [actions-on-google](<https://devfeed.tech/tags/actions-on-google.md>), [api-ai](<https://devfeed.tech/tags/api-ai.md>), [conversational-interfaces](<https://devfeed.tech/tags/conversational-interfaces.md>), [google](<https://devfeed.tech/tags/google.md>), [google-assistant](<https://devfeed.tech/tags/google-assistant.md>), [google-home](<https://devfeed.tech/tags/google-home.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [iot](<https://devfeed.tech/tags/iot.md>), [pi](<https://devfeed.tech/tags/pi.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [raspberry-pi](<https://devfeed.tech/tags/raspberry-pi.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [voice](<https://devfeed.tech/tags/voice.md>)

### AI overview

An introductory article explaining conversational interfaces and distinguishing the Assistant SDK from Actions on Google. It describes using the Assistant SDK to embed Google Assistant in devices, including Raspberry Pi systems, while Actions on Google is used to create Google Assistant apps.

### Source excerpt

Google Home will finally be available in Germany on August, 8th and in France this week. I'm not aware of more announcements for other countries, but I hope and assume that availability will increase to many more countries as soon as possible.1) For me, though, getting my AIY kit was the day, I started getting [...] Continue Reading "Quick Intro Into Actions on Google" The post Quick Intro Into Actions on Google appeared first on Grokking Android.

## Android Things: Remote Controlled Car - What's Coming Up

DevFeed: [Android Things: Remote Controlled Car - What's Coming Up](<https://devfeed.tech/articles/android-things-remote-controlled-car-what-s-coming-up-29113.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/android-things-remote-controlled-car-whats-coming-up/>)

Author: Wolfram Rittmeyer

Published: 2017-02-09T05:41:34Z

Content type: article

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-things](<https://devfeed.tech/tags/android-things.md>), [coding](<https://devfeed.tech/tags/coding.md>), [electronics](<https://devfeed.tech/tags/electronics.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [lego](<https://devfeed.tech/tags/lego.md>), [motor](<https://devfeed.tech/tags/motor.md>), [project](<https://devfeed.tech/tags/project.md>), [raspberry-pi](<https://devfeed.tech/tags/raspberry-pi.md>)

### AI overview

The author describes planning a family project to build a remote-controlled car using Android Things, a Raspberry Pi, Lego, and electronic components. A Pimoroni STS-PI kit is used as an initial prototype to understand the coding involved.

### Source excerpt

Being an Android Developer, Google's announcement of Android Things immediately piqued my interest. As all the others I started out with buying one of the developer kits and then making some lights blink. Nice. But, well, if I have to be honest with myself, that was fun but actually of only limited use 🙂 Then [...] Continue Reading "Android Things: Remote Controlled Car - What's Coming Up" The post Android Things: Remote Controlled Car - What's Coming Up appeared first on Grokking Android.

## Android's ConstraintLayout: Align One View's Edge to Another View's Center

DevFeed: [Android's ConstraintLayout: Align One View's Edge to Another View's Center](<https://devfeed.tech/articles/android-s-constraintlayout-align-one-view-s-edge-to-another-view-s-center-29111.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/align-one-views-edge-to-another-views-center-in-constraintlayout/>)

Author: Wolfram Rittmeyer

Published: 2016-08-30T07:20:07Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [constraintlayout](<https://devfeed.tech/topics/constraintlayout.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [constraintlayout](<https://devfeed.tech/tags/constraintlayout.md>), [layout](<https://devfeed.tech/tags/layout.md>)

### AI overview

A tutorial explains how to align one Android view's edge with the center of another in ConstraintLayout when no direct constraint attribute is available. It uses a centered, invisible helper view and aligns the second view to that helper.

### Source excerpt

As you can see from the following excerpt of ConstraintLayout's supported attributes, there is no layout_constraintStart_toCenterX attribute. Thus you cannot directly align the left edge of one view to the center of another view. But ConstraintLayout is flexible enough to get your view aligned to the center of another view without such an attribute. Even [...] Continue Reading "Android's ConstraintLayout: Align One View's Edge to Another View's Center" The post Android's ConstraintLayout: Align One View's Edge to Another View's Center appeared first on Grokking Android.

## Some Thoughts on Android's new ConstraintLayout and Android Studio's new Design Editor

DevFeed: [Some Thoughts on Android's new ConstraintLayout and Android Studio's new Design Editor](<https://devfeed.tech/articles/some-thoughts-on-android-s-new-constraintlayout-and-android-studio-s-new-design-editor-29125.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/thoughts-on-constraintlayout-and-design-editor/>)

Author: Wolfram Rittmeyer

Published: 2016-07-06T06:10:42Z

Content type: opinion

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [constraintlayout](<https://devfeed.tech/topics/constraintlayout.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [constraintlayout](<https://devfeed.tech/tags/constraintlayout.md>), [layout](<https://devfeed.tech/tags/layout.md>), [layout-editor](<https://devfeed.tech/tags/layout-editor.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

An opinion article examines Android's ConstraintLayout and Android Studio's redesigned Design Editor. It highlights easier handling of complex screen designs, stretched child dimensions, guidelines, and the intended performance improvements, while noting that the layout was still in alpha and required further work.

### Source excerpt

At this year's IO Google introduced a new layout - the ConstraintLayout - and also presented it's totally revamped layout editor. I am not going into how to use the layout. Google itself has done a good job in explaining it with its code lab "Using ConstraintLayout to design your views". In this post I [...] Continue Reading "Some Thoughts on Android's new ConstraintLayout and Android Studio's new Design Editor" The post Some Thoughts on Android's new ConstraintLayout and Android Studio's new Design Editor appeared first on Grokking Android.

## RxJava's Side Effect Methods

DevFeed: [RxJava's Side Effect Methods](<https://devfeed.tech/articles/rxjava-s-side-effect-methods-29121.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/rxjavas-side-effect-methods/>)

Author: Wolfram Rittmeyer

Published: 2015-11-10T08:40:16Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [RxJava](<https://devfeed.tech/topics/rxjava.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Error Handling](<https://devfeed.tech/topics/error-handling.md>), [Cache](<https://devfeed.tech/topics/cache.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [cache](<https://devfeed.tech/tags/cache.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [dooncompleted](<https://devfeed.tech/tags/dooncompleted.md>), [dooneach](<https://devfeed.tech/tags/dooneach.md>), [doonerror](<https://devfeed.tech/tags/doonerror.md>), [doonnext](<https://devfeed.tech/tags/doonnext.md>), [doonsubscribe](<https://devfeed.tech/tags/doonsubscribe.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [observable](<https://devfeed.tech/tags/observable.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>)

### AI overview

This tutorial explains RxJava side-effect methods on Observable. These methods react to events without changing the emitted items, and can be used for debugging, error handling, and saving or caching network results.

### Source excerpt

RxJava's Observable class has plenty of methods that can be used to transform the stream of emitted items to the kind of data that you need. Those methods are at the very core of RxJava and form a big part of it's attraction. But there are other methods, that do not change the stream of [...] Continue Reading "RxJava's Side Effect Methods" The post RxJava's Side Effect Methods appeared first on Grokking Android.

## Why use Observable.create() and not just inherit from Observable?

DevFeed: [Why use Observable.create() and not just inherit from Observable?](<https://devfeed.tech/articles/why-use-observable-create-and-not-just-inherit-from-observable-29128.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/why-use-observable-create-and-not-just-inherit-from-observable/>)

Author: Wolfram Rittmeyer

Published: 2015-10-09T05:00:40Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [RxJava](<https://devfeed.tech/topics/rxjava.md>), [Inheritance](<https://devfeed.tech/topics/inheritance.md>), [hooks](<https://devfeed.tech/topics/hooks.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [create](<https://devfeed.tech/tags/create.md>), [debug](<https://devfeed.tech/tags/debug.md>), [hooks](<https://devfeed.tech/tags/hooks.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [inheritance](<https://devfeed.tech/tags/inheritance.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [observable](<https://devfeed.tech/tags/observable.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>)

### AI overview

This tutorial explains why RxJava developers should generally create Observables with Observable.create() instead of inheriting from Observable. It discusses final methods, the fluent API, and hooks that support debugging and monitoring, while noting that inheritance can still be appropriate in cases such as Subject.

### Source excerpt

When starting to use RxJava you have to create Observables. They are at the very core of RxJava. But how to do so? A look at the Observable class might make you dizzy. Looking at the source even more so. Not only does this beast consist of nearly 10.000 lines (though, 7600 lines of that [...] Continue Reading "Why use Observable.create() and not just inherit from Observable?" The post Why use Observable.create() and not just inherit from Observable? appeared first on Grokking Android.

## Selecting Items of a RecyclerView using StateListDrawables

DevFeed: [Selecting Items of a RecyclerView using StateListDrawables](<https://devfeed.tech/articles/selecting-items-of-a-recyclerview-using-statelistdrawables-29122.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/statelistdrawables-for-recyclerview-selection/>)

Author: Wolfram Rittmeyer

Published: 2014-08-22T08:16:21Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Android](<https://devfeed.tech/topics/android.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>)

Tags: [adapter](<https://devfeed.tech/tags/adapter.md>), [android](<https://devfeed.tech/tags/android.md>), [contextual-actionbar](<https://devfeed.tech/tags/contextual-actionbar.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [statelistdrawable](<https://devfeed.tech/tags/statelistdrawable.md>)

### AI overview

This tutorial presents an adapter-based approach for implementing multi-item selection in an Android RecyclerView. It recommends using StateListDrawables and the activated state, with contextual action bar support for showing selection counts and bulk deletion.

### Source excerpt

Last week, after I published my introduction to RecyclerView Paul Betts asked on Twitter whether ItemDecorators are useful for displaying the selection state of items. Well, I think using them for selection is not the right way to go. Instead, I think that you should stick with StateListDrawables and the activated state. The use case [...] Continue Reading "Selecting Items of a RecyclerView using StateListDrawables" The post Selecting Items of a RecyclerView using StateListDrawables appeared first on Grokking Android.

## A First Glance at Android's RecyclerView

DevFeed: [A First Glance at Android's RecyclerView](<https://devfeed.tech/articles/a-first-glance-at-android-s-recyclerview-29117.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/first-glance-androids-recyclerview/>)

Author: Wolfram Rittmeyer

Published: 2014-08-14T09:59:14Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Android](<https://devfeed.tech/topics/android.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [adapter](<https://devfeed.tech/tags/adapter.md>), [android](<https://devfeed.tech/tags/android.md>), [android-l](<https://devfeed.tech/tags/android-l.md>), [api](<https://devfeed.tech/tags/api.md>), [developer-preview](<https://devfeed.tech/tags/developer-preview.md>), [google](<https://devfeed.tech/tags/google.md>), [google-i-o](<https://devfeed.tech/tags/google-i-o.md>), [itemanimator](<https://devfeed.tech/tags/itemanimator.md>), [itemdecoration](<https://devfeed.tech/tags/itemdecoration.md>), [l-developer-preview](<https://devfeed.tech/tags/l-developer-preview.md>), [layoutmanager](<https://devfeed.tech/tags/layoutmanager.md>), [onitemtouchlistenerter](<https://devfeed.tech/tags/onitemtouchlistenerter.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [viewholder](<https://devfeed.tech/tags/viewholder.md>)

### AI overview

This tutorial introduces Android's RecyclerView, explaining its internal classes and interfaces, how they interact, and how developers can use the component. It describes RecyclerView as a flexible view for displaying large data sets and explains how recycling can reduce CPU and memory use. The article notes that the API was not yet finalized in the Android L Developer Preview.

### Source excerpt

At this year's Google I/O, Google released a preview to the upcoming Android version. The so called L Developer Preview. This is a very big improvement over previous releases and I really love that Google is doing this. I think we all benefit by this decision. As developers and as consumers alike! Part of this [...] Continue Reading "A First Glance at Android's RecyclerView" The post A First Glance at Android's RecyclerView appeared first on Grokking Android.

## About Cyril Mottier's "Shaping the Future of Android With Dart" - Some Additional Thoughts

DevFeed: [About Cyril Mottier's "Shaping the Future of Android With Dart" - Some Additional Thoughts](<https://devfeed.tech/articles/about-cyril-mottier-s-shaping-the-future-of-android-with-dart-some-additional-thoughts-29112.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/android-dart-additional-thoughts/>)

Author: Wolfram Rittmeyer

Published: 2014-06-13T12:41:06Z

Content type: opinion

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [Dart](<https://devfeed.tech/topics/dart.md>), [Android](<https://devfeed.tech/topics/android.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [dart](<https://devfeed.tech/tags/dart.md>), [java](<https://devfeed.tech/tags/java.md>)

### AI overview

This commentary responds to Cyril Mottier's discussion of Dart for Android. The author considers Dart a modern language worth exploring and argues that Google support and compatibility with existing Java and Android libraries would be important for adoption. The author speculates that Dart on Android would run on ART and explicitly notes that this is guesswork.

### Source excerpt

This post is inspired by Cyril Mottier's post about Dart for Android. If you haven't read it already, please read it first. Mostly I think Cyril's arguments are valid. I wouldn't object to another language besides Java. Especially since the ability to use the new features of Java 8 might still be far away on [...] Continue Reading "About Cyril Mottier's "Shaping the Future of Android With Dart" - Some Additional Thoughts" The post About Cyril Mottier's "Shaping the Future of Android With Dart" - Some Additional Thoughts appeared first on Grokking Android.

## Stupid mistakes devs make, part I: Taking app messages at face value

DevFeed: [Stupid mistakes devs make, part I: Taking app messages at face value](<https://devfeed.tech/articles/stupid-mistakes-devs-make-part-i-taking-app-messages-at-face-value-29123.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/stupid-mistakes-dev-make-part_i/>)

Author: Wolfram Rittmeyer

Published: 2014-02-28T06:45:11Z

Content type: opinion

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [error-messages](<https://devfeed.tech/tags/error-messages.md>), [logging](<https://devfeed.tech/tags/logging.md>), [mistakes](<https://devfeed.tech/tags/mistakes.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

A personal account of debugging an Android sharing feature that reported an image attachment as too large. The actual problem was a crashed ContentProvider whose stack trace was missed because logcat was filtered using an outdated logging tag; the lack of tests for the sharing code also allowed the issue to go unnoticed.

### Source excerpt

This is a new series about programming blunders I make. Stuff that keeps me looking for solutions in all the wrong places while the answer most often is glaringly simple. If only I knew that right away! I am sorry for the generalization in the headline - of course it's only me doing stupid stuff [...] Continue Reading "Stupid mistakes devs make, part I: Taking app messages at face value" The post Stupid mistakes devs make, part I: Taking app messages at face value appeared first on Grokking Android.

## An XMPP Server for Google Cloud Messaging

DevFeed: [An XMPP Server for Google Cloud Messaging](<https://devfeed.tech/articles/an-xmpp-server-for-google-cloud-messaging-29129.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/xmpp-server-google-cloud-messaging/>)

Author: Wolfram Rittmeyer

Published: 2014-02-18T06:29:24Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [XMPP](<https://devfeed.tech/topics/xmpp.md>), [Messaging](<https://devfeed.tech/topics/messaging.md>), [Android](<https://devfeed.tech/topics/android.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [backend](<https://devfeed.tech/tags/backend.md>), [ccs](<https://devfeed.tech/tags/ccs.md>), [cloud-connection-server](<https://devfeed.tech/tags/cloud-connection-server.md>), [google-cloud-messaging](<https://devfeed.tech/tags/google-cloud-messaging.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [java](<https://devfeed.tech/tags/java.md>), [messaging](<https://devfeed.tech/tags/messaging.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [xmpp](<https://devfeed.tech/tags/xmpp.md>)

### AI overview

This post explains the server side of upstream messaging with Google Cloud Messaging, focusing on the permanent XMPP connection between a backend and Google's Cloud Connection Server. It also discusses Java libraries, including Smack, and cautions that the sample project is not suitable for production.

### Source excerpt

In this post I am going to write about the server-side of upstream messages with Google Cloud Messaging. This is the second part of my three-part series on this topic. If you haven't read the first part about the flow of events and the Android implementation of upstream messaging, please read that one first. The [...] Continue Reading "An XMPP Server for Google Cloud Messaging" The post An XMPP Server for Google Cloud Messaging appeared first on Grokking Android.

## Upstream Messages With Google Cloud Messaging

DevFeed: [Upstream Messages With Google Cloud Messaging](<https://devfeed.tech/articles/upstream-messages-with-google-cloud-messaging-29126.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/upstream_messages_with_google_cloud_messaging/>)

Author: Wolfram Rittmeyer

Published: 2014-02-06T08:39:14Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [Messaging](<https://devfeed.tech/topics/messaging.md>), [Android](<https://devfeed.tech/topics/android.md>), [API](<https://devfeed.tech/topics/api.md>), [Google](<https://devfeed.tech/topics/google.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [ccs](<https://devfeed.tech/tags/ccs.md>), [cloud-connection-server](<https://devfeed.tech/tags/cloud-connection-server.md>), [github](<https://devfeed.tech/tags/github.md>), [google](<https://devfeed.tech/tags/google.md>), [google-cloud-messaging](<https://devfeed.tech/tags/google-cloud-messaging.md>), [messaging](<https://devfeed.tech/tags/messaging.md>), [sample](<https://devfeed.tech/tags/sample.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [upstream-messaging](<https://devfeed.tech/tags/upstream-messaging.md>), [user-notifications](<https://devfeed.tech/tags/user-notifications.md>)

### AI overview

This tutorial explains upstream messaging with Google Cloud Messaging on Android. It introduces the messaging model, describes the Android-side event flow, and points to sample client and server applications. The article focuses on sending messages from a device to Google's cloud and is part of a series that also covers server-side processing and user-specific notifications.

### Source excerpt

Google announced a new messaging model with Google Cloud Messaging on last years Google IO. This model allows for upstream messaging and for user specific notifications. This post is the first in a three-part series in which I am going to look into both these changes and to show you how to use them. I [...] Continue Reading "Upstream Messages With Google Cloud Messaging" The post Upstream Messages With Google Cloud Messaging appeared first on Grokking Android.

## Chrome apps on mobile devices: evaluating Google's approach

DevFeed: [Chrome apps on mobile devices: evaluating Google's approach](<https://devfeed.tech/articles/chrome-apps-on-mobile-devices-a-good-idea-29114.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/chrome-apps-mobile-devices-good-idea/>)

Author: Wolfram Rittmeyer

Published: 2014-01-30T13:30:06Z

Content type: opinion

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [Cordova](<https://devfeed.tech/topics/cordova.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [app-store](<https://devfeed.tech/tags/app-store.md>), [chrome-apps](<https://devfeed.tech/tags/chrome-apps.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [google](<https://devfeed.tech/tags/google.md>), [google-play](<https://devfeed.tech/tags/google-play.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [web-apps](<https://devfeed.tech/tags/web-apps.md>)

### AI overview

The article examines Google's tools for publishing Chrome apps on iOS and Android through Apache Cordova. It argues that wrapping desktop web apps for mobile does not by itself provide platform-appropriate design, interaction patterns, maintainability, or quality.

### Source excerpt

Google announced a new set of tools this week to help developers publish their Chrome apps on iOS and Android. That's the next logical step by Google to win over more developers for Chrome apps. In September Google already announced that from then on developers could publish their Chrome apps as offline apps, allowing users [...] Continue Reading "Chrome-Apps on mobile devices - a good idea?" The post Chrome-Apps on mobile devices - a good idea? appeared first on Grokking Android.

## FirefoxOS - my Initial Impression

DevFeed: [FirefoxOS - my Initial Impression](<https://devfeed.tech/articles/firefoxos-my-initial-impression-29116.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/firefoxos-initial-impression/>)

Author: Wolfram Rittmeyer

Published: 2013-12-19T12:07:11Z

Content type: opinion

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [User experience (UX)](<https://devfeed.tech/topics/ux.md>), [Mozilla](<https://devfeed.tech/topics/mozilla.md>), [screen](<https://devfeed.tech/topics/screen.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [camera](<https://devfeed.tech/tags/camera.md>), [firefoxos](<https://devfeed.tech/tags/firefoxos.md>), [mozilla](<https://devfeed.tech/tags/mozilla.md>), [screen](<https://devfeed.tech/tags/screen.md>), [ux](<https://devfeed.tech/tags/ux.md>)

### AI overview

The author shares initial impressions of FirefoxOS after briefly testing it on the Peak developer phone. The hardware is generally acceptable for a low-cost device, with a good screen, sufficient camera for simple snapshots, and promising but unconfirmed battery life. The main criticism is that FirefoxOS has numerous user-experience problems, including limited touch feedback.

### Source excerpt

Quite a while ago I ordered a Peak+ FirefoxOS phone at geeksphone.com. Alas after some delay it finally was cancelled - so I settled for the smaller version, the normal Peak. About a week or two ago it finally was delivered. After some very short initial testing I had more pressing things to do. But [...] Continue Reading "FirefoxOS - my Initial Impression" The post FirefoxOS - my Initial Impression appeared first on Grokking Android.