Kotlin Android App

This is an early build of Android Rivers, a news river reading app developed in Kotlin targeting Android 2.2 and above. You can get it here http://goo.gl/dxK5w. You can find the source code here https://github.com/dodyg/AndroidRivers.

Great job!

Android Rivers .43 is now available. You can find the latest update at goo.gl/dxK5w.

In this update you will find the following:

  • An updated UI theme. As a consequence of this, the size of the application is almost double. At this rate of size increase, we will need DVD distribution by the time this app is completed.
  • You can resize the text in the rivers.
  • The text in the rivers has more padding for easier reading.
  • After you download a river, it will stay cached for an hour so the app will not reload the rivers from the Internet unless you explicitly refresh it again.
  • Now the app is more exact in checking whether a news item link is a proper Uri.
  • You can change the theme from light to dark and vice versa. I found it very useful to switch the color theme depending on light condition of my surrounding.

The code is also organized better this time. Please let me know whether you find the icons easy to understand and the features easy to discover.

The link gives me 404

Fixed. I screwed up the http://

Looks really good!

Thanks for trying it out. I would not have learnt Android programming without Kotlin.

You can find the latest version of Android Rivers (.44) at http://goo.gl/dxK5w.

This latest release contains several changes:

  • Now you can download all the available rivers in the background from the main screen. Just open options and touch "Download all". Android Rivers will prefetch all the feeds in sequence and cached the feeds for 3 hours. Since it is performed in the background, you can simply go ahead and continue with your reading of the rivers. I go this idea from Mike's email from last week.
  • I have removed the "OK" button from the news details. Now you can simply click on the news details dialog box or outside it to close it down.
  • Now the news details font size will follow the font size you specify for the news list.

You can find the latest release (Android River .5) at goo.gl/dxK5w.

It has the following new features:

  1. Now you can click “more news” to see an outline of more river of news.
  2. When you view a river of news, you can bookmark it by using the option menu. It will be added to your front screen.
  3. You can remove a river of news from you front page by using long press.
  4. When you view an outline, you can expand and collapse all the nodes using the option menu.
  5. If a news river contains an opml source, now you can view them in the outliner.
  6. I have added more river of news links that you can bookmark.
  7. I added support for Arabic Right to Left display as well.

I'm very interested in trying out Kotlin for my next Android app. Can you share anything about your experience using Kotlin on this project?

I’m curious to hear in what ways you found it easier than developing in Java and also any bumps you encountered along the way.


  • You can mix and match Kotlin code with Java code in the same project.
  • Code size is much reduced
  • It is easy to write and easy to read


  • Annotation feature is still broken here and there so if you are using Java framework that require annotation, use Java for those classes.
  • I still haven't figure out how to use the pro-guard rules for optimization
  • There are tons of warning when you override a method and not follow the p0, p1, p2 parameters.

I am never a Java developer on Android but converting Java code in samples to Kotlin is trivial.

Thanks very much for your insights. That's very encouraging. The only library I use that requires annotations is Otto from Square. I do find Otto extremely useful but I would probably be willing to give it up, at least for now, in exchange for all the other benefits that Kotlin brings.

You might want to try a sample project using Otto with Kotlin. Annotation is not completely working in all cases yes but if it works in yours, then go ahead use it.

I haven’t used Otto at all. Is it any good? What useful scenarios does it enable?

I'll try it and see what happens.

I’ve found Otto useful for reducing coupling between the components of my apps and the @Produce mechanism simplifies some initialization scenarios.

You can find the the latest Android River (6.8) here goo.gl/dxK5w.

Unfortunately I messed up the DB versioning in the earlier version so if you install this, please uninstall your older version and “clear data”. Sorry for this. From this version and up the DB data will be upgraded automatically.

This version is about 2 - 3 versions before 1.0 which should be within the next two weeks.

It contains the following feature:

  1. You can create your own river based on various RSS/ATOM feeds.
  2. All the podcasts you downloaded is listed in a dedicated screen.
  3. You can bookmark your custom river so it appears on the main screen.
  4. You can view individual RSS/ATOM feeds as well and bookmark them - either in a collection or stand alone.

With this release, Android Rivers now supports RiverJs, RSS, ATOM, news aggregation and world outline (OPML).

You can download it here http://goo.gl/81Qqz

1. This fixes the content [obj] rendering bug. 2. All the options menus are cleaned up. 3. Help is installed in every screen. 4. Now the app has logo. The next version will be 1.0.

Android Rivers is now 1.0.

You can get it  here. The source code is here. The reddit posting is here.

Kotlin is awesome.

I updated Android Rivers to incorporate the latest Holo theme today. You can get it for free at http://goo.gl/kShgp.

Android Rivers gets a new release today (1.09). It gets faster, it anllows creation of Google News feed in over 50 languages and keeping track of flight deals out of 3000 airports http://goo.gl/kShgp

There's a new fresh update available at http://goo.gl/kShgp

Now it sports a brand new podcast player and a bunch of improvement to feed detection and date parsing.