Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Python
ΠΠΎΠ³Π΄Π° ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ Π²Π°ΠΆΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ Π²ΡΠ±ΠΎΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π²ΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ, ΠΈ Ρ Π²ΡΠ΅Ρ ΡΠ²ΠΎΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° Python, ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΠΎΠ½ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Python?
Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Python — ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄ Π½Π΅ Π±ΡΠ» ΡΠ°ΠΊ ΡΡΠΏΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ ΡΠ΅Π³ΠΎΠ΄Π½Ρ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΎΠ½ ΡΠΎΡΡΠ°Π²ΠΈΠ» ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ ΡΠ΅ΠΌ, ΠΊΡΠΎ ΡΡΠΈΡΠ°Π»ΡΡ Π»ΠΈΠ΄Π΅ΡΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ» ΠΏΡΠΈΠ·Π½Π°Π½ ΡΠ°ΠΌΡΠΌ Π±ΡΡΡΡΠΎΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈΠΌΡΡ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.Β
Python ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²ΠΈΠ΄ΠΎΠ² ΡΠΎΡΡΠ° — ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ². Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡ ΠΈ ΡΡΠΊΠΎΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½Π° ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅. ΠΠ°Π»Π΅Π΅ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠ΅Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Python.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΡΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΠΏΠΎΠ΄ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ (iOS, Android, Windows) ΠΈ ΠΏΠΎΠ΄ Π»ΡΠ±ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π²ΡΠ΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.Β
ΠΠΎ ΡΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΈΡΠΌΠΎΡΡΠΈΠΌΡΡ ΠΊ Π½ΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.Β
ΠΠΎΡΠ΅ΠΌΡ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½Π° Python
ΠΡΠ±ΠΈΡΠ°Ρ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π²ΡΠ΅Π³Π΄Π° ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ². ΠΡΠ²Π΅ΡΠ°Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ βΡΡΠΎ ΠΌΠ½Π΅ Π΄Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρβ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΠΈΠΆΠ΅ ΠΌΡ ΠΎΡΠ²Π΅ΡΠΈΠΌ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π² ΡΠ°Π·ΡΠ΅Π·Π΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Python.
ΠΠ΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄
ΠΡΠ»ΠΈ ΠΏΡΠΈ ΡΠ»ΠΎΠ²ΠΎΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ βΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄β Ρ Π²Π°Ρ ΠΏΠ΅ΡΠ΅Π΄ Π³Π»Π°Π·Π°ΠΌΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΡΠΎΠΊ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, Π° Π³Π»Π°Π²Π½ΠΎΠ΅ — Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΊΠΎΠ±ΠΎΠΊ ΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠΌΠΈ — ΡΡΠΎ Π½Π΅ ΠΎ Python. ΠΡΠΎΡ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Java, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ°ΡΠΏΠΈΡΠ°Π½Π° Π² ΠΏΡΡΡ ΡΡΡΠΎΠΊ. ΠΠ΅ΠΏΠ»ΠΎΡ ΠΎ, Π½Π΅ ΠΏΡΠ°Π²Π΄Π° Π»ΠΈ?Β
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠΎΠ΄ Π½Π° Python Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΡΡΡ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²: Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈ Π±ΡΡΡΡΠΎ ΡΡΠΈΡΡ, Π° Π·Π½Π°ΡΠΈΡ Π²ΡΠ΅Π³Π΄Π° Π½Π°ΠΉΠ΄ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°; ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎΠΌΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ°; ΡΠ΅ΠΌ Π»Π΅Π³ΡΠ΅ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΡ ΠΊΠΎΠ΄, ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ Π»ΡΠ±ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ; Π½Π° ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.Β
ΠΡΡΡΡΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π΅Π³ΠΎ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΠΈ, Π° Π΅ΡΠ΅ ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠ΄ Π½Π° Python Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π° Π·Π½Π°ΡΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. Π’Π°ΠΊ, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΈ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ·Π½Π°Π²Π°ΡΡ. Β
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π·Π΄Π΅ΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Ρ: ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΊΠ° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π° Π·Π½Π°ΡΠΈΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΠ΅Π»ΠΎΠΌ; ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² Π½Π° ΠΏΠΎΠ³ΠΎΠ½Π΅ Π·Π° Π±Π°Π³Π°ΠΌΠΈ; Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠΉ Π·Π°ΠΏΡΡΠΊ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π½Π° ΡΡΠ½ΠΎΠΊ.Β
ΠΡΡΠΎΠΊΠ°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ
ΠΡ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ, ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python, Π° ΠΈ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ². Π ΡΠ°ΠΊΠΆΠ΅, Π΅ΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΡ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ Π½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π°Π½Π΄ΡΠΎΠΈΠ΄ ΠΈ iOs, ΡΠ°ΠΊ ΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΎΠ±Π΅ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ .Β
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π½Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ Π΄ΡΡΠ³ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠΊΡΠ°ΡΠ°Π΅ΡΠ΅ ΡΡΠΎΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π²Π΄Π²ΠΎΠ΅, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΠΈ Π½Π° ΡΡΠ½ΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.Β
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Python Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Test Driven Development. ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ Π²Π½Π΅Π΄ΡΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΏΠΈΡΡΡΡΡ ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΡ, ΠΏΠΎΠΊΡΡΠ²Π°ΡΡΠΈΠ΅ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΠΊΠΎΠ΄Π°.Β
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΡΡΠΎΠΊΠΎΠ΅ ΠΏΠΎΠΊΡΡΡΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΡΡΠ°ΠΌΠΈ, ΡΡΠΎ (ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ ΡΡΠΏΠ΅Ρ Π° ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ΅ΡΡΠΎΠ²) Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π²ΡΡΠΎΠΊΠΎΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.Β
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ°
ΠΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΈ ΡΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π²ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π² Π²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ, Π±Π΅Π· Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Ρ Π½ΡΠ»Ρ Π²ΡΡΡΠ½ΡΡ.Β
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠΊΡΠ°ΡΠ°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΈΡΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.Β
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Big Data ΡΡΠ°Π»ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²ΡΠ΅ ΡΠ°ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ². Python ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π΅Π΅ ΡΠΏΡΠΎΡΡΠΈΡΡ. ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π»Π΅Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Python, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.Β
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Ρ ΡΠ·ΡΠΊΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡΠΌ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΊΠ΅ΠΉΡΠ°Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΎ ΠΏΡΠΈΠ·Π½Π°ΡΡ ΠΈ IT-Π³ΠΈΠ³Π°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π½Π° Python ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΌΠΎΠ³ΡΡ Π²Π°Ρ ΡΠ΄ΠΈΠ²ΠΈΡΡ.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Python
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΠ»ΡΡΠΎΠ² Π·Π²ΡΡΠΈΡ ΠΊΠ°ΠΊ Π½Π΅ΡΡΠΎ βΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²β, Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ, ΠΈ Π²Π°ΠΌ ΡΡΠ°Π·Ρ ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠ½ΡΡΠ½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ° Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠ΅ΠΌΠΈΡΠ½Π°Ρ ΡΠΎΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΡΡ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄ Π»ΡΠ±ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠ· ΡΠ΅ΡΠΈ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΠΈΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ, ΠΈΠ½ΡΡΠ°Π³ΡΠ°ΠΌ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΡΡ Π² ΡΠ΅Π½ΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π² ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ Π΅Π³ΠΎ ΡΠΎΡΠΌΠ°Ρ : ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ, Π²ΠΈΠ΄Π΅ΠΎ, Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ, ΡΡΠΈΠΊΠ΅ΡΡ, ΠΌΠ°ΡΠΊΠΈ, ΡΠΈΠ»ΡΡΡΡ, Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π ΡΠΎΠΌΡ ΠΆΠ΅ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈ Π΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΠΈΠ΄Π΅Π½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ ΡΠΎΡΡΠ΅ΡΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°ΡΡΠ΅Ρ, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. Π ΠΏΡΠΈ ΡΡΠΎΠΌ Instagram ΡΠΎΠ·Π΄Π°Π½ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π° Python, ΡΡΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅.Β
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π° Python, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΅Π³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² — Django. Π’Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ ΠΈΠ½ΡΡΠ°Π³ΡΠ°ΠΌΠ°, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ — Π΄Π΅Π»ΠΈΡΡΡΡ ΡΠΎΡΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ. ΠΠΎ Π·Π΄Π΅ΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠ΅ΡΠΈ, Π±Π΅Π· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π»ΠΈΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΠΈ ΡΡΠΎΠΌ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΡΠ΅Π±Π΅ Π½Π° Π΄ΠΎΡΠΊΡ, Π²ΡΠ΄Π°ΡΠ° ΠΏΠΎΡ ΠΎΠΆΠΈΡ Π½Π° ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ²ΡΠΈΠ΅ΡΡ βΠΏΠΈΠ½ΠΎΠ²β ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, Π½ΠΎ ΠΈ Π΄Π΅Π»ΠΈΡΡΡΡ ΡΡΠ°ΡΡΡΠΌΠΈ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌΠΈ Ρ ΠΏΡΠΎΡΡΠΎΡΠΎΠ² ΡΠ΅ΡΠΈ. Π Pinterest ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»Π΅Π½ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π²Π΅Π΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡΠ΅.
Spotify
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Python, ΡΠ²Π΅ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΡΡΠΈΠΌΠΈΠ½Π³ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ. Π‘ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ data-Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ΄Π±ΠΈΡΠ°ΡΡ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΡΠ·ΡΠΊΡ ΠΏΠΎ Π²ΠΊΡΡΡ.Β ΠΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ Π½Π° Python. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΡΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Π±Π΅ΡΡΠΎΠ²Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠΈ ΠΌΡΠ·ΡΠΊΠΈ Π² Π²ΡΡΠΎΠΊΠΎΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ½Π»Π°ΠΉΠ½.
Disqus
ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΡΡ, ΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²Π΅ΡΡΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠ°ΠΉΡΠΎΠ² ΠΏΠΎ Π²ΡΠ΅ΠΉ ΠΌΠΈΡΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½Π΅. Π’Π°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π½Π° Python, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅Π»ΠΎ ΡΠ²ΠΎΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ°Π·Π½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌ Π²Ρ ΠΎΠ΄Π° ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π³ΠΈΠ±ΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Dropbox
Python ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ , Π½ΠΎ ΠΈ Π½Π° Π΄Π΅ΡΠΊΡΠΎΠΏΠ°Ρ . Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠΌΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠΎΡΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠΈΠ½Π³Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π±ΡΠ΄ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ, Π°ΡΠ΄ΠΈΠΎΠ·Π°ΠΏΠΈΡΠΈ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ². Π’Π°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ°Π»Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π΄ΠΈ Π±ΠΈΠ·Π½Π΅ΡΠΎΠ², Π½ΠΎ ΠΈ ΡΡΠ΅Π΄ΠΈ ΠΎΠ±ΡΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΎ ΡΠ΅ΡΠ²ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±Π½ΡΠΌ ΠΈ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΠΌ. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΡΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠ°ΠΉΡΠΎΠ½ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅Π²ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠΌΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.Β
Uber
Π ΡΠ½ΠΎΠ²Π° ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ± ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. ΠΡΠ»ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΡΡΠ΅ΡΠΈΠ½Π³Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°ΠΊΠ°Π·Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΡΠΈ, Π½ΠΎ ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π΅Π΄Ρ ΠΈΠ»ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΎΠΊ, ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° Python. ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠΎ ΡΠ²ΠΎΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΎ ΡΡΠ΅Π΄ΠΈ Π²ΡΠ΅Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ Π΅Π³ΠΎ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΡΠΎΠ²Π΅ΡΡΠ°Π΅ΡΡΡ Π±Π΅ΡΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΊΠ°Π·ΠΎΠ², ΠΈ, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, Python ΠΎΡΠ»ΠΈΡΠ½ΠΎ Ρ ΡΡΠΈΠΌ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ.Β
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΎΡΠ΅Π½ΡΒ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° — Π³ΠΈΠ±ΡΠΈΠ΄ ΡΠΎΡΡΠΌΠ° ΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ, Π³Π΄Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ Π²ΡΠ΅, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ. Π‘ Π°ΠΊΡΠ΅Π½ΡΠΎΠΌ Π½Π° ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ, ΠΈΡ ΠΎΡΠ΅Π½ΠΊΠ΅ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΊΠ»ΠΈΠΊΠ½ΡΠ»ΠΎΡΡ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ Π·Π°Π½ΡΠ»ΠΎ ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΠΆΠΈΠ·Π½ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π»ΡΠ΄Π΅ΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ. ΠΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Reddit ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π° Python. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΡΠ°ΠΊΡ: ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π²ΡΠ±ΠΎΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°Π» Π½Π΅ Π² Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·Ρ, Π½ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠΈΠ»ΠΈ.Β
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΡ ΡΡΠ°ΡΠ°Π»ΠΈΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π½ΠΎ ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Python Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π΄Π»Ρ Python
Π‘ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ, Π²ΡΠ΅ΠΌΡ ΡΠ½ΠΎΠ²Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ. ΠΡ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π½Π° ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΎ ΡΠ΅Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π΄Π»Ρ iOS, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Android, Π½Π΅ ΠΏΡΠΈΠ±Π΅Π³Π°Ρ ΠΊ ΠΏΠΎΠΌΠΎΡΠΈΒ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ².Β
Kivy
Kivy ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠΎΠ΄ Π² Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ, Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΠΌΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎ ΡΠ²ΡΠ·Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ Π²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅, Π° Π½Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΠ»ΡΡΠΎΠΌ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΠΌ Π²Π°Ρ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ². Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ Π½Π°ΡΠΈΠ²Π½ΡΡ , ΡΡΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΌΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π‘ΡΠΎΠΈΡ Π²Π·Π²Π΅ΡΠΈΡΡ Π²ΡΠ΅ Π·Π° ΠΈ ΠΏΡΠΎΡΠΈΠ², ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΡΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ.Β
BeeWare
Π ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ Kivy, ΡΡΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΠΌΠ΅Π΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ Π°ΡΡΠ΅Π½Π°Π»Π΅ Π½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΡΠ°ΠΊ ΡΡΠΎ ΠΎΠΏΡΡ Π²Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Swift Π΄Π»Ρ iOs, ΠΈΠ»ΠΈ Java Π΄Π»Ρ Android. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ: Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΌΡ ΡΠ·ΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΡΠ΄Π½ΠΎΡΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ, ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΠΎΠ±Π΅ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ. Π’Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΎΠ±Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ. Β
ΠΠ±Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½ΠΎΠ²ΡΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅ΡΠ°ΡΡΠΈΠ΅, Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²Π°Ρ Π½Π΅ ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡ, Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python.
ΠΡΠ²ΠΎΠ΄Ρ
Python — ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΌ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ½ ΡΠΆΠ΅ ΡΡΠΏΠ΅Π» Π΄ΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°.Β
ΠΡΠ±ΠΈΡΠ°Ρ Python Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄, Π²ΡΡΠΎΠΊΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Big Data ΠΈ Machine Learning. ΠΡΠ΅ ΡΡΠΎ Π΄Π°Π΅Ρ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΈΡΠΎΠΊΠΈΠΉ Π²ΡΠ±ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π½Π° ΡΡΠ½ΠΊΠ΅.Β
Python ΡΠΆΠ΅ Π²ΡΠ±ΡΠ°Π»ΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ — Π»ΠΈΠ΄Π΅ΡΠΎΠ² ΡΡΠ½ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡΠ΅ ΠΈ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Β
ΠΠ°ΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Ρ Python. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ·ΡΡΠ°Π΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΡΠ»ΠΈ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π΅ΡΡΡ Π»ΡΡΡΠ°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°, ΠΏΠΎΠΌΠΎΠ³Π°Π΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ±ΠΎΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΠ΅ ΠΎΡΡΠ°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΡ, ΠΈΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ — ΠΎΡΡΠ°Π²Π»ΡΠΉΡΠ΅ Π·Π°ΡΠ²ΠΊΡ ΠΈ ΠΌΡ Π²Π°ΠΌ ΠΏΠ΅ΡΠ΅Π·Π²ΠΎΠ½ΠΈΠΌ. ΠΠ°Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΡΠΎΠΊΠΎΠ½ΡΡΠ»ΡΡΠΈΡΡΠ΅Ρ Π²Π°Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΡΠ°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΡ?
ΠΡΡΠ°Π²ΡΡΠ΅ Π²Π°ΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ²ΡΠΆΠ΅ΡΡΡ ΠΈ ΠΏΡΠΎΠΊΠΎΠ½ΡΡΠ»ΡΡΠΈΡΡΠ΅Ρ Π²Π°Ρ.
ΠΠ°ΠΊ Π²Π°ΠΌ ΡΡΠ°ΡΡΡ?
1 Star2 Stars3 Stars4 Stars5 StarsEmpty
ΠΡΠΎΠ³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π»ΠΎ: 12
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Android Π½Π° ΡΠ·ΡΠΊΠ΅ Kotlin
ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π°Π½Π΄ΡΠΎΠΈΠ΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Kotlin. Π ΡΡΠΎΠΌ ΠΊΡΡΡΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Android Π½Π° ΠΠΎΡΠ»ΠΈΠ½Π΅. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ,Β ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π·Π°Π³Π»ΡΠ½ΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π» ΠΡΠ½ΠΎΠ²Ρ ΠΠΎΡΠ»ΠΈΠ½
Kotlin ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° JVM ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java. Kotlin Ρ 2017 Π³ΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android, Π½Π°ΡΡΠ΄Ρ Ρ ΡΠ·ΡΠΊΠΎΠΌ Java.
ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠΆΠΈΠ»ΠΎΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π°Π½Π΄ΡΠΎΠΈΠ΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±ΡΠ»Π° Java. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° Kotlin ΠΈ ΠΏΡΠΈΠ·Π½Π°Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π΄Π»Ρ Android Π² 2017 Π³ΠΎΠ΄Ρ,Β Π½Π΅ Π²ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ Ρ Java Π½Π° Kotlin. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΏΠΈΡΠ΅ΡΡΡ Π½Π° ΠΠΎΡΠ»ΠΈΠ½Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ.Β
ΠΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ ΡΡΠΈΡΡ: Kotlin ΠΈΠ»ΠΈ Java?
ΠΠ½ΠΎΠ³ΠΈΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ΅ΠΉΡΠ°Ρ Π²ΠΎΠ»Π½ΡΠ΅Ρ Π²ΠΎΠΏΡΠΎΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ ΠΈΠ·ΡΡΠ°ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π°Π½Π΄ΡΠΎΠΈΠ΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Java ΠΈΠ»ΠΈ Kotlin.
ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Kotlin Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΡΠΎΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΡΠ·ΡΠΊ Π±ΡΡΡΡΠΎ Π·Π°Π²ΠΎΠ΅Π²ΡΠ²Π°Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π΅Π³ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²Ρ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ Π·Π°Π΄Π°Ρ Π° Android. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Kotlin ΡΡΠ°Π½Π΅Ρ Π² Π½Π΅Π΄Π°Π»Π΅ΠΊΠΎΠΌ Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android.
ΠΠ° Π½Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡΒ ΠΡΠ½ΠΎΠ²Ρ Kotlin
Π’Π°ΠΊΠΆΠ΅ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ Π΅ΡΡΡΒ ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΠΊΡΡΡΡΒ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ Π°Π½Π΄ΡΠΎΠΈΠ΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΠΎΡΠ»ΠΈΠ½
ΠΡΠΆΠ½ΠΎ Π»ΠΈ ΡΡΠΈΡΡ Java?
Π Π΅Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ²Π°, ΡΡΠΎ Java Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΏΠΎΠΊΠ° ΠΎΡΡΠ°Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π°Π½Π΄ΡΠΎΠΈΠ΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ° Java Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° β ΠΏΠΎ ΡΡΡΠΈ,Β Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Java Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΡΡΡΠΎΡΠΈΠ°Π»ΠΎΠ² ΠΈ ΠΌΠ°Π½ΡΠ°Π»ΠΎΠ². Kotlin ΠΏΠΎΠΊΠ° ΠΎΡΡΡΠ°Π΅Ρ Π² ΡΡΠΎΠΌ ΠΏΠ»Π°Π½Π΅. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π²Π»Π°Π΄Π΅Π΅ΡΠ΅ ΡΠ·ΡΠΊΠΎΠΌ Java, Π²Π°ΠΌ ΡΡΡΠ΄Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ Π½Π° Π²Π°ΠΊΠ°Π½ΡΠΈΡ Π°Π½Π΄ΡΠΎΠΈΠ΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Java ΡΠΎΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΡΡΠ°ΡΡ.
Π£ΡΠΎΠΊΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ Java
ΠΠ·ΡΡΠ°ΡΡ ΡΡΠ°Π·Ρ Π΄Π²Π° ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ?
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π·Ρ Π΄Π²ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. ΠΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΅ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, Kotlin ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Java ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΡΠ·ΡΠΊΠΎΠΌ Java. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π² ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Java ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π½Π° Kotlin ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. Π’ΠΎ Π΅ΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΎΠ±Π° ΡΠ·ΡΠΊΠ° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π½ΠΎ ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Ρ ΠΎΠ±ΠΎΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΈ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΡ .
ΠΠ° Π½Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠΊΠΎΠ² ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠ³Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Java.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΡΠ΅ΡΠΈΡ ΡΡΠΎΠΊΠΎΠ² ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π°Π½Π΄ΡΠΎΠΈΠ΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Kotlin.
ΠΡΠ΅ ΡΡΠΎΠΊΠΈ Π½Π° Kotlin
7 ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Android Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π Π΅Π·ΡΠΌΠ΅: Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ·ΡΠΊ Π»ΡΡΡΠ΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Android? Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android.
Android β ΡΡΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° (ΠΠ‘), Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π²ΡΠΏΡΡΠ΅Π½Π½Π°Ρ Π² 2008 Π³ΠΎΠ΄Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google ΠΈ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ², Π²ΠΊΠ»ΡΡΠ°Ρ Google, Samsung, Sony, Nokia ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ. Android ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ ΡΠΌΠ°ΡΡΡΠΎΠ½Ρ, ΡΠ°ΠΊ ΠΈ ΠΏΠ»Π°Π½ΡΠ΅ΡΡ, Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΡΡΠ΅ΠΌΡ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π°ΠΌΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ°ΠΌΠΎΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ Π±Π°Π·ΠΎΠΉ ΡΡΠ΅Π΄ΠΈ Π²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠΎΠ΅ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΡ Apple iPhone β ΠΈ Π·Π°Ρ Π²Π°ΡΠΎΠΌ 690,74% ΠΌΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΠ‘.
ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ Π±ΡΡΡΡΠΎΠΌ ΡΠΎΡΡΠ΅ Android ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ΅Π»ΠΎΠΌ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΎΡΡΠ°ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΉ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π½Π°Π½ΠΈΡ Π΄Π²ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² (Java ΠΈ Kotlin), Π½ΠΎ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡ ΡΡΠΊΠ°.
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ ΡΠΈΡΠ°ΡΡ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π²ΡΠ±ΠΎΡΠ΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android ΠΈ ΠΎ ΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Java ΠΈ Kotlin.
ΠΡ ΡΠ²Π°ΠΆΠ°Π΅ΠΌ Π²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ. ΠΠ°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android ΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΡΡΠ΄Ρ Ρ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Android ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ iOS . ΠΠΎ Π² ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?
ΠΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±Π΅ΡΠΏΡΠ΅ΠΏΡΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ². Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡ ΡΠΈΡΠΎΠΊΠΈΠΉ ΠΊΡΡΠ³ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π±ΡΠ΅Π½Π΄Π°, ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡ ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π₯ΠΎΡΡ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½ΠΈΠΆΠ΅, ΡΠ΅ΠΌ Ρ Π½Π°ΡΠΈΠ²Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π·Π΄Π΅ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΡΡΠ°Π²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊΠΎ Π²ΡΠ΅ΠΌ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ, ΠΊΠ°ΠΊ React Native, Flutter ΠΈΠ»ΠΈ Xamarin, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ·ΡΠΊΠΈ.
ΠΠ°ΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android?
ΠΠ° ΠΊΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android? ΠΠ°ΠΊΠΎΠΉ Π»ΡΡΡΠΈΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android? ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android Π²ΠΊΠ»ΡΡΠ°ΡΡ:
1.
JavaJava ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄Π²ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android ΠΈ Π±ΡΠ» ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π΄ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Kotlin.
Java ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΡΡΠ°Π±ΠΈΠ»Π΅Π½ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ, ΠΏΠΎΡΡΠ°ΡΠΈΠ²Π΅Π½ ΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ β ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π₯ΠΎΡΡ ΡΡΠΎ ΠΏΡΠ°Π²Π΄Π°, Ρ Java Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
2. Kotlin
Google ΠΎΠ±ΡΡΠ²ΠΈΠ»Π° ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π½Π° Kotlin Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π² 2017 Π³ΠΎΠ΄Ρ, ΠΎΡΡΠ°ΠΆΠ°Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ Apple Swift, ΠΎΠ±Π° ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ Ρ ΠΎΠ±ΡΠΈΡΠ½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅.
Kotlin β ΡΡΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Java. ΠΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΡΠ°Π³ΠΌΠ°ΡΠΈΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΡΠ΅Π»ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π΅Π³ΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ, ΡΠΎΡΠ½ΠΎΡΡΠΈ, Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π±ΡΠ΅Π½Π΄Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΡΡ Π½Π° Kotlin Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android, Π²ΠΊΠ»ΡΡΠ°Ρ Basecamp, Pinterest, Netflux ΠΈ Uber.
3. C/C++
Π₯ΠΎΡΡ Kotlin β Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² ΡΡΠΎΠΌ Π±Π»ΠΎΠΊΠ΅, Android Native Development Kit (NDK) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ C/C++, ΠΎΠ±Π° ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ.
C++ β ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ, ΡΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Π¦Π, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΈΠ³ΡΡ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ C++ Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ Π΄Π»Ρ Π½Π°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Java ΠΈΠ»ΠΈ Kotlin.
ΠΠ»Ρ ΠΎΠΏΡΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² C++ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° C++ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΏΠΎΡΠΎΠ³ Π²Ρ ΠΎΠ΄Π° Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π»Ρ Android. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, C++ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π³ΠΈΠ±ΠΎΠΊ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ, ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΡΠ½ΡΠΌ ΠΈ Π½Π΅Π³ΠΈΠ±ΠΊΠΈΠΌ, Π΅ΡΠ»ΠΈ ΠΈΠΌ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ.
4. C#
C# β ΡΡΠΎ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ .NET, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Microsoft ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ Visual Studio, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΈΡΠ°Π΅ΡΡΡ Β«ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΒ» ΡΠ·ΡΠΊΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². C# ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΡΠ°ΠΏΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
C# β ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ·ΡΠΊ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Xamarin.
5. Lua
Lua β ΡΡΠΎ Π»Π΅Π³ΠΊΠΈΠΉ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ, ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ³Ρ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. Lua β ΡΡΠΎ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ·ΡΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Lua Π΄Π»Ρ Android ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ°, ΠΊΠ°ΠΊ Solar2D.
6. JavaScript
JavaScript β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡΠ΅, ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ ΠΈ ΡΠΌΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π°ΡΡΡΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ ΠΎΠΏΡΡ. JavaScript β ΡΡΠΎ ΡΠ·ΡΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ React Native, Angular ΠΈ Vue.
Π§ΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π·Π½Π°Π½ΠΈΠ΅ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, Π·Π½Π°Π½ΠΈΠ΅ JavaScript Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠΎΠ»Π½ΡΠΌ Π±Π΅Π· Π·Π½Π°Π½ΠΈΡ HTML ΠΈ CSS.
7. Python
Python β ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΎΠΉ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Android Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Python Π² ΠΏΠ°ΠΊΠ΅ΡΡ Android. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Python ΠΈΠ·Π²Π΅ΡΡΠ½Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ.
Π§ΡΠΎ Π»ΡΡΡΠ΅: ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android ΠΈΠ»ΠΈ Π΄ΠΈΠ²Π΅ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ?
ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° ΡΠΏΡΠΎΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android ΡΠ°ΡΡΠ΅Ρ ΠΈ ΡΠΏΡΠΎΡ Π½Π° ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Android. Π§ΡΠΎΠ±Ρ Π±ΡΡΡ ΡΠΈΠ»ΡΠ½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π²ΠΈΠ΄Π°Ρ ΡΠ·ΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Android, Π½ΠΎ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π°. ΠΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΠ΅ΠΌ Π²Π΅ΡΠΎΠΌΠ΅Π΅ Π±ΡΠ΄Π΅Ρ Π²Π°Ρ Π²ΠΊΠ»Π°Π΄ ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈ ΡΠΎ, ΡΡΠΎ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½Π°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, ΠΊΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΎΡ Java ΠΊ Kotlin. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Android Π±ΡΠ»ΠΎ Π±Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Android (Koltin, Java) ΠΈ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ·ΡΠΊΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ (JavaScript, C/C++).
Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android?
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΠΈΠ»ΠΈΠΉ, Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ ΠΎΡ 3-4 ΠΌΠ΅ΡΡΡΠ΅Π² Π΄Π»Ρ ΠΎΠ±ΡΠΈΡ Π·Π½Π°Π½ΠΈΠΉ Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ 1 Π³ΠΎΠ΄Π° Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π΅ΡΠ΄ΠΎΠ³ΠΎ Π²Π»Π°Π΄Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠΎΠΌ β Π² ΠΈΠ΄Π΅Π°Π»Π΅ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠΏΡΡΠΎΠΌ ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΠΈΡ Π·Π½Π°Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠ°Π΅ΡΡΡ.
Π―Π·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Java, Kotlin, C++ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ Π² ΡΠΊΠΎΠ»Π΅, Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡΠ°Ρ , Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΈΠ·ΡΡΠΈΡΡ Kotlin, ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ β ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π°.
Π§Π°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
1. ΠΠ° ΠΊΠ°ΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android?
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° Java ΠΈ Kotlin. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ C, C++ ΠΈ Basic.
2. ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android Π½Π° C++?
C++ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android Π² ΡΠ΅Π΄ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ C++ ΠΌΠ΅Π½Π΅Π΅ Π³ΠΈΠ±ΠΎΠΊ ΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ΅Π½ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅, ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π±ΠΎΠ»ΡΡΠ΅ΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ±ΡΡΠ½ΠΎ Java ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ C++.
3. ΠΡΠ΅ Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° Java?
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Java ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Android, Π½Π΅ Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° Π½Π΅ΠΌ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ BASIC ΠΈ Kotlin. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π΄ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ C++.
4. ΠΠ°ΠΊΠΎΠΉ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ·ΡΠΊ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Android?
Java β ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ·ΡΠΊ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Android, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΠ‘ Android Π±ΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° Π½Π° Π½Π΅ΠΌ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android, Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΡΡΡ ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ . ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Java Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ Python ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ.
5. ΠΠΎΠ³Ρ Π»ΠΈ Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android Π½Π° ΡΠ·ΡΠΊΠ΅ C?
Google ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (NDK), ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ΄Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ C ΠΈ C++, Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Android. ΠΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅Π»ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Android Π½Π° C ΠΈΠ»ΠΈ C++. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ Java.
ΠΠ°ΡΡΠ°Π²ΡΡΠ΅ Π²Π°ΡΠ΅ Android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° iOS β ΡΡΠ΅Π±Π½ΠΈΠΊ
Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ Android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΊΠ°ΠΊ Π½Π° Android, ΡΠ°ΠΊ ΠΈ Π½Π° iOS. ΠΡ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ Android ΠΈ iOS ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π·Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΊΡΠ°Π½ΠΎΠΌ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ. Π£ΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Kotlin Multiplatform Mobile, ΡΠ½Π°ΡΠ°Π»Π° ΡΠ·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½ΡΠ»Ρ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΡΡΠ΅Π΄Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΡ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ.
ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Mac Ρ macOS Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ°Π³ΠΎΠ² Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π΄Π»Ρ iOS ΠΈ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ iOS. ΠΡΠΈ ΡΠ°Π³ΠΈ Π½Π΅Π»ΡΠ·Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Microsoft Windows. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Apple.
Π Android Studio ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ:
https://github. com/Kotlin/kmm-integration-sample
ΠΠ΅ΡΠΊΠ°
master
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° β ΠΏΡΠΎΡΡΠΎΠ΅ Android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ . Π§ΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ iOS ΠΈ ΠΎΠ±ΡΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ Π½Π°ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ Π²Π΅ΡΠ²Ρ
.ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π²ΠΈΠ΄ Project .
Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌ
Π§ΡΠΎΠ±Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π½Π° iOS, Π²Ρ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ iOS.
Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌ:
Π Π΅ΡΠΈΡΠ΅, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Android.
Π‘Π΄Π΅Π»Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Android.
Π Π΅ΡΠΈΡΠ΅, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌ
Π Π΅ΡΠΈΡΠ΅, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π²Π°ΡΠ΅Π³ΠΎ Android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ iOS, Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΎΡΡΠ°Π²ΠΈΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠΌ. ΠΡΠΎΡΡΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: Π΄Π΅Π»ΠΈΡΠ΅ΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ°ΡΡΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π»Ρ Android, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ iOS, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Π Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ° Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ com.jetbrains.simplelogin.androidapp.data
. ΠΠ°ΡΠ΅ Π±ΡΠ΄ΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ iOS Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡ ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌ.
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ iOS, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Android , Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅. ΠΠ»Π°Π³ΠΈΠ½ Kotlin Multiplatform Mobile ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
Π ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Android ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Kotlin Multiplatform Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΎΠ·ΠΆΠ΅ Π²Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android ΠΈ Π±ΡΠ΄ΡΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ iOS.
Π Android Studio ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ Π€Π°ΠΉΠ» | ΠΠΎΠ²ΡΠΉ | ΠΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ .
Π ΡΠΏΠΈΡΠΊΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Kotlin , Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ
shared
ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Regular framework Π² ΡΠΏΠΈΡΠΊΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° iOS.
ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ iOS.ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΠΎΡΠΎΠ²ΠΎ .
ΠΠ°ΡΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Kotlin Multiplatform, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ»Ρ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠΈΠΌΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Kotlin Multiplatform. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Android
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π² Android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΊ Π½Π΅ΠΌΡ ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΠ΄Π° ΠΊΠΎΠ΄ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌ.
Π ΡΠ°ΠΉΠ»Π΅
build.gradle.kts
ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎcompileSdk
ΠΈminSdk
ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈbuild.gradle
Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Android Π² ΠΌΠΎΠ΄ΡΠ»Π΅ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
. .
ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΡ Π²
build.gradle.kts
ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π²
build.gradle
Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Android.Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ { ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ (': ΠΎΠ±ΡΠΈΠΉ') }
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»Ρ Gradle, Π½Π°ΠΆΠ°Π² Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΉΡΠ°Ρ Π² ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΈ.
Π ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅
app/src/main/java/
ΠΎΡΠΊΡΠΎΠΉΡΠ΅LoginActivity
Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅com.jetbrains.simplelogin.androidapp.ui.login
.Π§ΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΡΠ³ΡΡΠ·ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ
Greeting()
Π² ΠΆΡΡΠ½Π°Π», ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΠΌΠ΅ΡΠΎΠ΄onCreate()
:override fun onCreate(savedInstanceState: Bundle? ) { super. onCreate(ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉInstanceState) Log.i("ΠΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π²Ρ ΠΎΠ΄Π°", "ΠΡΠΈΠ²Π΅Ρ ΠΈΠ· ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ: " + (Greeting().greeting())) }
Π‘Π»Π΅Π΄ΡΠΉΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌ Android Studio, ΡΡΠΎΠ±Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ.
ΠΡΠ»Π°Π΄ΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Hello
, ΠΈ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΊΠΎΠ΄ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ Π² ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Kotlin Multiplatform ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ Π΄Π»Ρ Android, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ iOS.
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΊΠΎΠ΄ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ
com.jetbrains.simplelogin.androidapp.data
ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°app
Π² ΠΏΠ°ΠΊΠ΅Ρcom.jetbrains.simplelogin.shared
shared/src/commonMain
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ»ΠΈ ΡΠ΅ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Ρ Π²ΡΠ΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π² Π΄ΡΡΠ³ΠΎΠΉ.ΠΠΎΠ³Π΄Π° Android Studio ΡΠΏΡΠΎΡΠΈΡ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³.
ΠΠ³Π½ΠΎΡΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ ΠΊΠΎΠ΄Π΅, Π·Π°Π²ΠΈΡΡΡΠ΅ΠΌ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ .
Π£Π΄Π°Π»ΠΈΡΠ΅ ΠΊΠΎΠ΄, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΉ Π΄Π»Ρ Android, Π·Π°ΠΌΠ΅Π½ΠΈΠ² Π΅Π³ΠΎ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Kotlin ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ²ΡΠΈΡΡ ΠΊ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ Android Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΠΈΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ
. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΌ. Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ :
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΉ Π΄Π»Ρ Android ΠΊΠΎΠ΄ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ
Π§ΡΠΎΠ±Ρ Π²Π°Ρ ΠΊΠΎΠ΄ Ρ
ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π» ΠΊΠ°ΠΊ Π½Π° Android, ΡΠ°ΠΊ ΠΈ Π½Π° iOS, Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ JVM Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ Kotlin Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π°Π½Π½ΡΡ
Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π ΠΊΠ»Π°ΡΡΠ΅
LoginDataSource
Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅IOException
Π² ΡΡΠ½ΠΊΡΠΈΠΈlogin()
Π½Π°RuntimeException
.IOException
Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Kotlin.// ΠΠΎ return Result.Error(IOException("ΠΡΠΈΠ±ΠΊΠ° Π²Ρ ΠΎΠ΄Π°", e))
// ΠΠΎΡΠ»Π΅ return Result.Error(RuntimeException("ΠΡΠΈΠ±ΠΊΠ° Π²Ρ ΠΎΠ΄Π°", e))
Π
LoginDataValidator
, Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡPatterns
ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ°android.utils
ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Kotlin, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΎΠ½Ρ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ:// Π Π°Π½ΡΡΠ΅ ΡΠ°ΡΡΠ½ΠΎΠ΅ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ isEmailValid(email: String) = Patterns.EMAIL_ADDRESS.matcher(email).matches()
// ΠΠΎΡΠ»Π΅ Π»ΠΈΡΠ½ΠΎΠ΅ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅ isEmailValid(email: String) = emailRegex.matches(email) ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ { ΡΠ°ΡΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ emailRegex = ("[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" + "\\@" + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + "(" + "\\." + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" + ")+").toRegex() }
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ API Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΈΠ· ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
Π ΠΊΠ»Π°ΡΡΠ΅ LoginDataSource
ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (UUID) Π΄Π»Ρ fakeUser
Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ java. 014.UUID class, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ iOS.
val fakeUser = LoggedInUser(java.util.UUID.randomUUID().toString(), "ΠΠΆΠ΅ΠΉΠ½ ΠΠΎΡ")
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Kotlin Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ UUID, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π·Π°Π²ΠΈΡΡΡΠΈΠ΅ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ expect
Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ randomUUID()
Π² ΠΎΠ±ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΈ Π΅Π΅ ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ β Android ΠΈ iOS β Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
Π½Π°Π±ΠΎΡΠ°Ρ
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ API Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
Π£Π΄Π°Π»ΠΈΡΠ΅
java.util.UUID
ΠΊΠ»Π°ΡΡ ΠΈΠ· ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°:val fakeUser = LoggedInUser(randomUUID(), "Jane Doe")
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ»
Π²com.jetbrains.simplelogin. ΠΎΠ±ΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ
ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°shared/src/commonMain
ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅expect
:package com.jetbrains.simplelogin. shared ΠΎΠΆΠΈΠ΄Π°ΡΡ Π²Π΅ΡΠ΅Π»ΡΡ randomUUID(): String
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ»
Utils.kt
Π²com.jetbrains.simplelogin.shared
ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°shared/src/androidMain
ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
Π΄Π»ΡrandomUUID()
Π² Android:ΠΏΠ°ΠΊΠ΅Ρ com.jetbrains.simplelogin.shared ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ java.util.* ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅ randomUUID() = UUID.randomUUID().toString()
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ»
Utils.kt
Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅com.jetbrains.simplelogin.shared
shared/src/iosMain
ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
Π΄Π»ΡrandomUUID()
Π² iOS:ΠΏΠ°ΠΊΠ΅Ρ com.jetbrains.simplelogin.shared ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.Foundation.NSUUID ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅ randomUUID(): String = NSUUID().UUIDString()
ΠΡΠ΅, ΡΡΠΎ ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΡΠ²Π½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ
randomUUID
Π² ΡΠ°ΠΉΠ»LoginDataSource.kt
ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°shared/src/commonMain
:import com.
ΠΠ»Ρ Android ΠΈ iOS Kotlin Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ.
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Android
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Android, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π²Π°ΡΠ΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π½Π° iOS
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Android, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ iOS ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π½Π΅ΠΌ ΠΎΠ±ΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ iOS Π² Xcode.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ iOS.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡ Swift.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ iOS Π² Xcode
Π Xcode ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ Π€Π°ΠΉΠ» | ΠΠΎΠ²ΡΠΉ | ΠΡΠΎΠ΅ΠΊΡ .
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ iOS ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΠ°Π»Π΅Π΅ .
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΡΠΊΠ°ΠΆΠΈΡΠ΅ simpleLoginIOS ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Next .
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΡΡΡ Π²Π°ΡΠ΅ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
. kmm-integration-sample
Π Android Studio Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ simpleLoginIOS
Π² iosApp
Π΄Π»Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ iOS
ΠΠΎΠ»ΡΡΠΈΠ² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ iOS Π²ΡΡΡΠ½ΡΡ.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· CocoaPods, Π½ΠΎ ΡΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ iOS Π²ΡΡΡΠ½ΡΡ:
Π Xcode ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° iOS, Π΄Π²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ½ΡΠ² ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Build Phases Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ + ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ New Run Script Phase .
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΊΡΠΈΠΏΡ:
cd "$SRCROOT/.." ./gradlew:shared:embedAndSignAppleFrameworkForXcode
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ Π€Π°Π·Π° Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π·ΠΎΠΉ Compile Sources .
ΠΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ Π½Π° ΠΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° Framework Π² ΠΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ° :
$(SRCROOT)/../shared/build/xcode-frameworks /$(CONFIGURATION)/$(SDK_NAME)
ΠΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Build Settings ΡΠΊΠ°ΠΆΠΈΡΠ΅ Other Linker flags ΠΏΠΎΠ΄ Linking :
$(ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΎ) -framework shared
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Π² Xcode. ΠΡΠ»ΠΈ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΠΎΡ Π²ΡΠΏΡΡΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ . ΠΈΠ»ΠΈ
ΠΡΠΏΡΡΠΊ
.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Swift
Π Xcode ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ»
ContentView.swift
ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»ΡΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ () ΠΈΠ· ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
import SwiftUI ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΠ° ContentView: ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ { var body: Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ View { Π’Π΅ΠΊΡΡ (ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (). ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ()) .Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅() } }
Π
ContentView.swift
Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:import SwiftUI ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΠ° ContentView: ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ { @State private var username: String = "" @State ΡΠ°ΡΡΠ½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ var: String = "" @ObservedObject ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ viewModel: ContentView.ViewModel var body: Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ View { VStack(ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 15.0) { ValidatedTextField(titleKey: "ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ", Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΉ: false, ΡΠ΅ΠΊΡΡ: $username, errorMessage: viewModel. formState.usernameError, onChange: { viewModel.loginDataChanged (ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠ°ΡΠΎΠ»Ρ: ΠΏΠ°ΡΠΎΠ»Ρ) }) ValidatedTextField(titleKey: "ΠΠ°ΡΠΎΠ»Ρ", Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΉ: true, ΡΠ΅ΠΊΡΡ: $password, errorMessage: viewModel.formState.passwordError, onChange: { viewModel.loginDataChanged (ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠ°ΡΠΎΠ»Ρ: ΠΏΠ°ΡΠΎΠ»Ρ) }) ΠΠ½ΠΎΠΏΠΊΠ°("ΠΠΎΠΉΡΠΈ") { viewModel.login (ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠ°ΡΠΎΠ»Ρ: ΠΏΠ°ΡΠΎΠ»Ρ) }.disabled(!viewModel.formState.isDataValid || (ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.isEmpty && password.isEmpty)) } .Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (.Π²ΡΠ΅) } } struct ValidatedTextField: View { ΠΏΡΡΡΡ titleKey: ΡΡΡΠΎΠΊΠ° ΠΏΡΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ: Bool @Binding var text: ΡΡΡΠΎΠΊΠ° ΠΏΡΡΡΡ errorMessage: Π‘ΡΡΠΎΠΊΠ°? ΠΏΡΡΡΡ onChange: () -> () @ViewBuilder var textField: Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΈΠ΄ { Π΅ΡΠ»ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ { SecureField(titleKey, ΡΠ΅ΠΊΡΡ: $text) } Π΅ΡΠ΅ { TextField(titleKey, ΡΠ΅ΠΊΡΡ: $ΡΠ΅ΠΊΡΡ) } } var body: Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ View { ZΡΡΠ΅ΠΊ { ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ . textFieldStyle(RoundedBorderTextFieldStyle()) .autocapitalization(.none) .onChange(ΠΈΠ·: ΡΠ΅ΠΊΡΡΠ°) { _ Π² ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ() } Π΅ΡΠ»ΠΈ ΠΏΡΡΡΡ errorMessage = errorMessage { Π₯Π‘ΡΡΠΊ { ΠΡΠΎΠΊΠ»Π°Π΄ΠΊΠ° () FieldTextErrorHint (ΠΎΡΠΈΠ±ΠΊΠ°: errorMessage) }.padding(.horizontal, 5) } } } } struct FieldTextErrorHint: ΠΡΠΎΡΠΌΠΎΡΡ { ΠΏΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°: ΡΡΡΠΎΠΊΠ° @State ΡΠ°ΡΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°ΡAlert = false var body: Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ View { ΠΠ½ΠΎΠΏΠΊΠ° (Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅: { self.showingAlert = true }) { ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (ΠΈΠΌΡ ΡΠΈΡΡΠ΅ΠΌΡ: "Π²ΠΎΡΠΊΠ»ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π½Π°ΠΊ.ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ.Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅") .foregroundColor(.ΠΊΡΠ°ΡΠ½ΡΠΉ) } .alert(isPresented: $showingAlert) { ΠΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ: Π’Π΅ΠΊΡΡ ("ΠΡΠΈΠ±ΠΊΠ°"), ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: Π’Π΅ΠΊΡΡ (ΠΎΡΠΈΠ±ΠΊΠ°), ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ: .default (Π’Π΅ΠΊΡΡ ("ΠΠΎΠ½ΡΡΠ½ΠΎ!"))) } } } ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ContentView { ΡΡΡΡΠΊΡΡΡΠ° LoginFormState { ΠΏΡΡΡΡ usernameError: Π‘ΡΡΠΎΠΊΠ°? ΠΏΡΡΡΡ ΠΏΠ°ΡΠΎΠ»ΡΠΡΠΈΠ±ΠΊΠ°: ΡΡΡΠΎΠΊΠ°? ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ isDataValid: Bool { ΠΏΠΎΠ»ΡΡΠΈΡΡ {Π²ΠΎΠ·Π²ΡΠ°Ρ usernameError == nil && passwordError == nil } } } ΠΊΠ»Π°ΡΡ ViewModel: ObservableObject { @Published var formState = LoginFormState (usernameError: nil, passwordError: nil) ΠΏΡΡΡΡ loginValidator: LoginDataValidator ΠΏΡΡΡΡ loginRepository: LoginRepository init(loginRepository: LoginRepository, loginValidator: LoginDataValidator) { self. loginRepository = Π»ΠΎΠ³ΠΈΠ½Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ self.loginValidator = Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡ Π²Ρ ΠΎΠ΄Π° } func login (ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ΡΡΡΠΎΠΊΠ°, ΠΏΠ°ΡΠΎΠ»Ρ: ΡΡΡΠΎΠΊΠ°) { Π΅ΡΠ»ΠΈ ΠΏΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ = loginRepository.login (ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠ°ΡΠΎΠ»Ρ: ΠΏΠ°ΡΠΎΠ»Ρ) ΠΊΠ°ΠΊ? Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠ£ΡΠΏΠ΅Ρ { print("Π£ΡΠΏΠ΅ΡΠ½ΡΠΉ Π²Ρ ΠΎΠ΄ Π² ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ, \(result.data.displayName)") } Π΅ΡΠ΅ { print("ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅") } } func loginDataChanged (ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ΡΡΡΠΎΠΊΠ°, ΠΏΠ°ΡΠΎΠ»Ρ: ΡΡΡΠΎΠΊΠ°) { formState = ΠΠΎΠ³ΠΈΠ½FormState( usernameError: (loginValidator.checkUsername(username: username) as? LoginDataValidator.ResultError)?.message, passwordError: (loginValidator.checkPassword(ΠΏΠ°ΡΠΎΠ»Ρ: ΠΏΠ°ΡΠΎΠ»Ρ) as? LoginDataValidator.ResultError)?.message) } } }
Π
simpleLoginIOSApp.swift
ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»ΡContentView()
:import SwiftUI ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠΈΠ΅ @ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ° SimpleLoginIOSApp: ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ { var body: Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ΅Π½Π° { ΠΡΡΠΏΠΏΠ° ΠΎΠΊΠΎΠ½ { ContentView(viewModel: . init(loginRepository: LoginRepository(dataSource: LoginDataSource()), loginValidator: LoginDataValidator())) } } }
ΠΠ°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡΠ΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ β ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΊΠ°ΠΊ Π½Π° Android, ΡΠ°ΠΊ ΠΈ Π½Π° iOS.
Π Android Studio ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΡΠ½ΠΊΡΠΈΠΈ
checkPassword()
ΠΊΠ»Π°ΡΡΠ°LoginDataValidator
:package com.jetbrains.simplelogin.shared.data ΠΊΠ»Π°ΡΡ LoginDataValidator { //... Π²Π΅ΡΠ΅Π»ΠΎ checkPassword (ΠΏΠ°ΡΠΎΠ»Ρ: ΡΡΡΠΎΠΊΠ°): Π Π΅Π·ΡΠ»ΡΡΠ°Ρ { Π²Π΅ΡΠ½ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° { password.length < 5 -> Result.Error("ΠΠ°ΡΠΎΠ»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ >5 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²") password.lowercase() == "ΠΏΠ°ΡΠΎΠ»Ρ" -> Result.Error("ΠΠ°ΡΠΎΠ»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ \"ΠΏΠ°ΡΠΎΠ»Ρ\"") Π΅ΡΠ΅ -> Π Π΅Π·ΡΠ»ΡΡΠ°Ρ. Π£ΡΠΏΠ΅Ρ } } //... }
ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅
gradle.