Kotlin's invoke operator

An interesting feature of the Kotlin language is the ability to define an "invoke operator". When you specify an invoke operator on a class, it can be called on any instances of the class without a method name! This trick seems especially useful for classes that really only have one…

How to build a single-choice RecyclerView

In this article, i'll walk through one way to build a single-choice RecyclerView in Android. This will result in a general purpose RecyclerView-based component that mimics a typical "radio group" component you may be familiar with from html. This gives you a list of radiobuttons with one selection maximum. RadioAdapter.…

Implementing Swipe to Refresh, a Material Design UI Pattern

One of the great ideas formalized in the new Material Design user interface guidelines is the Swipe to Refresh UI pattern. In fact, you’ve probably already seen and used the Swipe to Refresh pattern. It's found its way into many popular Android apps like Facebook, Google Newsstand, Trello, Gmail…

RxJava Koans - a Functional Reactive Programming learning tool

In my quest to attain an understanding of Functional Reactive Programming, especially as it relates to Java and android, i've started the rxjava-koans project. The project demonstrates how RxJava works with the goal of cultivating understanding through initially failing unit tests. Each file of the project shows a different principle…

octatrack tr-8 midi sequencing template

I made a template for the octatrack that sets up the octatrack's midi tracks to use 8 of the TR-8's instruments and also make use of it's Continuous Control mapping values. To use: set TR-8 MIDI in on channel 8. load the TR8_TEMPLATE up on your octatrack have fun!…