Droidcon UK happened on October 27th and 27th at the Business Design Center in London, and it was a blast! The venue was packed full of what felt the who's who in the Android community, saving for a few absences. I got the chance to rub elbows with some of them, have some interesting discussions at the stands of companies like Facebook, Novoda, Booking... and even got asked for an interview by XDA Developers TV!
Fully Reactive Apps
This was the first of my two presentations, focused on all the patterns and ideas I have been working on for the past year. It has taken me hundreds of hours to prepare, between slides and a sample project I published at the same time. The response at the event was awesome, and I was so grateful that people came to have a chat about how they have been inspired to experiment away in their own projects with the concepts presented. Hopefully this blog entry will have the same effect!
The main three points of discussion were integrating the Android lifecycle into your business logic, preparing your Observable chains for maintenance by externalizing state, and lastly, how we handled errors and exceptions in an existing production app with millions of installs.
You can register to watch the HD video recording of the talk at:
Fully Reactive Apps recording at SkillsMatter
To accompany the recording, here are the original slides:
<br>
The App
In the video there is a mention of a sample project I've been not so secretly working on for the past month. It's available on Github under the name Functional Android Reference.
It contains several examples of features implemented in a completely functional style, such as:
- Adding and deleting elements on a list
- Doing drag and drop on a RecyclerView
- How to maintain network operations accross rotation
- An infinitely growing list
- An in-memory cache that lives alongside your network cache.
The app also includes some simple reactive patterns, like the used to bind lifecycle to state by creating a simple RxJava construct.
<br>
Extended drafts
I have been working on the slides for roughly a couple of months, from multiple drafts into an initial version that was just too long and full of content to be properly presented in 45". It contains more descriptive text, a couple of extra slides, and new concepts that you can apply to your business logic. I believe that set of slides has value too, so I decided to publish them separately and link them directly from the version of the slides that was presented. You can find this original set below.
<br>
What is up and coming
After spending months into the sample app it'd be a waste if I didn't put more effort onto it. Each of the features was tested and documented by myself on the void. So, my plan is to continue working on the sample app from time to time to add and document some examples, this time going through the design process in a blog entry.
Secondly, I'll write a quick entry on my second Droidcon talk, 'Write a lib today!', which was shorter but much more personal.
At the same time, I have several concepts that I would like to explore as opensource libraries, so as always keep an eye on my github and twitter pages to get an early peek.