docs: add README.md and update form submission logic (#21)
Some checks are pending
Build / build (push) Waiting to run
Some checks are pending
Build / build (push) Waiting to run
This commit updates the README.md with project details, including features, technologies, installation instructions, and project structure. - It also includes a description of the app, features like free-text input, sentiment selection, submitting content to a server, and displaying a Snackbar. - It updates the form submission logic in `App.kt` to delay showing the "Feedback sent" Snackbar by 1 second. Closes #2 Reviewed-on: #21 Co-authored-by: Ben Martin <ben.martin@sky.uk> Co-committed-by: Ben Martin <ben.martin@sky.uk>
This commit is contained in:
parent
063ec7632f
commit
ed227bf2b6
2 changed files with 40 additions and 11 deletions
45
README.md
45
README.md
|
@ -1,14 +1,39 @@
|
||||||
This is a Kotlin Multiplatform project targeting Android, iOS.
|
# Bob -- The Handy Feedback App
|
||||||
|
|
||||||
* `/composeApp` is for code that will be shared across your Compose Multiplatform applications.
|
This project is a simple Kotlin Multiplatform Application that allows users to enter free-text and
|
||||||
It contains several subfolders:
|
submit the content to a server over HTTP. It also includes a form with sentiment selection and
|
||||||
- `commonMain` is for code that’s common for all targets.
|
displays a Snackbar whenever the submit button is pressed.
|
||||||
- Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name.
|
|
||||||
For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app,
|
|
||||||
`iosMain` would be the right folder for such calls.
|
|
||||||
|
|
||||||
* `/iosApp` contains iOS applications. Even if you’re sharing your UI with Compose Multiplatform,
|
## Features
|
||||||
you need this entry point for your iOS app. This is also where you should add SwiftUI code for your project.
|
|
||||||
|
|
||||||
|
- Free-text input form
|
||||||
|
- Sentiment selection using FilterChips
|
||||||
|
- Submit content to a server using Retrofit
|
||||||
|
- Display Snackbar on form submission
|
||||||
|
|
||||||
Learn more about [Kotlin Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html)…
|
## Technologies Used
|
||||||
|
|
||||||
|
- Kotlin
|
||||||
|
- Jetpack Compose
|
||||||
|
- Retrofit
|
||||||
|
- Gradle
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
1. Download the latest release from
|
||||||
|
the [releases page](https://git.brmartin.co.uk/bob/mobile-application/releases)
|
||||||
|
2. Install the application following the on-screen instructions.
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
1. Run the application on an Android emulator or a physical device.
|
||||||
|
2. Select a sentiment using the FilterChips.
|
||||||
|
3. Enter your text in the provided text field.
|
||||||
|
4. Press the submit button to send the content to the server.
|
||||||
|
|
||||||
|
### Project Structure
|
||||||
|
|
||||||
|
- `composeApp/src/commonMain/kotlin/uk/sky/bob/application/App.kt`: Main Compose UI and form
|
||||||
|
submission logic.
|
||||||
|
|
|
@ -31,6 +31,7 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.input.TextFieldValue
|
import androidx.compose.ui.text.input.TextFieldValue
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
|
import kotlinx.coroutines.delay
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.jetbrains.compose.ui.tooling.preview.Preview
|
import org.jetbrains.compose.ui.tooling.preview.Preview
|
||||||
|
|
||||||
|
@ -85,7 +86,10 @@ fun App() {
|
||||||
Button(onClick = {
|
Button(onClick = {
|
||||||
sentiment.value = Sentiment.HAPPY
|
sentiment.value = Sentiment.HAPPY
|
||||||
comment = TextFieldValue("")
|
comment = TextFieldValue("")
|
||||||
scope.launch { scaffoldState.snackbarHostState.showSnackbar("Feedback sent") }
|
scope.launch {
|
||||||
|
delay(1000)
|
||||||
|
scaffoldState.snackbarHostState.showSnackbar("Feedback sent")
|
||||||
|
}
|
||||||
}, modifier = Modifier.padding(8.dp)) {
|
}, modifier = Modifier.padding(8.dp)) {
|
||||||
Icon(Icons.AutoMirrored.Filled.Send, contentDescription = "Send")
|
Icon(Icons.AutoMirrored.Filled.Send, contentDescription = "Send")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue