Guyub
Guyub is Server side rendering library build dynamic ui and form multiplatform client project use with kotlin multiplatform
How it's work
Convert Json response into specific contract base on form or ui than to be display.

Component
- Form Field
| No | Component | type | Parameter |
|---|
| 1 | GLabel | label | label: String, type: LabelType |
| 2 | GButton | button | label: String, enable: Boolean |
| 3 | GTextField | text field | label: String, type: TextFieldType |
| 4 | GTextFieldOption | text field with option | label: String, options: List |
| 5 | GDatePicker | date picker | label: String |
| 6 |
- Group Form Field
| No | Component | type | Parameter |
|---|
| 1 | GSingleForm | Single form page | listData: List, outputData: Lamda |
| 2 | GWizardForm | Wizard form (multiple page) | dataWizard: List<List>, outputData: Lamda |
- UI Field
| No | Component | type | Parameter |
|---|
| 1 | GBasicList | basic list | data: UIField.Basic |
| 2 | GFeed | feed | data: UIField.Feed |
| 3 | GProfile | profile | data: UIField.Profile |
| 4 | GTabLayout | tap layout page | data: LayoutField |
- Group UI Field
| No | Component | type | Parameter |
|---|
| 1 | GTabLayout | Tab layout page | data: LayoutField, onActionLayout: Lamda |
| 2 | GBottomAppBar | Bottom navigation bar | icons: List, selected: Lamda |
Response Contract
Here are example json response to construct form or ui
Mapper
Mapper is utils extension function to map json response to ui data specific form.
toFormField() Mapper from Map<String, Any> to form field like Label, Button, TextField etc.
toUIField Mapper from Map<String, Any> to form ui field like Basic List, Feed etc.
Validation
- Include form validation
required if field non null form
- Email validation
- Phone validation
- Password validation
- Button submit enablement
Getting started
- Android
- iOS