Syncslides: MVP1 feature set and data flow refactoring

This CL includes the feature set for MVP1, polish, specially
around the Slideshow view, bug and performance fixes remain.

-Decks now sync between devices.
-Presentation can be drived by the presenter.
-Audience can follow a presentation or navigate
 on their own and sync back when they want.
-Toast messages for starting and joining a presentation.
-Proper back button navigation stack.
-Big overhaul of the UI rendering and data flow:
 +Introduction of an in-memory, publically deeply-immutable
  state object that rendering is purely based on.
 +Using watch to update the in-memory state after fetching
  the initial values from Syncbase.
 +Clear definitions for all the possible app actions and state.
 +This change makes the unidirectional data flow simpler to
  understand and maintain and removed many potential concurrency
  issues of the previous design.

Change-Id: I7ed07a75f56693931efa5fcdfc43ce4e6e544fa9
34 files changed
tree: 88370e48f62d4c19822bee1e635c4d0d517c4d4e
  1. android/
  2. dart/
  3. .gitignore
  4. AUTHORS
  5. CONTRIBUTING.md
  6. CONTRIBUTORS
  7. LICENSE
  8. PATENTS
  9. README.md
  10. VERSION
README.md

SyncSlides

A simple multi-device presentation system, with state synced across devices using Syncbase.

Java/Android Version

https://github.com/vanadium/syncslides/tree/master/android

Dart/Flutter Version

https://github.com/vanadium/syncslides/tree/master/dart