Kotlin ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ : Kotlin Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ / Π₯Π°Π±Ρ
ΠΡΠ½ΠΎΠ²Ρ Kotlin. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ β Fandroid.info
ΠΡΠ½ΠΎΠ²Ρ ΡΠ·ΡΠΊΠ° ΠΠΎΡΠ»ΠΈΠ½
Π―Π·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡβββΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅ΠΉΡΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ. ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 30-40 Π»Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ°Π·ΡΠΎΡΠ»ΠΈΡΡ Π΄ΠΎ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΡΡ ΠΏΡΠ΅Π΄Π΅Π»ΠΎΠ², ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΠ°Π»ΠΎ ΠΊΡΠΎ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΠ±ΠΎΠ·ΡΠ΅ΡΡ ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΠ±ΡΡΠΌΠ΅. ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΡΠΎΡΠ»ΠΈ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΡΠ΅Π½ ΡΡΡΠΎΠΊ Π΄ΠΎ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΡΡΠΎΠΊ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ΅ΠΉΡΠ°Ρ Π² ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π½Π° ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΡΡ Β ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
- ΠΎΠ±ΡΠΊΠ½ΠΎΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ desktop-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ;
- web-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»ΡΡΡΡ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π½Π°Β ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡΒ ΡΠ°ΡΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΒ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅;
- ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ»Π°Π½ΡΠ΅ΡΠΎΠ², ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²;
- ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅Β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ²Π»ΡΡΡΠΈΠ΅ΡΡ ΡΠ°ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ;
- Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅Β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ²Π»ΡΡΡΠΈΠ΅ΡΡ ΡΠ°ΡΡΡΡ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ΅, Π±Π°Π½ΠΊΠΎΠΌΠ°ΡΠ°Ρ , ΡΡΠ°Π½ΠΊΠ°Ρ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠ±ΠΎΡΠΎΠ²).
Π―Π·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ Π²ΠΈΠ΄ΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ·ΡΠΊΠΈ Java ΠΈ Kotlin (ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Android), Π° ΡΠ°ΠΊΠΆΠ΅ Swift (ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ iOS).
ΠΠ° Π½Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ, ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Android Π½Π° ΡΠ·ΡΠΊΠ΅ Kotlin
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅Β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΠΈΡΡΡΡΡ Π½Π° ΡΠ·ΡΠΊΠ°Ρ C ΠΈΠ»ΠΈ C++. ΠΡΠΈ ΠΆΠ΅ ΡΠ·ΡΠΊΠΈ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡΒ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ Β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΠ·ΡΠΊ Java. ΠΠ»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ web-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ JavaScript, Π° Π² ΠΏΡΠΎΡΡΡΡ ΡΠ»ΡΡΠ°ΡΡ βββΡΠ·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ HTML. Web-ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠΏΡΡΡ-ΡΠ°ΠΊΠΈ Java (Π² ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ), Π° ΡΠ°ΠΊΠΆΠ΅ Python ΠΈ PHP (Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ ). ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΏΡΠΎΡΡΡΠ΅ desktop-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ , ΠΈ Π²ΡΠ±ΠΎΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠ±Π»Π°ΡΡΠΈ Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π°Π·Π²Π°ΡΡ ΡΠ·ΡΠΊΠΈ Java, C++, C#, Python, Visual Basic, Ruby, Swift.
Π ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΡΠΌΡΡΠ»Π΅ ΡΠ°ΠΌΡΠΌ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΌΡΠΌ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΠ°ΡΡ ΡΠ·ΡΠΊ Java. Java Π² ΡΠΈΡΠΎΠΊΠΎΠΌ ΡΠΌΡΡΠ»Π΅βββΠ½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊ, Π½ΠΎ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠΎΠ΄ ΡΠ°ΠΌΡΠΌΠΈ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΈ Π½Π° ΡΠ°Π·Π½ΠΎΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΡΡΠ΅. Π’Π°ΠΊΠ°Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ JavaβββΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΠ΅ΠΉ Java Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ. Java ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π±ΠΎΠ³Π°ΡΠ΅ΠΉΡΠΈΠΉ Π½Π°Π±ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠΎΡΠ΅ΠΌΡ Kotlin
ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠ·ΡΠΊ Java ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½ΡΠΌ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠΌ. ΠΡΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΠΏΠΎΡΠ²ΡΡΠ΅Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠ·ΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΏΡΡΠ½ΠΈΠΊΡ JavaβββΡΠ·ΡΠΊΡ ΠΠΎΡΠ»ΠΈΠ½. ΠΠΎΡΠ»ΠΈΠ½βββΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ, Π»ΡΠ³ΠΊΠΈΠΉ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ JVM ΠΈ Android Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΠΎ, ΠΏΡΠΎΡΡΠΎ ΠΈ Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ Java. ΠΠΎΡΠ»ΠΈΠ½ ΠΈ JavaβββΠΏΠΎΠ»Π½ΠΎΡΡΡΡΒ ΠΈΠ½ΡΠ΅ΡΠΎΠΏΠ΅ΡΠ°Π±Π΅Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΡΠΈΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° ΠΠΎΡΠ»ΠΈΠ½Π΅, ΡΠ°ΡΡΠΈΡΠ½ΠΎ Π½Π° Java. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΠΎΡΠ»ΠΈΠ½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Java-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΠΎΡΠ»ΠΈΠ½Π΅ ΠΏΠΈΡΡΡ ΡΠΎΡΠ½ΠΈ ΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π½ΠΈΡΠ° Π΅Π³ΠΎ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡβββΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Android ΠΈ, Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ, web-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
Π Ρ ΠΎΠ΄Π΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΠΎΡΠ»ΠΈΠ½Π° ΠΌΡ ΠΈΠ·ΡΡΠΈΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Java, Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΠΠΎΡΠ»ΠΈΠ½Π΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΡΠΏΡΠΎΡΡΠΈΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠΎΡΠ»Π΅ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ² ΡΠ·ΡΠΊΠ° Kotlin Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΠΎΡΠ²ΠΎΠΈΡΡ ΡΡΠΎΠΊΠΈ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π°Π½Π΄ΡΠΎΠΈΠ΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΠΎΡΠ»ΠΈΠ½.
Π’Π°ΠΊΠΆΠ΅ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ Π΅ΡΡΡ ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΠΊΡΡΡΡ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ Π°Π½Π΄ΡΠΎΠΈΠ΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΠΎΡΠ»ΠΈΠ½
Π§ΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π°
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΠΎΡΠ»ΠΈΠ½Π΅βββΠ·Π°ΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡΒ http://try.kotlinlang.org. ΠΠΌΠ΅ΡΡΠ°ΡΡΡ ΡΠ°ΠΌ Β«ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΠ°Β» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΡΠΌΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠ΅ ΠΊΡΡΡΡ.
ΠΠ°ΡΡΡΠ°Π±Ρ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π° Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅ΡΡΡΠ·Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π² ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ (IDE). Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Java Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° JDK, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΡΒ ΡΠ°ΠΉΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Oracle. ΠΠ΅ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Java Platform, Standard Edition, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ 8-Ρ Π΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ, Π½Π° ΡΠ΅Π½ΡΡΠ±ΡΡ 2018 Π³ΠΎΠ΄Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π΅Ρ Π²Π΅ΡΡΠΈΡβββJava SE 8u181.
Π‘ΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ IntelliJ IDEA
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ IntelliJ IDEA Community Edition, Π΅Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π±ΡΠ°ΡΡΒ ΠΎΡΡΡΠ΄Π°. Community Edition ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ, Π±Π°Π·ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Java, Kotlin, Scala, Groovy, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ Git, Mercurial, SVN, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠ±ΠΎΡΠΊΠΈ Maven ΠΈ Gradle.
ΠΠ»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ IDEA Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ Git Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Git. Π’Π°ΠΊΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ; Β«ΡΠΎΠ΄Π½ΠΎΠΉΒ» Git ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡΒ Π·Π΄Π΅ΡΡ. ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π² IDEA ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Git-ΠΏΠ»Π°Π³ΠΈΠ½, ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Git Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ (GUI Clients) Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ.
Π£ΡΠ΅Π±Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ
Π Ρ ΠΎΠ΄Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Β«ΠΠΎΡΠ»ΠΈΠ½ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ΅ΠΊΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ ΠΈ ΠΎΠΊΠΎΠ»ΠΎ ΡΠΎΡΠ½ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Kotlin. ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡΒ https://github.com/Kotlin-Polytech/KotlinAsFirst2018Β Π½Π° ΡΠ°ΠΉΡΠ΅ GitHub, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ Git. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
- ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π°Β https://github.com/Β (Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Ρ ΠΠ°Ρ Π΅ΡΠ΅ Π½Π΅Ρ GitHub Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°). ΠΠ°Π»Π΅Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ΅ ΠΠ°ΠΌΠΈ ΠΈΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ <USERNAME>.
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΏΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°βββΡΠΎΡΠΊ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°ΠΉΡΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Β https://github.com/Kotlin-Polytech/KotlinAsFirst2018Β ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡΒ
Fork
Β Π² ΠΏΡΠ°Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΠ°ΡΠ° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΏΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΡΠ°Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡΒ https://github.com/<USERNAME>/KotlinAsFirst2018, ΠΈ Π²ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ ΠΠ°ΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ. - ΠΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² IntelliJ IDEA ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΡΒ
Check out from Version Control
Β βΒGitHub
Β ΠΈΠ· ΠΎΠΊΠ½Π°ΒWelcome to Intellij IDEA
Β (ΠΈΠ»ΠΈΒFile
Β βΒNew
Β βΒProject from Version Control
Β βΒGitHub
Β ΠΈΠ· ΠΎΠΊΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°), Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²Π²Π΅ΡΡΠΈ Git Repository URLΒ https://github.com/<USERNAME>/KotlinAsFirst2018Β ΠΈ ΠΌΠ΅ΡΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΊΡΠ΄Π° Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°ΡΠ°Π½ ΠΏΡΠΎΠ΅ΠΊΡ (Parent Directory). - ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈΒ Π·Π΄Π΅ΡΡ.
ΠΡΠΎΠ΅ΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π°Π΄Π°ΡΠΈ, ΡΠ°Π·Π±ΠΈΡΡΠ΅ Π½Π° Π΄Π΅Π²ΡΡΡ ΡΡΠΎΠΊΠΎΠ² (lesson). Π’Π΅ΠΊΡΡΡ Π·Π°Π΄Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅ΡΠ΅Π· ΠΎΠΊΠ½ΠΎΒ Project
Β Π² IntelliJ IDEA (ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ ΠΊΠ»Π°Π²ΠΈΡΒ Alt + 1
). Π ΠΏΠ°ΠΏΠΊΠ°Ρ
Β src/lessonX
, Π³Π΄Π΅ XβββΠ½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠΊΠ°, Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ΅ΡΡΠ½Π½ΡΡ
Π·Π°Π΄Π°Ρ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ ΡΡΠΎΠΊΡ, ΡΠ΅ΠΊΡΡΡ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅ΡΠΈΡΡ, ΠΈ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π·Π°Π³Π»ΡΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π ΠΏΠ°ΠΏΠΊΠ°Ρ
test/lessonX Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊ Π·Π°Π΄Π°ΡΠ°ΠΌ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Π·Π°Π΄Π°ΡΠ°Ρ
ΠΈ ΡΠ΅ΡΡΠ°Ρ
ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 1 ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ.
Π‘ΠΏΠΈΡΠΎΠΊ ΡΡΠΎΠΊΠΎΠ² ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ ΠΠΎΡΠ»ΠΈΠ½
ΠΠΎΠΏΡΠΎΡΡ
Π Ρ ΠΎΠ΄Π΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Ρ Π²Π°Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π±ΡΠ΄ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π²ΠΎΠΏΡΠΎΡΡ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΈΡ Π·Π°Π΄Π°Π²Π°ΡΡ. Π£ Π²Π°Ρ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
- ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Β«ΡΠ°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡΒ» Π΄Π°Π»Π΅Π΅ ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ
- ΠΏΠΎΠΈΡΠΊΠ°ΡΡ ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅
- ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΠΎΡΠ»ΠΈΠ½Π΅ Π² Π΅Π³ΠΎΒ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
- ΡΡΡΡΠΊΠΎΡΠ·ΡΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΠΎΡΠ»ΠΈΠ½Ρ Π·Π΄Π΅ΡΡ
- Π·Π°Π΄Π°ΡΡ Π½Π°ΠΌ Π²ΠΎΠΏΡΠΎΡ Π²Β Kotlin SlackΒ (ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎΒ Π·Π΄Π΅ΡΡ) Π² ΠΊΠ°Π½Π°Π»Π΅Β russian-kotlinasfirst
- Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡΒ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΡ
Kotlin SlackβββΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π½Π° ΠΠΎΡΠ»ΠΈΠ½Π΅. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΠ°Π½Π°Π»ΠΎΠ², ΠΏΠΎΡΠ²ΡΡΡΠ½Π½ΡΡ ΡΠ°Π·Π½ΡΠΌ Π°ΡΠΏΠ΅ΠΊΡΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΠΎΡΠ»ΠΈΠ½Π΅βββΠ² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΈΠ· Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ΄ΡΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅. ΠΠ°ΡΠ΅ΠΌΡ ΠΊΡΡΡΡ ΠΏΠΎΡΠ²ΡΡΡΠ½ ΠΊΠ°Π½Π°Π» russian-kotlinasfirst, ΠΈ ΡΠ°ΠΌ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΊΡΡΡΡ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΈΡ Π²Π°ΠΆΠ½ΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈΠΌΠ΅Π΅ΡΡΡ generalβββΠΊΠ°Π½Π°Π» Ρ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠ°ΡΠ°ΡΡΠΈΠΌΠΈΡΡ ΠΠΎΡΠ»ΠΈΠ½Π°, ΠΈ russianβββΠΎΠ±ΡΠΈΠΉ ΠΊΠ°Π½Π°Π» Π΄Π»Ρ ΡΡΡΡΠΊΠΎΡΠ·ΡΡΠ½ΡΡ ΠΠΎΡΠ»ΠΈΠ½-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ².
Π§Π°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ (F.A.Q.)
- Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .kt ΠΈΠ· ΡΡΠ΅Π±Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Simple.kt) Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π°Π΄ Π½ΠΈΠΌΒ
Project SDK is not defined
?
ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΡΡΡΠ»ΠΊΡΒ Setup SDK
Β Π² ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠ±Π΅ΡΠ΅ΡΠ΅ JDK 1.8 Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅. ΠΡΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ JDK Π² ΠΎΠΊΠ½Π΅ ΠΏΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ JDK 1.8, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΡΒ Configure
, Π·Π°ΡΠ΅ΠΌ Π·Π΅Π»ΡΠ½ΡΠΉ ΠΏΠ»ΡΡ Π² Π²Π΅ΡΡ
Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π½Π° ΠΠ°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ JDK 1.8 Π² Intellij IDEA. ΠΡΠ»ΠΈ ΠΡ Π·Π°Π±ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ JDK, ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°ΡΠ°Π² Π΅Ρ Ρ ΡΠ°ΠΉΡΠ° Oracle.
- Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π·Π΅Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Π½Π°ΠΏΡΠΎΡΠΈΠ² ΡΡΠ½ΠΊΡΠΈΠΈΒ
main
Β ΠΈ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ?
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΎΠΊΠ½ΠΎ Maven Projects Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π² ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π° IDEA (Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°ΠΌ ΡΠ°ΠΊΠΎΠΉ Π½Π°Π΄ΠΏΠΈΡΠΈ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π½ΡβββView > Tool Windows > Maven Projects) ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Π² Π½ΡΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π²ΡΡ
ΡΡΡΠ΅Π»ΠΎΠΊ Π² ΠΊΡΡΠ³Π΅. ΠΠΎΠΆΠ΄ΠΈΡΠ΅ΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Maven-ΠΏΡΠΎΠ΅ΠΊΡΠ° (Π½Π°Π±Π»ΡΠ΄Π°ΠΉΡΠ΅ Π·Π° Π½Π°Π΄ΠΏΠΈΡΡΠΌΠΈ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π° IDEA), ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π·Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π°Π΄ΠΏΠΈΡΠΈΒ Project SDK is not defined
Π² Π²Π΅ΡΡ
Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π° (ΡΠΌ. Π²ΠΎΠΏΡΠΎΡ Π²ΡΡΠ΅).
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ ΡΠ΄Π°ΡΡΡΡ ΠΎΡΠΊΡΡΡΡ ΠΎΠΊΠ½ΠΎ Maven Projects, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²ΡΠΉΡΠΈ ΠΈΠ· Intellij IDEA ΠΈ Π²ΠΎΠΉΡΠΈ Π² Π½Π΅Ρ Π·Π°Π½ΠΎΠ²ΠΎ.
Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΠΊΡΡΡΡ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡΠ° Β«ΠΠΎΡΠ»ΠΈΠ½ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ» Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ
20 ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Kotlin
ΠΠ°Π½Π½Π°Ρ ΠΏΠΎΠ΄Π±ΠΎΡΠΊΠ° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΆΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Android-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Kotlin. ΠΠ·ΡΡΠΈΠ² Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ΄Π±ΠΎΡΠΊΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ Π·Π°Ρ ΠΎΡΠ΅ΡΡΡ ΡΠ·Π½Π°ΡΡ ΠΎ Kotlin Π±ΠΎΠ»ΡΡΠ΅!
Kotlin β ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Java (JVM). ΠΠ°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π²ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Java-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. Π 2017 Π³ΠΎΠ΄Ρ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Google I/O Android-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ Π°Π½ΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π»ΠΎ, ΡΡΠΎ Kotlin ΡΡΠ°Π½Π΅Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠ°Π½Π½ΡΠΉ ΡΠ°ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Kotlin ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ.
ΠΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π»ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ , Π½Π° Π½Π°Ρ Π²Π·Π³Π»ΡΠ΄, ΡΠ΅ΡΡΡΡΠΎΠ² Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Kotlin, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ Π²Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° Ρ Kotlin. Β ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π² Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ ΠΏΠΎΠΏΠ°Π» Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΡΡΡΡ, ΠΈ Π½Π΅ ΠΎΠ΄Π½Π° ΠΊΠ½ΠΈΠ³Π° Π·Π° ΠΊΠΎΡΠΎΡΡΡ Π²Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΏΠ»Π°ΡΠΈΡΡ, Π²ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅.
Β
Β
Β
Β
Β
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° β ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ Kotlin. Π ΡΠ°Π·Π΄Π΅Π»Π΅ Π‘ΡΡΠ»ΠΊΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°. Π Π°Π·Π΄Π΅Π» ΡΡΡΠΎΡΠΈΠ°Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ Π³Π°ΠΉΠ΄Ρ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°Π±ΠΎΡΡΡ ΡΡΠ΅Π΄Ρ ΠΈ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ.
Π’Π°ΠΊΠΆΠ΅ ΡΠ°ΠΉΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Kotlin, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ Π²Π°ΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ. Kotlin-ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΡΡΡ Koan — Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ.
ΠΠ°Π½Π½Π°Ρ ΠΏΠΎΠ΄Π±ΠΎΡΠΊΠ°, ΡΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ· 11 ΡΡΡΠΎΡΠΈΠ°Π»ΠΎΠ², ΠΎΡ Android-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Juan Ignacio Saravia. Π Π΄Π°Π½Π½ΡΡ ΡΡΡΠΎΡΠΈΠ°Π»Π°Ρ ΠΎΠ½ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Kotlin Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΠΎΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Reddit. Π’ΡΡΠΎΡΠΈΠ°Π»Ρ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ API ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ unit-ΡΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π° Π΅Π³ΠΎ GitHub ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΠ»ΠΎΠ³ Android-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΠ½ΡΠΎΠ½ΠΈΠΎ ΠΠ΅ΠΉΠ²Ρ ΠΏΠΎΡΠ²ΡΡΡΠ½ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Kotlin. ΠΠ° ΡΡΠ΅Ρ Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π±Π»ΠΎΠ³Π° ΡΡΡΠΎΡΠΈΠ°Π»Π°ΠΌΠΈΠΈ ΠΈ ΡΡΠ°ΡΡΡΠΌΠΈ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΡΠΈΡΠ°Ρ ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°ΠΆΠ΅ Π²Π΅Π΄ΡΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Kotlin ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΡΠΎ-ΡΠΎ Π½ΠΎΠ²ΠΎΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: Π½ΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½ΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Google ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠ» ΠΏΠΎΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΡΡΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π½ΠΎΠ½ΡΠ° ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Kotlin Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ΅ΡΡΠΎ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ Android. Π ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ± ΡΠ»ΡΡΡΠ΅Π½ΠΈΡΡ Π² ΡΠΈΡΠ°Π½ΠΊΡΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²Π½Π΅Ρ Kotlin.
Dariusz BaciΕski ΡΠΎΠ·Π΄Π°Π» ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° GitHub, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΠ±ΡΠΈΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° Kotlin. ΠΠ΄Π΅ΡΡ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ, ΠΊΠ°ΠΊ: Java, Swift, JavaScript ΠΈ PHP. ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π·Π° ΠΏΠ»Π΅ΡΠ°ΠΌΠΈ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΡΠΏΡΠ°Π²Π½ΡΡ ΡΠΎΡΠΊΡ.
ΠΠ΅Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π² ΡΠ΅Π±Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠΈΡΠΈ ΠΈ Β«ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ Π°ΡΒ» Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° Kotlin. ΠΠ΄Π΅ΡΡ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, ΡΠΈΠΊΠ»Π°ΠΌΠΈ ΠΈ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΠ»Π΅ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ.
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠ³ ΠΎΠ± ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Kotlin, ΠΎΡ Π°Π²ΡΠΎΡΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ JetBrains. ΠΠ΄Π΅ΡΡ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π²ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Kotlin. Π’Π°ΠΊΠΆΠ΅ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΡΠΎΡΠΈΠ°Π»Ρ, ΡΠΎΠ²Π΅ΡΡ ΠΈ ΡΡΠ°ΡΡΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΠ°ΡΡΡ ΠΈΠ· Π±Π»ΠΎΠ³Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Google Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Android Studio Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Kotlin, ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .java Π² ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .kt ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ Π² ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. Π’Π°ΠΊΠΆΠ΅ Π·Π΄Π΅ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π° Π½Π° Java ΠΈ Kotlin ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Android API.
ΠΡΠ»ΠΈΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΡΡ Π½Π° Android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Kotlin. ΠΠ²ΡΠΎΡ ΠΏΡΠΎΠ΄Π΅Π»Π°Π» ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΎΠ±ΡΡΡΠ½ΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠ΅ΡΡΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΈ ΠΊΠ°ΠΊ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ, ΡΡΠΎ Π²Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΡΠ³ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠΈΠ΅ ΡΡΡΠΎΡΠΈΠ°Π»Ρ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π·Π΄Π΅ΡΡ.
Β
Β
Β
Β
Β
ΠΠ΅ΠΊΡΠΈΡ Ρ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ Google I/O 2017, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½Π°Ρ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ Π² Kotlin Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ. ΠΠ΅ΠΊΡΠΈΡ Π΄Π°Π΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΡΠΈΡΡ ΠΈΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΡ Π²Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΡΡΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΡΠΎΡΠ°Ρ Π»Π΅ΠΊΡΠΈΡ ΠΎ Kotlin Ρ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ Google I/O 2017. ΠΠ°Π½Π½Π°Ρ Π»Π΅ΠΊΡΠΈΡ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠ΅ΠΌΡ ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ: ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ²Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Kotlin Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π° ΠΈ Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ ΠΏΡΠΈ Π΅Π³ΠΎ Π°Π΄Π°ΠΏΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ.
ΠΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ Kotlin Π΄Π»Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² Π² Π΄Π°Π½Π½ΠΎΠΌ Π΄Π΅Π»Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ, Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΡΠ»ΠΎΠ²ΠΈΠΉ, ΡΠΈΠΊΠ»ΠΎΠ² ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΡΡΡΠ° Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΡΠ΅ΠΌΠ°ΠΌ ΡΠ°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Π»ΡΠΌΠ±Π΄Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ°Π½Π½Π°Ρ Π»Π΅ΠΊΡΠΈΡ Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ GOTO 2016 ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±Π·ΠΎΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ°, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , Π² ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ ΠΊΠ°ΠΊ Kotlin Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Android.
ΠΡΠ»ΠΈΡΠ½ΡΠΉ 8-ΠΌΠΈΠ½ΡΡΠ½ΡΠΉ ΡΡΡΠΎΡΠΈΠ°Π», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Kotlin ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ: ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈ Ρ.ΠΏ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Kotlin, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π½ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΡΠΈΡΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ Android ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΡΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ Kotlin Π΄ΠΎΡΡΠΈΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.
Β
Β
Β
Β
Β
ΠΠΎΠ»Π΅Π·Π½Π°Ρ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π±ΡΡΡΡΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΠΎΠ±ΡΠΈΠΌ Java ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌ, ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡΠΌ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Kotlin.
ΠΠ°Π½Π½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ IntelliJ IDE ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Kotlin (koans ΠΊΡΡΡ) Π² ΠΎΡΠ»Π°ΠΉΠ½ ΡΠ΅ΠΆΠΈΠΌΠ΅.
Kotlin ΡΠΆΠ΅ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ 5 Π»Π΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΡΠΉ GitHub-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ ΡΠ·ΡΠΊ, ΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ.
ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ²ΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄Π»Ρ Kotlin ΠΈ Π±ΡΡΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠ±ΡΠΈΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΡ Kotlin, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ, ΠΊΠ½ΠΈΠ³ΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠΈ. ΠΠ°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΎΡΠΎΡΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π½Π° kotlin.link.
Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΡ ΡΡΠ°ΡΡΡ
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄: ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΠ°Π²ΡΠ΄ΠΎΠ²
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Kotlin
Π‘ΠΎΠ²Π΅ΡΡ ΠΈ ΡΡΡΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Kotlin
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ·ΡΠΊ. ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Kotlin. ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: 02.12.2017
Kotlin ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ JetBrains. Kotlin ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΠΈ
Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Kotlin ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ²Π΅ΡΡ
Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Java (JVM) ΠΈ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π² Π±Π°ΠΉΡΠΊΠΎΠ΄. Π’ΠΎ Π΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Java,
ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Kotlin Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° JVM. Π₯ΠΎΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² JavaScript ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
Π, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Kotlin Π² Π½Π°ΡΠΈΠ²Π½ΡΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±Π΅Π· Π²ΡΡΠΊΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ,
ΠΊΡΡΠ³ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Kotlin, ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΡΠΈΡΠΎΠΊ — Windows, Linux, Mac OS, iOS, Android.
ΠΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ·ΡΠΊΠ° Π²ΡΡΠ»Π° 15 ΡΠ΅Π²ΡΠ°Π»Ρ 2016 Π³ΠΎΠ΄Π°. Π₯ΠΎΡΡ ΡΠ°ΠΌΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ·ΡΠΊΠ° Π²Π΅Π»Π°ΡΡ Ρ 2010 Π³ΠΎΠ΄Π°. Π’Π΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΡΠ·ΡΠΊΠ° Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ
ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΡ 1.2, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΡΠ»Π° 28 Π½ΠΎΡΠ±ΡΡ 2017 Π³ΠΎΠ΄Π°.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Kotin ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ opensource, ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π° github ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ
https://github.com/JetBrains/kotlin/.
Kotlin ΠΈΡΠΏΡΡΠ°Π» Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ·ΡΠΊΠΎΠ²: Java, Scala, Groovy, C#, JavaScript, Swift ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠ°ΠΊ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅.
ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ½ΡΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π»Π΅Π³ΠΎΠΊ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
Π‘Π°ΠΌΡΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, Π³Π΄Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Kotlin, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ΄ ΠΠ‘ Android. ΠΡΠΈΡΠ΅ΠΌ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ,
ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Google Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Google I/O 2017 ΠΏΡΠΎΠ²ΠΎΠ·Π³Π»Π°ΡΠΈΠ»Π° Kotlin ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ
ΡΠ·ΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Android (Π½Π°ΡΡΠ΄Ρ Ρ
Java ΠΈ C++), Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π±ΡΠ»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Android Strudio Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 3.0.
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ ΡΠ·ΡΠΊΠ° — https://kotlinlang.org/, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΈ ΡΠ°ΠΌΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ·ΡΠΊΡ.
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Kotlin
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Kotlin. Π§ΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ? ΠΠ»Ρ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ,
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π±Π»ΠΎΠΊΠ½ΠΎΡ ΠΈΠ»ΠΈ Notepad++. Π Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ JDK (Java Development Kit). ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ JDK Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°ΠΉΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Oracle —
http://www.oracle.com/technetwork/java/javase/downloads/index.html.
ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Kotlin ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ https://github.com/JetBrains/kotlin/releases/tag/v1.2.0.
ΠΠΎ Π²ΡΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π°ΡΡ
ΠΈΠ². ΠΠ°Π³ΡΡΠ·ΠΈΠΌ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΡΠ΅ΠΌ ΠΈΠ· Π°ΡΡ
ΠΈΠ²Π° ΠΏΠ°ΠΏΠΊΡ kotlinc. Π ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ Π°ΡΡ
ΠΈΠ²Π΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ bin ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡΠΈ ΡΡΠΈΠ»ΠΈΡΡ kotlinc,
Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π½Π° ΠΆΠ΅ΡΡΠΊΠΎΠΌ Π΄ΠΈΡΠΊΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±ΡΠ΄Π΅Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ ΠΏΠΎ ΠΏΡΡΠΈ c:/kotlin.
Π ΡΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ Π² app.kt. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ kt — ΡΡΠΎ Π°ΡΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ Kotlin.
ΠΠ°Π»Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ:
fun main(args: Array<String>){ println("Hello Kotlin") }
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ main, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ
ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ fun.
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ args, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ.
ΠΠ½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ main Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄ΡΡΠ³Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ — println(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
ΠΡΠΊΡΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ. ΠΠ½Π°ΡΠ°Π»Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cd ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΠΉΠ» app.kt. ΠΠ°ΡΠ΅ΠΌ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π²Π΅Π΄Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
c:\kotlin\bin\kotlinc app.kt -include-runtime -d app.jar
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ c:\kotlin\bin\kotlinc Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ°ΠΉΠ» app.kt. (Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ,
ΠΏΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ PATH Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΡΠ΅Π΄Ρ). ΠΠ°Π»Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° -include-runtime
ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ
ΡΡΠ΅Π΄Ρ Kotlin. Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -d
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ app.jar
.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΡΠ°ΠΉΠ» app.jar. Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΠΌ Π΅Π³ΠΎ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π²Π΅Π΄Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΡΡΡ ΠΊ JDK, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΏΡΠΎΠΏΠΈΡΠ°Π½ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΡΠ΅Π΄Ρ. ΠΠ½Π°ΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ «java»
ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΡΡΠΈΠ»ΠΈΡΠ΅ java.
Π ΠΈΡΠΎΠ³Π΅ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ°ΠΉΠ»Π° ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΡΡΠΎΠΊΡ «Hello Kotlin».
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° Kotlin Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Π Ρ ΠΎΠ΄Π΅ ΠΊΡΡΡΠ° Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Kotlin, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΠ½Π΄ΡΠΎΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡ ΠΎΠ±ΡΡΠΈΡΠ΅ΡΡ Π²ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ°ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ Kotlin ΠΈ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ Java ΠΊ Kotlin.
ΠΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΡΠ»ΠΊΠ°:
Π―Π·ΡΠΊ Kotlin
Π―Π·ΡΠΊ Kotlin ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΡΡ ΠΊΠ°ΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΡΠ·ΡΠΊΡ Java. Π―Π·ΡΠΊ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ Java ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡ ΠΎΠΆΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΡΠΎ ΠΈ Π΅Π³ΠΎ ΡΡΠ°ΡΡΠΈΠΉ Π±ΡΠ°Ρ.
Kotlin Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π² 2016 Π³ΠΎΠ΄Ρ, Ρ ΠΎΡΡ Π΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π΅Π»Π°ΡΡ Ρ 2010 Π³ΠΎΠ΄Π°. Π£ΠΆΠ΅ ΡΠ΅ΡΠ΅Π· Π³ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π»ΠΈΠ·Π°, Π² 2017 Π³ΠΎΠ΄Ρ, Google ΡΠΎΠΎΠ±ΡΠΈΠ»Π° ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π°Π½Π΄ΡΠΎΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ·ΡΠΊΠ° Kotlin ΠΈ ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠΎΡ ΡΠ·ΡΠΊ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΡ Android Studio, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅Ρ ΠΠ½Π΄ΡΠΎΠΈΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠ΅ ΡΠ΅ΡΠ΅Π· Π΄Π²Π° Π³ΠΎΠ΄Π°, Π² 2019 Π³ΠΎΠ΄Ρ, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Google ΡΠΎΠΎΠ±ΡΠΈΠ»Π° ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Kotlin ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Java.
ΠΠΎΠ»ΡΡΠΈΠΌ ΠΏΠ»ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ° Kotlin ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Π»Π΅Π³ΠΊΠ°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π² Π΄ΡΡΠ³ΠΈΠ΅ Java ΠΏΡΠΎΠ΅ΠΊΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΡ Π»ΡΠ±ΡΡ Java ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ·Π΄Π°ΡΡ Π² Π½Π΅ΠΉ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Kotlin ΠΈ Ρ Π²Π°Ρ Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ Π²Π΅ΡΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π²ΡΠ΄Π°Π²Π°ΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
Π ΡΡΠΎ ΠΆΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ Ρ Java?
ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ Π½Π°ΡΠ°Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΡΡ Π½Π°ΡΡΠ΅Ρ ΡΡΠ°ΡΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Java, ΡΠΎ ΠΌΠΎΠ³Ρ Π²Π°Ρ ΡΡΠ°Π·Ρ ΡΡΠΏΠΎΠΊΠΎΠΈΡΡ. Π―Π·ΡΠΊ Java Ρ ΠΎΡΡ ΠΈ ΡΠΆΠ΅ ΡΡΡΠ°ΡΠ΅Π» ΠΊΠ°ΠΊ ΠΌΠΎΡΠ°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ, Π½ΠΎ ΠΎΠ½ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ ΠΈΡΡΠ΅Π·Π½Π΅Ρ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠ·ΡΠΊ ΠΏΠΎ ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΎΡΠ½ΡΡ ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π΄Π»Ρ ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ·ΡΠΊ Java.
ΠΠΎ-Π²ΡΠΎΡΡΡ , ΡΠ·ΡΠΊ Kotlin, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Java Virtual Machine. ΠΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Java ΠΈ ΡΡΠΎΠ±Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΊΠ°ΠΊ Kotlin ΠΈ ΠΏΡΠΎΡΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°ΠΌΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΊΠΈΠΉ Π·Π°ΠΌΠΊΠ½ΡΡΡΠΉ ΠΊΡΡΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Java ΠΎΡΠ΅Π½Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΡΡΠ²ΡΡΠ²ΡΠ΅Ρ ΡΠ΅Π±Ρ.
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½ΠΎΠ²ΡΠΉ Π²ΠΎΠΏΡΠΎΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠΈΡΡ Kotlin, Π΅ΡΠ»ΠΈ Java Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½Π° ΡΡΠΎΠΌ ΡΠΈΠ½Π³Π΅ Β«ΠΠΎΡΡΒ»? ΠΡΠ΅ Π΄Π΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Kotlin ΡΡΠΎ ΠΊΠ°ΠΊ Π³Π»ΠΎΡΠΎΠΊ ΡΠ²Π΅ΠΆΠ΅Π³ΠΎ Π²ΠΎΠ·Π΄ΡΡ Π° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΠ½Π΄ΡΠΎΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠΈΡΠ°ΡΡ Π²ΡΠ΅ Π½Π° Java ΡΠ»ΠΎΠΆΠ½ΠΎ, Π²Π΅Π΄Ρ ΠΎΠ½ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΉ ΠΈ Π·Π°ΡΠ°ΡΡΡΡ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΡΠΉ. Kotlin ΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ Β ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Ρ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡ ΠΏΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΊΠΎΠ΄Π°.
ΠΠ»Π°Π½ ΠΊΡΡΡΠ°
Π ΠΊΡΡΡΠ΅ ΠΌΡ ΠΈΠ·ΡΡΠΈΠΌ ΡΠ·ΡΠΊ Kotlin, Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ ΠΏΡΠΎΡΡΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ²: ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠΈΠΊΠ»ΠΎΠ², ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅ ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΠΏΠΎΠ½ΡΡΠΈΡΠΌΠΈ: ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄ΡΡΠ³ΠΈΠΌ.
Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΡΡΡΠ° ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Android Studio. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ·ΡΠΊΠ° Kotlin. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΡΡΠΈΡΠ΅ ΡΠ°ΠΌ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΠ½Π΄ΡΠΎΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
Π₯ΠΎΡΡ Π²ΡΡ Π·Π½Π°ΡΡ. Π―Π·ΡΠΊ Kotlin | GeekBrains
ΠΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ Java-Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅Π»Ρ.
https://d2xzmw6cctk25h.cloudfront.net/post/1116/og_cover_image/7be512347c8377d063f988039edc669f
Β
Π 2010 Π³ΠΎΠ΄Ρ Π³ΡΡΠΏΠΏΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΡΡΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ JetBrains Π²Π·ΡΠ»Π°ΡΡ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π±Ρ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ Java, Π½ΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ΅Π½, ΠΊΠ°ΠΊ Scala. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΌΡ ΡΠ·ΡΠΊΡ Π±ΡΠ»ΠΎ Π΄Π°Π½ΠΎ Π² ΡΠ΅ΡΡΡ ΠΎΡΡΡΠΎΠ²Π° ΠΠΎΡΠ»ΠΈΠ½, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² Π€ΠΈΠ½ΡΠΊΠΎΠΌ Π·Π°Π»ΠΈΠ²Π΅ (ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ Java, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·Π²Π°Π½ Π² ΡΠ΅ΡΡΡ ΠΎΡΡΡΠΎΠ²Π°).
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΎΠ±Π·ΠΎΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π½Π°Ρ, Π²Ρ Π½Π΅ΠΏΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΠ°ΠΌ Kotlin. Π ΡΠ΅ΠΌ ΡΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ ΡΠ°ΠΊ Π²ΡΠ΅ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ Π½Π΅Π³ΠΎ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Ρ β ΠΎΠ± ΡΡΠΎΠΌ Π΄Π°Π»Π΅Π΅.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
ΠΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ·ΡΠΊ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ, ΠΊΠ°ΠΊ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ², ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΎΠΏΡΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π°ΠΏΡΡΠΌΡΡ Π²ΡΡΠ°Π·ΠΈΠ»Π°ΡΡ Π² Π΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅. ΠΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π°Π½Π°Π»ΠΎΠ³, Kotlin β ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΡΠΉ, ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ. ΠΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΡΠ°Π½ΡΡΠ΅ ΠΏΠΈΡΠ°ΡΡ Π½Π° Java ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΠΊΠΈ Ρ Π·Π°ΠΏΡΡΠΎΠΉ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ βΒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ. ΠΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏ βΒ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΡΠΈ ΡΡΠΎΠΌ Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Kotlin Π² ΠΏΠ»Π°Π½Π΅ Π·Π°ΠΏΠΈΡΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅ΡΠ½ΡΠ»ΡΡ ΠΊ ΡΡΠΈΠ»Ρ Pascal βΒ Π·Π΄Π΅ΡΡ ΡΠΎΠΆΠ΅ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΡ Π³Π»Π°Π²Π΅Π½ΡΡΠ²ΡΠ΅Ρ Π½Π°Π΄ ΡΡΡΠΊΠΎΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ. ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π² ΡΡΠΎΠΉ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅. Π Π½Π΅ΠΉ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π»ΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² Β Java ΠΈ Kotlin, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ½ΡΡΠ½Π° ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌ.
ΠΠΏΡΠΎΡΠ΅ΠΌ, Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΡΡΠΎΡΠ΅ΠΊ ΠΊΠΎΠ΄Π° Π²ΡΡ ΠΆΠ΅ ΠΎΡΡΠ°Π²ΠΈΠΌ:
fun main(args : Array<String>) {
Β val scope = «world»
Β println(«Hello, $scope!»)
}
ΠΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΠΎΠ½ΡΡΠ½Π° Π»ΡΠ±ΠΎΠΌΡ, ΠΊΡΠΎ Ρ ΠΎΡΡ Π±Ρ Π³ΠΎΠ΄ Π² ΡΠΊΠΎΠ»Π΅ ΠΈΠ»ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ΅ ΡΡΠΈΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠ°ΠΆΠ½ΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ, ΡΡΠΎ Kotlin ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Java. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΡ ΠΏΠΎΡΠ°Ρ Π΅Π³ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ Π°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, Π³Π΄Π΅ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΠΈΠ»Ρ.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°
Π ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ Java ΡΠΆΠ΅ Π±ΡΠ»ΠΈ Π½Π°Π·Π²Π°Π½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ±Π΅ΡΠ΅ΠΌ ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅:
-
ΠΠ±ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π°. ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅Π½ΡΠΆΠ½ΡΡ Π°ΡΡ Π°ΠΈΡΠ½ΡΡ ΠΊΡΡΠΊΠΎΠ² ΠΊΠΎΠ΄Π° ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ;
-
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. ΠΠ°Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΌΠ΅Π»ΠΊΠΈΡ ΡΡΡΠ΄Π½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π»ΠΈΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ;
-
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π² Java. ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΌΡ ΡΠ·ΡΠΊΡ, ΠΈ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² c Java Π½Π° Kotlin. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Basecamp.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
ΠΠ°ΠΊ Ρ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Java, Ρ Kotlin ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π½ΠΈΠΌ Π΅ΡΡΡ Π΄Π²Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°: ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΡΡΡ. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ:Β ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π° JVM ΡΡΡΠ΄Π½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΏΠΎ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Java. ΠΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Π΄ΡΠΌΠ°Π½Π½Π°Ρ Π΄Π»Ρ ΡΡΠΎΠ»Ρ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, Π²Π΅Π΄Ρ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΠΎΠ±ΠΎΡΠΎΡΠ΅ ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π³ΠΎΠ΄Π°. ΠΠ°, Π·Π΄Π΅ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΡΠ΅ΠΌ Π½Π° Java. ΠΠΎ, Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΏΠΎΠΊΠ° ΡΡΠΎ Π½Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ , Π² ΠΌΠΈΡΠ΅ Java ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²Π΅Π·Π΄Π΅ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ.
Kotlin ΠΆΠ΅ ΠΏΠΎΠΊΠ° ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ Π³Π»Π°Π²Π½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ, Π° ΠΏΠΎΠ»Π½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ Java ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π·Π°ΠΊΡΡΡΡ Π³Π»Π°Π·Π° Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ.
ΠΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Ρ
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Kotlin Π½Π°ΡΠ°Π»Π°ΡΡ Π² 2010 Π³ΠΎΠ΄Ρ, ΠΏΠ΅ΡΠ²Π°Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ²ΠΈΠ΄Π΅Π»Π° ΡΠ²Π΅Ρ Π»ΠΈΡΡ Π² ΡΠ΅Π²ΡΠ°Π»Π΅ 2016. Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΡΠ·ΡΠΊΠ° ΡΡΡΠ΅ΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠ΅Ρ, Π² ΡΠ΅ΠΉΡΠΈΠ½Π³Π΅ TIOBE ΠΎΠ½ Π·Π° Π³ΠΎΠ΄ Π²ΠΎΡΠ²Π°Π»ΡΡ Π² TOP-50, Π° Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ ΠΌΠ΅ΡΡΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Google I/O Π±ΡΠ»ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ ΠΎΠ± ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ Kotlin Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π£ΡΠΈΡΡΠ²Π°Ρ Π²ΡΡΠΎΠΊΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ IntelliJ IDEA ΡΡΠ΅Π΄ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠ°Π²ΠΊΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π° Kotlin, ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ΅Π· 3-4 Π³ΠΎΠ΄Π° ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π΅Π³ΠΎ ΡΡΠ΅Π΄ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΏΡΠ°Π²Π½ΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ² Java ΠΈ Swift Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»ΠΈ ΡΠ·ΡΠΊΠ° Π½Π΅ ΡΠ°Π·ΠΎΡΠ°ΡΡΡΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅, Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Kotlin ΠΎΡΠΏΡΠ°Π²ΠΈΡΡΡ Π²ΡΠ΅ΡΡΠ΅Π· Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΡ: Π²Π΅Π±, ΠΠ, ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ Π²Π΅ΡΠ΅ΠΉ, Π±ΠΎΠ»ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ Π²Π°Ρ Π²ΡΠ΅ΡΡΡΠ· Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π» ΡΡΠΎΡ ΡΠ·ΡΠΊ, ΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° Π΅Π³ΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ (ΡΡΡΡΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ) ΠΈ ΠΈΡΠΏΡΡΠ°ΠΉΡΠ΅ Π²ΡΠ΅ Π΅Π³ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π½Π° Π»ΠΈΡΠ½ΠΎΠΌ ΠΎΠΏΡΡΠ΅. Π‘ΠΏΠ΅ΡΠΈΡΠ΅, ΠΏΠΎΠΊΠ° ΡΡΠΎ Π½Π΅ ΡΡΠ°Π»ΠΎ ΠΌΠ΅ΠΉΠ½ΡΡΡΠΈΠΌΠΎΠΌ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Kotlin. ΠΡΡΡ «Kotlin Ρ Π½ΡΠ»Ρ»
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½Π°ΡΠ°Π»ΠΎ Π±ΡΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ Ρ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π΅ΡΠΈΡ. Π‘ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠΎΠ² ΠΈ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° Π²ΡΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΎΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π² Π±ΡΡΠΎΠ²ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΡ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Π΄ΠΎ ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ². ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΡΡΠ΅ΡΠ°Ρ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΎΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°ΠΊΠ΅Ρ Π΄ΠΎ ΠΈΠ³Ρ.
ΠΡΠ΅ ΡΡΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΏΠΈΡΠ΅ΡΡΡ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ Π΄ΠΎ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈ ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ: ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅, ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠ·-Π·Π° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠ°ΠΊ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊ ΠΈ ΡΡΠ΅Ρ ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΡΠ΅ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π½Π΅ ΠΎΠ΄Π½ΠΎΡΠΎΠ΄Π½Π°. ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ β Π½Π΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΡΡΠ°ΡΡΠ²ΡΡΡΠΈΠΉ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ½ΠΈ ΠΏΠΈΡΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ , Ρ ΠΎΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΈΠΌ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ Π² Π΄ΡΡΠ³Π°.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ°Π½ΠΎΠ²ΡΡΡ Π½Π° ΠΏΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΌΡΡΠ» ΡΡΠ°Π·Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΠ΅ΡΡ ΡΠ²ΠΎΠ΅ΠΉ Π±ΡΠ΄ΡΡΠ΅ΠΉ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡΡ Ρ ΡΠ·ΡΠΊΠ°ΠΌΠΈ.
Kotlin β ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π² ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΡΡΠΈ Π²Π΅Π·Π΄Π΅. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ β ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Android. ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Google Π²ΡΠ±ΡΠ°Π»Π° ΠΠΎΡΠ»ΠΈΠ½ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ. ΠΠ΄Π΅ΡΡ ΠΎΠ½ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ·ΡΠΊ Java.
ΠΠΎΡΠ»ΠΈΠ½ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΠΎΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π΅Π½Π½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ ΠΠΆΠ°Π²Ρ, Ρ ΠΎΡΡ Π² Π½Π΅ΠΌ Π½Π΅ΠΌΠ°Π»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΠΈΡΠΎΠ½Π°. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Kotlin, ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΊΠΎΠ΄Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ Π½Π° Java. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Kotlin ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Java, ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π° Π΄Π²ΡΡ ΡΠ·ΡΠΊΠ°Ρ .
ΠΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΈΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ Π½Π° ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠ΅ ΡΠ»ΠΎΠ²Π° ΠΈ ΡΡΠ°Π·Ρ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠ³ΠΈΠΉ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ, Π² Π½Π΅ΠΌ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ. Π―Π·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π―Π) ΠΊΡΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠΌΠ°Π»ΡΠ½Ρ, ΡΠ΅ΠΌ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ°ΡΡ ΠΌΡΡΠ»Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ.
Π€ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΡΡΡ Π―Π Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠ»ΠΎΠ² ΠΈ ΡΡΡΠΎΠ³ΠΈΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΠΌΠ΅ΡΡΠ° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π―Π, ΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΠΌΡΡ ΠΈΡ ΡΠ»ΠΎΠ² Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΡΡΡΡ Π―Π Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ±. ΠΠ°ΡΠ°ΡΡΡΡ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ, Ρ ΠΎΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½ΠΎ.
ΠΡΠ°ΠΊ, ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠΎΠ±ΡΡ Π·Π½Π°ΠΊΠΎΠ² ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΠΈ. ΠΠΎ ΡΠ°Π·Π²Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ?
ΠΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°, Π΅Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄. «ΠΠ΅Π»Π΅Π·ΠΎ» ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ΄Ρ β ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½ΡΠ»ΡΠΌΠΈ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠ°ΠΌΠΈ. ΠΠΎΠ³Π΄Π°-ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠ°ΠΊ ΠΈ ΠΏΠΈΡΠ°Π»ΠΈ β Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π½ΠΈΡ ΡΡΡΠ΄Π½ΠΎ. Π§Π΅Π»ΠΎΠ²Π΅ΠΊ Π΄ΡΠΌΠ°Π΅Ρ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π° Π½Π΅ ΡΠΈΡΠ»Π°ΠΌΠΈ.
ΠΠΎΡΡΠΎΠΌΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠ°Π»ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΏΠΎΡΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π½Π΅ΠΊΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠΎΠ·ΠΆΠ΅ ΡΡΠ°Π»ΠΈ ΠΏΡΠΈΠ΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ ΡΡΡΡΠΊΡΡΡΡ.
ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»Π°ΡΡ ΠΎΡΠΎΠ±Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠ»Π° Π±Ρ Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π―Π Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΡΠ·ΡΠΊ. ΠΠ΅ Π½Π°Π·Π²Π°Π»ΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠΌ. ΠΠ½Π° ΡΠΈΡΠ°Π»Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠ»Π° Π΅Π³ΠΎ Π² ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠΏ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, Π° ΠΏΠΎΠ·ΠΆΠ΅ ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠΏΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π―Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ. Π ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠ°Π·Ρ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ (ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ) Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ Π²ΠΈΠ΄. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΠΉΠ». ΠΡΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ ΡΠΈΡΠ°Π΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΏΠΎΡΡΠΈΡΠΌΠΈ. Π ΡΠ»ΡΡΠ°Π΅ «ΡΠΈΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ» Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ.
Π‘ ΡΠ·ΡΠΊΠ° ΠΠΎΡΠ»ΠΈΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠ΅ΠΉ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠ². ΠΡΠ΅ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠ΄.
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ kotlin-ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡ Π² java-Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ Java (JVM). ΠΠ°ΠΉΡ-ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ JVM, β ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΎΠ½ ΡΠΊΠΎΡΠ΅Π΅ ΠΏΠΎΡ ΠΎΠΆ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎ. ΠΡΠΈΡΠ΅ΠΌ Π² ΡΠ»ΡΡΠ°Π΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ Π±Π°ΠΉΡΠΎΠΌ.
JVM Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΡΠ΅Π΄ΠΊΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠΈΠ΅ ΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ΄Π°.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΡΠ΄ΠΎΠ±Π½Π° ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ Π±Π°ΠΉΡΠΊΠΎΠ΄ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° JVM. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π²Π°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Linux, Windows ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
ΠΠΎΠΏΡΠΎΡΡ:
ΠΡΡΡ Π»ΠΈ, Π½Π° Π²Π°Ρ Π²Π·Π³Π»ΡΠ΄, ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ½ΡΡΠΈΡΠΌΠΈ «ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°» ΠΈ «ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅»?
Π ΠΊΠ°ΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠ·ΡΠΊΠΈ Java ΠΈ JavaScript?
ΠΠ°ΠΊ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅, ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎ Π²Π΅Π΄Π΅ΡΡΡ ΡΡΠ°Π·Ρ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ?
PDF-Π²Π΅ΡΡΠΈΡ ΠΊΡΡΡΠ° Ρ ΠΎΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΊ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΠΌ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Android «Kotlin. ΠΡΡΡ»
Π‘Π΅ΡΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠΎΠ² ΠΏΠΎ Kotlin / Π₯Π°Π±Ρ
ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ ΡΠ΅Π±Ρ β Π§Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΆΠ°ΠΆΠ΄ΡΡΠΈΠΉ Π·Π½Π°Π½ΠΈΠΉ!
Π₯ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡ Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ²ΠΎΠΈΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π½ΠΎ Π΄ΡΠΌΠ°Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
Π·Π½Π°Π½ΠΈΡΠΌΠΈ ΠΏΠΎ Kotlin Π² Π²ΠΈΠ΄Π΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅ΡΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎ.
ΠΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΌΠ΅Π½Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π» Kotlin, Π΅ΡΠ΅ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ²ΡΡ Π΅Π³ΠΎ Π°Π½ΠΎΠ½ΡΠΎΠ² Ρ Π½Π°ΡΠ°Π» ΡΠ»Π΅Π΄ΠΈΠ» Π·Π° Π΄Π°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΈ ΠΏΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ°Π» Π΅Π³ΠΎ ΠΈ Π²Π½ΠΈΠΊΠ°Π» Π² Π΅Π³ΠΎ ΡΠ»Π°Π΄ΠΎΡΡΠΈ.
Π ΠΏΠΎΡΠ»Π΅ ΠΎΡΡ. ΡΠ΅Π»ΠΈΠ·Π° Ρ Π²ΡΠ΅ ΠΆΠ΅ ΡΠ΅ΡΠΈΠ» ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡ Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅Π»Π°ΡΡΠΈΠΌΠΈ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΈΠ·ΡΡΠΈΡΡ ΠΊΡΡΡΠΎΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΈΠ»ΠΈ ΠΆΠ΅ Π΄Π°ΠΆΠ΅ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π΅Π³ΠΎ β ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π² ΠΊ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Kotlin.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠΆΡ ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· ΡΠ΅ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠΈΠΈ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈ Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎ.
ΠΡΡ ΡΠ΅ΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°Ρ Π½ΠΎΠ²ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΡΡΡΡ Π² ΡΡΠΎΡ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡ.
Π£ΡΠΎΠΊ 0. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π£ΡΠΎΠΊ 1. String Templates
Π£ΡΠΎΠΊ 2. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ var vs. val
Π£ΡΠΎΠΊ 3. Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Kotlin
Π£ΡΠΎΠΊ 4. Π€ΡΠ½ΠΊΡΠΈΠΈ
Π£ΡΠΎΠΊ 5. NPE ΠΈ Null Safety
Π£ΡΠΎΠΊ 6. Π Π°Π±ΠΎΡΠ° Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ
Π£ΡΠΎΠΊ 7. ΠΠ°ΠΊΠ΅ΡΡ — ΠΠΌΠΏΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²
Π£ΡΠΎΠΊ 8. Enum — ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ»Π΅Π½ΠΈΡ ΠΈ ΠΈΡ ΡΠΎΠ»Ρ
Π£ΡΠΎΠΊ 9. When — ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠ±ΠΎΡΠ°
Π£ΡΠΎΠΊ 10. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ
Π£ΡΠΎΠΊ 11. ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ open
Π£ΡΠΎΠΊ 12. ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ open ΠΈ ΠΎΠ±Π»Π°ΡΡΡ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ
Π£ΡΠΎΠΊ 13. ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ°
Π£ΡΠΎΠΊ 14. ΠΡΡΡΠΎΡΡΡ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΡΠΈΠΊΠ»ΠΎΠ²
Π£ΡΠΎΠΊ 15. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° IN
Π£ΡΠΎΠΊ 16. ΠΠ°ΠΊ ΠΏΠΈΡΡΡΡΡ POJO Π² Kotlin?
Π ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Ρ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΠΎΡΡ. Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ ΠΈ ΠΊΠ½ΠΈΠ³ΠΎΠΉ Kotlin in Action.
p.s. ΠΡΠ΄Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ Π²Π°ΡΠΈΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎΠ΄ Π²ΠΈΠ΄Π΅ΠΎ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡΠΌ ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΡΡΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π² Π±ΡΠ΄ΡΡΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ.
ΠΠ·ΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin Π·Π° 2 ΡΠ°ΡΠ°
- ΠΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΠ°Π·Π°Π΄
- ΠΠΈΠ±ΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- BugZilla
- Cucumber
- Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- 000
- Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ETL
- JUnit
- LoadRunner
- Π ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- Mantis
- ΠΠΎΡΡΠ°Π»ΡΠΎΠ½
- QTP
- ΠΠ°Π·Π°Π΄
- Π¦Π΅Π½ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° (ALM)
- 000
- Π¦Π΅Π½ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° (ALM)
000 Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
- TestLink
SAP
- ΠΠ°Π·Π°Π΄
- ABAP
- APO
- ΠΠ°ΡΠΈΠ½Π°ΡΡΠΈΠΉ
- Basis
- BODS
- BI
- BPC
- CO
- ΠΠ°Π·Π°Π΄
- CRM
- Crystal Reports
- FICO
- 000 HRM
- 000 HRM
- MM Pay
- ΠΠ°Π·Π°Π΄
- PI / PO
- PP
- SD
- SAPUI5
- ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
- ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ
- Successfactors
- SAP Tutorials
- ΠΠ°Π·Π°Π΄
- Java
- JSP
- Kotlin
- Linux
- Linux
- Kotlin
- Linux
- Perl
js
- ΠΠ°Π·Π°Π΄
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala
- SQL
- SQL
- UML
- VB.Net
- VBScript
- ΠΠ΅Π±-ΡΠ»ΡΠΆΠ±Ρ
- WPF
000
000
0003 SQL
000
0003 SQL
000
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΈΡΠ΅!
- ΠΠ°Π·Π°Π΄
- ΠΡΡ Π³Π°Π»ΡΠ΅ΡΡΠΊΠΈΠΉ ΡΡΠ΅Ρ
- ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ
- Android
- ΠΠ»ΠΎΠΊΡΠ΅ΠΉΠ½
- ΠΠΈΠ·Π½Π΅Ρ-Π°Π½Π°Π»ΠΈΡΠΈΠΊ
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°
- CCNA
- ΠΠ±Π»Π°ΡΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ
03 COBOL
9000 ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ COBOL
9000
ΠΠ½ΠΈΠ³ΠΈ
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅
Head First ΠΠΎΡΠ»ΠΈΠ½
ΠΈ
Head First Kotlin
ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin. ΠΡΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΈΠ·ΡΡΠΈΡΡ ΡΠ·ΡΠΊ Kotlin Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, Π²ΡΡ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ², ΠΈ Π½Π°ΡΡΠΈΡ Π΄ΡΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ Π²Π΅Π»ΠΈΠΊΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Kotlin. ΠΡ ΡΠ·Π½Π°Π΅ΡΠ΅ Π²ΡΠ΅, ΠΎΡ ΠΎΡΠ½ΠΎΠ² ΡΠ·ΡΠΊΠ° Π΄ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°.ΠΠΎΠΏΡΡΠ½ΠΎ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ ΠΊΠ°ΠΊ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, ΡΠ°ΠΊ ΠΈ Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΠΏΠΎΠ½ΡΡΡ ΠΠΎΡΠ»ΠΈΠ½, ΡΡΠ° ΠΊΠ½ΠΈΠ³Π° Π΄Π»Ρ Π²Π°Ρ.
ΠΠΎΡΠ»ΠΈΠ½ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ
ΠΈ
Kotlin in Action ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Kotlin
ΡΠ·ΡΠΊ Π΄Π»Ρ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°. ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π΄Π»Ρ ΠΎΠΏΡΡΠ½ΡΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Java,
Π΄Π°Π»ΡΡΠ΅
Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠΎΠ²ΡΡ
ΠΊΠ½ΠΈΠ³, ΠΎΡ
Π²Π°ΡΡΠ²Π°ΡΡΠΈΡ
ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ DSL Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°.
ΠΠ½ΠΈΠ³Π° Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΠΌΠΈΡΡΠΈΠ΅ΠΌ ΠΠΌΠ΅ΡΠΎΠ²ΡΠΌ ΠΈ Π‘Π²Π΅ΡΠ»Π°Π½ΠΎΠΉ ΠΡΠ°ΠΊΠΎΠ²ΠΎΠΉ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ Kotlin.
ΠΠ»Π°Π²Π° 6, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΈΠΏΠΎΠ² Kotlin, ΠΈ Π³Π»Π°Π²Π° 11, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½Π°Ρ DSL, Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π½Π°
Π²
Π²Π΅Π±-ΡΠ°ΠΉΡ ΠΈΠ·Π΄Π°ΡΠ΅Π»Ρ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin: Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠ°Π½ΡΠΎ Big Nerd
ΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin:
ΠΡΡΠ΅Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΠΎ ΡΠ°Π½ΡΠΎ Big Nerd.Π ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ Kotlin ΡΠ΅ΡΠ΅Π·
ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π½Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΏΡΠΈΠ·Π²Π°Π½Π½ΡΠ΅ Π½Π°ΡΡΠΈΡΡ Π²Π°Ρ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎΠΌΡ ΡΡΠΈΠ»Ρ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌ Kotlin.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠ΅ΡΠ²ΡΡ
ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ², Π²Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΡΠ΅ ΠΊ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Kotlin,
Π΄Π°Π΅Ρ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Kotlin
ΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΠΎΡΠ»ΠΈΠ½Π΅
ΡΡΠΎ ΠΊΠ½ΠΈΠ³Π° ΠΠ΅Π½ΠΊΠ°ΡΠ° Π‘ΡΠ±ΡΠ°ΠΌΠ°Π½ΠΈΠ°ΠΌΠ°.ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Kotlin, ΠΈΠΌ ΡΡΠΎ Π½ΡΠ°Π²ΠΈΡΡΡ. ΠΠ°ΠΆΠ΅ Google ΠΏΡΠΈΠ½ΡΠ» Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΊΠ»Π°ΡΡΠ½ΡΠΉ ΡΠ·ΡΠΊ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Android. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π²ΡΠ³ΠΎΠ΄Ρ ΠΈΠ· ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΊΡΠ°ΡΠΊΠΎΠ³ΠΎ, ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ, ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎΠ³ΠΎ ΠΈ Π²ΡΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΡΡ
Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΠΏΠΈΡΠ°ΡΡ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ JVM ΠΈ Android, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ DSL, Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
Π Π°Π΄ΠΎΡΡΡ ΠΠΎΡΠ»ΠΈΠ½Π°
ΠΈ
Π Π°Π΄ΠΎΡΡΡ ΠΠΎΡΠ»ΠΈΠ½Π°
Π½Π°ΡΡΠΈΡ Π²Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Kotlin. Π ΡΡΠΎΠΉ ΠΏΡΠΎΠ½ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅
Π²Ρ ΠΎΠ²Π»Π°Π΄Π΅Π΅ΡΠ΅ ΡΠ·ΡΠΊΠΎΠΌ Kotlin, ΠΈΠ·ΡΡΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°Ρ Π»ΡΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ
Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅. Kotlin ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ,
ΡΠ°ΠΊ ΠΎΠΏΡΡΠ½ΡΠΉ Π°Π²ΡΠΎΡ ΠΡΠ΅Ρ-ΠΠ² Π‘ΠΎΠΌΠΎΠ½ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Ρ ΠΎΠ±Π·ΠΎΡΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΠΈ Π€Π,
ΡΡΡΠ»ΠΎΡΠ½Π°Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΎΠ².ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠ³Π»ΡΠ±ΠΈΡΠ΅ΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Kotlin Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠΈΡΠ΅, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ Π΄Π°Π½Π½ΡΠ΅.
Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ,
ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡΡ ΠΌΡΡΠ°ΡΠΈΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΡ
ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»Π΅Π½Ρ. ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ — ΠΈ
Π²Π΅ΡΠ½ΡΡΡ Π²Π°ΠΌ ΡΠ°ΡΡΡ ΡΠ°Π΄ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΈΡΠΏΡΡΠ°Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π»ΠΈ.
ΠΠ±ΡΠΈΠΉ
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Kotlin
ΠΈ
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ Kotlin — ΡΡΠΎ
ΠΊΠ½ΠΈΠ³Π°
ΠΠ΅Π½ΠΈΡ ΠΠ°Π»ΠΈΠ½ΠΈΠ½ ΠΎ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π° Kotlin.ΠΠ½ ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΠ½ΠΎΠ², ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ, Π½ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ
ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠ°ΡΡ
ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°ΡΠΏΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ·ΡΠΊΠ°. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΎΠ½ ΠΏΡΠΎΠ²Π΅Π΄Π΅Ρ Π²Π°Ρ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ
ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ
ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ
ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.
Π€ΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΠΠΎΡΠ»ΠΈΠ½, Π²ΡΠΎΡΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅
ΠΈ
Fundamental Kotlin — Π²ΡΠΎΡΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅
Π€ΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΠΎΡΠ»ΠΈΠ½Π°.ΠΠ½ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΊΠ½ΠΈΠ³Ρ Fundamental Kotlin ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π°ΠΌ ΡΠ²Π΅ΠΆΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Kotlin.
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΏΠΎ Kotlin
ΠΈ
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΏΠΎ
ΠΠΎΡΠ»ΠΈΠ½
— ΠΊΠ½ΠΈΠ³Π° ΠΠ°ΠΉΠΊΠ° ΠΠΆΠ΅ΠΉΠΌΡΠ°, Π·Π½Π°ΠΊΠΎΠΌΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Ρ Kotlin. ΠΠ½ΠΈΠ³Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ ΠΠΎΡΠ»ΠΈΠ½.
ΡΠ³Π»ΡΠ±Π»Π΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ
ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΡΠ»ΠΈΠ½
ΡΡ
ΠΠΎΡΠ»ΠΈΠ½
ΠΠ΅Ρ
ΠΌΠ΅Ρ ΠΠ»ΠΈ SICAK Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Ρ Kotlin.
ΠΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΠΈ ΠΏΠΎΠΊΠ° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΠΎΡΠ»ΠΈΠ½Π° Π½Π° ΡΡΡΠ΅ΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠΉ 17 ΠΈΡΠ»Ρ 2017 Π³ΠΎΠ΄Π°, ΠΠΎΡΠ»ΠΈΠ½ ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ ΡΠ΅ΠΌ ΠΎΡ ΠΠΎΡΠ»ΠΈΠ½Π° ΠΈ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΠΉ, ΠΠΎΡΠ»ΠΈΠ½Π°.
ΠΈ Java,
Kotlin ΠΈ Android, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Ρ Kotlin ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΡΠ»Π΅Π²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π² Kotlin.Π‘ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ
ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, ΠΌΠ°ΡΡΠΈΠ²Ρ, ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΎΠ±ΡΠΈΠ΅,
Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΏΡΠ°Π²ΠΈΠ»Π° Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
Ρ Kotlin, Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ ΡΠ·ΡΠΊΠ° Kotlin Π΄Π»Ρ ΠΏΡΠΎΡΠ½ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Ρ Android.ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° Π½Π° ΡΡΡΠ΅ΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
Π£ΡΠ΅Π½ΠΈΠΊ ΠΠΎΡΠ»ΠΈΠ½Π°
ΠΈ
Π£ΡΠ΅Π½ΠΈΠΊ ΠΠΎΡΠ»ΠΈΠ½Π°
Kotlin Apprentice ΡΠΎΠΊΡΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Ρ
ΡΠ·ΡΠΊΠ° Kotlin. ΠΡΠ»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² ΡΠ·ΡΠΊΠ΅ ΠΠΎΡΠ»ΠΈΠ½,
Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΠΎΡΡΡΡΡ: ΡΡΠ° ΠΊΠ½ΠΈΠ³Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΎΡΠ½ΠΎΠ² — Ρ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ Π²Π°Ρ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ Kotlin.
ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Kotlin, Π²Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΡΠ΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΠ΅Π΄Π½ΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ
ΠΈ Π½ΡΠ°Π½ΡΡ ΡΠ·ΡΠΊΠ°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅,
ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.ΠΠ°ΠΊΠΈΠΌ Π±Ρ Π½ΠΈ Π±ΡΠ»ΠΎ Π²Π°ΡΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΡΠ·ΡΠΊΠΎΠΌ,
ΡΡΠ° ΠΊΠ½ΠΈΠ³Π° Π½Π°ΡΡΠΈΡ Π²Π°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π² ΠΠΎΡΠ»ΠΈΠ½Π΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ
ΡΠΈΡΡΡΠ΅ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΠΎΡΠ»ΠΈΠ½Π΅.
ΠΠΎΡΠ»ΠΈΠ½ Kompakt
ΠΈΠ·
ΠΠΎΡΠ»ΠΈΠ½
Kompakt
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ² Java, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ
ΠΎΡΡΡ Π·Π°Π½ΡΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π½Π° Kotlin Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
Π‘ΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠ²ΡΠΈΡΡ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ Π² ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ
Π³Π»Π°Π²Π°Ρ
, Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ Kotlin Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ
Π΄Π½Π΅ΠΌ ΠΈΠ»ΠΈ Π² ΠΌΠ΅ΡΡΠΎ, ββΠΈ Π²ΡΠΊΠΎΡΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Kotlin.ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, Β«Kotlin KompaktΒ» Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΎΠ±ΡΠ΅ΠΌΠ»ΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ Π½Π°Π΄ Kotlin. Π‘ΠΊΠΎΡΠ΅Π΅,
Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Ρ ΠΈ Π»ΡΡΡΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Kotlin,
ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΡΠ°ΠΊΠΈΠΌ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Kotlin — ΠΡΠ½ΠΎΠ²Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android
ΠΏΡ
ΠΠΎΡΠ»ΠΈΠ½
— Les fondamentaux du dΓ©veloppement d’applications Android, ΠΊΠ½ΠΈΠ³Π° Π°Π²ΡΠΎΡΠ°
ΠΠ½ΡΠΎΠ½ΠΈ ΠΠΎΡΡΠΎΠ½, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Editions ENI.ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ Π³Π»Π°Π²Ρ ΠΊΠ½ΠΈΠ³ΠΈ
ΠΏΠΎΡΠ²ΡΡΠ΅Π½Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° ΠΠΎΡΠ»ΠΈΠ½. ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ Π³Π»Π°Π²Ρ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Ρ Android
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Kotlin. ΠΠ½ΠΈΠ³Π° ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π° ββΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²
ΡΡΠΎΠ±Ρ Π±ΡΡΡΡΠΎ ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠΎΡΠ»ΠΈΠ½
ΡΡΠΎ
ΠΠΎΡΠ»ΠΈΠ½
ΠΡΠΎ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Ρ Java, Π²ΠΊΠ»ΡΡΠ°Ρ JavaScript, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.Π§Π°ΡΡΠΈΡΠ½ΠΎ Π² 2017 Π³ΠΎΠ΄Ρ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π° Kotlin Γ¨ cresciuto costantemente a seguito della solution of Google di supportarlo, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android, Π° ΡΠ°ΠΊΠΆΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ Java.
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ
Π½Π° ΡΠ΅ΠΎΡΠΈΠΈ ΡΠ΅ΠΎΡΠΈΠΈ. Dopo l’esplorazione dell’ambiente di sviluppo, si affronta la sintassi di base e i «mattoni» del linguaggio, Ρ ΠΎΡΠΎΠ±ΡΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΠΊ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΡΠΌ. Quindi viene affrontata la programmazione a oggetti e quella funzionale, prima di consplorando alcuni degli aspetti piΓΉ avanzati, come l’interoperabilitΓ con Java, i contract e le coroutine.Una lettura adatta sia a chi desidera conoscere un nuovo e moderno linguaggio, sia agli sviluppatori mobile, che vogliono iniziare sfruttare Kotlin Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Android.
ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΠΎΡΠ»ΠΈΠ½
ΠΈ
ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΠΎΡΠ»ΠΈΠ½
ΡΡΠΎ ΠΊΠ½ΠΈΠ³Π° ΠΠ°ΡΡΠΈΠ½Π° ΠΠΎΡΠΊΠ°Π»Π°. ΠΠΎΡΠ»ΠΈΠ½ — ΠΌΠΎΡΠ½ΡΠΉ ΠΈ ΠΏΡΠ°Π³ΠΌΠ°ΡΠΈΡΠ½ΡΠΉ ΡΠ·ΡΠΊ, Π½ΠΎ Π·Π½Π°ΡΡ ΠΎ Π½Π΅ΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ.
Π΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ. ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡ
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π° Kotlin ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠ°ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π½Π° Kotlin. ΠΠ½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Kotlin. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠ½ΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΊΠ°ΠΊ ΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌΠΈ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ.
Einstieg Π² ΠΠΎΡΠ»ΠΈΠ½Π΅
ΠΈΠ·
ΠΠΉΠ½ΡΡΠΈΠ³ Π² ΠΠΎΡΠ»ΠΈΠ½Π΅
ΡΡΠΎ ΠΊΠ½ΠΈΠ³Π° Π’ΠΎΠΌΠ°ΡΠ° Π’Π°ΠΉΡΠ°. ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin.ΠΡ ΡΠ·Π½Π°Π΅ΡΠ΅ Π²ΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ°Π³ΠΈ ΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄Π°ΡΡΠΈΠΊΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΌΡ ΡΠΏΠΈΡΠΊΡ ΠΊΠΎΠ΄Π° ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ Π±ΡΡΡΡΠΎ Π½Π°ΡΡΠ°ΡΡΡ Ρ
ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π°ΡΠ΄ΠΈΠΎ- ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ·Π°ΠΏΠΈΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ, ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π΄Π»Ρ Π½Π΅ΠΎΠΏΡΡΠ½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Kotlin; ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ Ρ Java Π½Π° Kotlin, ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΏΠΎΠ»ΡΠ·Ρ ΠΎΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΠΊΡΠ°ΡΠΊΠΈΡ
ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠΉ.ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠ° ΠΊΠ½ΠΈΠ³Π° Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π½Π΅ΠΌΠ΅ΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΠΎΡΠ»ΠΈΠ½Π°
ΠΈ
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΠΎΡΠ»ΠΈΠ½Π°
— ΡΡΠΎ ΠΊΠ½ΠΈΠ³Π° Π₯Π°Π½ΠΈ Π. Π. ΠΠ΅Π½Π΅Π΅ ΡΠ΅ΠΌ Π½Π° 100 ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
ΡΡΠ° ΠΊΠ½ΠΈΠ³Π° Π±ΡΠ΄Π΅Ρ ΠΎΡ
Π²Π°ΡΡΠ²Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Kotlin ΠΏΡΡΠΌΡΠΌ ΠΈ ΡΠΎΡΠ½ΡΠΌ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ΠΌ. ΠΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Kotlin, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΡ, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΡΡΠ½ΠΊΡΠΈΠΈ, Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ, ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
.ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΊ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ, ΡΠ°ΠΊ ΠΈ Π·Π°Π½ΡΡΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Android
Kotlin Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Android
ΠΈ
Kotlin Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Android — ΠΊΠ½ΠΈΠ³Π° Π°Π²ΡΠΎΡΠ°
ΠΠ½ΡΠΎΠ½ΠΈΠΎ ΠΠ΅ΠΉΠ²Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ
ΠΊΠ°ΠΊ Kotlin ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π½ΡΠ»Ρ.
Π£ΡΠ΅Π½ΠΈΠΊ Android
ΠΈ
Π£ΡΠ΅Π½ΠΈΠΊ Android
ΠΡΠ»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² Android ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ Π½Π° Kotlin, ΡΡΠ° ΠΊΠ½ΠΈΠ³Π° Π΄Π»Ρ Π²Π°Ρ.Android Apprentice ΠΏΡΠΎΠ²Π΅Π΄Π΅Ρ Π²Π°Ρ Π½Π° Π²ΡΠ΅ΠΌ ΠΏΡΡΠΈ ΠΎΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎ ΠΏΠΎΠ΄Π°ΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΆΡ.
Π ΠΊΠΎΠ½ΡΡ ΠΊΠ½ΠΈΠ³ΠΈ Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΡΠ°, ΡΡΠΎΠ±Ρ Π²ΠΎΠΏΠ»ΠΎΡΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠ°ΡΠΏΠ»ΡΠ²ΡΠ°ΡΡΠ΅ ΠΈΠ΄Π΅ΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅
Π²ΡΠΏΡΡΠΊ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ Google Play.
ΠΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ 4 ΠΏΠΎΠ»Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π½ΡΠ»Ρ — ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ.
ΠΠΌΠ΅ΡΡΠ΅ ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΡΡΠ°Ρ Π²Π°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ API, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Android.
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ.
Kotlin Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ Android
ΠΈ
Kotlin Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android
ΠΠΈΡΠ΅ΡΠ° ΠΠΎΠΌΠΌΠ΅ΡΡ
ΠΎΡΡΠ°, ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Ρ
ΠΎΡΠΎΡΠ΅Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΠΎΡΠ»ΠΈΠ½Π°,
Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ Π² ββΠ΄Π²ΡΡ
ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° — Π·ΠΎΠ»ΠΎΡΠ°Ρ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΎΡΠΈΡΠΌΠΈ
ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π»ΡΡΡΠΈΠΌ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ,
ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ Π² Kotlin Ρ ΡΡΡΡΡΠ°ΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΊΠΎΠ΄Π°.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Kotlin
ΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Kotlin — ΡΡΠΎ
ΠΊΠ½ΠΈΠ³Π° Π‘ΡΠΈΠ²Π΅Π½Π° Π‘Π°ΠΌΡΡΠ»Ρ ΠΈ
Π‘ΡΠ΅ΡΠ°Π½ ΠΠΎΠΊΡΡΠΈΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Kotlin Π½Π° JVM. ΠΠ½ ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠ·ΡΠΊΠ° Ρ ΠΎΡΠΎΠ±ΡΠΌ ΡΠΏΠΎΡΠΎΠΌ Π½Π°
ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
ΠΠ½ Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Java, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ
ΠΎΡΡΡ ΠΈΠ·ΡΡΠΈΡΡ Kotlin, ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΎΠ½ ΡΠ»ΡΡΡΠ°Π΅Ρ Java.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ΄ Android Ρ Kotlin
ΠΈ
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ΄ Android
Ρ ΠΠΎΡΠ»ΠΈΠ½ΠΎΠΌ
— ΡΡΠΎ ΠΊΠ½ΠΈΠ³Π° ΠΠ°ΡΡΠΈΠ½Π° ΠΠΎΡΠΊΠ°Π»Π° ΠΈ ΠΠ³ΠΎΡΡ ΠΠΎΠΉΠ΄Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Kotlin Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Android.ΠΡΠΎ
Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
ΡΠΈΠΏΠΈΡΠ½ΡΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Android, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°,
ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΈ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΡΡΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ.
Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΠΎΡΠ»ΠΈΠ½Π΅
ΠΈ
Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π² ΠΠΎΡΠ»ΠΈΠ½Π΅
— ΠΎΠ±ΡΠΈΡΠ½Π°Ρ ΠΊΠ½ΠΈΠ³Π°, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π ΠΈΠ²Ρ Π§Π°ΠΊΡΠ°Π±ΠΎΡΡΠΈ, ΠΎΠΏΡΡΠ½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Android ΠΈ ΡΠ½ΡΡΠ·ΠΈΠ°ΡΡΠΎΠΌ Kotlin.ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π°, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²Π°ΠΌ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΠΠΎΡΠ»ΠΈΠ½. ΠΡ ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Kotlin ΠΈ RxKotlin.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡ Π²Π°Ρ ΡΠΎ Spring framework 5.0 ΠΈ Spring Boot 2.0.
ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Android Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin.
Π§Π΅ΡΡΠ΅ΠΆΠΈ ΠΠΎΡΠ»ΠΈΠ½Π°
ΠΈ
Π§Π΅ΡΡΠ΅ΠΆΠΈ ΠΠΎΡΠ»ΠΈΠ½Π°
— ΡΡΠΎ ΠΊΠ½ΠΈΠ³Π° ΠΠΊΡΠ°Ρ Π§ΠΎΡΠ΄ΠΈΡ, ΠΡΠΈΡΠ° ΠΠ΅Π»Π°Π³Π°Π»ΠΈ ΠΈ Π₯Π°ΡΠ΄ΠΈΠΊΠ° Π’ΡΠΈΠ²Π΅Π΄ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ
ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (Spring Boot, JavaScript), Android, Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
TornadoFX.ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin Native. ΠΠ½ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
Kotlin Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ
.
ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Kotlin ΠΈ Ρ
ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π° Kotlin Π΄Π»Ρ
ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ / Android / ΠΠ / Π ΠΎΠ΄Π½ΠΎΠΉ.
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΠΎΡΠ»ΠΈΠ½
ΠΈ
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΠΎΡΠ»ΠΈΠ½
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΠΎΡΠ»ΠΈΠ½ ΠΠ°ΡΠΈΠΎ ΠΡΠΈΠ°ΡΠ° ΠΈ Π ΠΈΠ²Ρ Π§Π°ΠΊΡΠ°Π±ΠΎΡΡΠΈ.Kotlin ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅
ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ
ΡΠ·ΡΠΊΠΎΠ². Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ Π²Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΡΡΡΠ΅Π΅,
ΡΠ»ΡΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π²Π°ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡΡ. ΠΠ½ΠΈΠ³Π° ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ Π-Π― ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²
ΠΠΎΡΠ»ΠΈΠ½,
Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΎΠ±Π·ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Arrow Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Kotlin.
ΠΠ°ΡΠΈΠΎ ΠΡΠΈΠ°Ρ — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π°Π²ΡΠΎΡΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Arrow, Π° Π ΠΈΠ²Ρ Π§Π°ΠΊΡΠ°Π±ΠΎΡΡΠΈ — ΠΎΠΏΡΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ
ΠΠ²ΡΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΊΠ½ΠΈΠ³ ΠΏΠΎ Kotlin, ΡΡΠ° ΠΊΠ½ΠΈΠ³Π° — ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΠ΅ΡΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠ²ΠΎΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²
ΠΠΎΡΠ»ΠΈΠ½ ΠΈ Π‘ΡΡΠ΅Π»Π°.
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ Ρ Kotlin
ΠΈ
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ Ρ
ΠΠΎΡΠ»ΠΈΠ½
— ΠΊΠ½ΠΈΠ³Π° Π₯ΡΠ°Π½Π° ΠΠ½ΡΠΎΠ½ΠΈΠΎ ΠΠ΅Π΄ΠΈΠ½Ρ ΠΠ³Π»Π΅ΡΠΈΠ°ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΠ»ΡΠ³ΠΈ,
ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊ ΡΠ°Π±ΠΎΡΠ΅, ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ, ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΡΠΎΡΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½Π°Ρ Java
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΡΠ΅Π°ΠΊΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ° ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠ²ΠΎΠΈ ΡΡΠ»ΡΠ³ΠΈ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ
Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ°ΡΠ»Π΅Π²ΡΡ
ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ².ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
NoSQL ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ
Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠΈΡΠΎΠΊΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΠ±Π»Π°ΠΊΠΎΠ².
ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ², ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ
. ΠΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Docker Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ
ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡ
.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π²Ρ ΡΠ°Π·Π²Π΅ΡΠ½Π΅ΡΠ΅ ΡΠ²ΠΎΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ Π² OpenShift Online.
ΠΠΎΠ²Π°ΡΠ΅Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Kotlin
ΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin
ΠΡΠ»ΠΈΠ½Π°ΡΠ½Π°Ρ ΠΊΠ½ΠΈΠ³Π°
Π΅ΡΡΡ ΡΠ΅ΡΠ΅ΠΏΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Android Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin 1.1,
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡΡΡΡΡΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΠΈΡΠ½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ
ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ ΡΠ΅ΡΠ΅ΠΏΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΡΠ°Ρ Π²Π°Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ
ΠΠΎΡΠ»ΠΈΠ½.
Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π·Π°ΡΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠ° ΠΊΠ½ΠΈΠ³Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΡΠ΅ΠΏΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΊΠΎΠ΄ Java Π½Π° Kotlin ΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ
ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Java.
ΠΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Android Ρ Kotlin
ΠΈ
ΠΠ°ΡΡΠ΅ΡΠΈΠ½Π³
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ΄ Android Ρ Kotlin
Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄Π°Π΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ
Kotlin Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Android.
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π΅Π΅ API. ΠΠ²ΠΈΠ³Π°ΡΡΡ Π΄Π°Π»ΡΡΠ΅, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΠ°Π³ΠΈ Π² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΡΡΡΠ°ΡΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android.
ΠΠ½ΠΈΠ³Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²Π°ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠ΅Π΄Ρ, Π° ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠ»ΠΎΠ½Π½ΠΎ ΡΠ°ΡΡΠΈ.
Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
Π³Π»Π°Π²Π°Ρ
.ΠΠΎΠ·ΠΆΠ΅ ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ Π²Π°Ρ Ρ Android Studio IDE, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ³ΡΠ°Π΅Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ.
Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠΎΠ΄ Android. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Kotlin, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ,
Π»ΡΠΌΠ±Π΄Ρ, ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, Π°ΡΠΏΠ΅ΠΊΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΡ ΡΠΈΠΏΠΎΠ², ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅,
ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Kotlin Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ
Π²Ρ, ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Kotlin Π² Π»ΡΠ±ΠΎΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Android.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅
ΠΈ
Kotlin ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΏΡΠΈΠΌΠ΅Ρ
ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ Π²Π°Ρ ΡΠΎ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Kotlin, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΊΠ»Π°ΡΡΡ.
ΠΡ ΠΈΠ·ΡΡΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Kotlin, ΡΠΎΠ·Π΄Π°Π² ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ.
Π§ΡΠΎΠ±Ρ Π±ΡΡΡΡΠΎ Π½Π°ΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Android, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ³ΡΡ,
Π’Π΅ΡΡΠΈΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ± ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΠΠΎΡΠ»ΠΈΠ½Π΅.ΠΠ°ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ
ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅Ρ, ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΉ. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΡΠ΅ΡΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΌΡ Π±Π΅ΡΠ΅ΠΌ
Π²Π·Π³Π»ΡΠ΄ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠΉ Π½Π°ΠΌ ΡΠ·Π½Π°ΡΡ ΠΎ Ρ
ΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ°ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ — ΡΠ΅ΡΠ΅Π½Π·Π΅Π½Ρ ΠΌΠ΅ΡΡΠ°: Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
API ΠΠ°ΡΡ Google ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π²ΡΠ±ΠΎΡΠ° ΠΌΠ΅ΡΡΠ°.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Spring 5 ΠΈ Kotlin
ΠΈ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Spring 5 ΠΈ Kotlin
Π ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ Π²Ρ Π½Π°ΡΠ½Π΅ΡΠ΅ Ρ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ Π² Spring ΠΈ Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin.ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΠ΅ΡΡ Π² ΠΎΡΠ΅Π½ΠΊΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΡΠ΅ΠΌ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Spring (Ρ Spring Boot) Π²ΠΌΠ΅ΡΡΠ΅ Ρ Kotlin Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ
Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ Π±ΡΠΊΡΠ½Π΄ Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ REST,
ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Project Reactor Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ
Spring Data ΠΈ Spring Cloud Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ
ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΎΠ±Π»Π°ΠΊΠ°.ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Spring Security Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ JUnit ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ AWS.
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ Kotlin
ΠΈ
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½
Π£Π·ΠΎΡΡ Ρ ΠΠΎΡΠ»ΠΈΠ½ΠΎΠΌ
ΠΠ°Π΄Π°ΡΠ° ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ — ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΠΎΡΠ»ΠΈΠ½.
ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΎΠΉ ΠΎΠΏΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ.ΠΠ½ΠΈΠ³Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΊΠ°Π·Π° Π²Π°ΠΌ
ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Kotlin, ΠΎΠ±ΡΡΡΠ½ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ Kotlin
ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΡΡΠ΄Π° Π² ΠΊΠ½ΠΈΠ³Π΅ Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ
ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΈΡ
, ΡΡΡΡΠΊΡΡΡΠ½ΡΡ
ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²,
ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΠΏΡΠΎΠ²Π΅Π΄Π΅Ρ Π²Π°Ρ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΈ
ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΡΠ°Ρ Π²Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ, ΠΏΠΎΡΠΎΠΊΠΈ ΠΈ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΈΡΠ°ΡΡ
ΠΊΠΎΠ΄ ΠΏΠΎ ΠΏΡΡΠΈ.Π ΠΊΠΎΠ½ΡΡ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ΡΠ°ΡΡ
ΠΎΠ±ΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΠ°Π±ΠΎΡΡ
Π½Π° ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ
ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
ΠΠΎΠ²Π°ΡΠ΅Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΠΎΡΠ»ΠΈΠ½Π°
ΠΈ
ΠΠΎΡΠ»ΠΈΠ½ Π‘ΡΠ°Π½Π΄Π°ΡΡ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ΅ΡΠ΅ΠΏΡΠΎΠ²
by Samuel Urbanowicz ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ Π² ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.ΠΠ½ ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ
ΠΎΠ±ΡΠΈΡ
Π·Π°Π΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ,
Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ
ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. ΠΠ½ΠΈΠ³Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅ΡΠ΅ΠΏΡΠΎΠ²
ΡΡΠΎ Π½Π°ΡΡΠΎΡΡΠ΅Π΅
ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ Π΄Π°ΡΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΎΠΉΡΠΈ ΠΊ Π½Π΅ΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Kotlin ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ JVM,
ΠΡΠΎΠ΅ΠΊΡΡ Android ΠΈ JavaScript.
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Kotlin ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android
ΠΈ
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Kotlin ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Eunice Adutwumwaa Obugyei. Π ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄,
Π³Π΄Π΅ ΠΌΡ ΡΠΎΠΊΡΡΠΈΡΡΠ΅ΠΌΡΡ Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠΎΠ΄ Android, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΡΡΠΈ ΡΠ°Π·Π½ΡΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android: ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Tic-Tac-Toe, Π±ΡΠ΄ΠΈΠ»ΡΠ½ΠΈΠΊ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π΄Π΅Π».
Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠ΅.ΠΠ½ΠΈΠ³Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄Π°Π΅Ρ Π²Π°ΠΌ Ρ
ΠΎΡΠΎΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ·ΡΠΊΠ΅ ΠΠΎΡΠ»ΠΈΠ½ ΠΈ Π΅Π³ΠΎ
API ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ°ΠΏ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΡΡΡΠ°ΡΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android. ΠΡ Π½Π°ΡΡΠΈΡΠ΅ΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ
ΠΎΠΊΡΡΠΆΠ°ΡΡΠ΅ΠΉ ΡΡΠ΅Π΄Ρ ΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π³Π»Π°Π² ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠ»ΠΎΠ½Π½ΠΎ ΡΠ°ΡΡΠΈ. ΠΠ½ΠΈΠ³Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ Π²Π°Ρ
Π² Android Studio IDE, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ³ΡΠ°Π΅Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Android. Ρ
t ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Kotlin, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, Π»ΡΠΌΠ±Π΄Ρ, ΡΠ²ΠΎΠΉΡΡΠ²Π°,
ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, Π°ΡΠΏΠ΅ΠΊΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΡ ΡΠΈΠΏΠΎΠ², ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ,
ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Kotlin Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½.ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π²Ρ ΠΏΡΠΎΠΉΠ΄Π΅ΡΠ΅ ΡΠ΅ΡΠ΅Π· Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ
ΠΎ Π²ΡΠΏΡΡΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Google Play Store. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
ΠΊΠ°Π½Π°Π»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Amazon App Store.
ΠΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin
ΠΈ
ΠΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin
ΠΠ½ΠΈΠ³Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ Kotlin, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ
ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Ρ ΡΠ΅Ρ
Π½ΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ Π²ΡΡΠ²Π»ΡΡΡ ΡΠ·ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠ° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π½Π°ΠΌ Π΄ΠΎΡΡΠΈΡΡ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ: ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ,
ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ
ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π²Π°ΠΆΠ½ΠΎΡΡΡ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π°. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Kotlin
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ»ΡΡΡΠΈΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ.Π ΠΊΠΎΠ½ΡΡ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅Ρ
Π½ΠΈΠΊΠ°Ρ
ΠΈ
ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π΄Π΅ Kotlin.
ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² ΠΠΎΡΠ»ΠΈΠ½Π΅
ΠΈ
ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² ΠΠΎΡΠ»ΠΈΠ½Π΅
ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ ΠΊ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΡ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ
ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.Β«Learning Concurrency in KotlinΒ» ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΈ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅
Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ ΠΠΎΡΠ»ΠΈΠ½Π°. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ Π²
Kotlin, Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅
ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Kotlin.
ΠΡ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΏΠΎΡΠΎΠΊΠΈ ΠΈ
ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ.ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΌΡ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ
ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π½ΡΡΡΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²Π°ΠΌ Π²ΠΈΠ΄Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Android — ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠ΅Π½ΠΈΡ RSS
ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΌΠ°ΠΌΠΈ, Π·Π°ΡΡΠΎΠ½ΡΡΡΠΌΠΈ Π² ΠΊΠ½ΠΈΠ³Π΅.
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ Kotlin
ΠΈ
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π½ΡΡΠΈΠ΅
ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin
ΠΠ±ΠΈΠ΄ Π₯Π°Π½ ΠΈ ΠΠ³ΠΎΡΡ ΠΡΡΠ΅ΡΠ΅Π½ΠΊΠΎ.ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΠΊΠ½ΠΈΠ³ΠΈ — Π΄Π°ΡΡ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠΈΠΉ
ΠΏΠΎΠΊΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Kotlin, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΡ, ΠΊΠ»Π°ΡΡΡ Π΄Π°Π½Π½ΡΡ
ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ Π΄Π°Π΅Ρ Ρ
ΠΎΡΠΎΡΠ΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Kotlin
ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, ΠΊΠ°ΠΊ Π·Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠΎΠ²Π½Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°
ΠΈ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π² ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅. Π ΠΊΠΎΠ½ΡΡ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΡΡΠΎΠΈΡΡ
Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Kotlin.
Kotlin Π΄Π»Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Java EE
ΠΈ
ΠΠΎΡΠ»ΠΈΠ½ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠΉ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Java EE ΠΎΡ Π Π°Π³Ρ
Π°Π²Π΅Π½Π΄ΡΡ Π Π°ΠΎ Π., Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΊΡΠ°ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π·ΠΎΡΠ°
Kotlin ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΠΈ ΡΠ°Π·ΡΠΌΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ.
ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π΅Π³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ
Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Java EE.ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Java Persistence API (JPA) ΠΈ Enterprise JavaBeans (EJB),
Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²Π΅Π±-ΡΠ»ΡΠΆΠ±Ρ RESTful ΠΈ MicroServices. ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΠΌ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ
Π³Π»Π°Π²Ρ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π² ΠΠΎΡΠ»ΠΈΠ½Π΅.Π ΠΊΠΎΠ½ΡΡ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΌΡ ΠΈΠ·ΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ
ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kotlin.
Learn Spring Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android
ΠΈ
Learn Spring Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android
ΠΠ²ΡΠΎΡ: Π‘. Π. ΠΠΎΡ
ΠΈ Π£Ρ Π‘ΡΠ½Π½Π°Ρ ΠΈ ΠΠ³ΠΎΡΡ ΠΡΡΠ΅ΡΠ΅Π½ΠΊΠΎ ΡΠ°ΡΡΠΊΠ°ΠΆΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠ»ΠΎΠ²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Spring Framework Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»Π΅Π³ΠΊΠΈΡ
ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Kotlin.ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Spring AOP, Dependency Injection ΠΈ Inversion of Control, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π»ΡΡΡΠΈΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ Spring Framework, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Spring MVC, Spring Boot ΠΈ Spring.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Π»Π°Π²Ρ Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΎΡΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ.
Π ΠΊΠΎΠ½ΡΡ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Spring.
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Ρ Kotlin
ΠΈ
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Ρ Kotlin
Π§Π°Π½Π΄ΡΠ° Π‘Π΅Ρ
Π°Ρ ΠΠ°ΡΠΊ, Π ΠΈΠ²Ρ Π§Π°ΠΊΡΠ°Π±ΠΎΡΡΠΈ, Π½Π°ΡΠΈΠ½Π°Π΅Ρ Ρ ΠΎΡΠ½ΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΈ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ
,
ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π°Ρ
ΠΈ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ.ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΡΠ΅ ΠΊ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ
ΠΎΡΠ½ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΏΡΠΈΠ²ΡΡΠΊΠ΅ ΠΊ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΌΡ ΠΌΡΡΠ»Π΅Π½ΠΈΡ. ΠΡΠ° ΠΊΠ½ΠΈΠ³Π°, Π½Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Π°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΌΡ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Kotlin ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π½ΡΡΡΠΈ. Π ΠΊΠΎΠ½ΡΡ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΎΡΠΈΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ
ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΠΎΡΠ»ΠΈΠ½ ΠΈΠ»Ρ ΠΡΠ΅Π½ΠΊΡΠΎΠ½ Programlama
ΡΡ
Kotlin ile Asenkron Programlama
Kotlin ile Asnekron Programlama ΠΠ΅Ρ
ΠΌΠ΅Ρ ΠΠ»ΠΈ SICAK Π±ΡΠ»Π° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π΄Π»Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Ρ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ.ΠΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΠΈ ΠΏΠΎΠΊΠ° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΎ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ
Π½Π° ΡΡΡΠ΅ΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅. ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π½Π°ΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠ° ΠΊΠ½ΠΈΠ³Π° Π΄Π»Ρ Π²Π°Ρ. Π ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ, ΠΌΠ΅ΡΠΎΠ΄Ρ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ
ΡΠ°ΡΡΠ΅ΠΉ: ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ.
.ΠΡΠ½ΠΎΠ²Ρ
— ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Kotlin
ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
ΠΈΠΌΠΏΠΎΡΡ kotlinx.coroutines. *
fun main () {
GlobalScope.launch {// Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ
delay (1000L) // Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ°Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π½Π° 1 ΡΠ΅ΠΊΡΠ½Π΄Ρ (Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - ΠΌΡ)
println ("World!") // ΠΏΠ΅ΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ
}
println ("Hello,") // ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ, ΠΏΠΎΠΊΠ° ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ
ΠΠΈΡΡ.sleep (2000L) // Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π° 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΡΡΠΎΠ±Ρ JVM ΡΠ°Π±ΠΎΡΠ°Π»Π°
}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ.
ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅,
ΠΠΈΡ!
ΠΠΎ ΡΡΡΠΈ, ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — ΡΡΠΎ Π»Π΅Π³ΠΊΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ.
ΠΠ½ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Ρ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΏΠΎΡΡΡΠΎΠΈΡΠ΅Π»Ρ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ CoroutineScope.
ΠΠ΄Π΅ΡΡ ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² GlobalScope, Π° ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ
ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π’Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ, Π·Π°ΠΌΠ΅Π½ΠΈΠ²
GlobalScope.launch {...}
Ρ ΠΏΠΎΡΠΎΠΊΠΎΠΌ {...}
ΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ (...)
Ρ Thread.sleep (...)
.
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ (Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ kotlin.concurrent.thread
).
ΠΡΠ»ΠΈ Π½Π°ΡΠ°ΡΡ Ρ Π·Π°ΠΌΠ΅Π½Ρ GlobalScope.launch
Π½Π° thread
, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
ΠΡΠΈΠ±ΠΊΠ°: Kotlin: ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° — ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ , ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊ, Π½ΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ
ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΈ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΌΠΈΡΠΎΠ²
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΌΠ΅ΡΠΈΠ²Π°Π΅Ρ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ delay (...)
ΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ Thread.sleep (...)
Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅.
ΠΠ΅Π³ΠΊΠΎ Π·Π°Π±ΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ
Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ, Π° ΠΊΠ°ΠΊΠΎΠΉ Π½Π΅Ρ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ runBlocking:
ΠΈΠΌΠΏΠΎΡΡ kotlinx.coroutines. *
fun main () {
GlobalScope.launch {// Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ
Π·Π°Π΄Π΅ΡΠΆΠΊΠ° (1000Π»)
println ("ΠΠΈΡ!")
}
println ("Hello,") // Π·Π΄Π΅ΡΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ
runBlocking {// Π½ΠΎ ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ
Π·Π°Π΄Π΅ΡΠΆΠΊΠ° (2000Π») //... ΠΏΠΎΠΊΠ° ΠΌΡ Π·Π°Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π½Π° 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ JVM
}
}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΡ ΠΆΠ΅, Π½ΠΎ Π² ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ°Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ runBlocking
, Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²Π½ΡΡΡΠΈ runBlocking
.
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ΄ΠΈΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ runBlocking
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ°
Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΈΠΌΠΏΠΎΡΡΠ½ΡΠΉ ΠΊΠΎΡΠ»ΠΈΠ½ΠΊΡ.ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. *
fun main () = runBlocking {// Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
GlobalScope.launch {// Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ
Π·Π°Π΄Π΅ΡΠΆΠΊΠ° (1000Π»)
println ("ΠΠΈΡ!")
}
println ("Hello,") // ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Π·Π΄Π΅ΡΡ
delay (2000L) // Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π½Π° 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΡΡΠΎΠ±Ρ JVM ΡΠ°Π±ΠΎΡΠ°Π»Π°
}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ.
ΠΠ΄Π΅ΡΡ runBlocking
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π°Π΄Π°ΠΏΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ.ΠΡ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Unit
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ main
Π² Kotlin Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Unit
.
ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ:
class MyTest {
@ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°
fun testMySuspendingFunction () = runBlocking {
// Π·Π΄Π΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΡΠΈΠ»Ρ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ
}
}
ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° Π½Π° Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΠΊΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄ΡΡΠ³Π°Ρ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° — Π½Π΅ Π»ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄.ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ²Π½ΠΎ
ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ (Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ), ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ΅ Π½Π°ΠΌΠΈ ΡΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅:
ΠΈΠΌΠΏΠΎΡΡ kotlinx.coroutines. *
fun main () = runBlocking {
// sampleStart
val job = GlobalScope.launch {// Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ ΡΡΡΠ»ΠΊΡ Π½Π° Π΅Π΅ Job
Π·Π°Π΄Π΅ΡΠΆΠΊΠ° (1000Π»)
println ("ΠΠΈΡ!")
}
println ("ΠΡΠΈΠ²Π΅Ρ,")
job.join () // ΠΆΠ΄Π΅ΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΉ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
// sampleEnd
}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΡ ΠΆΠ΅, Π½ΠΎ ΠΊΠΎΠ΄ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
ΡΠΎΠ½ΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΠ°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅.
ΠΠ»Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΅ΡΠ΅ Π΅ΡΡΡ ΡΡΠΎ ΠΏΠΎΠΆΠ΅Π»Π°ΡΡ.
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ GlobalScope.launch
, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½ Π»Π΅Π³ΠΊΠΈΠΉ, ΠΎΠ½ Π²ΡΠ΅ ΠΆΠ΅
ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ. ΠΡΠ»ΠΈ ΠΌΡ Π·Π°Π±ΡΠ΄Π΅ΠΌ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΉ
ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΎΠ½Π° Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ΄ Π² ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π·Π°Π²ΠΈΡΠ°Π΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ
Π·Π°Π΄Π΅ΡΠΆΠΊΠ° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄ΠΎΠ»Π³ΠΎ), ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ?
ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΡΡΡΠ½ΡΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π²ΡΠ΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΠΊ Π½ΠΈΠΌ ΡΡΠ΅Π²Π°ΡΠ° ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ.
ΠΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΡΠ΅. Π Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ.
ΠΠΌΠ΅ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² GlobalScope, ΠΊΠ°ΠΊ ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ (ΠΏΠΎΡΠΎΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅),
ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΠ΅Π»Ρ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ runBlocking.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΡΡΠΎΠΈΡΠ΅Π»Ρ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ runBlocking
, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ CoroutineScope Π² ΠΎΠ±Π»Π°ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π±Π΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΊ
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ
Π²Π½Π΅ΡΠ½ΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ( runBlocking
Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅) Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ Π²ΡΠ΅ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ΅ ΠΏΠΎΠ»Π½Π°Ρ.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΏΡΠΎΡΡΠΈΡΡ Π½Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΈΠΌΠΏΠΎΡΡ kotlinx.coroutines. *
fun main () = runBlocking {// this: CoroutineScope
launch {// Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
runBlocking
Π·Π°Π΄Π΅ΡΠΆΠΊΠ° (1000Π»)
println ("ΠΠΈΡ!")
}
println ("ΠΡΠΈΠ²Π΅Ρ,")
}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ.
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΠΏΠΎΡΡΡΠΎΠΈΡΠ΅Π»Ρ coroutineScope.ΠΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±Π»Π°ΡΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡ Π²ΡΠ΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
runBlocking ΠΈ coroutineScope ΠΌΠΎΠ³ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π° ΠΆΠ΄ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅Π»Π° ΠΈ Π²ΡΠ΅Ρ
Π΅Π³ΠΎ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ runBlocking Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π»Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ,
Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ coroutineScope ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΡΠ΅Π»Π΅ΠΉ.
ΠΠ·-Π·Π° ΡΡΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ runBlocking ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, Π° coroutineScope — ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.
ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
ΠΈΠΌΠΏΠΎΡΡ kotlinx.coroutines. *
fun main () = runBlocking {// this: CoroutineScope
launch {
Π·Π°Π΄Π΅ΡΠΆΠΊΠ° (200Π»)
println ("ΠΠ°Π΄Π°ΡΠ° ΠΎΡ runBlocking")
}
coroutineScope {// Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±Π»Π°ΡΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
launch {
Π·Π°Π΄Π΅ΡΠΆΠΊΠ° (500Π»)
println (Β«ΠΠ°Π΄Π°ΡΠ° ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Β»)
}
Π·Π°Π΄Π΅ΡΠΆΠΊΠ° (100Π»)
println ("ΠΠ°Π΄Π°ΡΠ° ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ") // ΠΡΠ° ΡΡΡΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Π° ΠΏΠ΅ΡΠ΅Π΄ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π·Π°ΠΏΡΡΠΊΠΎΠΌ
}
println ("ΠΠ±Π»Π°ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°") // ΠΡΠ° ΡΡΡΠΎΠΊΠ° Π½Π΅ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΡΠΊ
}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Β«ΠΠ°Π΄Π°ΡΠ° ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡΒ» (Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°)
Β«Task from runBlockingΒ» Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΡΡ, Ρ
ΠΎΡΡ coroutineScope Π΅ΡΠ΅ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΡΠ΄Π΅Π»ΠΈΠΌ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π²Π½ΡΡΡΠΈ launch {...}
Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠΎΠ³Π΄Π° ΡΡ
Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ Β«ΠΠ·Π²Π»Π΅ΡΡ ΡΡΠ½ΠΊΡΠΈΡΒ» Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ suspend
.
ΠΡΠΎ Π²Π°ΡΠ° ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ .Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ
ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ ΠΈΡ
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ,
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, delay
Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅), ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΈΠΌΠΏΠΎΡΡ kotlinx.coroutines. *
fun main () = runBlocking {
Π·Π°ΠΏΡΡΡΠΈΡΠ΅ {doWorld ()}
println ("ΠΡΠΈΠ²Π΅Ρ,")
}
// ΡΡΠΎ Π²Π°ΡΠ° ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
suspend fun doWorld () {
Π·Π°Π΄Π΅ΡΠΆΠΊΠ° (1000Π»)
println ("ΠΠΈΡ!")
}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ.
ΠΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΡΡΡΠΎΠΈΡΠ΅Π»Ρ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ?
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° suspend
Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΠ΅Π»Π°Π΅ΠΌ doWorld
ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ
ΠΠ΅ΡΠΎΠ΄ Π½Π° CoroutineScope
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΎΠ½ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ API Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ.
ΠΠ΄ΠΈΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π»ΠΈΠ±ΠΎ ΡΠ²Π½ΡΠΉ CoroutineScope
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ»Ρ Π² ΠΊΠ»Π°ΡΡΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ
ΠΈΠ»ΠΈ Π½Π΅ΡΠ²Π½ΡΠΉ, ΠΊΠΎΠ³Π΄Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ»Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ CoroutineScope
.Π ΠΊΡΠ°ΠΉΠ½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ CoroutineScope (coroutineContext), Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΡΡΡΠΊΡΡΡΠ½ΠΎ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½.
ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°. Π’ΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠ½ΡΠ΅ API ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
ΠΈΠΌΠΏΠΎΡΡ kotlinx.coroutines. *
fun main () = runBlocking {
repeat (100_000) {// Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ
launch {
Π·Π°Π΄Π΅ΡΠΆΠΊΠ° (5000Π»)
Π Π°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ(".")
}
}
}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ.
ΠΠ°ΠΏΡΡΠΊΠ°Π΅Ρ 100 ΡΡΡ. Π‘ΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΈ ΡΠ΅ΡΠ΅Π· 5 ΡΠ΅ΠΊΡΠ½Π΄ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΡΠΊΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΡΠΎ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. Π§ΡΠΎ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ Π±Ρ? (Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²Π°Ρ ΠΊΠΎΠ΄ Π²ΡΠ·ΠΎΠ²Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ)
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² GlobalScope, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Β«Π― ΡΠΏΠ»ΡΒ» Π΄Π²Π°ΠΆΠ΄Ρ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ, Π° Π·Π°ΡΠ΅ΠΌ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ:
ΠΈΠΌΠΏΠΎΡΡ kotlinx.coroutines. *
fun main () = runBlocking {
// sampleStart
GlobalScope.launch {
ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ (1000) {Ρ ->
println ("Π― ΡΠΏΠ»Ρ, $ i ...")
Π·Π°Π΄Π΅ΡΠΆΠΊΠ° (500Π»)
}
}
delay (1300L) // ΠΏΡΠΎΡΡΠΎ Π²ΡΡ
ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΡΠ»Π΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ
// sampleEnd
}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΎΠ½ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ:
Π― ΡΠΏΠ»Ρ 0 ...
Π― ΡΠΏΠ»Ρ 1 ...
Π― ΡΠΏΠ»Ρ 2 ...
ΠΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ Π² GlobalScope, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°.ΠΠ½ΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π΅ΠΌΠΎΠ½ΠΎΠ².
.
Π‘ΠΎΡΠ΅Π²Π½ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ — ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Kotlin
ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Kotlin Π΄Π»Ρ ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠΎΡΠ΅Π²Π½ΡΡΡΠΈΡ
ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π½ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Kotlin, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ
Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Kotlin, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π½Π΅Π΅ Π½Π΅ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π² ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°Π½ΠΈΡΡ
ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π½Π°Π²ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΠ½ΠΊΡΡΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Kotlin
ΠΠΎΠ½ΠΊΡΡΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΡΡΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΡ, Π³Π΄Π΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΠΏΠΈΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Π² ΠΆΠ΅ΡΡΠΊΠΈΡ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ
.ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠ³ΡΡ Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡ ΠΏΡΠΎΡΡΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
Π»ΡΠ±ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ
, ΡΡΠ΅Π±ΡΡΡΠΈΡ
Π·Π½Π°Π½ΠΈΡ
ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ. Π₯ΠΎΡΡ ΠΎΠ½ Π½Π΅ Π±ΡΠ» ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π»Ρ ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°Π½ΠΈΠΉ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Kotlin, ΠΊΡΡΠ°ΡΠΈ, Ρ
ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, ΡΠΌΠ΅Π½ΡΡΠ°Ρ ΡΠΈΠΏΠΈΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΈ ΡΠΈΡΠ°ΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΡΡΠΈ Π΄ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ
ΡΠ·ΡΠΊΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΠΈΠΌΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°.
Π‘ΠΌ. ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ IntelliJ IDEA, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ.
ΡΡΠ΅Π΄Π° Π΄Π»Ρ ΠΠΎΡΠ»ΠΈΠ½Π°. Π ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.
Codeforces
Π Π°ΡΠ½Π΄ 555 Π±ΡΠ» ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ 26 Π°ΠΏΡΠ΅Π»Ρ Π΄Π»Ρ 3-Π³ΠΎ Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΎΠ½Π°, Π° ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Ρ Π½Π΅Π³ΠΎ Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ Π±Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΡΠ»ΠΊΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π‘Π°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ° Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ —
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° A: Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ°.ΠΠ½ ΠΏΡΠΎΡΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π·Π°Π΄Π°ΡΠΈ.
ΠΡ Π½Π°ΡΠ°Π»ΠΈ Π±Ρ Π΅Π΅ ΡΠ΅ΡΠ°ΡΡ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Kotlin Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. A.kt
ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΊΠ°ΠΊ:
ΠΠ±ΠΎΠ·Π½Π°ΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ f (x) ΡΠ°ΠΊ: ΠΌΡ ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅ΠΌ 1 ΠΊ x, ΡΠΎΠ³Π΄Π°, ΠΏΠΎΠΊΠ° Π΅ΡΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π½ΠΎΠ»Ρ
Π² ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΡΠΎΡ Π½ΠΎΠ»Ρ ΡΠ±ΠΈΡΠ°Π΅ΠΌ.
Kotlin — ΡΡΠΎ ΠΏΡΠ°Π³ΠΌΠ°ΡΠΈΡΠ½ΡΠΉ ΠΈ ΠΌΠ°Π»ΠΎΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠ·ΡΠΊ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π΅Π·
ΠΏΠΎΠ΄ΡΠ°Π»ΠΊΠΈΠ²Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΠΈΠ· Π½ΠΈΡ
.ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ f
Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΊΠΎΠΉ Kotlin
ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ Ρ
Π²ΠΎΡΡΠΎΠ²Π°Ρ ΡΠ΅ΠΊΡΡΡΠΈΡ:
tailrec fun removeZeroes (x: Int): Int =
if (x% 10 == 0) removeZeroes (x / 10) else x
fun f (x: Int) = removeZeroes (x + 1)
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ f
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ
ΡΠΈΠΊΠ» while ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΠΎΡΠ»ΠΈΠ½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Ρ
var:
fun f (x: Int): Int {
var cur = x + 1
Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ (cur% 10 == 0) cur / = 10
Π²Π΅ΡΠ½ΠΈΡΡ
}
Π’ΠΈΠΏΡ Π² Kotlin Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΌΠ΅ΡΡΠ°Ρ
ΠΈΠ·-Π·Π° ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΏΠΎΠ², Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΈΠΌΠ΅Π΅Ρ
ΡΠ΅ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π²Π²ΠΎΠ΄ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°.
Π·Π°ΠΏΡΠΎΡ — Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΡΡ ΠΏΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ
ΡΡΠ½ΠΊΡΠΈΡ f
Π½Π° Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ n
, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ Π²Π²ΠΎΠ΄Π΅.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Kotlin ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° JVM ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±ΠΎΠ³Π°ΡΠΎΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Ρ
ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ( ArrayList
),
ΠΊΠ°ΡΡΡ ΠΈ Π½Π°Π±ΠΎΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Ρ
Π΅ΡΠ΅ΠΉ ( HashMap
/ HashSet
), ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ°ΡΡΡ ΠΈ Π½Π°Π±ΠΎΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π΅ΡΠ΅Π²Π° ( TreeMap
/ TreeSet
) ΠΈ Ρ. Π΄.ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Ρ
ΡΡ-Π½Π°Π±ΠΎΡ ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π» Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΡ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ f
,
ΠΏΡΡΠΌΠΎΠΉ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
fun main () {
var n = readLine () !!. toInt () // ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈΠ· Π²Π²ΠΎΠ΄Π°
val Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎ = HashSet () // ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Ρ
ΡΡ-Π½Π°Π±ΠΎΡ
while (completed.add (n)) n = f (n) // ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ f
println (completed.size) // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΡΠ²ΠΎΠ΄
}
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Kotlin’s
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ !!
ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ readLine ().Π€ΡΠ½ΠΊΡΠΈΡ Kotlin readLine ()
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°
ΠΎΠ±Π½ΡΠ»ΡΠ΅ΠΌΡΠΉ ΡΠΈΠΏ
Π‘ΡΡΠΎΠΊΠ°?
ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ null
Π² ΠΊΠΎΠ½ΡΠ΅ Π²Π²ΠΎΠ΄Π°, ΡΡΠΎ ΡΠ²Π½ΠΎ Π²ΡΠ½ΡΠΆΠ΄Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ
ΡΠ»ΡΡΠ°ΠΉ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π²Π²ΠΎΠ΄Π°.
ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΉ Π½Π΅Π²Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° Π²Π²ΠΎΠ΄Π° Π² ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
Π ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΡΠΌΠ°Ρ Π²Π²ΠΎΠ΄Π° Π²ΡΠ΅Π³Π΄Π° ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½, ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΊΠ»ΠΎΠ½ΡΡΡΡΡ ΠΎΡ
Π²Ρ
ΠΎΠ΄Π½Π°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π² ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π·Π°Π΄Π°ΡΠΈ.ΠΠΎΡ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ !!
ΠΏΠΎ ΡΡΡΠΈ —
ΠΎΠ½ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ Π²Ρ
ΠΎΠ΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ, ΠΈ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ΄Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅
String.toInt ()
ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ΄Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ
ΠΎΠ΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ.
ΠΡΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ
ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΊΠΎΠ΄ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΈΡΠ°ΡΡ.ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ
ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π² ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ:
ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ΅ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ readLn () = readLine () !!
ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ΅ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ readInt () = readLn (). toInt ()
// ΠΈ Ρ.Π΄. Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΡΠΈΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π² ΡΠ²ΠΎΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΡΡ
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π΄Π΅ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ private
.
Π₯ΠΎΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½Π° Π΄Π»Ρ ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ,
ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅
ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠ°Π±Π»ΠΎΠ½ Π±Π΅Π· ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ·-Π·Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΡ
ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅.
ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ
Π·Π°Π΄Π°Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ±ΡΠΈΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Kotlin Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ.
ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΠΊΠΎΠ΄ Π² ΠΏΠ»Π°Π²Π½ΠΎΠ΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΡΠ²Π΅ΡΡ
Ρ Π²Π½ΠΈΠ· ΠΈ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ
ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° B: ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ
ΡΡΠ΅Π±ΡΠ΅Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΆΠ°Π΄Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π² ΡΡΠΎΠΌ ΡΡΠΈΠ»Π΅ Π±Π΅Π· Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ:
fun main () {
// ΡΠΈΡΠ°Π΅ΠΌ Π²Π²ΠΎΠ΄
val n = readLine () !!.toInt ()
val s = readLine () !!
val fl = readLine () !!. split ("") .map {it.toInt ()}
// ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ f
fun f (c: Char) = '0' + fl [c - '1']
// ΠΆΠ°Π΄Π½ΠΎ Π½Π°Ρ
ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΡ
val i = s.indexOfFirst {c -> f (c)> c}
.takeIf {it> = 0}?: s.length
val j = s.withIndex (). indexOfFirst {(j, c) -> j> i && f (c) = 0}?: s.length
// ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΈ ΠΏΠΈΡΠ΅ΠΌ ΠΎΡΠ²Π΅Ρ
val ans =
s.substring (0, i) +
Ρ.substring (i, j) .map {c -> f (c)} .joinToString ("") +
s.substring (j)
println (ans)
}
Π ΡΡΠΎΠΌ ΠΏΠ»ΠΎΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Kotlin, ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ elvis ?:
ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΡΠ°Π·ΠΈΡΡ
ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ΄ΠΈΠΎΠΌΡ, ΠΊΠ°ΠΊ Β«ΠΏΡΠΈΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»ΠΈΠ½ΡΒ» Ρ ΠΊΡΠ°ΡΠΊΠΈΠΌ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ
ΡΠ°ΠΊΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ .takeIf {it> = 0}?: s.length
, Π½ΠΎ Ρ Kotlin Π²ΠΏΠΎΠ»Π½Π΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ Π²ΡΡΠ°ΠΆΠ°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ΄ Π² ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌ ΡΡΠΈΠ»Π΅.
Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠ΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° Π² Π·Π°Π΄Π°ΡΠ°Ρ
ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΠ°ΡΠΊΠΈΠΌ,
Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ ΡΡΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°:
ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ΅ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ readLn () = readLine () !! // ΡΡΡΠΎΠΊΠ° ΡΡΡΠΎΠΊΠΈ
ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ΅ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ readInt () = readLn (). toInt () // ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ int
ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ΅ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ readStrings () = readLn (). split ("") // ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠΎΠΊ
ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ΅ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ readInts () = readStrings (). map {it.toInt ()} // ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π»ΡΡ
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ
ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΎΠ² ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅, Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄Ρ Π·Π° Π²Π²ΠΎΠ΄ΠΎΠΌ
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π² ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ:
// ΡΠΈΡΠ°Π΅ΠΌ Π²Π²ΠΎΠ΄
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ n = readInt ()
val s = readLn ()
val fl = readInts ()
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ½ΡΡΠΎ Π΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°, ΡΠ΅ΠΌ
ΡΠΈΠΏΠΈΡΠ½ΠΎ Π² ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ.ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΈ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ — a
Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²,
i
, j
ΠΈ Ρ. Π. ΠΠ»Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², r
ΠΈ c
Π΄Π»Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ
, x
ΠΈ y
Π΄Π»Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΈ Ρ. Π.
ΠΠ»Ρ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΏΡΠΎΡΠ΅ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΡΠ΅ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π°, ΡΡΠΎ ΠΈ Π² ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΠ΅ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΡΠ΅Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠ΄Π°, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½ΡΡ
, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠΈΡ
ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠΉ
ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΎΠ²Π΅ΡΡ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ
ΠΠ°Π΄Π°ΡΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΎΠΉ Π²Π²ΠΎΠ΄:
ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π° ΡΠ΅Π»ΡΡ ΡΠΈΡΠ»Π°
n
ΠΈk
Π Kotlin ΡΡΡ ΡΡΡΠΎΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡΠ°ΡΠΊΠΎ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ ΠΎ ΡΠ°Π·ΡΡΡΠ΅Π½ΠΈΠΈ
ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π»:
ΠΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΎΠ±Π»Π°Π·Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JVM java.util.Scanner
ΠΊΠ»Π°ΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ. Kotlin ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ Ρ
ΠΎΡΠΎΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ JVM, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΠΎΡΠ»ΠΈΠ½Π΅. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ java.util.Scanner
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ, ΡΡΠΎ ΡΠ°Π·Π±ΠΎΡ
10 5 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π» Ρ Π½ΠΈΠΌ ΠΌΠΎΠ³ΡΡ Π½Π΅ Π²ΠΏΠΈΡΠ°ΡΡΡΡ Π² ΡΠΈΠΏΠΈΡΠ½ΡΠΉ 2-ΡΠ΅ΠΊΡΠ½Π΄Π½ΡΠΉ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π»ΠΈΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ Kotlin’s
split ("") .map {it.toInt ()}
Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ.
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° Kotlin ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Ρ
println (β¦)
Π·Π²ΠΎΠ½ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Kotlin’s
ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ.ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° 10 5 ΡΡΡΠΎΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²ΡΠ·ΠΎΠ²ΠΎΠ² println
ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ²ΠΎΠ΄
Π² ΠΠΎΡΠ»ΠΈΠ½Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠΎΠΊ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΊΠ° — ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΡΡΠ½ΠΊΡΠΈΡ joinToString ()
Ρ "\ n"
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
println (a.joinToString ("\ n")) // ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° / ΡΠΏΠΈΡΠΊΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ
Kotlin ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ Π±ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΡΡΠΈΡΡ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π·Π½Π°ΡΡ Java.ΠΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
ΠΡΠ°ΡΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Kotlin Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΡΡΠΌΠΎ Π²
ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π» Π²Π΅Π±-ΡΠ°ΠΉΡΠ°, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°.
IDEA ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ
ΠΠΎΠ½Π²Π΅ΡΡΠ΅Ρ Java Π² Kotlin.
ΠΠ³ΠΎ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ΄ΠΈ, Π·Π½Π°ΠΊΠΎΠΌΡΠ΅ Ρ Java, Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Kotlin, Π½ΠΎ ΠΎΠ½
Π½Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½, ΠΈ Π²ΡΠ΅ ΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Kotlin ΠΈ ΠΈΠ·ΡΡΠΈΡΡ
ΠΠΎΡΠ»ΠΈΠ½ΡΠΊΠΈΠ΅ ΠΈΠ΄ΠΈΠΎΠΌΡ.
ΠΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠ΅ΡΡΡΡ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Kotlin ΠΈ API ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Kotlin:
ΠΠΎΡΠ»ΠΈΠ½ ΠΠΎΠ°Π½Ρ.
.