Skip to content

Instantly share code, notes, and snippets.

@stdpmk
stdpmk / compose_state1.kt
Last active August 19, 2022 14:40
Как правильно работать с Стейт дата классами в Compose в сложных случаях
// Данные о фильме с бекенда
data class Movie(
val id: Long,
val title: String? = null,
)
// Данные о стоимости фильма с бекенда
data class PurchaseOffer(
val id: Long,
val price: Float = 0,
@stdpmk
stdpmk / test_login_flow.kt
Last active May 3, 2022 14:34
test_login_flow
data class ResultApi<T>(
val result: T,
val errorCode: Int = 0,
var errorMessage: String = ""
)
class ElectroMarketService {
suspend fun userLogin(login: String, pass: String): ResultApi<String> {
try {
delay(3_000)
@stdpmk
stdpmk / compose_conditional_nav.kt
Created April 4, 2022 13:19
compose_conditional_nav
// Как лучше в Compose реализовать условную навигацию?
// Есть какие-то патерны?
// В данном примере условная навигация в методе
// navigateToB
// В зависимости от экрана на котором мы сейчас находимся, делаем тот или иной переход
// Граф
@Composable
fun MainNavGraph2(
@stdpmk
stdpmk / nav_compose1.kt
Created March 30, 2022 12:09
sample navigate to compose screen by event from another screen
Граф
@Composable
fun JpcMainNavGraph(
modifier: Modifier = Modifier,
navController: NavHostController = rememberNavController(),
startDestination: String = Screen.SplashScreen.route
) {
NavHost(
navController = navController,
startDestination = startDestination,
// commonMain
class Network(
val httpClient: HttpClient
) {
val scope = CoroutineScope(SupervisorJob() + Dispatchers.Default)
val wikiFlow = MutableStateFlow("")
suspend fun getWikiPage(): String {
val url = "https://en.wikipedia.org/wiki/Main_Page"
return httpClient.get(url).bodyAsText()