Android Live π€
ΠΡΠΊΡΡΡΡ Π² Telegram
Π‘Π°ΠΌΡΠ΅ ΡΠ²Π΅ΠΆΠΈΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ, Π½ΠΎΠ²ΠΈΠ½ΠΊΠΈ ΠΈ ΡΡΠ΅Π½Π΄Ρ Android ΠΎΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠ²ΡΠΎΡ: @al_gorshkov, Π§Π°Ρ: @android_live_chat ΠΠΈΡΠ½ΡΠΉ Π±Π»ΠΎΠ³: @al_gorshkov_blog Π Π΅ΠΊΠ»Π°ΠΌΡ Π½Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ
ΠΠΎΠ»ΡΡΠ΅5 112
ΠΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΈ
-224 ΡΠ°ΡΠ°
-47 Π΄Π½Π΅ΠΉ
-2330 Π΄Π½Π΅ΠΉ
ΠΡΡ
ΠΈΠ² ΠΏΠΎΡΡΠΎΠ²
5 112
π₯ ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΠΌΠΎ-Π·Π°Π½ΡΡΠΈΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΠ² ΠΏΠΎ Android-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π° Kotlin ΠΎΡ OTUS ΠΈ ΠΠ»ΡΡΠ°-ΠΠ°Π½ΠΊΠ°!
π 24.03 (Π‘Π΅Π³ΠΎΠ΄Π½Ρ) - Β«Π ΠΈΡΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊ ΠΊΠΎΡΠΈΡΠΎΠ²ΠΎΠΊ Π² AndroidΒ» Ρ ΠΠ°Π΄ΠΈΠΌΠΎΠΌ ΠΠ°Π»ΡΡΠ΅Π²ΡΠΌ: https://otus.pw/bEfa/
Π§ΡΠΎ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ:
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ·ΡΡΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Canvas, Path, Paint, Π½Π°ΡΠΈΡΡΠ΅ΠΌ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠΉ Π³ΡΠ°ΡΠΈΠΊ ΠΊΠΎΡΠΈΡΠΎΠ²ΠΎΠΊ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΉ
π25.03 - Β«ΠΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΊΠ°Ρ
Β» Ρ ΠΠ½ΡΠΎΠ½ΠΎΠΌ ΠΠ°ΡΠΈΡ
ΠΈΠ½ΡΠΌ, ΡΡΠ°ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π² ΠΠΠ "ΠΠΈΡΠΊΠΎΠ΄": https://otus.pw/L8hU/
Π§Π΅ΠΌΡ Π½Π°ΡΡΠΈΠΌΡΡ:
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ΅Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Android Studio, Π²Π΅ΡΡΡΠ°ΡΡ ΡΠΊΡΠ°Π½, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ View
π Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΡ, Π° ΠΌΡ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ Π² Π΄Π°ΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π²Π΅Π±ΠΈΠ½Π°ΡΠ°!
5 112
ββββFlutter vs Kotlin Multiplatform Mobile
#youtube
ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Ρ Π²ΡΠ΅ΠΌ ΠΏΡΠΎ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ ΡΡΡΠΈΠΌ, Π³Π΄Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². ΠΠΎΠ»ΡΡΠ΅ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΡΡΡ.
Π’ΡΠ°Π½ΡΠ»ΡΡΠΈΡ ΠΏΡΠΎΠΉΠ΄ΡΡ ΠΎΠ½Π»Π°ΠΉΠ½, 24 ΠΌΠ°ΡΡΠ° Π² 18:00 ΠΏΠΎ ΠΠ‘Π, ΠΊΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π° Π½Π° Youtube-ΠΊΠ°Π½Π°Π»Π΅ AndroidLive. Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ ΡΡΡ, Π·Π°Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΡΠ΅ΠΌΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΡΡ.
ΠΠΎ Π²ΡΡΡΠ΅ΡΠΈ!π€
5 112
ββΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Timber
#library
Timber Π΄ΠΎΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½Π° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ Π²Π²ΠΎΠ΄ Π»ΠΎΠ³ΠΎΠ², ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ.
ΠΡΡΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΎΡ JakeWharton, Π½ΠΎ ΠΌΠ½Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎ Π΄ΡΡΠ΅ fork, Π³Π΄Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Kotlin.
ΠΠ°ΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
Π½Π°ΡΡΡΠΎΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΡΡΡΠ°Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ Π»ΠΎΠ³ΠΎΠ²:
1οΈβ£ ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΡΠ΅Π³ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
, ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π»ΠΎΠ³ΠΈ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°
log Π² DebugTree, Π²ΡΠ·Π²Π°Π² super.log(priority, "global_tag_$tag", message, t).
2οΈβ£ ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ createStackElementTag Π² ΡΠΎΠΌ ΠΆΠ΅ DebugTree, ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π² ΠΏΠΎΠΊΠ°Π· ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΄Π° ΠΆΠ΅ ΠΈ Π½ΠΎΠΌΠ΅Ρ Π»ΠΈΠ½ΠΈΠΈ ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ»ΠΎ Π²ΡΠ·Π²Π°Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ΄Π° ΠΎΠ± ΡΡΠΈΡ
Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΡΡ.5 112
π₯ ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΠΌΠΎ-Π·Π°Π½ΡΡΠΈΠ΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ ΠΊΡΡΡΠ° ΠΏΠΎ Android-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π° Kotlin ΠΎΡ OTUS ΠΈ ΠΠ»ΡΡΠ°-ΠΠ°Π½ΠΊΠ°!
π 24.03 - Β«Π ΠΈΡΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊ ΠΊΠΎΡΠΈΡΠΎΠ²ΠΎΠΊ Π² AndroidΒ» Ρ ΠΠ°Π΄ΠΈΠΌΠΎΠΌ ΠΠ°Π»ΡΡΠ΅Π²ΡΠΌ: https://otus.pw/PTt3/
Π§Π΅ΠΌΡ Π½Π°ΡΡΠΈΠΌΡΡ:
β Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
β ΠΠ·ΡΡΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Canvas, Path, Paint
β ΠΠ°ΡΠΈΡΡΠ΅ΠΌ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠΉ Π³ΡΠ°ΡΠΈΠΊ ΠΊΠΎΡΠΈΡΠΎΠ²ΠΎΠΊ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΉ
π Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΡ, Π° ΠΌΡ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ Π² Π΄Π°ΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π²Π΅Π±ΠΈΠ½Π°ΡΠ°!
Π£ΠΆΠ΅ Π²ΡΠ΅ ΡΠΌΠ΅Π΅ΡΡ? ΠΡΠΎΠ²Π΅ΡΡ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ Π², ΠΊΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, ΡΠ»ΠΎΠΆΠ½ΠΎΠΌ ΡΠ΅ΡΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ https://otus.pw/1yso/
5 112
ββonActivityCreated() Π²ΠΎ Fragment β deprecated
#fragment
ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, ΡΡΠΎ ΡΠΆΠ΅ Π½Π΅ Π½ΠΎΠ²ΠΎΡΡΡ, Π½ΠΎ ΠΊΡΠΎ Π·Π½Π°Π΅Ρ, ΠΌΠΎΠΆΠ΅Ρ Π²Ρ, ΠΊΠ°ΠΊ ΠΈ Ρ, ΠΏΡΠΎΠΏΡΡΡΠΈΠ»ΠΈ Π΅Ρ.
Π‘ΡΠΎΠΈΠ»ΠΎ ΠΌΠ½Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΠΊΠ°ΠΊ Ρ ΡΠ²ΠΈΠ΄Π΅Π», ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄
onActivityCreated() ΡΡΠ°Π» deprecated.
Π§ΡΠΎ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π·Π° ΠΌΠ΅ΡΠΎΠ΄, ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ ΡΡΠ°Π» ΡΠ΅ΠΏΠ΅ΡΡ deprecated?
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠΎ ΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, ΡΡΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠ»Ρ ΠΈΡ
ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² Activity, ΠΈΠ»ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ Fragment. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ, ΡΡΠΎ Activity Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΈ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄.
ΠΠΎ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ ΠΈ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΎΡΠΌΡΡΠ»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ Π²Π΅ΡΠ°ΠΌ. ΠΠ΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π»ΠΈ Π²Π°ΠΌ ΡΡΡΠ°Π½Π½ΡΠΌ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ Π² ΡΠ²ΠΎΡΠΌ ΠΆΠΈΠ·Π½Π΅Π½Π½Π½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ? ΠΠΎΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Google ΠΏΠΎΡΡΠΈΡΠ°Π»ΠΈ ΡΡΠΎ ΡΡΡΠ°Π½Π½ΡΠΌ ΠΈ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Fragment ΠΌΠ΅Π½Π΅Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ ΡΠ±ΡΠ°ΡΡ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄.
Π‘Π΅ΠΉΡΠ°Ρ Π΅ΡΡΡ Π΄Π²Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ:
1οΈβ£ ΠΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠΎ View Π²ΠΎ Fragment Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π² onViewCreated().
2οΈβ£ ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Activity Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π°, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ LifeCycleObserver Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ onAttach() ΠΈ ΡΠ΄Π°Π»ΡΠ½ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° onCreate(). ΠΠ°ΠΊ ΠΏΠΎ ΠΌΠ½Π΅, Π·Π²ΡΡΠΈΡ ΠΊΠ°ΠΊ ΠΊΠΎΡΡΡΠ»Ρ.
Π ΡΠ΅Π»ΠΎΠΌ, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ Fragment Π΄Π°Π»ΡΡΠ΅, Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΌΠ΅Π½Π΅Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ
ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. π€5 112
π₯ ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΠΌΠΎ-Π·Π°Π½ΡΡΠΈΡ ΠΏΠΎ Android-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π° Kotlin ΠΎΡ OTUS ΠΈ ΠΠ»ΡΡΠ°-ΠΠ°Π½ΠΊΠ°!
π 22.03 - Β«Π ΠΈΡΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊ ΠΊΠΎΡΠΈΡΠΎΠ²ΠΎΠΊ Π² AndroidΒ» Ρ ΠΠ°Π΄ΠΈΠΌΠΎΠΌ ΠΠ°Π»ΡΡΠ΅Π²ΡΠΌ: https://otus.pw/FLHe/
Π§ΡΠΎ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ:
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ·ΡΡΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Canvas, Path, Paint, Π½Π°ΡΠΈΡΡΠ΅ΠΌ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠΉ Π³ΡΠ°ΡΠΈΠΊ ΠΊΠΎΡΠΈΡΠΎΠ²ΠΎΠΊ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΉ
π25.03 - Β«ΠΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΊΠ°Ρ
Β» Ρ ΠΠ½ΡΠΎΠ½ΠΎΠΌ ΠΠ°ΡΠΈΡ
ΠΈΠ½ΡΠΌ, ΡΡΠ°ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π² ΠΠΠ "ΠΠΈΡΠΊΠΎΠ΄": https://otus.pw/G4xa/
Π§Π΅ΠΌΡ Π½Π°ΡΡΠΈΠΌΡΡ:
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ΅Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Android Studio, Π²Π΅ΡΡΡΠ°ΡΡ ΡΠΊΡΠ°Π½, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ View
π Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΡ, Π° ΠΌΡ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ Π² Π΄Π°ΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π²Π΅Π±ΠΈΠ½Π°ΡΠ°!
Π£ΠΆΠ΅ Π²ΡΠ΅ ΡΠΌΠ΅Π΅ΡΡ? ΠΡΠΎΠ²Π΅ΡΡ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ Π², ΠΊΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, ΡΠ»ΠΎΠΆΠ½ΠΎΠΌ ΡΠ΅ΡΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ https://otus.pw/xHYl/
5 112
ββΠΠ°ΠΊ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Bitmap
#view #library
ΠΡΠ»ΠΈ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Ρ
OutOfMemory, ΡΠΎ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π΄ΡΠΌΠ°Π΅ΠΌ ΠΏΡΠΎ ΡΡΠ΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ·Π²Π°Π½Π° ΡΡΠ΅ΡΠΊΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π½Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΡΡ Ρ
ΠΎΡΠΎΡΠ°Ρ ΡΡΠ°ΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°ΠΊ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
1οΈβ£ ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° bitmap. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ profiler. ΠΠ²ΡΠΎΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ Android 7.1 ΠΈ Π½ΠΈΠΆΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ preview ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
2οΈβ£ ΠΠ°Π»Π΅Π΅ ΡΡΠΎΠΈΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ImageView, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π΅Π³ΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅. ΠΡΠ»ΠΈ ΠΎΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ fit() ΠΈ centerInside() Π΄Π»Ρ Glide ΠΈ Picasso.
3οΈβ£ ΠΡ ΠΈ Π½Π°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΠΈΠ»Ρ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ AGRB_8888, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ 4 Π±Π°ΠΉΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ. ΠΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π·Π°Π΄Π°Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ RGB_565, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π² 2 ΡΠ°Π·Π° ΠΌΠ΅Π½ΡΡΠ΅ Π±Π°ΠΉΡΠΎΠ². ΠΠ°, ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Ρ
ΡΠΆΠ΅, ΠΈ Π½Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠΎ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
Π·Π°Π΄Π°Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°.5 112
ΠΠΆΠ΅Π³ΠΎΠ΄Π½ΡΠΉ ΠΎΠΏΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΎΡΡΠΈΠΉΡΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π ΡΡΠΎΠΌ Π³ΠΎΠ΄Ρ Π½Π°ΡΠ°Π»ΡΡ Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΡΠΉ, ΠΏΡΡΡΠΉ ΠΎΠΏΡΠΎΡ ΠΏΡΠΎ ΠΎΡΠ΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ· Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ:
π ΠΎΡΠΊΡΠ΄Π° ΠΌΠΎΠ±ΠΈΠ»ΡΡΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ;
πͺ ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΌΡΠ΅ ΡΠΈΠ»ΡΠ½ΡΠ΅;
π Π² ΠΊΠ°ΠΊΠΈΡ
ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ
ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Ρ
ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ.
ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°, Π° ΠΏΠΎΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΎΠΏΡΠΎΡΠ΅ ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ. ΠΠΏΡΠΎΡ Π·Π°ΠΉΠΌΡΡ Π½Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΠΈΠ½ΡΡΡ.
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ°Π³ΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°Π½Π°Π» Android Live, Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ π€.
5 112
ββΠ£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
#beginners
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΡΡΠΎΠΉΡΡΠ² Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π ΡΠ΅Π»ΠΎΠΌ, Π² ΡΡΠΎΠΌ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΠ»ΠΎΡ
ΠΎΠ³ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅.
Π‘ΠΈΡΡΠ°ΡΠΈΡ ΡΡΡΠ³ΡΠ±Π»ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ debug, test ΠΈ release Π²Π΅ΡΡΠΈΠΈ.
Π ΡΡΠ°ΡΡΡΡ, Π΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ Π²Π΅ΡΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅. ΠΠΎΡ Π²Π°ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
πΈΠ½Π°ΡΡΡΠΎΠΉΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅
buildTypes. Π‘Π΄Π΅Π»Π°Π΅ΠΌ test ΠΈ release;
πΈΠ΄ΠΎΠ±Π°Π²ΡΡΠ΅ applicationIdSuffix Π΄Π»Ρ test-Π²Π΅ΡΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, _test;
πΈΠ΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½ΠΎΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ test-ΡΠ±ΠΎΡΠΊΠΈ. Π Android Studio Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½ΠΎΠ²ΡΠΉ xml-ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΡΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ test/res/values. Π’Π°ΠΌ ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π½ΡΠΆΠ½ΠΎΠ΅ Π²Π°ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ΅Π»ΠΈΠ·Π½ΠΎΠ³ΠΎ Π±ΠΈΠ»Π΄Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ Π² release/res/values.
πΈΠ΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½ΠΎΠ²ΡΡ ΠΈΠΊΠΎΠ½ΠΊΡ ΠΏΠΎ ΡΠ°ΠΊΠΎΠΌΡ ΠΆΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Ρ Π² test/res, Android Studio ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π·Π° Π²Π°Ρ.
πΈΠ·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π΄Π»Ρ Firebase ΠΈ ΠΏΠΎΠΏΡΠ°Π²ΡΡΠ΅ ΡΠ°ΠΉΠ» google-services.json, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ ΡΠ°ΠΌ Firebase.
ΠΠ° ΡΡΠΎΠΌ Π²ΡΡ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ±ΠΎΡΠΎΠΊ ΡΠ΅ΡΠ΅Π½Π°. ΠΠ΅ΡΠ°Π»ΡΠ½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΡΡ.5 112
ββΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π² Android Studio
#theory
ΠΠΎΠΏΠ°Π»Π°ΡΡ Π»ΡΠ±ΠΎΠΏΡΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ²Π·ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΌΠ°ΠΊΠ΅ΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π² Android Studio. ΠΡΠ°Π²Π΄Π°, ΡΡΠΎ Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ ΡΡΠ°ΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ ΡΠΎ, ΡΡΠΎ Π°Π²ΡΠΎΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎΡ ΠΏΠ»Π°Π³ΠΈΠ½ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π½Π°ΠΏΠΈΡΠ°Π² ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄Π΅ΡΡΡΠΎΠΊ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°.
ΠΠΎ ΡΡΡΠΈ, Π²ΡΡ ΡΠ°Π±ΠΎΡΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ:
1) Π‘ΠΎΠ·Π΄Π°ΡΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π²ΡΠ±ΠΈΡΠ°Ρ Β«IntelliJ platform pluginΒ» ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°.
2) ΠΠ°Π»Π΅Π΅ ΡΠΎΠ·Π΄Π°ΡΠΌ Π½ΠΎΠ²ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ°
AnAction.
Π ΡΠ΅Π»ΠΎΠΌ, ΡΡΠΎ Π²ΡΡπ€. ΠΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΈΡΠΎΠ³ΠΎΠ²ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΊ ΡΡΡΠ΄ΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½ΡΠΆΠ½ΡΠ΅ Π²Π°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. Π‘ΡΠ°ΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΈΠ½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.5 112
ΠΠ°ΠΊ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Huawei Mobile Services Π² 6 ΠΏΡΠΎΡΡΡΡ
ΡΠ°Π³ΠΎΠ²
Π 2020 Π½Π° Π΄ΠΎΠ»Ρ Huawei Π² Π ΠΎΡΡΠΈΠΈ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠΎΡΡΠΈ 18% ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΠ°. Π€Π°Π½Π±Π°Π·Π° Π³ΠΈΠ³Π°Π½ΡΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ°ΡΡΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΡΠΎΡΡΡΡ ΠΎΡ Google ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΠΎΠΊΠ° Π²Π»Π°ΡΡΠΈ Π‘Π¨Π ΠΈ ΠΠΈΡΠ°Ρ ΡΠ΅ΡΠ°ΡΡ ΡΠ°Π·Π½ΠΎΠ³Π»Π°ΡΠΈΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠΊΡΡΡΠΈΠ²Π°ΡΡΡΡ
ΠΠ΅ΠΎΡΠ³ΠΈΠΉ ΠΠΈΠ³Π°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Delivery Club, ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ ΠΏΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Huawei-ΡΡΡΡΠΎΠΉΡΡΠ². ΠΠΎΡΡΠ°ΠΏΠ½ΡΠΉ Π³Π°ΠΉΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π½Π° Π₯Π°Π±ΡΠ΅, Π° Π΄Π»Ρ Π»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ Π²ΠΈΠ΄Π΅ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ Π΅ΡΡΡ ΠΏΡΠΈΡΡΠ½ΡΠΉ Π±ΠΎΠ½ΡΡ Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Mobius 2020
5 112
ββΠΠ°ΠΊ data-ΠΊΠ»Π°ΡΡΡ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
#kotlin
Π Kotlin ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ
ΡΠΈΡ: null safety, smart casts, inline-ΡΡΠ½ΠΊΡΠΈΠΈ, sealed-ΠΊΠ»Π°ΡΡΡ. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ
ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ data-ΠΊΠ»Π°ΡΡΡ.
ΠΡ ΡΠΆΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ Π½Π° ΠΊΠ°Π½Π°Π»Π΅ ΡΠΎ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΈΡ
ΡΠ°ΠΌ, Π³Π΄Π΅ Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΡΠΈΡ
ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π΅ Π½ΡΠΆΠ½Π°. Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ Π΅ΡΡ ΡΠ°Π· ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ data-ΠΊΠ»Π°ΡΡΠΎΠ² Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ R8 ΠΈΠ· ΡΠ΅Π»ΠΈΠ·Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΄Π°Π»ΡΡΡΡΡ
componentN()-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ copy(). ΠΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ toString(), equals() ΠΈ hashCode() ΠΎΡΡΠ°ΡΡΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ gradle-ΠΏΠ»Π°Π³ΠΈΠ½Π° ΡΠ΄Π°Π»ΠΈΠ» ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° 500KiB (ΠΈΠ»ΠΈ 4% ΠΎΡ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠΎΡΡΠΈ Π½Π° 15000.
ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎΡ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΊ ΡΠ²ΠΎΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ ΡΠ°Π·ΡΠΌΠ½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ data-ΠΊΠ»Π°ΡΡΠΎΠ².5 112
Π ΠΊΠ°Π½Π°Π»Π΅ ΠΠΎΠ±ΠΈΠ»ΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΎ ΡΠΎΠ½ΠΊΠΎΡΡΡΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ Android, iOS ΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π΅ΡΡ Π½Π΅: @mobi_dev
5 112
ββFlutter vs Kotlin Multiplatform Mobile
#youtube
ΠΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅ΠΈΠΌΠ²ΠΎΡΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π»ΠΈ ΠΆΠ°ΡΠΊΠΈΠ΅ ΡΠΏΠΎΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΡΠ³ΠΈΠ΅ β ΡΡΠΎ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π²Π½ΠΈΡΡΡΡ Ρ Π½Π°ΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ Π½Π΅ ΡΡΠΎΠΈΡ ΡΡΠ°ΡΠΈΡΡ Π½Π° Π½Π΅Ρ Π²ΡΠ΅ΠΌΡ.
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΌΠ½Π΅Π½ΠΈΡ, ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π²ΠΎΠΏΡΠΎΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π²ΡΠ±ΡΠ°ΡΡ. Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΌΠΈΡΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΅ΡΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°: Flutter ΠΈ Kotlin Multiplatform Mobile.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Ρ ΡΠΊΡΠΏΠ΅ΡΡΠ°ΠΌΠΈ Π² ΡΡΠΈΡ
ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ
ΡΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ! ΠΡΠ΄Π΅ΠΌ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΈ Π»ΡΠ³ΠΊΠΎΡΡΡ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ, ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΈ ΠΊΠΎΠΌΠΌΡΡΠ½ΠΈΡΠΈβ¦ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. Π‘Π²ΠΎΠΈ ΠΈΠ΄Π΅ΠΈ ΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΊΠΈΠ΄Π°ΡΡ ΡΡΠ΄Π°.
ΠΠ°ΡΠΈ ΡΠΊΡΠΏΠ΅ΡΡΡ:
π΄ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΠ΅Π½ΠΈΡΠΎΠ², Lead Software Engineer, Co-Head of Flutter Competency Π² EPAM Systems, Flutter and Dart GDE. Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΆΠ΅ 15 Π»Π΅Ρ, Π° Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Flutter Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ²Π»Π΅ΠΊΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π½Π° Dart.
π’ΠΡΡΡΠΌ ΠΠ»ΠΊΠΎΠ², ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² Π―Π½Π΄Π΅ΠΊΡ.ΠΠΈΡΠΊ, ΡΠ»Π΅Π½ ΠΠ Podlodka iOS Crew. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Ρ 2011 Π³ΠΎΠ΄Π°, Ρ 2013 ΠΏΠΈΡΠ΅Ρ Π½Π° iOS. Π‘ 2019-Π³ΠΎ Π³ΠΎΠ΄Π° ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π―Π½Π΄Π΅ΠΊΡ.ΠΠΈΡΠΊ, Π³Π΄Π΅ ΠΈ Π²Π½Π΅Π΄ΡΠΈΠ» KMM Π² ΠΏΡΠΎΠ΄.
Π’ΡΠ°Π½ΡΠ»ΡΡΠΈΡ ΠΏΡΠΎΠΉΠ΄ΡΡ ΠΎΠ½Π»Π°ΠΉΠ½, 24 ΠΌΠ°ΡΡΠ° Π² 18:00 ΠΏΠΎ ΠΠ‘Π, ΠΊΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π° Π½Π° Youtube-ΠΊΠ°Π½Π°Π»Π΅ AndroidLive. Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ ΡΡΡ, Π·Π°Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΡΠ΅ΠΌΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΡΡ.
ΠΠΎ Π²ΡΡΡΠ΅ΡΠΈ!π€
5 112
ββΠΡΠ΄ΡΡΠ΅Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ: Kotlin Multiplatform ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ UI
#theory #crossplatform
ΠΠΎΠΏΠ°Π»Π°ΡΡ Π»ΡΠ±ΠΎΠΏΡΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Β«Π±ΡΠ΄ΡΡΠ΅Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈΒ». ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Ρ ΡΠ»ΡΡΠ°Π» ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ Ρ ΡΠΎΠ»ΠΈΠ΄Π°ΡΠ΅Π½, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π²ΠΈΠΆΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ.
ΠΠ²ΡΠΎΡ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Kotlin Multiplatform Π½Π° Android, iOS ΠΈ Web. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Π·ΠΈΡΡ:
πΉΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ 85% ΠΊΠΎΠ΄Π°;
πΉUI ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΡ
ΡΡΠ΅ΠΈΠΌΠ²ΠΎΡΠΊΠΎΠ²;
πΉMVI-Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Ρ Π΅Π΄ΠΈΠ½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ View;
πΉΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π½Π° 3 ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ
, ΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΄Π΅ΡΠ΅Π²Π»Π΅ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π°Π²ΡΠΎΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ΅ΠΉΡΠ°Ρ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΏΠ»Π°ΡΡΠΎΡΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ UI Π½Π° Android ΡΠΆΠ΅ Π΅ΡΡΡ Π²ΡΠ΅ΠΌ Π½Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ Jetpack Compose, Π΄Π»Ρ iOS β SwiftUI, Π° Π΄Π»Ρ Web β React.js.
Π£Π΄ΠΈΠ²ΠΈΠ»ΡΡ ΡΠΎΠΌΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Multiplatform. ΠΡΠΎ ΠΈ HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΈ SQL-ΠΎΠ±ΡΡΡΠΊΠ° Π΄Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, ΠΈ Π°Π½Π°Π»ΠΎΠ³
SharedPreferences. Π ΠΎΠ±ΡΠ΅ΠΌ, ΠΎΠ±ΠΎ Π²ΡΡΠΌ ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ, ΠΏΡΠΎΡΠΈΡΠ°Π² ΡΡΠ°ΡΡΡ.
ΠΠ½Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 3 ΡΠ°ΡΡΠ΅ΠΉ, ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΠ΅ΡΠ²ΡΡ, Π²ΡΠΎΡΡΡ ΠΈ ΡΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈ.
ΠΠ»ΠΈΠ·ΠΊΠΎ Π»ΠΈ Π²Π°ΠΌ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π°Π²ΡΠΎΡΠΎΠΌ ΡΡΠ°ΡΡΠΈ? Π ΠΊΡΠ΄Π° ΠΏΠΎ Π²Π°ΡΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ?5 112
ββMaterial Navigation Rail
#view #material
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ, ΠΊΠ°ΠΊ ΠΈ Ρ, ΠΏΡΠΎΠΏΡΡΡΠΈΠ»ΠΈ Π²ΡΡ
ΠΎΠ΄ ΡΠ²Π΅ΠΆΠ΅ΠΉ alpha-Π²Π΅ΡΡΠΈΠΈ material-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π’ΡΠ΄Π° Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ ΡΠΈΠΊΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ
ProgressIndicator, Π° ΡΡΠΎ Π½Π°Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ β ΡΠ°ΠΊ ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ NavigationRail.
ΠΠΎ ΡΡΡΠΈ, ΠΎΠ½ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ BottomNavigationView, Π½ΠΎ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΠ±ΠΎΠΊΡ, Π° Π½Π΅ ΡΠ½ΠΈΠ·Ρ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡ 3 Π΄ΠΎ 7, Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΈΠΊΠΎΠ½ΠΊΡ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ Π·Π½Π°ΡΠΎΠΊ-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ. ΠΡΠΎΡ Π·Π½Π°ΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΎΡΠΊΠΈ, Π° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΡΡΠΈΠΊ. ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ header.
ΠΠ°ΠΊ ΠΏΠΎ ΠΌΠ½Π΅, ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π½ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ RecyclerView.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΏΠ»Π°Π½ΡΠ΅ΡΠ°Ρ
. Π§ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎ Π½ΡΠΌ ΡΡΡ.5 112
β‘ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΡΡΠΎΠΊΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ
, ΠΊΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΡΡ ΡΠ·ΡΠΊΠ°ΠΌΠΈ JVM!
11 ΠΌΠ°ΡΡΠ° - ΠΠ΅ΠΌΠΎ-ΡΡΠΎΠΊ Π½Π° ΡΠ΅ΠΌΡ Β«ΠΡΡΠ΅ΠΊΡΡ Π² ScalaΒ»
ΠΠ° Π·Π°Π½ΡΡΠΈΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΡΡΠ΅ΠΊΡΠ° ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΈ ΠΈΡ
Π½Π°Π»ΠΈΡΠΈΠΈ. Π’Π°ΠΊΠΆΠ΅ Π²Π²Π΅Π΄Π΅ΠΌ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ.
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ: https://otus.pw/5aaN/
25 ΠΌΠ°ΡΡΠ° - ΠΠ΅ΠΌΠΎ-ΡΡΠΎΠΊ Β«Π‘ΠΎΠ±ΡΡΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ
Π² ΡΠΈΡΡΠ΅ΠΌΠ΅Β»
Π£Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊΠΈΠ΅ Π±ΡΠ²Π°ΡΡ Π²ΠΈΠ΄Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΡ
ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ. ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° ΡΠΎΠ±ΡΡΠΈΡΡ
. Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π·Π°Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ AΠΊΠΊΠ° persistence ΠΈ Scala, ΡΠ·Π½Π°Π΅ΠΌ ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉΠ½ΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ.
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ: https://otus.pw/weSr/
π ΠΠ»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π½Π° Π²Π΅Π±ΠΈΠ½Π°ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π½Π° Π·Π°Π½ΡΡΠΈΠΈ!
5 112
ββΠΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Coroutines
#coroutines
ΠΠ° ΡΠ°ΠΉΡΠ΅ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΎΡ Google ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Ρ
Coroutines. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΈΡ
ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ.
πΉΠ½Π΅Π»ΡΠ·Ρ Ρ
Π°ΡΠ΄ΠΊΠΎΠ΄ΠΈΡΡ Dispatchers. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Coroutines Π²ΠΎ ViewModel. Google ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΠ»ΡΡΠΎΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΡΠ° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ· ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»Ρ ΡΡΠ΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π° ΠΎΠ±ΡΡΡΠΊΠΈ Ρ 3 ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ Dispatchers, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΠ΄ΠΎΠ±Π½Π΅Π΅.
πΉsuspend-ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ withContext, Π³Π΄Π΅ Π½Π°Π΄ΠΎ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΡΠΎΠΊ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ. Π₯ΠΎΡΠΎΡΠΈΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, Π½ΠΎ Ρ Π½Π΅ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π» Π΅Π³ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
πΉViewModel Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π·Π° Coroutines. ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½: Π½Π΅Π»ΡΠ·Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ suspend-ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎ View, Π³Π΄Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ· Π½Π΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΡΠ°Π²ΠΈΠ»ΡΠ½Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΈΡ
ΡΠ΅Π»Π΅ΠΉ Flow ΠΈΠ»ΠΈ LiveData.
πΉΠ½Π΅ Π΄Π΅Π»Π°ΠΉΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΡΠΈΠΏΡ ΠΈΠ· ViewModel, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ MutableStateFlow ΠΈΠ»ΠΈ MutableLiveData. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΊΠ°ΠΊΠΈΡ
-ΡΠΎ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· View.
πΉΡΠ»ΠΎΠΈ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ Π΄Π°Π½Π½ΡΡ
Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠ»ΠΈ suspend-ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠ»ΠΈ Flow. ΠΠ»ΡΡΡΡ Π·Π° ΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ ΠΏΡΠΎΡΠ°ΡΠΊΠΈΠ²Π°ΡΡ LiveData Π²ΠΎ Π²ΡΠ΅ ΡΠ»ΠΎΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π³Π΄Π΅ Π΅Ρ ΡΠΈΡΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ.
πΉΠΈΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ GlobalScope. ΠΡΠΎ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ debug ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Β«ΠΏΠ΅ΡΠ΅ΠΆΠΈΡΡΒ» ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΡΠ°Π½, ΡΠΎ ΡΡΠΎΠΈΡ Π·Π°Π΄ΡΠΌΠ°ΡΡΡΡ ΠΎ scope, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠΎΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ, ΠΆΠΈΠ²ΡΡΠΈΠΌ Π΄ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΡΠ°Π½.
πΉΠ½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΏΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ suspend-ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ try-catch, Ρ
ΠΎΡΡ ΠΌΠ½Π΅ Π±ΠΎΠ»ΡΡΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ CoroutineExceptionHandler.5 112
ββΠ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Ρ Π½Π°Ρ 8 ΠΌΠ°ΡΡΠ° β ΠΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠΉ ΠΆΠ΅Π½ΡΠΊΠΈΠΉ Π΄Π΅Π½Ρ.
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΡ Π²ΡΠ΅Ρ
ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² ΠΆΠ΅Π½ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»Π° Ρ ΡΡΠΈΠΌ ΠΏΡΠ°Π·Π΄Π½ΠΈΠΊΠΎΠΌ, ΠΆΠ΅Π»Π°Ρ ΡΡΠΏΠ»ΠΎΠΉ Π²Π΅ΡΠ½Ρ, ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠΎΠ² ΠΈ Π»ΡΠ±Π²ΠΈ.
ΠΡ Π° ΠΏΠ°ΡΠ½ΠΈ β Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΠΎΠ·Π΄ΡΠ°Π²ΠΈΡΡ Π²Π°ΡΠΈΡ
ΠΌΠ°ΠΌ, ΠΆΡΠ½ ΠΈ Π΄Π΅Π²ΡΡΠ΅ΠΊ Ρ ΡΡΠΈΠΌ ΠΏΡΠ°Π·Π΄Π½ΠΈΠΊΠΎΠΌ, ΠΏΡΡΡΡ ΡΠ»ΡΠ±Π½ΡΡΡΡ.
Π Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠΆΠ΅ ΠΏΡΠΎΠ³ΠΎΠ»ΠΎΡΡΠ΅ΠΌ, ΡΡΠΎ Π»ΡΡΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄Π°ΡΠΊΠ°?
