Warning: mkdir(): No space left on device in /var/www/hottg/post.php on line 59

Warning: file_put_contents(aCache/aDaily/2025-07-22/post/mobileproglib/--): Failed to open stream: No such file or directory in /var/www/hottg/post.php on line 72
πŸ†’ 5 Ρ‚Ρ€ΡŽΠΊΠΎΠ² Jetpack Compose @Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° мобильного Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° | Android, iOS, Swift, Retrofit, Moshi, Chuck
TG Telegram Group & Channel
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° мобильного Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° | Android, iOS, Swift, Retrofit, Moshi, Chuck | United States America (US)
Create: Update:

πŸ†’ 5 Ρ‚Ρ€ΡŽΠΊΠΎΠ² Jetpack Compose

1️⃣ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ rememberUpdatedState, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… лямбд

Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Π² Composable лямбду, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ, rememberUpdatedState Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ.

val updatedOnClick by rememberUpdatedState(newValue = onClick)
LaunchedEffect(Unit) {
delay(1000)
updatedOnClick()
}


Π‘Π΅Π· этого Compose ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ лямбды, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкам.

2️⃣ НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎ pointerInput для кастомных ТСстов

Π’Ρ‹ΠΉΠ΄Π΅Ρ‚Π΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ clickable β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ пСрСтаскиваниС, ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡ‚Π°Ρ‡ ΠΈΠ»ΠΈ собствСнноС распознаваниС слоТных ТСстов.

Modifier.pointerInput(Unit) {
detectTapGestures(
onLongPress = { /* do something */ }
)
}


МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‰ΠΈΠΏΠΊΠΎΠ², смахиваниС ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ распознаваниС кастомных ТСстов.

3️⃣ ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ любой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Modifier.scrollable

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ бокс ΠΈΠ»ΠΈ кастомный ΠΌΠ°ΠΊΠ΅Ρ‚? Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ LazyColumn ΠΈΠ»ΠΈ Column.

val scrollState = rememberScrollState()
Box(
Modifier
.height(200.dp)
.verticalScroll(scrollState)
) {
// Large content goes here
}


Π’Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ скролами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NestedScrollConnection.

4️⃣ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ CompositionLocal для тСматичСского повСдСния

ВмСсто Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ CompositionLocal для ΠΎΠ±ΠΌΠ΅Π½Π° Ρ‚Π°ΠΊΠΈΠΌΠΈ значСниями, ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΈΠ»ΠΈ прСдпочтСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

val LocalSpacing = compositionLocalOf { 0.dp }
CompositionLocalProvider(LocalSpacing provides 8.dp) {
MyComposable()
}
@Composable
fun MyComposable() {
val spacing = LocalSpacing.current
Spacer(modifier = Modifier.height(spacing))
}


ИдСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для согласования Ρ‚Π°ΠΊΠΈΡ… элСмСнтов Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹, Ρ†Π²Π΅Ρ‚Π° ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Π±Π°Π·Π°Ρ….

5️⃣ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Modifier.graphicsLayer для создания эффСктов

graphicsLayer прСдоставляСт Π²Π°ΠΌ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ для примСнСния Ρ‚Π°ΠΊΠΈΡ… эффСктов, ΠΊΠ°ΠΊ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π», прямо Π½Π° GPU.

Modifier.graphicsLayer {
rotationZ = 15f
scaleX = 1.2f
alpha = 0.8f
}


Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ: эти эффСкты Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° графичСских процСссорах, Π½ΠΎ провСряйтС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° устройствах Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ класса.

Π”Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π² коммСнтариях Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ πŸ’¬

🐸 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° мобильного Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°

#буст

πŸ†’ 5 Ρ‚Ρ€ΡŽΠΊΠΎΠ² Jetpack Compose

1️⃣ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ rememberUpdatedState, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… лямбд

Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Π² Composable лямбду, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ, rememberUpdatedState Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ.

val updatedOnClick by rememberUpdatedState(newValue = onClick)
LaunchedEffect(Unit) {
delay(1000)
updatedOnClick()
}


Π‘Π΅Π· этого Compose ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ лямбды, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкам.

2️⃣ НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎ pointerInput для кастомных ТСстов

Π’Ρ‹ΠΉΠ΄Π΅Ρ‚Π΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ clickable β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ пСрСтаскиваниС, ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡ‚Π°Ρ‡ ΠΈΠ»ΠΈ собствСнноС распознаваниС слоТных ТСстов.

Modifier.pointerInput(Unit) {
detectTapGestures(
onLongPress = { /* do something */ }
)
}


МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‰ΠΈΠΏΠΊΠΎΠ², смахиваниС ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ распознаваниС кастомных ТСстов.

3️⃣ ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ любой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Modifier.scrollable

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ бокс ΠΈΠ»ΠΈ кастомный ΠΌΠ°ΠΊΠ΅Ρ‚? Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ LazyColumn ΠΈΠ»ΠΈ Column.

val scrollState = rememberScrollState()
Box(
Modifier
.height(200.dp)
.verticalScroll(scrollState)
) {
// Large content goes here
}


Π’Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ скролами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NestedScrollConnection.

4️⃣ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ CompositionLocal для тСматичСского повСдСния

ВмСсто Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ CompositionLocal для ΠΎΠ±ΠΌΠ΅Π½Π° Ρ‚Π°ΠΊΠΈΠΌΠΈ значСниями, ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΈΠ»ΠΈ прСдпочтСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

val LocalSpacing = compositionLocalOf { 0.dp }
CompositionLocalProvider(LocalSpacing provides 8.dp) {
MyComposable()
}
@Composable
fun MyComposable() {
val spacing = LocalSpacing.current
Spacer(modifier = Modifier.height(spacing))
}


ИдСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для согласования Ρ‚Π°ΠΊΠΈΡ… элСмСнтов Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹, Ρ†Π²Π΅Ρ‚Π° ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Π±Π°Π·Π°Ρ….

5️⃣ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Modifier.graphicsLayer для создания эффСктов

graphicsLayer прСдоставляСт Π²Π°ΠΌ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ для примСнСния Ρ‚Π°ΠΊΠΈΡ… эффСктов, ΠΊΠ°ΠΊ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π», прямо Π½Π° GPU.

Modifier.graphicsLayer {
rotationZ = 15f
scaleX = 1.2f
alpha = 0.8f
}


Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ: эти эффСкты Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° графичСских процСссорах, Π½ΠΎ провСряйтС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° устройствах Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ класса.

Π”Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π² коммСнтариях Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ πŸ’¬

🐸 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° мобильного Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❀3πŸ‘1


>>Click here to continue<<

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° мобильного Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° | Android, iOS, Swift, Retrofit, Moshi, Chuck




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)


Warning: Undefined array key 3 in /var/www/hottg/function.php on line 115

Fatal error: Uncaught mysqli_sql_exception: Too many connections in /var/www/db.php:16 Stack trace: #0 /var/www/db.php(16): mysqli_connect() #1 /var/www/hottg/function.php(212): db() #2 /var/www/hottg/function.php(115): select() #3 /var/www/hottg/post.php(351): daCache() #4 /var/www/hottg/route.php(63): include_once('...') #5 {main} thrown in /var/www/db.php on line 16