RSSAmplifier

Blog

Grokking Android

Getting Down to the Nitty Gritty of Android Development

grokkingandroid.comRSS feed ↗20 posts

Latest posts

The Different Node Types in Jetpack Compose

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…

Why Google Limits APIs With Every Android Release: We Devs are to Blame!

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…

Creating Kotlin DSLs

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…

Those “mobile apps are doomed” headlines? They are wrong!

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…

Using the Actions SDK to Develop for the Google Assistant

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…

A Primer on Cloud Functions for Firebase

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…

Quick Intro Into Actions on Google

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…

Android Things: Remote Controlled Car – What’s Coming Up

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’s ConstraintLayout: Align One View’s Edge to Another View’s Center

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…

Some Thoughts on Android’s new ConstraintLayout and Android Studio’s new Design Editor

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…

RxJava’s Side Effect Methods

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…

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

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…

Selecting Items of a RecyclerView using StateListDrawables

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…

A First Glance at Android’s RecyclerView

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…

About Cyril Mottier’s “Shaping the Future of Android With Dart” – Some Additional Thoughts

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…

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

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…

An XMPP Server for Google Cloud Messaging

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…

Upstream Messages With Google Cloud Messaging

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…

Chrome-Apps on mobile devices – a good idea?

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…

FirefoxOS – my Initial Impression

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…