Skip to content

hakkasuru/server-driven-compose

Repository files navigation

Server Driven Compose POC

This project currently consists of one application. It is designed with view, material UI components, single activity multiple fragment, legacy navigation strategy etc. in mind to demonstrate a proof of concept that it is possible to migrate from a legacy code base to modern android development practices.

Second application will be added in future to demonstrate server driven compose with modern android development practices.

Screenshots

Widgets and Components concept

Widget Contract

Widget basic structure

{
  "type": "<string:non-nullable>",
  "header": "<object:nullable>",
  "components": "<array|slice:non-nullable>",
  "tag": "<object:nullable>"
}

List Widget

{
  "type": "list",
  "components": [],
  "tag": "widget-1",
  "header": {
    "title": "Hello World Section"
  }
}

Component Contract

Component basic structure

{
  "type": "<string:non-nullable>",
  "data": "<object:non-nullable>",
  "action": "<object:nullable>"
}

Text Component

{
  "type": "tile-text",
  "data": {
    "title": "hello, world",
     "subtitle": "hello, world"
  },
  "action": null
}

TODO

  • add more example widgets/components
    • add carousel widget
    • add tile image component
    • add tile banner component
  • deeplink navigation for legacy app
  • handle server driven actions
  • second fragment host on top of main activity in legacy app
  • add new app designed with modern android development practices with server driven concept
  • handle action & navigation with delegates
  • implement legacy back press behaviour

About

proof of concept w.r.t. server driven compose ui

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages