droidconIN 2016

The sixth edition of droidconIN

Sixth edition of droidconIN.

droidconIN is part of the world wide series of conferences that happens in London, Paris, Berlin, Netherlands, Tunis, Ankara and Brussels. The first edition of droidconIN was at Bangalore in Nov 2011. The second edition in Nov 2012 was featuring General & Specialized Topics, Native + HTML5 and App Demos. The 2013 edition was about Systems, UX, Gaming, Business and App Demos. The 2014 edition featured dedicated tracks for deep dives into UI/UX, Data sync & versioning, App Demos and hardware. The 2015 edition had advanced technical talks with an emphasis on developing for resource contraint regions like India.

Format

This edition spans two days of talks. We are inviting talk proposals for:

  • Full-length 40 minute talks.
  • Crisp 15 minute talks.
  • Sponsored sessions, 40 minute and 15 minute durations (limited slots available; subject to editorial scrutiny and approval).
  • Hands-on Workshop sessions, 3 and 6 hour duration.

Selection process

Proposals will be filtered and shortlisted by an editorial panel. We urge you to add links to videos / slide decks when submitting proposals. This will help us understand your past speaking experience. Blurbs or blog posts covering the relevance of a particular problem statement and how it is tackled will help the editorial panel better judge your proposals.

Selection process is stringent and we follow the procedure outlined in this flowchart:
Selection Process Flowchart

A talk is NOT confirmed till speakers recieve explicit communication from us saying that it is.

A talk can be rejected at any stage by us if we feel the speaker will not fit in the conference for the year. A talk can be canceled by the speaker at any time for any reason. (We would appreciate it, of course, if it isn’t at the last moment.) Please note that selected speakers must mandatorily participate in two rounds of rehearsals before the conference. This not only helps us adhere to the HasGeek format and quality, but also helps speakers prepare better for the intended audience.

There is only one speaker per session. Entry is free for those who are selected. Due to budgetary constraints, we prefer speakers closer to home. But if we think you stand out, we’ll provide a grant to cover part of your travel and accommodation to Bangalore. Grants are limited and are made available to speakers delivering full sessions (40 minutes or longer) only.

Topics

Updated (6th September, 2016): We are currently looking for talks in the following topics:

  • Toolchains - What’s the latest in developer toolkits to help with build systems (Gradle, Buck, etc), speeding up the dev feedback loop, etc.
  • Kotlin - An experienced speaker to help breakdown what Kotlin is, why and who should use it.
  • Firebase - A case study of Firebase in an medium/large app, with insights on it’s benefits, drawbacks, and when/where it makes sense.
  • Everything else - Anything else of relevance to an Android developer that we might have missed out.

Commitment to open source

HasGeek believes in open source as the binding force of our community. If you are describing a codebase for developers to work with, we’d like for it to be available under a permissive open source licence. If your software is commercially licensed or available under a combination of commercial and restrictive open source licences (such as the various forms of the GPL), please consider picking up a sponsorship. We recognise that there are valid reasons for commercial licensing, but ask that you support us in return for giving you an audience. Your session will be marked on the schedule as a sponsored session.

Contact

For more information about speaking proposals, tickets, and sponsorships, contact info@hasgeek.com or call +91-7676332020.

Important dates

Deadline for submitting proposals:

  • Proposal submission deadline(updated): 19 September 2016
  • Schedule announcement: 10 October 2016
  • Conference dates: 10 and 11 November 2016

We expect you to submit an outline of your proposed talk – either in the form of a mind map, a text document or draft slides along with your submission. You can edit your submission at any time.

Proposal submissions are now closed.

Hosted by

droidconIN is an annual conference on Android, part of the worldwide series of events. more

Manas Chaudhari

@manas-chaudhari

Functional MVVM using RxJava and Android Data Binding

Submitted Jul 9, 2016

It is important to write reusable code to increase development speed and for easier maintenance. Although it is quite easy to share model logic across various components of the app, sharing presentation logic isn’t trivial. Some questions that need to be answered:

How to share presentation logic between multiple layouts?

It is very common to present one model in multiple ways.
For example, one layout shows a mini view, while other shows a detailed view. If both views show same information, we should be able to build the second view without writing any extra code

How to compose different functionalities?

Consider three pages which use different combinations of “basic details”, “reviews”, “customization” functionalities.

  • Menu page: List of items with basic details
  • Item details page: Item’s basic details + reviews
  • Customization page: Item’s basic details + customization

I will demonstrate how MVVM architecture allows you to tackle these scenarios. Binding is essential for connecting ViewModels to Views. However, binding values from RxJava’s Observables to Views is difficult to get right and often leads to boilerplate code. We will explore how this problem can be solved using Google’s Data Binding library.

Memory Leaks

Binding values from RxJava’s Observables to Views requires subscriptions. Cleaning up RxJava subscriptions is necessary to prevent leaks. By writing ViewModels in a functional style, we’ll move all subscriptions to the Data Binding layer and thus, remove the need to cleanup subscriptions.

Eliminate Boilerplate for setting up views

By extending ObservableField, we’ll be able to bind RxJava’s Observables using the minimal Data Binding syntax android:text="@{vm.title}", where title is built from Observable. By making use of Data Binding’s BindingAdapter API, we’ll eliminate boilerplate required to setup complex views such as RecyclerView.

<android.support.v7.widget.RecyclerView
          bind:items="@{vm.itemVms}"
          bind:layout_vertical="@{true}"
          bind:view_provider="@{@layout/row_item}" />

Outline

  • Problems in building User Interfaces
    • Mutation causes refresh chain
    • Boilerplate for view setup
  • Solving Mutation using RxJava
  • Eliminate View Boilerplate
    • Problems in binding rx.Observable to Views
    • Solution using Data Binding
  • Architecture
    • Intro to MVVM
    • View Composition using MVVM
      • Static composition using <include> tag
      • Setting up RecyclerView/ViewPager in XML
    • Managing Dependencies
    • Testability
  • Conclusions

Requirements

Familiarity with RxJava and Data Binding

Speaker bio

Graduating from IIT Bombay in 2014, Manas Chaudhari joined TinyOwl and built the consumer Android and iOS apps. He had been driving the consumer product at TinyOwl, leading a team of Android, iOS and backend (ROR) devs. Currently, he builds end-to-end solutions as a freelance software architect/developer. His core focus has always been to make development faster and bug-free.

As a Microsoft Student Partner, he developed Windows Phone apps and conducted workshops in nearby colleges.

Links

Slides

https://speakerdeck.com/manaschaudhari/functional-mvvm-using-rxjava-and-data-binding

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

droidconIN is an annual conference on Android, part of the worldwide series of events. more