Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Kotlin Π² ΡΡΠ°ΡΡΠ°ΠΏΠ°Ρ ΠΈ ΡΠ½ΡΠ΅ΡΠΏΡΠ°ΠΉΠ·Π΅ / Π₯Π°Π±Ρ
Disclaimer: Π― Π½Π΅ ΠΈΠΌΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ JetBrains, Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Ρ Π΄Π΅Π½Π΅Π³ ΠΎΡ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Kotlin ΠΈΠ»ΠΈ ΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ. ΠΠ΅ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» β ΡΡΠΎ Π»ΠΈΡΡ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΅Π³ΠΎ Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ°.
ΠΡΠ±ΠΎΡ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° (ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°) ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΏΡΠΎΠ΄ΠΈΠΊΡΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΈ ΡΡΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ²ΠΎΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, Π²Π»ΠΈΡΡΡΠΈΠ΅ Π½Π° Π²ΡΠ±ΠΎΡ. Π― Π΄Π°Π»Π΅ΠΊ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ± ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ Ρ ΠΎΠ»ΠΈΠ²Π°Ρ Π½Π° ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ ΠΊΡΡΡΠ΅ β ΡΠ·ΡΠΊΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ²ΠΎΡ Π½ΠΈΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ Π²ΡΠ±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ Kotlin ΠΈ Java Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Kotlin ΠΏΠΎΠΊΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Java ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° ΠΈ ΡΠ°Ρ Π°ΡΠ°.
ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠΆΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Java Π·Π°Π½ΡΠ» ΠΎΠ³ΡΠΎΠΌΠ½ΡΡ ΡΠ°ΡΡΡ ΡΡΠ½ΠΊΠ° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎΠΌΠ°Π½Π΄Ρ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΊΠ°ΠΊ Π² ΡΡΠ°ΡΡΠ°ΠΏΠ°Ρ , ΡΠ°ΠΊ ΠΈ Π² ΡΠ½ΡΠ΅ΡΠΏΡΠ°ΠΉΠ·Π΅, ΠΏΠΎ ΠΈΠ½Π΅ΡΡΠΈΠΈ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²ΡΠ±ΠΈΡΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΈΠΌΠ΅Π½Π½ΠΎ Java. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π»ΠΈΡΡ ΠΊ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΊΠΎΠ΄Π°.
Π ΡΡΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΡΠ²ΠΎΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ, Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΠΎΠΏΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Ρ Java Π½Π° Kotlin ΠΊΠ°ΠΊ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΡΡΠ°ΡΡΠ°ΠΏΠ°, ΡΠ°ΠΊ ΠΈ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΊΡΡΠΏΠ½ΠΎΠ³ΠΎ ΡΠ½ΡΠ΅ΡΠΏΡΠ°ΠΉΠ·-ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Kotlin ΠΏΡΠΎΡΠΈΠ² Java
ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· Π΄Π΅ΡΡΡΠΊΠΎΠ²-ΡΠΎΡΠ΅Π½ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΡΠ·ΡΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π² Kotlin ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΠΊΠΈΡ ΠΆΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π² Java, Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²ΡΠΈΠ³ΡΡΡ ΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π³Π»ΡΠ±ΠΆΠ΅.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Java Π·Π°ΡΠΎΠ΄ΠΈΠ»Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ C++. ΠΠΎΡΡΠΎΠΌΡ Π² Π½Π΅ΠΉ ΡΡΠ²ΡΡΠ²ΡΠ΅ΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎΠ΅ Π΅Π³ΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π΅Π³ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°ΠΌΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π·Π° 25 Π»Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ Java, ΠΎΠ½Π° ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π»Π° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ²Π°ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠΎΠ² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π»ΠΈ Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ ΡΠΈΠΏΠ° async
, Ρ ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ·ΡΠΊΠ° (ΡΠΎΡΠΊΠΈ Ρ Π·Π°ΠΏΡΡΠΎΠΉ, ΡΠΊΠΎΠ±ΠΊΠΈ ΠΈ ΠΏΡ.), Oracle Ρ
ΡΠ°Π½ΠΈΠ»Π° ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²Π΅ΡΠ½ΠΎΡΡΡ «ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ», ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ Π»ΠΈΡΡ ΠΊ ΠΌΠΎΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΡΡΠ°ΡΠ΅Π²Π°Π½ΠΈΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°.
ΠΠ΅ΡΠ°Π»ΡΠ½ΠΎ ΡΠΎ, ΡΡΠΎ ΡΠ°Π·ΡΡΠ² Π»ΠΈΡΡ Π½Π°ΡΠ°ΡΡΠ°Π΅Ρ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΏΠΎΠΏΡΡΠΊΠΈ Π΅Π³ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Oracle. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°ΡΠ°-ΠΊΠ»Π°ΡΡΡ Π² Kotlin ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π² ΡΠ°ΠΌΡΡ ΡΠ°Π½Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ , Π° Π½Π΅ΠΊΠΈΠΉ ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ Π² Java ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π»ΠΈΡΡ Π² 14 Π²Π΅ΡΡΠΈΠΈ, ΠΏΠΎΠ»Π°Π³Π°Ρ, ΠΊΠ°ΠΊ ΡΠ°Π· ΠΏΠΎΠ΄ Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΠΈ Ρ JetBrains.
Kotlin, Π½Π°ΠΏΡΠΎΡΠΈΠ², ΡΡΡΠ΅ΠΌΠΈΠ»ΡΡ Π²ΠΎΠ±ΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ Π²ΡΠ΅ ΡΠ°ΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΎΡ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠΎΠΏΠ΅ΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ Ρ Java. ΠΠΎΡΡΠΎΠΌΡ, ΡΡΠ°Π²Π½ΠΈΠ²Π°Ρ Java ΠΈ Kotlin, ΠΌΠ½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ ΡΠΎ ΡΡΠ°ΡΡΠΌ Π΄ΠΎΠ±ΡΡΠΌ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ ΠΏΠ°ΡΠΎΠ²ΠΎΠ·ΠΎΠΌ Ρ Π΅Π³ΠΎ ΡΡΠ³ΡΠ½Π½ΡΠΌΠΈ ΠΏΠΎΡΡΠ½ΡΠΌΠΈ (Java) ΠΈ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΌ Ρ Π΅Π³ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ Π°ΡΠ΄ΠΈΠΎΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ³ΠΎΠ½ΠΊΠΎΠΉ, Ρ ΡΠΎΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΡΡΠΊΠ°ΠΌΠΈ Π΄Π²Π΅ΡΠ΅ΠΉ ΠΈ ΠΏΡΠΎΡΠΈΠΌΠΈ «Π½Π°Π²ΠΎΡΠΎΡΠ°ΠΌΠΈ» (Kotlin).
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ «Π²ΠΎΠ·ΠΈΡΡ Π»Π΅Ρ Π² Π‘ΠΈΠ±ΠΈΡΠΈ» Π²Π΄Π°Π»ΠΈ ΠΎΡ ΡΠ΅Π»Π΅Π½ΠΈΠΉ ΠΈ Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ Π±Π΅Π½Π·ΠΈΠ½Π°, ΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠ°ΡΠΎΠ²ΠΎΠ· Π²Π°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π»ΡΡΡΠ΅. ΠΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π²ΡΠ΅ ΠΆΠ΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π½Π΅ Π² ΡΡΠΎΠ»Ρ ΡΠΊΠ·ΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΠ»ΠΎΠ²ΠΈΡΡ
. ΠΠΎΡΡΠΎΠΌΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π½Π° Kotlin ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ°Π·Π° Π² 2-3 ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π΅Π΅, Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎΡΠΈΡΠ°Π΅ΠΌΡΠΉ, Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ Π² ΠΏΠ»Π°Π½Π΅ Π·Π°ΡΠΈΡΡ ΠΎΡ NullPointerException
, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Kotlin ΡΠ½ΠΈΠΆΠ°ΡΡ Π² 2 ΡΠ°Π·Π° Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°Π³ΠΎΠ², Π° Π² ΠΈΡΠΎΠ³Π΅, ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Π²Π»Π°Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠΌ.
Π― Π»ΠΈΡΡ Π²ΠΊΡΠ°ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Ρ ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Kotlin ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ, Π½ΠΎ ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΡΡΠ΄ΠΎΠΌ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡΡΡ Π² ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΌ Java.
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎΠΊΡΠ°ΡΠ°ΡΡΠΈΡ Π±ΠΎΠΉΠ»Π΅ΡΠΏΠ»Π΅ΠΉΡ: data class, getters&setters β Π² ΡΠ°Π·Ρ ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π½Π½Π°Ρ ΠΈ ΡΠ·Π°Π±Π΅Π»ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ»Π°ΡΡΠΎΠ²: Π²ΠΌΠ΅ΡΡΠΎ HashMap, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Map (ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΡΠΉ) ΠΈ MutableMap (ΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΡΠΉ) β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ Π²Ρ ΠΎΠ΄ΠΈΡΡ Π² ΡΠ·ΡΠΊ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ ΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° Π±ΠΈΠ·Π½Π΅ΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, Π° Π½Π΅ Π½Π° ΡΠΏΠΎΡΠΎΠ±Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΡΠΌΠΎ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ ΠΈΠ΄ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°ΡΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡ
null
:var str: String = "" str = null // ΠΠ΄Π΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π° Π½Π΅ runtime var nullableStr: String? = null // Π° ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ
β ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡΠΌ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ.
ΠΠ° ΡΡΠΎΠ²Π½Π΅ ΡΠ·ΡΠΊΠ° ΠΈΠ΄Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π² Python ΠΈ JS ES6 β ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Java.
Kotlin Multiplatform β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Kotlin ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ JVM, JS, Native (C/C++, Object C) β Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°ΠΌΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Serverless.
Domain Specific Language (DSL) β Π΄Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ ΠΈ Π»Π΅Π³ΠΊΠΎΡΠΈΡΠ°Π΅ΠΌΡΡ Π·Π°ΠΌΠ΅Π½Ρ Π±ΠΈΠ»Π΄Π΅ΡΠ°ΠΌ.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° Kotlin
ΠΡΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Kotlin. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠΉΠ΄Π΅ΠΌΡΡ ΠΏΠΎ Π½ΠΈΠΌ.
ΠΠ΄Π΅ Π²Π·ΡΡΡ Kotlin ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²?
Kotlin Ρ ΠΎΡΡ ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ, Π½ΠΎ ΠΎΠ½ ΡΠΆΠ΅ Π·Π°Π²ΠΎΠ΅Π²Π°Π» Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π½ΠΈΡΡ. Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ², Π·Π½Π°ΠΊΠΎΠΌΡΡ Ρ Kotlin Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π° ΡΡΠ½ΠΊΠ΅. Π‘ΠΈΠ»ΡΠ½ΠΎ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ ΡΡΠΎΠΌΡ ΡΠΎ, ΡΡΠΎ Π΄Π»Ρ Android Kotlin ΡΡΠ°Π» ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π»ΡΠ±ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, Π·Π½Π°ΠΊΠΎΠΌΡΠΉ Ρ Java, Π²ΠΏΠΎΠ»Π½Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΈ Π±ΡΡΡΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π½Π° Kotlin (ΡΠΌ. ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΎΠΏΡΠΎΡ).
Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²?
Kotlin ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΡΡ Π½Π° Π±Π°Π·Π΅ Java ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π½ΠΈΠΌ Π½Π° 100%. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° Π½Π° Π½Π΅Π³ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΡΡΡΡ. ΠΠ°ΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π° Kotlin ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π΄Π½Ρ. ΠΠ°Π·ΠΎΠ²ΡΡ
ΠΎΡΠ»ΠΈΡΠΈΠΉ Π½Π΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·ΡΠΊΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, if
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΡΠ°ΠΌ, ΠΈ ΡΠ°ΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² Kotlin Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ:
val x: Int = if (a == 1) 2 else 3
Π‘ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΎΠ²ΡΠ΅ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ, Π½ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΎΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π΅Π΅ ΠΈΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ Kotlin, ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°ΡΡ ΠΊΡΡΡ Π»Π΅ΠΊΡΠΈΠΉ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π°Π΄ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΠΎΡΠ»ΠΈΠ½ΠΎΠΌ Π² ΡΡΠΈΠ»Π΅ Java, Ρ.Π΅. Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΡΠ·ΡΠΊΠ°. ΠΠ»Ρ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Kotlin Ρ Π΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΡΡ. ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠΈΡΡ Π²Ρ ΠΎΠ΄ Π² ΡΠ·ΡΠΊ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΠΏΡΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ΅Π²ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°ΡΡ Π»ΡΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π»ΠΈΠ±ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΡΡΡΡ.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΌΠΈΠ½ΠΊΠ° Π² ΡΠ²ΡΠ·ΠΈ Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠΌ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠΊΡΡΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Kotlin.
ΠΠ°ΠΊ Π±ΡΡΡ Ρ Π»Π΅Π³Π°ΡΠΈ ΠΊΠΎΠ΄ΠΎΠΌ?
Kotlin ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΎΠΏΠ΅ΡΠ°Π±Π΅Π»Π΅Π½ Ρ Java, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΡΠΌΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° Kotlin ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² Java. Π’Π°ΠΊΠΆΠ΅ Π² ΡΠ°ΠΌΡ Intellij Idea Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠ»Π°Π³ΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π° Π»Π΅ΡΡ ΡΠΌΠ΅Π΅Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΡΡΠΊΠΈ ΠΊΠΎΠ΄Π° (Π»ΠΈΠ±ΠΎ Π²Π΅ΡΡ ΡΠ°ΠΉΠ») ΠΈΠ· Java Π² Kotlin. ΠΠ°Π΄ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π°Π²ΡΠΎΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ Π½Π΅ ΡΡΠ°Π²Π½ΠΈΡΡΡ Ρ ΡΠ°Π±ΠΎΡΠΎΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ.
Π’Π°ΠΊΠΆΠ΅ Kotlin ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π° Java ΠΈ Kotlin Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ Π»ΠΈΠ±ΠΎ Π½Π° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, Π»ΠΈΠ±ΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΠ°Π·Π½Π΅ΡΡ ΠΈΡ
Π² src/main/java
ΠΈ src/main/kotlin
. Π’ΡΡ ΠΎΠΏΡΡΡ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎ Π½ΡΠ°Π½ΡΠ°Ρ
: ΠΊΠΎΠ΄ ΠΈΠ· Java Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Ρ
Π²Π°ΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ΄Π΅ Π½Π° Kotlin, Π½ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈΠ»Π°Π³Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Kotlin Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΠΊΠΎΠΌΠΏΠ°Π½ΡΠΎΠ½Ρ ΠΈ Π΄Π»Ρ ΡΠΊΡΠΏΠΎΡΡΠ° Π² Java ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @JvmStatic
.
ΠΠ°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π° Kotlin Π±ΡΠ²Π°Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΄ΡΠ±Π»ΠΈΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ Java ΠΈ Π΄Π»Ρ Kotlin. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄Π²Π΅ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π΅Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½Π° Java ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² Kotlin, Π° Π΅ΡΠ΅ Π»ΡΡΡΠ΅ ΡΡΠ°Π·Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅ Π² Kotlin ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ Π»Π΅Π³Π°ΡΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΎΠΉ.
Π£ Π½Π°Ρ ΡΡΠ°ΡΡΠ°ΠΏ, Π·Π°ΡΠ΅ΠΌ Π½Π°ΠΌ Kotlin?
ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ Π΄Π»Ρ ΡΡΠ°ΡΡΠ°ΠΏΠΎΠ² ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π°ΠΆΠ΅ Π½Π΅ Java, Π° ΡΠ°ΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΊΠ°ΠΊ PHP, Python, JavaScript (NodeJS). Π ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΠ»ΡΡΠ°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ, Π½ΠΎ Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅. ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ΅Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΠ½ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΡΡ , ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΡΠΎΠ³Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° ΡΡΠ°ΠΏΠ΅ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π° Π½Π° ΡΡΠ°ΠΏΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² IDE. ΠΡΠΈΠ±ΠΊΠΈ, Π΄ΠΎΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ², Π²ΡΠ»ΠΈΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΡΡΠΎΠΈ Π² Π±ΠΎΠ΅Π²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΏΡΠΈΠ²ΠΎΠ΄Ρ ΠΊ ΡΠ±ΡΡΠΊΠ°ΠΌ. ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²Π·Π²Π΅ΡΠΈΡΡ Π²ΡΠ΅ Π²ΡΠ³ΠΎΠ΄Ρ ΠΎΡ Π±ΡΡΡΡΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΡΠ·ΡΠΊΠ°Ρ Π±Π΅Π· ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠ±ΡΡΠΊΠΈ ΠΎΡ ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ Π±ΡΡΡΠ΅Ρ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ΄Π°ΠΆΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡΠ΄Ρ PHP, Π° Π·Π°ΡΠ΅ΠΌ ΠΌΠΈΠ³ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Java/Kotlin. ΠΠΎΠΉ ΠΎΠΏΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ΄Π°ΠΆΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π±Π΅Π· ΠΊΠΎΠ΄Π° Ρ ΠΎΡΡ Π½Π° PHP, Ρ ΠΎΡΡ Π½Π° Kotlin. ΠΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π΄Π°ΡΡ ΠΏΡΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠΈ ΡΡΠ°ΡΡΠ°ΠΏΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ Π±ΡΠ΄ΡΡ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ΡΠ°.
ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠ»ΠΎΡ ΠΎ. ΠΠΎ PHP, Python, JS Π΄Π°ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ΅ΠΌ Java/Scala/Kotlin. Π ΡΠ΅ΠΌ Ρ ΡΠΆΠ΅ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΡΠ΅ΠΌ Ρ ΡΠΆΠ΅ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π΄Π°Π»ΡΡΠ΅, ΠΏΡΠΈΠ²ΠΎΠ΄Ρ ΠΊ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΡΡΡΠ»ΡΠΌ. Π― ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ ΡΠΎ ΡΡΠ°ΡΡΠ°ΠΏΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°ΡΡΠΎΠ²Π°Π» Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, Π½ΠΎ Π·Π° 7 Π»Π΅Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΈ Π½Π΅ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄ Π½Π° Python. Π‘ΠΈΡΡΠ°ΡΠΈΡ ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ ΠΏΠ°ΡΠΎΠ²ΠΎΠΉ: Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ Π·Π°ΠΊΡΡΡΡ ΠΈΠ·-Π·Π° Π½Π°Π»ΠΈΡΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ², ΠΈ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΠΈΠ·-Π·Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π° ΡΡΠΎ Π±ΡΠ΄ΠΆΠ΅ΡΠ° ΡΠΆΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ.
ΠΠΎΡΡΠΎΠΌΡ ΠΌΠΎΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ Π΄Π»Ρ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΡΡ ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Kotlin. Π£ΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π° Π½Π° ΡΡΠ½ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π° Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°ΠΌΠΈ ΡΠΈΠΏΠ° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ±ΠΎΡΠ° MVP, Π³ΠΈΠ±ΠΊΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ ΠΈ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² Π½Π° ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Kotlin
ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π» Π²ΡΡΠ΅, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Kotlin Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Java, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΡΠΈ, Π² ΠΈΡΠΎΠ³Π΅ Π²Π»ΠΈΡΡΡ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π½Π° ΠΎΠ±ΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎ, Ρ Π»ΠΈΡΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ.
ΠΠ΅Π½ΡΠ»Π΅Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠ°
Kotlin ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΎΡΠ½Π΅ΠΉΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ null
. ΠΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΡΡΠΎ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ nullable
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ β ΠΈΡ
Π²Π΅Π΄Ρ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π½Π° null
. Π₯ΠΎΡΡ ΡΠ°ΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ Π² Kotlin, Ρ
ΠΎΡΠ΅ΡΡΡ ΠΈΠ·Π±Π΅Π³Π°ΡΡ Π΅Π΅ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΡΡΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠΎΠ² Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΏΡΡΡΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
data class SomeClass( var x: String = "", var y: Int = -1 ) { companion object { val NONE = SomeClass() } }
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ null
.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½ΡΠ»Π΅Π²ΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² API ΠΈΠ»ΠΈ Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ, ΡΡΠΎ Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅Ρ Π²ΡΠ΅Π³Π΄Π° non-nullable
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΊ ΡΠ°Π· Π·Π΄Π΅ΡΡ ΠΈ ΠΈΠ³ΡΠ°Π΅Ρ ΡΠ²ΠΎΡ ΡΠΎΠ»Ρ DDD (domain driven design). ΠΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π΅Π»Π°Π΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ DTO-ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π² ΡΠ΅Π±Π΅ Π½ΡΠ»Π΅Π²ΡΠ΅ ΠΏΠΎΠ»Ρ, Π° Π² ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΡ ΠΈΡ
ΠΌΠ°ΠΏΠΈΠΌ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΠΌΠΈ:
data class StorableObject( var id: String? = null, var data: String? = null ) { // ΠΠ΅ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΠΏΠ΅ΡΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ constructor(wm: WorkModel): this( id = wm. id.takeIf { it != -1 }?.toString(), data = wm.data.takeIf { it.isNotBlank() } ) // ΠΠ΅ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΠΏΠ΅ΡΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ fun toWorkModel(): WorkModel = WorkModel( id = id?.toInt() ?: -1, data = data ?: "" ) }
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΎΡΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Null-safety Π² Kotlin ΡΡΠΈΠΌΡΠ»ΠΈΡΡΠ΅Ρ Π½Π°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡ DDD, ΡΡΠΎ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π΅Π»Π°Π΅Ρ Π½Π°Ρ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ, Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΌ ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ API ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ.
Kotlin Multiplatform (KMP)
KMP β ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠΎΡΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΠΈ Π΅Π³ΠΎ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΠΏΡΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ JS ΠΈ Native ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, KMP Π²ΠΏΠΎΠ»Π½Π΅ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΡΠ΅Π±Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ API Π΄Π»Ρ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ Single Page Application (SPI) ΡΠΈΠΏΠ° React, Angular, Vue, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎΠ΄ Android ΠΈ iOS.
ΠΠΎ Π»ΠΈΡΠ½ΠΎ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π½Π° Dart/Flutter, Π° Ρ ΡΡΠΈΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· KMP ΠΏΠΎΠΊΠ° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠΌ Π½Π° Kotlin ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΠΎΠΌ Π½Π° Dart ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ OpenAPI, AsyncAPI, gRPC ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ².
ΠΠ° Π±ΡΠΊΠ΅Π½Π΄Π΅ KMP ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Serverless Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Google Cloud Functions, Yandex Cloud Functions, AWS Lambda ΠΈ Π΄Ρ. Π°Π½Π°Π»ΠΎΠ³ΠΎΠ². ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π±Π΅ΡΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² Π½ΠΈΡ Π²Π°ΠΆΠ½Π° ΡΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ΄ Π½Π° Python ΠΈΠ»ΠΈ NodeJs ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΠΊΠ»ΠΈΠΊΠ°, ΡΠ΅ΠΌ Π½Π° JVM. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ KMP ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² JavaScript ΠΈΠ»ΠΈ Π² Native executable, ΡΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠ°.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Kotlin
ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΠΎΠ²ΠΎΠ³ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ°. ΠΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΌΡΠΌ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π΄Π»Ρ Kotlin. Ktor, ΠΏΡΠΈ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°Ρ , Π½Π΅ Π΄ΠΎΡΡΠΈΠ³ ΡΡΠΎΠ²Π½Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°. Π― ΠΊΠ°ΠΊ-ΡΠΎ Π²ΠΈΠ΄Π΅Π» Π½Π°Π±ΠΎΡ Π² Jetbrains ΡΡΠΎΠ½Ρ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π²ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π±ΡΠ΄Π΅Ρ Π°Π½ΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½. ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Google Flutter, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ·ΡΠΊ Dart. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Dart ΠΊΠ°ΠΊ Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅, ΡΠ°ΠΊ ΠΈ Π½Π° Π±ΡΠΊΠ΅Π½Π΄Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΠΠΎΡΠ»ΠΈΠ½Π°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Ρ ΠΎΡΡ ΠΊΡΠ°ΡΠΊΠΎ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π½Π°ΡΡΠΎΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠΈ.
- Kotlin β ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΡΡ Java ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ. ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΎΠΆΠΈΠ΄Π°Ρ, ΡΡΠΎ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠ΅ 5 -10 Π»Π΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΠ΅ ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Ρ ΡΡΠ½ΠΊΠ°.
- ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° Kotlin Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π΅ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»ΠΈΠΌΡΡ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΠΉ, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π΅Π³ΠΎ ΡΠΌΠ΅ΡΡΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π½Π° Π»Π΅Π³Π°ΡΠΈ-ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΡΠ°ΠΊ ΠΈ Π½ΠΎΠ²ΡΡ ; ΠΊΠ°ΠΊ Π² ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΡΡ , ΡΠ°ΠΊ ΠΈ Π² ΡΡΠ°ΡΡΠ°ΠΏΠ°Ρ .
- ΠΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Kotlin Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ, Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ ΠΎΠΏΡΡ ΡΡΠ΅Π²Π°Ρ Java-ΡΡΠΈΠ»Π΅ΠΌ, ΡΡΠΎ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΡΠ°, ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ², Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΡΡΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Kotlin ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π²Π»ΠΈΡΡΡ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π΄Π΅Π»Π°ΡΡ Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠΉΠ½ΠΎΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ Π² Java, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Kotlin Multiplatform.
- ΠΠΎΠΊΠ° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π½Π° Kotlin. ΠΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅ΡΡΡ ΠΠΎΡΠ»ΠΈΠ½Ρ Dart, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π° Π²ΡΠ΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΠΊΠ°ΠΊ Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅, ΡΠ°ΠΊ ΠΈ Π½Π° Π±ΡΠΊΠ΅Π½Π΄Π΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Kotlin β ΠΡΡΠ½Π°Π» Β«ΠΠΎΠ΄Β»
Kotlin β ΡΡΠΎ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ JetBrains, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π° 9 Π»Π΅Ρ ΠΏΠΎΡΠ΅ΡΠ½ΠΈΠ» Java ΠΈ ΡΡΠ°Π» Π²Π°ΠΆΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π°Π½Π΄ΡΠΎΠΈΠ΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π Π°Π·Π±Π΅ΡΡΠΌΡΡ, ΡΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ³ΠΎ Π² Kotlin, ΠΊΠ°ΠΊΠΈΠ΅ Ρ Π½Π΅Π³ΠΎ ΡΠΈΡΠΊΠΈ ΠΈ Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ.Β Β
π€ ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ·ΡΠΊ Π²ΠΌΠ΅ΡΡΠΎ Java
ΠΠ° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π΅ΡΡΡ Π΄Π²Π° ΠΎΡΠ²Π΅ΡΠ°.Β
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ: Π² 2017 Π³ΠΎΠ΄Ρ ΡΠ·ΡΠΊΠΎΠΌ Kotlin ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΎΠΊΠΎΠ»ΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΠΈ ΠΈΠΌ Π½Π΅ Ρ Π²Π°ΡΠ°Π»ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π½Π° ΠΠ½Π΄ΡΠΎΠΈΠ΄Π΅. ΠΡΠ³Π» ΠΏΠΎΡΡΠ» Π½Π°Π²ΡΡΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΄Π΅Π»Π°Π» Kotlin ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π½Π° ΠΠ½Π΄ΡΠΎΠΈΠ΄Π΅.Β
ΠΠΎΠ³Π°Π΄ΠΊΠΈ ΠΈ ΡΠ»ΡΡ ΠΈ: Ρ 2010 Π³ΠΎΠ΄Π° ΠΡΠ³Π» ΡΡΠ΄ΠΈΡΡΡ Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Oracle ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Java Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΠ½Π΄ΡΠΎΠΈΠ΄. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ:Β
Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΠ½Π΄ΡΠΎΠΈΠ΄Π° Π»Π΅ΠΆΠ°Π»Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Dalvik,Β
Dalvik ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Apache Harmony,Β
Apache Harmony β ΡΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Java, Π½Π° ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΡΠ³Π» Π½Π΅Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ.
Π 2010 Π³ΠΎΠ΄Ρ Oracle ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»Π° ΠΎΡ ΠΡΠ³Π» ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π½ΡΡ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΡΡΠΈΠΆΠ΄Ρ Π²ΡΠΈΠ³ΡΡΠ²Π°Π»Π° ΡΡΠ΄: Π² 2012, 2014 ΠΈ 2015-ΠΌ. ΠΠ΅Π»ΠΎ Π½Π΅ Π·Π°ΠΊΡΡΠ²Π°Π»ΠΎΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΡΠ³Π» ΠΎΡΠΊΠ°Π·ΡΠ²Π°Π»ΠΈΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ»Π°ΡΠΈΡΡ. Π 2016 Π³ΠΎΠ΄Ρ ΠΈΡΠΊ Π²ΡΡΠΎΡ Π΄ΠΎ Π΄Π΅Π²ΡΡΠΈ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠ΄ Π²ΡΡΠ°Π» Π½Π° ΡΡΠΎΡΠΎΠ½Ρ ΠΡΠ³Π». ΠΠ΅Π»ΠΎ Π²ΠΈΡΠΈΡ Ρ 2017 Π³ΠΎΠ΄Π°, Π° ΠΡΠ³Π» ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π²ΡΡ Π°Π½Π΄ΡΠΎΠΈΠ΄-ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Ρ Java Π½Π° Kotlin.Β
β ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°Β
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ Java. Kotlin ΠΈ Java ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Ρ ΡΠ·ΡΠΊΠ° Kotlin Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΄Π°ΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ ΠΎΠ±ΡΡΠ½ΠΎΠΉ Java-ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Java Π½Π΅Π²Π°ΠΆΠ½ΠΎ, ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄.
Π£ΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ ΡΡ Π΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Java ΠΈ Kotlin
ΠΡΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. Kotlin β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ ΡΠ·ΡΠΊ Π±Π΅Π· ΠΊΡΡΠΊΠΎΠ² ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:Β
Π ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Ρ Kotlin ΠΏΡΠΎΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉΠ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° Kotlin ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΊΠΎΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΠΊΠΎΠ΄ Π½Π° Java
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. Π―Π·ΡΠΊ Kotlin ΠΈ Π΅Π³ΠΎ ΡΡΠ΅Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β ΡΡΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π±Π°Π·Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.Β
ΠΠ° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² Kotlin ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ null-Π·Π°ΡΠΈΡΠ°: Kotlin Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ null-Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ NullPointerException β ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΠΎΠΉ Java-ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ.
β ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈΒ
ΠΠΈΠ·ΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΆΠ°Π»ΡΡΡΡΡ Π½Π° Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Kotlin ΡΡΡΡΠΏΠ°Π΅Ρ Java, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ Π»Π΅ΠΆΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° JVM β ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π²ΡΠΏΡΡΠ΅Π½Π½Π°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ ΡΠ·ΡΠΊ Java, Π° Π½Π΅ ΠΏΠΎΠ΄ Kotlin.
ΠΠ°Π»Π΅Π½ΡΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΡΠ·ΡΠΊΠ°. Kotlin Π²ΡΡ Π΅ΡΡ Π½Π΅ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ, ΠΊΠ°ΠΊ Java. ΠΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ, ΡΡΠΎ Kotlin β ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΡΠ³Π». Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΠΎΡΡΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΡΠ³Π» ΠΎΡΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΎΡ Π½Π΅Π³ΠΎ, ΠΏΡΠΈΠ΄ΡΠΌΠ°Π΅Ρ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΡΠ²ΠΎΡ Π²Π΅ΡΡΠΈΡ ΡΠ·ΡΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠΎΡΠΈΡΡΡ Ρ JetBrains. Β
ΠΠ°Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠΌΠΎΠ·ΠΈΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Kotlin: ΠΏΠΎΠ΄ Π½Π΅Π³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠΏΡΡΠΊΠ°ΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π° Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π² Π±Π°Π³-ΡΡΠ΅ΠΊΠ΅Ρ β Π½Π°ΠΏΠΈΡΠ°ΡΡ Π² ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ JetBrains, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π·Π°Π΄Π°Ρ, ΠΆΠ΄Π°ΡΡ ΠΈ Π½Π°Π΄Π΅ΡΡΡΡΡ Π½Π° Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.Β
Π ΡΠ΅Π½ΡΡΠ±ΡΠ΅ 2020 Π² Π±Π°Π³-ΡΡΠ΅ΠΊΠ΅ΡΠ΅ Kotlin ΠΎΠΊΠΎΠ»ΠΎ 40 000 Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΊΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎΡΡΠΈ. ΠΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π΄Π°Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄ΠΎΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ, Π½ΠΎ Π΅ΡΡΡ ΠΈ ΡΠ΅, ΡΡΠΎ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ΡΠ΅ΡΡΠ½Π½ΡΠΌΠΈ β Π² ΡΠ°ΠΊΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ ΠΈΡΠΊΠ°ΡΡ ΠΊΠΎΡΡΡΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠ·ΡΠΊ Ρ ΡΠ°Π·Π²ΠΈΡΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ.
ΠΠΎΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π·Π»ΠΎΠΉ
Π‘ 2002 Π³ΠΎΠ΄Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Java ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ½ΠΈΠΆΠ°Π΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π° Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅
ΠΠ»Ρ ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡΒ
Kotlin ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π±ΡΠΊΠ΅Π½Π΄Π° ΠΈ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ:Β
ΠΠ»Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Ρ JavaScript ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ HTML ΠΈ CSS-ΠΊΠΎΠ΄Π°.Β
ΠΠ»Ρ Π±ΡΠΊΠ΅Π½Π΄Π° ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Java ΠΈ Kotlin Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ Kotlin ΠΈ Java ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.Β
ΠΠ»Ρ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π² React, ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ HTTP API Π² Ktor ΠΈ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°Π½Π΄ΡΠΎΠΈΠ΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ iOS.Β
Google, Netflix, Twitter, Uber, Netflix ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π½Π° Kotlin. ΠΠ΅ΠΉΡΡ Π΅ΡΡΡ Π½Π° developer.android.com Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΡΡΠΎΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²Β».Β Β
ΠΠ½Π΄ΡΠΎΠΈΠ΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Kotlin-ΠΊΠΎΠ΄ΠΎΠΌ. ΠΡΡΠΎΡΠ½ΠΈΠΊ: developer.android.com
Π‘ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡΒ
ΠΠΎΡΠΈΡΠ°ΠΉΡΠ΅ Ρ Π½Π°Ρ ΡΡΠ°ΡΡΡ ΠΏΡΠΎ Java β ΡΡΠΎ ΡΠ·ΡΠΊ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈ Π² ΠΎΠ±ΠΎΠ·ΡΠΈΠΌΠΎΠΌ Π±ΡΠ΄ΡΡΠ΅ΠΌ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° Kotlin.Β
Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ IntelliJ IDEA ΠΈΠ»ΠΈ Android Studio. ΠΠ±Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β ΡΡΠΎ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ ΡΠ·ΡΠΊ Kotlin. IntelliJ IDEA Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°ΠΉΡΠΎΠ² ΠΈ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π° Android Studio β Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ Π°Π½Π΄ΡΠΎΠΈΠ΄. Β
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ EduTools β ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Kotlin. ΠΡΡΡ Π² IntelliJ IDEA ΠΈ Android Studio.Β ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎ ΡΠ·ΡΠΊΡ Kotlin. ΠΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ β ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π΅ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΠΎΡΠ·ΡΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ.
Π’Π΅ΠΊΡΡ ΠΈ ΠΊΠΎΠ΄
ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΠ°Π±Π°ΡΠΊΠΈΠ½
Π Π΅Π΄Π°ΠΊΡΠΎΡ
ΠΠ°ΠΊΡΠΈΠΌ ΠΠ»ΡΡΡ ΠΎΠ²
ΠΠΎΡΡΠ΅ΠΊΡΠΎΡ
ΠΡΠ° ΠΠΈΡ Π΅Π΅Π²Π°
ΠΠ»Π»ΡΡΡΡΠ°ΡΠΎΡ
ΠΠ°Π½Ρ ΠΠ΅ΡΠΊΠΎΠ²ΡΠΊΠΈΠΉ
ΠΡΡΡΡΠΊΠ°
ΠΠ°ΡΠ° ΠΡΠΎΠ½ΠΎΠ²Π°
ΠΠΎΡΡΠ°Π²ΠΊΠ°
ΠΠ»Π΅Π³ ΠΠ΅ΡΠΊΡΡΡΠ΅Π²
404: Π‘ΡΡΠ°Π½ΠΈΡΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°
Π‘ΡΡΠ°Π½ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΡΡΠ°Π»ΠΈΡΡ ΠΎΡΠΊΡΡΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΡΡΡΠ»ΠΊΠΈ. ΠΡ ΠΈΠ·Π²ΠΈΠ½ΡΠ΅ΠΌΡΡ Π·Π° Π»ΡΠ±ΡΠ΅ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²Π°.
Π§ΡΠΎ Ρ ΠΌΠΎΠ³Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΠΉΡΠ°Ρ?
ΠΡΠ»ΠΈ Π²Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΠΎΡΠ΅ΡΠ°Π΅ΡΠ΅ TechTarget, Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ! ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π²ΡΡΡΠ΅ΡΠ°Π΅ΠΌΡΡ. ΠΠΎΡ ΠΊΡΠ΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΉΡΠΈ ΠΎΡΡΡΠ΄Π°:
ΠΠΎΠΈΡΠΊ
- ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ²ΡΠΆΠΈΡΠ΅ΡΡ Ρ Π½Π°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ, ΡΡΠΎ ΡΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠΎΠ»Π΅ Π²ΡΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΏΠΎΠΈΡΠΊ
- ΠΠ°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° Β«Π Π½Π°ΡΒ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ, WhatIs. com.
- ΠΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π°ΡΡ Π΄ΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π°ΡΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΌΡ
ΠΡΠΎΡΠΌΠΎΡΡ ΠΏΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ
Π‘Π΅ΡΡ
-
ΠΏΠΎΡΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡΠΠΎΡΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ β ΡΡΠΎ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ …
-
Π³ΡΠ°Π½ΠΈΡΠ° ΡΠ»ΡΠΆΠ±Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° (SASE)ΠΠΎΠ³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ SASE ΠΈ ΠΏΡΠΎΠΈΠ·Π½ΠΎΡΠΈΡΡΡ ΠΊΠ°ΠΊ Β«Π΄Π΅ΡΠ·ΠΊΠΈΠΉΒ», ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΡΠ΅ΡΡ ΠΈ …
-
ΠΡΠΎΡΠΎΠΊΠΎΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠΈ (NETCONF)ΠΡΠΎΡΠΎΠΊΠΎΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠΈ (NETCONF) β ΡΡΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° (IETF), ΠΊΠΎΡΠΎΡΡΠΉ …
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
-
ΡΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π·Π°Π½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ)ΠΠ°Π½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ β Π²ΡΠ΅ ΡΠ°ΡΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ Π·Π°Π½Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΡΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ . ..
-
ΡΠΎΠΊΠΎΠ²ΡΠΆΠΈΠΌΠ°Π»ΠΊΠ°Juice jacking β ΡΡΠΎ ΡΠΊΡΠΏΠ»ΠΎΠΉΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΡΠ°ΠΆΠ΅Π½Π½Π°Ρ Π·Π°ΡΡΠ΄Π½Π°Ρ ΡΡΠ°Π½ΡΠΈΡ USB ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊ Π½Π΅ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ.
-
Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ°ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ) Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ…
ΠΠ’-Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ
-
ΠΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠ΅ΡΠ° (ΠΡΠΈΠ½ΡΠΈΠΏΡ)ΠΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π²Π΅Π΄Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ β ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΡΠΌΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ …
-
ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ (LMS)Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ …
-
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ Π²Π΅ΠΊΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΏΠΎΡ Π° β ΡΡΠΎ ΠΈΠ΄Π΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π½Π΅ΠΉ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ Π½ΡΠ½Π΅ΡΠ½Π΅ΠΉ ΡΠΏΠΎΡ ΠΈ . ..
HRSoftware
-
Π°ΡΡΡΠΎΡΡΠΈΠ½Π³ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠ΄Π±ΠΎΡΠ° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»Π° (RPO)ΠΡΡΡΠΎΡΡΠΈΠ½Π³ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π°ΠΉΠΌΠ° (RPO) β ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° ΠΏΠΎΠΈΡΠΊ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ² Π½Π° ΡΠ°Π±ΠΎΡΡ …
-
ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ ΠΊΠ°Π΄ΡΠ°ΠΌ (HR)Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»Ρ β ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ ΠΊΠ°Π΄ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡΠ΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π»Π°Π½ΡΠ°ΠΌΠΈ, ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌ …
-
ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° β ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ°ΠΏΡ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π² …
ΠΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²
-
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Adobe ExperienceAdobe Experience Platform β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² (CXM) ΠΎΡ Adobe.
-
Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊ (ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊ ΠΠ)ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊ, ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΠ ΠΈΠ»ΠΈ ΡΠΈΡΡΠΎΠ²ΡΠΌ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΎΠΌ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ . ..
-
Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΌΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ΠΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΌΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ β ΡΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π½Π° ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈΠ»ΠΈ Π»ΠΈΠ΄ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ …
ΠΠ°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Kotlin | Kotlin Documentation
Kotlin β ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ, Π½ΠΎ ΡΠΆΠ΅ Π·ΡΠ΅Π»ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΈΠ·Π²Π°Π½Π½ΡΠΉ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠ°ΡΡΠ»ΠΈΠ²Π΅Π΅. ΠΠ½ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ΅Π½, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Java ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΠ΄Π½ΠΈΠΌΠΈΡΠ΅ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠΎΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ!
ΠΠ·ΡΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ Kotlin
ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡ Kotlin, Π½Π°ΡΠ½ΠΈΡΠ΅ Ρ ΡΡΠΈΡ ΡΡΠ΅Π±Π½ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ Kotlin.
ΠΡΠ»ΠΈ Kotlin β Π²Π°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ Ρ ΠΊΠ½ΠΈΠ³ΠΈ Atomic Kotlin ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ Kotlin Core ΠΎΡ JetBrains Academy.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Kotlin
Kotlin Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠΏΡΡΠΊ IntelliJ IDEA ΠΈ Android Studio.
ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠΈΡ
IDE, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Kotlin.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠ΅ ΠΌΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Kotlin
ΠΠΎΡ ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ°Π³ΠΈ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Kotlin.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ Ρ Π½ΡΠ»Ρ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ JVM Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² IntelliJ IDEA.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π½ΠΈΠΆΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ: 03
Π Π°Π·Π²ΠΈΡΠΎΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Ρ ΡΡΡΠΎΡΠ²ΡΠ°ΡΡΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π²Π΅Π±-ΡΠ»ΡΠΆΠ±Ρ RESTful Ρ ΠΏΠΎΠΌΠΎΡΡΡ Spring Boot.
Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Spring Boot ΠΈ Kotlin.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Spring Boot Ρ Kotlin ΠΈ RSocket.
ΠΠ΅Π³ΠΊΠΈΠΉ ΠΊΠ°ΡΠΊΠ°Ρ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Ρ Π² ΠΏΡΠΈΠ½ΡΡΠΈΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ HTTP API Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ktor.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°Ρ WebSocket Ρ Ktor.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ Π²Π΅Π±-ΡΠ°ΠΉΡ Ρ Ktor.
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Kotlin: Ktor Π½Π° Heroku.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Kotlin ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ . Π£Π·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π² Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Kotlin ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π²Π΅ΡΠ΅ΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Kotlin.
Π£Π·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Kotlin Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ:
ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΉ ΡΠ΅ΡΡ.
ΠΠ°ΠΊ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠ΄ Kotlin ΠΈ Java Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ Kotlin:
Slack: ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ ΠΊΠ°Π½Π°Π»Π°ΠΌ #getting-started, #server, #spring ΠΈΠ»ΠΈ #ktor.
StackOverflow: ΠΏΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ΡΡ Π½Π° ΡΠ΅Π³ΠΈ Β«kotlinΒ», Β«spring-kotlinΒ» ΠΈΠ»ΠΈ Β«ktorΒ».
Π‘Π»Π΅Π΄ΠΈΡΠ΅ Π·Π° Kotlin Π² Twitter, Reddit ΠΈ Youtube ΠΈ Π½Π΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π² Π½Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΠ΄Π΅ΡΡ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈ ΡΠ»ΡΡΡΠ°ΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin Multiplatform.
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ iOS ΠΈ Android:
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ Ρ Π½ΡΠ»Ρ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Android ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Android ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° iOS.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ, ΠΊΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΠΈ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ΅ΡΠΈ ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΡΠ΅Π±Π½ΠΈΠΊΠ° Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ktor ΠΈ SQLdelightΒ» ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΡΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π² ΠΎΠ±ΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
ΠΠ΅ΡΠ°Π»ΠΈ
ΠΡΠΎΡ
90 189
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ
Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π·Π΅Ρ
Coroutines
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π·ΡΡ
DateTime
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ
9 0189
SQLDelight
Π‘ΡΠΎΡΠΎΠ½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² ΡΠΏΠΈΡΠΊΠ΅, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ.
Π£Π·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Kotlin Multiplatform Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²:
Π£Π·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Kotlin Multiplatform.
ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½Π° GitHub.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΠΉΡΠ΅ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ.
Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ Kotlin Multiplatform ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Netflix, VMware, Yandex ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ .
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ Kotlin:
Π‘Π»Π΅Π΄ΠΈΡΠ΅ Π·Π° Kotlin Π² Twitter, Reddit ΠΈ Youtube ΠΈ Π½Π΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π² Π½Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Kotlin Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Android, ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ Google ΠΏΠΎ Π½Π°ΡΠ°Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Kotlin Π½Π° Android.
ΠΡΠ»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² Android ΠΈ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΡΡΠΈΡΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠΈΠΌ ΠΊΡΡΡΠΎΠΌ Udacity.
Π‘Π»Π΅Π΄ΠΈΡΠ΅ Π·Π° Kotlin Π² Twitter, Reddit ΠΈ Youtube ΠΈ Π½Π΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Kotlin. ΠΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ Π½Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ΄Π΅ΡΡ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ:
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ:
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π Π½Π΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌ JVM, JS ΠΈ Native, ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅ ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Maven.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:
Ktor
Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
900 09
Coroutines
DateTime
Π£Π·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.