ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript
📱Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Android Π½Π° JavaScript Ρ ΠΏΠΎΠΌΠΎΡΡΡ Apache Cordova
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π² Π½Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΡΡΠΈΠ³Π»ΠΎ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ΅Π»Π΅ΡΠΎΠ½ Π΅ΡΡΡ Ρ 2 ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΡΡ 3 ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π½Π° ΠΏΠ»Π°Π½Π΅ΡΠ΅. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ Π»ΡΠ΄ΠΈ ΠΎΠ±ΡΠ°ΡΡΡΡ, Π΄Π΅Π»Π°ΡΡ ΠΏΠΎΠΊΡΠΏΠΊΠΈ, ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ³ΡΠ°ΡΡ. ΠΡΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΡΡΠ½ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅Π»ΡΠ·Ρ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π±Π΅Π· Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, Π½ΡΠΆΠ½ΠΎ Π²Π»Π°Π΄Π΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Swift β Π΄Π»Ρ iOS, Java ΠΈΠ»ΠΈ Kotlin β Π΄Π»Ρ Android. ΠΠ»ΠΈ JavaScript β Π΄Π»Ρ iOS, Android ΠΈ ΡΡΠ΄Π° Π΄ΡΡΠ³ΠΈΡ ΠΠ‘!
ΠΠ°-Π΄Π°, JavaScript Π²Π΅Π·Π΄Π΅, ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, React Native ΠΈ Apache Cordova, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° Π½Π΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΡ.
ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° React Native ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π½Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ React ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΉ. Cordova ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π·ΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΠ‘. Π’Π°ΠΊΠΈΠ΅ «Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΠ΅» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡ Π²Π°ΡΡΠ°ΡΡΡΡ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
Cordova ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π±Π΅Π· ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΈ. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ β ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Todo App Π΄Π»Ρ Android Π½Π° JavaScript.
Π¨Π°Π³ #0. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Android, Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ JDK (Java Development Kit) ΠΈ Android SDK β ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android. Π ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Cordova.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΠΈΠΊ Π΄Π»Ρ Π½ΡΠΆΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ Oracle. ΠΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ Π²Π΅ΡΡΠΈΡ Π½Π΅ Π²ΡΡΠ΅ JDK 8, Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠΌΠΈ Cordova Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Android Studio
ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Android ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Android Studio.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ PATH ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ tools ΠΈ platform-tools :
ΠΠ°ΡΠ΅ΠΌ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ Android SDK Build-Tools (Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ SDK Tools).
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΌΡΠ»ΡΡΠΎΡΠ°
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΌΡΠ»ΡΡΠΎΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ AVD Manager:
Π ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΌΡΠ»ΡΡΠΎΡ Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
Cordova
ΠΡΡΠ°Π»ΠΎΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ npm-ΠΏΠ°ΠΊΠ΅Ρ Cordova:
Π¨Π°Π³ #1. ΠΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ Π² Android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΠΏΠΎΡΠ° ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠ°ΠΌΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΌΡ.
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΡΠ°ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ β ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΎΠ±ΡΡΠ½ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Android. Π§ΡΠΎΠ±Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π½Π΅Π³ΠΎ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΡΡΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Cordova ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠΎΠΌΠ°Π½Π΄Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Cordova:
deviceready β ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΌΠ° Cordova. ΠΠ΅ΡΡΡΠ΄Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠΎΠ²ΠΎ Π΅Π³ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΠΎΠ±Ρ ΠΎΠ΄ Cordova, ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°Π΄ΠΏΠΈΡΡ Connecting to device Π½Π΅ ΠΈΡΡΠ΅Π·Π°Π΅Ρ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ
Π£ΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ΅Π»Π΅Π²ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° β Ρ Π½Π°Ρ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Android:
Π‘Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠΎΠΌΠ°Π½Π΄Π° Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄Π»Ρ Android-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ:
ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° ΡΠΌΠ°ΡΡΡΠΎΠ½, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ β ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΡ ΡΠ°ΠΌΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ!
ΠΠ°ΠΏΡΡΠΊ Π½Π° ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅
ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΡΠ½ΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ apk Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΡΠΌΠ°ΡΡΡΠΎΠ½Π΅, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ, ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠΎΡΠ΄ΠΎΠ²Π° ΡΠ°ΠΌΠ° ΡΠΎΠ±Π΅ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΈ Π±Π΅Π· ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ°Π½Π΅Π΅ ΡΠΌΡΠ»ΡΡΠΎΡ Π² Android Studio:
ΠΈ ΡΠ½ΠΎΠ²Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ° ΡΡΠΎΡ ΡΠ°Π· ΠΊΠΎΡΠ΄ΠΎΠ²Π° Π½Π°ΠΉΠ΄Π΅Ρ ΡΠΌΡΠ»ΡΡΠΎΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Π½Π΅ΠΌ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΠΌΠ΅Π΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΎΠ±ΡΡΠ½ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Android-ΡΡΡΡΠΎΠΉΡΡΠ²Π΅.
#Π¨Π°Π³ 2. TODO-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Cordova Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΊΡΡΡΠΎΠ΅ Todo-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ ΠΈΠ»ΠΈ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
ΠΡΠ»Π°Π΄ΠΊΠ°
ΠΠ°ΠΏΡΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Cordova ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· Π±ΡΠ°ΡΠ·Π΅Ρ Chrome.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ: chrome://inspect/#devices, Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Inspect.
Π¨Π°Π³ #3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠ΄Π½Π°ΠΊΠΎ Cordova ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΈ ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° β ΡΠ΅ΡΠ΅Π· ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π½Π°ΡΠΈΠ²Π½ΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° ΠΈ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ.
ΠΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°
Π’Π΅ΠΏΠ΅ΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΎΠ±ΡΠ΅ΠΊΡ navigator.notification Ρ ΡΠ΅ΡΡΡΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ:
ΠΠ°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄ confirm :
ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΠΎ Π΄Π΅Π»Π°Ρ
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ β Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΎ Π΄Π΅Π»Π°Ρ Π² ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ β Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ skwas-cordova-plugin-datetimepicker.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π΅:
Π Π΄Π»Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ cordova-plugin-local-notification.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Google Play
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ, ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ±ΡΠ°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°.
Π Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ platforms/android/app/build/outputs/apk Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡΡΡΡ Π½ΠΎΠ²Π°Ρ ΠΏΠ°ΠΏΠΊΠ° release, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π½Π΅ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ apk-ΡΠ°ΠΉΠ».
Π§ΡΠΎΠ±Ρ Π²ΡΠ»ΠΎΠΆΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² Google Play, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡ:
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΊΠ»ΡΡΠΎΠΌ:
ΠΠ°ΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»ΡΡΠ° ΠΈ Π°Π»ΠΈΠ°Ρ.
ΠΡΡΠ°Π»ΠΎΡΡ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² Π½ΠΎΠ²ΡΠΉ apk. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΡΠΈΠ»ΠΈΡΠ° zipalign (ΠΎΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ build-tools Π² Android SDK):
ΠΡΠΎΡ apk-ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² Google Play ΡΠ΅ΡΠ΅Π· Π²Π°Ρ Π°ΠΊΠΊΠ°ΡΠ½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° JavaScript Ρ ΠΏΠΎΠΌΠΎΡΡΡ React Native
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ React Native β ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Facebook Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ iOS ΠΈ Android. Π£ Π½Π΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ ΠΎΡ Facebook β React Javascript, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΡΠΎΠΊΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΠΎΠ»ΠΈΠ½ΠΎΠΌ ΠΠ±Π΅ΡΠ³Π°ΡΠ΄ΠΎΠΌ ΠΈΠ· iOS Team, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΠ΄ ΠΏΡΠ°Π²ΠΎΠΊ Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΈ React Native 0.22.
ΠΠΎ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈ ΡΠ°ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ JavaScript Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ iOS-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ PhoneGap ΠΈΠ»ΠΈ Titanium. Π§ΡΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ React Native ΠΎΡΠΎΠ±Π΅Π½Π½ΡΠΌ?
1. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ PhoneGap, Π² React Native Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ΅ΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° JavaScript, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠΎΠ², Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ
Π΄Π»Ρ HTML5 UI.
2. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Titanium, React Π²Π²ΠΎΠ΄ΠΈΡ Π½ΠΎΠ²ΡΠΉ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΊΡΠ°ΡΠΊΠΎ, UI ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ»ΡΡΠ΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ React Native Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½Ρ ΠΏΡΠΈΠ²Π½Π΅ΡΡΠΈ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ React Π² ΡΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΆΠ½ΠΎΠ΅ ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅: ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ Π½Π΅ ΠΎ ΡΠ°ΠΊΠΎΠΌ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ΅, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠΎΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π²Π΅Π·Π΄Π΅, Π° ΠΎ ΡΠ°ΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ ΠΏΠΈΡΠ°ΡΡ Π½Π° Π½Π΅ΠΌ Π²Π΅Π·Π΄Π΅. ΠΠ°Π½Π½ΡΠΉ ΡΡΠΎΠΊ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ iOS-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π½ΠΎ, ΠΈΠ·ΡΡΠΈΠ² Π²Π΅ΡΡ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π΅Π· ΡΡΡΠ΄Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ Android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠΏΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Objective-C ΠΈΠ»ΠΈ Swift, Π²Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π½Π΅ ΠΎΠ±ΡΠ°Π΄ΡΠ΅ΡΠ΅ΡΡ ΠΈΠ΄Π΅Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° JavaScript. ΠΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ, Π²ΡΠΎΡΠΎΠΉ ΠΏΡΠ½ΠΊΡ ΡΠ²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ Swift-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΠ΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠΎ Swift, Π²Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΈΠ·ΡΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊ, ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ UI Π·Π΄Π΅ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠΎΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Objective-C: ΠΎΠ½ ΡΠΎΠΆΠ΅ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π° UIKit ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌ.
React Π·Π° ΡΡΠ΅Ρ ΡΠ°ΠΊΠΈΡ Π½Π΅ΠΎΠ±ΡΡΠ½ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ ΠΊΠ°ΠΊ Virtual DOM ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ»ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΏΠΎ React Native ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠΈΡΠΊΡ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ Π² ΠΠ΅Π»ΠΈΠΊΠΎΠ±ΡΠΈΡΠ°Π½ΠΈΠΈ:
ΠΡΠ»ΠΈ Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΏΡΠ΅ΠΆΠ΄Π΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ JavaScript, Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ. ΠΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π³ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. React ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ CSS, ΠΊΠΎΡΠΎΡΡΠΉ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ½ΡΡΡ, Π½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π³ΠΎ Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Mozilla Developer Network.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ? ΠΠ΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅.
ΠΡΠΈΡΡΡΠΏΠ°Π΅ΠΌ ΠΊ ΡΠ°Π±ΠΎΡΠ΅
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ JavaScript-ΠΊΠΎΠ΄Π° React Native ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Node.js, ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JavaScript. ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ΅Π±Π΅ Node.js, ΠΏΠΎΡΠ° ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
Π‘Π½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Homebrew, ΡΠ»Π΅Π΄ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π½Π° ΡΠ°ΠΉΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ β Node.js, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² Π² ΠΎΠΊΠ½Π΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠ°ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ homebrew ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ watchman β ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΡ Facebook:
React Native ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠ°Π²ΠΊΠΈ. ΠΡΠΎ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ Xcode, Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π³ΠΎ ΡΠ±ΠΎΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΠΎΡΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°.
ΠΠ°Π»Π΅Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ React Native Command Line Interface (CLI), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ npm:
ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Node Package Manager, ΡΡΠΎΠ±Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ CLI-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ; npm ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Node.js, Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° CocoaPods ΠΈΠ»ΠΈ Carthage.
ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Π³Π»ΡΠ±ΠΆΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ React Native, Π΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅ Π½Π° GitHub.
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ CLI-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ:
ΠΡΠ° ΡΡΡΠΎΠΊΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° React Native.
ΠΠ·Π³Π»ΡΠ½ΡΠ² Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ ΠΈ ΡΠ°ΠΉΠ»Ρ, Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅ ΠΏΠ°ΠΏΠΊΡ node_modules, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ React Native. Π€Π°ΠΉΠ» index.ios.js β ΡΡΠΎ ΠΌΠ°ΠΊΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ CLI-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΏΠΊΡ ios β Π² Π½Π΅ΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Xcode ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Bootstrap. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ°ΠΌ Π΅ΡΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ Android, Π½ΠΎ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΈΡ Π·Π΄Π΅ΡΡ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π΅Π³ΠΎ ΡΠ±ΠΎΡΠΊΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅. Π‘ΠΈΠΌΡΠ»ΡΡΠΎΡ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ CLI-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ React Native, Π²ΡΠ²ΠΎΠ΄ΠΈΠ» ΡΡΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠΎΡΠΎΠΌΡ Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ, Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅Π² ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎΡ Xcode. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ React Native Π·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΉ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅, ΠΈ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½ΠΈΠΌΠΈ Π½Π°Π΄ Π΅Π΅ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ΅Π»ΠΈΠ·Π΅ React Native.
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ:
ΠΡΠΎ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠΈΠΊ React Native, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Node.js. ΠΡΠΊΠΎΡΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ Π½ΡΠΆΠ΅Π½.
ΠΠ΅ Π·Π°ΠΊΡΡΠ²Π°ΠΉΡΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΠΏΡΡΡΡ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΠΎΠ½Π΅. ΠΡΠ»ΠΈ Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π·Π°ΠΊΡΡΠ»ΠΈ Π΅Π³ΠΎ, ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Xcode.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ Π·Π°Π±Π΅ΡΠ΅ΠΌΡΡ Π² Π΄Π΅Π±ΡΠΈ ΠΊΠΎΠ΄Π°, Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡΡ Ρ Π²ΡΠ±ΠΎΡΠΎΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°. ΠΠ°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΠΏΠΈΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ JavaScript-ΠΊΠΎΠ΄Π°, Π° Xcode ΡΠ²Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Sublime Text, ΡΡΠΎ Π½Π΅Π΄ΠΎΡΠΎΠ³ΠΎΠΉ ΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠΎ Atom, Brackets ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠΎΠΆΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ.
Hello React Native
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΏΠΎΠΈΡΠΊΡ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Hello World. ΠΠΎ Ρ ΠΎΠ΄Ρ Π΄Π΅Π»Π° Ρ Π±ΡΠ΄Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΏΠΎΠ½ΡΡΠΈΡ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» index.ios.js Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΈ ΡΠ΄Π°Π»ΠΈΡΠ΅ Π²ΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½ΡΠ»Ρ. ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΡΡΡΠΎΠ³ΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ»ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π½Π°Π»Π°Π³Π°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ JavaScript. ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΎΠ½ ΡΠ»ΡΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ JavaScript.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΡΡΠΎΠ³ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΡΠ°ΡΡΠ΅ ΠΠΆΠΎΠ½Π° Π Π΅Π·ΠΈΠ³Π° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ECMAScript 5 Strict Mode, JSON, and More.
ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡ ΡΡΡΠΎΠΊΡ:
ΠΠ½Π° Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ react-native ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ React. React Native ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΊΡΡ ΠΆΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠ°ΠΊ ΠΈ Node.js Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ require, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠΌΠΏΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π² Swift.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΡ JavaScript ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΡΠ°ΡΡΠ΅ ΠΠ΄Π΄ΠΈ ΠΡΠΌΠ°Π½ΠΈ ΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΌ JavaScript.
ΠΠ°Π»Π΅Π΅ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π·Π°Π΄Π°Π΅Ρ Π΅Π΄ΠΈΠ½ΡΠΉ ΡΡΠΈΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π²ΡΠΊΠΎΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΊ ΡΠ΅ΠΊΡΡΡ Hello World. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²Ρ ΡΠ·Π½Π°Π»ΠΈ ΡΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΊΠ»Π°ΡΡΠ° StyleSheet, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² Π²Π΅Π±Π΅ ΡΠ·ΡΠΊΠ° Cascading Style Sheets (CSS).
ΠΡΠ°ΠΊ, Π·Π°ΠΉΠΌΠ΅ΠΌΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΡΡΠΌΠΎ ΠΏΠΎΠ΄ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΎ ΡΡΠΈΠ»ΡΠΌΠΈ:
ΠΠ°, ΡΡΠΎ ΠΊΠ»Π°ΡΡ JavaScript.
ΠΠ»Π°ΡΡΡ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ECMAScript 6 (ES6). ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ JavaScript ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ ΡΠ΅Π±Ρ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°Ρ ΡΠ°Π΄ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΎ ΡΡΠ°ΡΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ. Π Ρ ΠΎΡΡ iOS 9 Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ES6, React Native ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Babel, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ JavaScript Π² ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ JavaScript ΡΠ°ΠΌ, Π³Π΄Π΅ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ Π²Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Babel Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. Π’Π°ΠΊ ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΠ°ΡΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ JavaScript β Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ Π²Π΅ΡΡΠΈΠΉ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ².
PropertyFinderApp ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.Component, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° React. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ; ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ, ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΈ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React Native β ΡΡΠΎ Π½Π΅ ΠΊΠ»Π°ΡΡΡ UIKit, Π° ΠΈΡ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠ΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΡ. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React Π² ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π° ΡΡΡ ΡΡΡΠΎΠΊΡ:
AppRegistry ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΡΠΊΡ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² index.ios.js ΠΈ Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ Xcode. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΡ Π΅ΠΌΠ° PropertyFinder Π²ΡΠ±ΡΠ°Π½Π° Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠΎΠ² iPhone, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ±Π΅ΡΠΈΡΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ. Π§Π΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Hello World!:
ΠΡΠΎ JavaScript-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ Π½Π° ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π½Π°ΡΠΈΠ²Π½ΡΠΉ UI β ΠΈ ΡΡΠΎ Π±Π΅Π· ΠΏΠΎΠΌΠΎΡΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
ΠΡΡ Π΅ΡΠ΅ Π½Π΅ Π²Π΅ΡΠΈΡΠ΅? Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ ΡΠ°ΠΌΠΈ: Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π² Xcode Debug\View Debugging\Capture View Hierarchy ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΏΠΎΠ²ΡΡΠ΄Ρ ΡΡΡΠ½ΠΎΡΡΠΈ UIWebView. Π’Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² RCTText. ΠΠΎ ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅? ΠΠ΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² Xcode, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ File\Open Quicklyβ¦ ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ RCTView.h. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ RCTView Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡ UIView. ΠΡΡ ΠΎΠ΄ΠΈΡ, Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ.
Π₯ΠΎΡΠΈΡΠ΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ? ΠΡΠΊΡΠΎΠΉΡΠ΅ Π² Xcode AppDelegate.m ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ application:didFinishLaunchingWithOptions:. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π΅Ρ RCTRootView, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ JavaScript-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, RCTRootView Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΡΠΎΠ³ΠΎ URL:
ΠΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ ΠΎΡΠΊΡΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠΈΠΊ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡ Π²ΡΡΠ΅.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΠΎΡ URL Π² Safari, ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ JavaScript-ΠΊΠΎΠ΄ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΡΠ°ΠΌ ΠΊΠΎΠ΄ Hello World!, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ React Native.
ΠΠΎΠ³Π΄Π° Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΡΡΠΎΡ ΠΊΠΎΠ΄ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ JavaScriptCore. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ PropertyFinderApp ΠΈ Π·Π°ΡΠ΅ΠΌ Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ Π½Π°ΡΠΈΠ²Π½ΠΎΠ΅ UIKit ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. ΠΠ°Π»ΡΡΠ΅ Π² ΡΡΠΎΠΊΠ΅ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
Π‘ΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ React.createElement Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ React. Π Ρ ΠΎΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ JavaScript-ΠΊΠΎΠ΄ ΡΠΈΡΠ°Π΅ΡΡΡ Π»Π΅Π³ΠΊΠΎ, Π² ΡΠ»ΡΡΠ°Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ UI ΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡΡΡ Π² ΠΊΠ°ΡΡ.
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π·Π°ΡΠ΅ΠΌ Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° index.ios.js ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ return ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠΎ JSX, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° JavaScript, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² JavaScript-ΠΊΠΎΠ΄ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ HTML. Π’Π΅, Ρ ΠΊΠΎΠ³ΠΎ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΎΠΏΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π·Π°ΠΌΠ΅ΡΡΡ ΡΡ ΠΎΠ΄ΡΡΠ²ΠΎ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JSX Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠΊΠ°.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² index.ios.js ΠΈ Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡ. ΠΠ°ΠΆΠΌΠΈΡΠ΅ Cmd+R, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅:
ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° React Native ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΈΡΡ JavaScript-ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½Π°Ρ ΡΠ±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Xcode.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ Π½Π°Π±ΠΎΡΠΎΠΌ JavaScript-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² index.ios.js.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π²ΠΎ ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ JSX, Π²Π·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° βbundleβ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΠΎΠ»Π°Π³Π°Ρ, ΠΌΡ Π²ΠΏΠΎΠ»Π½Π΅ Π½Π°ΠΈΠ³ΡΠ°Π»ΠΈΡΡ Ρ Hello World!, ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Property Finder ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ΅ΠΊΠΎΠ²ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ UIKit. ΠΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
Π ΡΠ°ΠΉΠ»Π΅ index.ios.js ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ PropertyFinderApp Π² HelloWorld:
ΠΡΡΠ°Π²ΠΈΠΌ ΠΏΠΎΠΊΠ° ΡΠ΅ΠΊΡΡ Hello World!, Π½ΠΎ ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΡΠ½Π΅Π²ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° HelloWorld ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ:
ΠΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠΈΠ»Ρ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΡΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ HelloWorld. Π Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ β ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΈΡΡ β ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΡΡΡΡ β ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ URL.
ΠΠ°Π»Π΅Π΅ ΠΏΠΎΠ΄ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΡΠΈΠ»ΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΡΠ΄Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
Π ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ flex: 1, Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡ ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Cmd+R, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
ΠΠΎΡΠ½Π΅Π²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΡ Hello World. Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²Π°Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ UI.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠΈΡΠΊΠ°
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ SearchPage.js ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΠΎΠ΄Π½Ρ ΠΏΠ°ΠΏΠΊΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ index.ios.js. ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΡΡΠΎΡ ΠΊΠΎΠ΄:
ΠΡ ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΡΡΡΠΎΠ³ΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈ ΠΈΠΌΠΏΠΎΡΡ Π² react-native, Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ β ΡΡΠΎ Π½Π΅ΡΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΡΠΎ Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΡΡΡΠ΅Π΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. ΠΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π² ΠΎΡΡΠ°Π²ΡΠ΅ΠΌΡΡ ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ±ΡΠΎΡΠΈΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ React. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ StyleSheet, Π° Π½Π΅ ΠΊ React.StyleSheet. ΠΠ΅ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
ΠΠ΅ Π·Π°ΠΊΡΡΠ²Π°Ρ ΡΠ°ΠΉΠ» SearchPage.js, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π²Π½ΠΈΠ·Ρ ΡΡΠΎΡ ΡΡΠΈΠ»Ρ:
ΠΡΠΎ ΡΠΎΠΆΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ CSS-ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°Π΄Π°Π½ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π²Π°ΠΌ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ, ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Interface Builder, Π½ΠΎ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π°Ρ viewDidLoad().
ΠΡΡΠ°Π²ΡΡΠ΅ ΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄ ΡΡΠΈΠ»ΡΠΌΠΈ:
render ΠΎΡΠ»ΠΈΡΠ½ΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ JSX ΠΈ Π΅Π³ΠΎ ΡΡΡΡΠΊΡΡΡΡ. ΠΠ°ΡΡΠ΄Ρ ΡΠΎ ΡΡΠΈΠ»Π΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ: ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ Π΄Π²ΡΠΌΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΌΠΈ.
ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π°:
ΠΠ½Π° ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡ SearchPage, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ .
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ β ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΡΡΡ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ index.ios.js ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡ ΡΡΡΠΎΠΊΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ require Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π°:
Π ΡΡΠ½ΠΊΡΠΈΠΈ render ΠΊΠ»Π°ΡΡΠ° PropertyFinderApp ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ initialRoute, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠ»Π°ΡΡ HelloWorld ΠΈ Π΅Π³ΠΎ ΡΡΠΈΠ»ΠΈ. ΠΠ½ΠΈ Π²Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ.
Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡ ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Cmd+R, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
ΠΠ΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ SearchPage.
Π‘ΡΠΈΠ»ΠΈΠ·ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Flexbox
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ CSS, Π·Π°Π΄Π°ΡΡΠΈΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ²Π΅ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΎΡΡΡΡΠΏΠΎΠ². Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²Ρ Π΅ΡΠ΅ Π½Π΅ ΡΠ»ΡΡΠ°Π»ΠΈ ΠΎ flexbox. ΠΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π»ΠΈΡΡ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ CSS, ΠΎΠ½Π° ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΠΌΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
React Native ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ css-layout, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ JavaScript-ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ flexbox-ΡΡΠ°Π½Π΄Π°ΡΡΠ°, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° C (Π΄Π»Ρ iOS) ΠΈ Π½Π° Java (Π΄Π»Ρ Android).
ΠΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠΎ, ΡΡΠΎ React Native ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΠΉ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²Π΅ΠΉΡΠΈΡ
ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠ², Π²ΡΠΎΠ΄Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ flexbox-ΠΌΠ°ΠΊΠ΅ΡΠΎΠ² ΠΊ SVG.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΠΎΠ»Π±ΡΠ°, ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ column β Π° Π·Π½Π°ΡΠΈΡ, Π²ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎ:
ΠΡΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ Π³Π»Π°Π²Π½Π°Ρ ΠΎΡΡ, ΠΈΠ»ΠΈ main axis, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΊΠ°ΠΊ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅, ΡΠ°ΠΊ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
ΠΠ΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π²ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Ρ ΡΡΠ΅ΡΠΎΠΌ Π΅Π³ΠΎ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΎΡΡΡΡΠΏΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΠΎΡΡ. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Ρ alignItems Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ center, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅ΠΊΡΡ Ρ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠ΅Π½ΡΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» SearchPage.js ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ΅Π³Π° Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Text:
ΠΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄Π²Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ: Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°, Π° Π² Π΄ΡΡΠ³ΠΎΠΌ β Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°. Π‘Π΅ΠΉΡΠ°Ρ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΠ»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ
ΠΠ΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΡΡΠΈΠ»Π΅ΠΉ, ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ Π·Π°ΠΏΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π±Π»ΠΎΠΊΠ° container ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½ΠΈΠΆΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΡΠΈΠ»ΠΈ:
Π‘Π»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ: ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΠΈΠ»Ρ ΠΈΠ»ΠΈ ΡΠ΅Π»Π΅ΠΊΡΠΎΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΡΡ Π·Π°ΠΏΡΡΠΎΠΉ.
ΠΡΠΈ ΡΡΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡ ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Cmd+R, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
Π’Π΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° βGoβ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ»ΠΈ ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠΎ ΡΡΠΈΠ»Π΅ΠΌ flowRight, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π² ΡΡΡΠΎΠΊΡ Π·Π° ΡΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° flexDirection: ‘row’. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠΈΡΠΈΠ½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΌΡ Π²ΡΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΈΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΠΈΠ½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ²ΠΎΠΉΡΡΠ²Π° flex. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ searchInput ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ flex: 4, Π° Π² ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ button β flex: 1, Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΠ΅Π³ΠΎ ΠΈΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 4:1.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, ΠΏΠΎ ΡΡΡΠΈ ΡΠ°ΠΊΠΎΠ²ΡΠΌΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² UIKit β ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π½Π°Π΄ΠΏΠΈΡΠΈ. ΠΠ½ΠΎΠΏΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ React Native ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ TouchableHighlight, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΌ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°ΡΠΈΠΉ ΡΠ²Π΅Ρ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ Π΅Π³ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΌ Π°ΡΡ ΠΈΠ²ΠΎΠΌ. ΠΠΎΡΠ»Π΅ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΡΠ°ΡΠΏΠ°ΠΊΡΠΉΡΠ΅ Π°ΡΡ ΠΈΠ².
ΠΠ°Π»Π΅Π΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ βResourcesβ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π² Π½Π΅Π΅ Π²ΡΠ΅ ΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ: ΠΠ°ΠΊ Π²Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΠΈΠ· Apple ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄Π»Ρ React Native ΡΡΠΎ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ. Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ΄ΠΎΠΌ Ρ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Π΄Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ². ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π²-ΡΡΠ΅ΡΡΠΈΡ , ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ iOS ΠΈ Android ΡΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π΄Π²ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
ΠΠ΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ SearchPage.js ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡ ΡΡΡΠΎΠΊΡ ΠΏΠΎΠ΄ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠΈΠΌ ΡΠ΅Π³ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° TouchableHighlight, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ΅Π³ΠΎ Π·Π° ΠΊΠ½ΠΎΠΏΠΊΡ location:
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΡΠΈΠ»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Π±Π»ΠΎΠΊΠ΅ ΡΠΎ ΡΡΠΈΠ»ΡΠΌΠΈ, Π½Π΅ Π·Π°Π±ΡΠ² ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ°:
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡ ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Cmd+R, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ Π΄ΠΎΠΌΠΎΠΌ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ, Π° Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠΈΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ npm start Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅.
ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΆΠ΅ ΡΠΌΠΎΡΡΠΈΡΡΡ ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½ΠΎ, Π½ΠΎ Π²ΡΡ ΠΆΠ΅ ΡΠ΅Π³ΠΎ-ΡΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ. ΠΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² React ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠΈΠΏΠ° Β«ΠΊΠ»ΡΡβΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅Β». ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ, Π½ΡΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
Π ΡΠ°ΠΉΠ»Π΅ SearchPage.js Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΊΠ»Π°ΡΡ SearchPage, ΠΏΡΡΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄ render():
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ state, Π° Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ searchString ΡΠ²Π»ΡΠ΅ΡΡΡ london.
ΠΡΠ΅ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½Ρ TextInput Π² render, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ΠΡ Π²ΡΡΡΠ°Π²ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° TextInput β ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅ΠΊΡΡΠ° β Π½Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ searchString. ΠΡΠ°ΠΊ, ΠΌΡ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΠ»ΠΈΡΡ ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅Ρ ΡΡΠΎΡ ΡΠ΅ΠΊΡΡ?
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄, Π²ΡΡΡΡΠΏΠ°ΡΡΠΈΠΉ Π² ΡΠΎΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΠΊΠ»Π°ΡΡΡ SearchPage ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ constructor:
ΠΠ½ Π±Π΅ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ²ΠΎΠΉΡΡΠ²Π° text Π² ΡΠΎΠ±ΡΡΠΈΠΈ ΡΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Π³ΠΎ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π²ΡΠΊΠΎΡΠ΅ ΠΏΡΠΈΠ³ΠΎΠ΄ΡΡΡΡ.
Π§ΡΠΎΠ±Ρ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π»ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΠ°, Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΏΠΎΠ»Ρ TextInput ΠΌΠ΅ΡΠΎΠ΄Π° render ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ onChange. Π ΠΈΡΠΎΠ³Π΅ ΡΠ΅Π³ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ΅ΠΊΡΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Π°Ρ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Ρ onChange (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ onSearchTextChanged).
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ bind(this). JavaScript ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ this Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π°ΡΠ΅, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ². Π Swift Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ»ΠΎΠ²Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ self. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ bind Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ this Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° onSearchTextChanged ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΡΡΠ»ΠΊΠΎΠΉ ΠΊ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΌ ΡΠ»ΠΎΠ²Π΅ this ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π° MDN.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΡΠ½ΠΎΠ²Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ log Π² Π½Π°ΡΠ°Π»Π΅ render(), ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅Π΄ return:
ΠΠ°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΡΠ·Π½Π°ΡΡ Π½Π΅ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΠΎΠ΅ ΠΎΠ± ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ .
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡ ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Cmd+R. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ βlondonβ, Π° ΠΏΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΠ° Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Xcode Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ:
ΠΡΠ»ΠΈ Π²Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡ Π²ΡΡΠ΅, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΡΡΠ΅Π½:
1. ΠΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² render(), Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
2. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΠ° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ onSearchTextChanged().
3. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ render.
4. onSearchTextChanged() Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ Π²ΡΡ, Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΠΎΠΈΡΠΊΠ°.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° React, ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π²ΡΠ·ΡΠ²Π°Π΅Ρ render Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΡΠΎ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½Π°Ρ ΠΈΠ΄Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ UI.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ UI-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π½ΡΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ Π²ΡΡΡΠ½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π»ΠΈΠ±ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΠ²Π½ΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² UI. Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²ΡΠΎΡΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ°, ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ ΡΠΎ ΡΡΠ°ΡΡΠ΅ΠΉ ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½Π° MVVM ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ ReactiveCocoa.
Π‘ React Π²Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΠΎΠ»Π½ΠΎΠ²Π°ΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈ UI ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°ΡΡΠΎΠ½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Π΅ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²ΡΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ·ΡΡΠ½ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°. Π‘ΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π²Π΅ΡΠ½ΠΎ, Π΄Π΅Π»ΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ Π²Π΅ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ-ΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠΎΡ Π³Π΄Π΅ React ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ²Π»ΡΠ΅Ρ ΡΠ΅Π±Ρ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡΡ, ΠΎΠ½ Π±Π΅ΡΠ΅Ρ Π΄Π΅ΡΠ΅Π²ΠΎ Π²ΠΈΠ΄ΠΈΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ render, ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²ΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ UIKit. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ React Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Ρ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π½ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ.
Π Π°Π·Π²Π΅ Π½Π΅ Π·Π΄ΠΎΡΠΎΠ²ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ Π² Π½Π°ΡΠ΅ΠΌ iOS-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½ΠΎΠ²Π΅ΠΉΡΠΈΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ, Π·Π° ΡΡΠ΅Ρ ΠΊΠΎΡΠΎΡΡΡ ReactJS ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ: virtual-DOM (ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ Π²Π΅Π±-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°) ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅?
ΠΠΎΠ·ΠΆΠ΅ Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅, Π° ΠΏΠΎΠΊΠ° Π½ΡΠΆΠ½ΠΎ Π΅ΡΠ΅ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ΄Π°Π»ΠΈΠΌ ΠΊΠΎΠ΄ ΡΠ±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ°Π½Π΅Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠΎΡΡΠ΅Ρ ΠΎΠ±ΡΠΈΠΉ ΠΊΠΎΠ΄.
Π§ΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠΈΡΠΊ, Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ βGoβ, ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ API-Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π·Π°ΠΏΡΠΎΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» SearchPage.js, Π½Π°ΠΉΠ΄ΠΈΡΠ΅ constructor ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π½ΡΡΡΠΈ Π½Π΅Π³ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅:
ΠΠΎΠ²ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ isLoading Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΡΠ΅ΠΌ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π»ΠΈ Π·Π°ΠΏΡΠΎΡ.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΊΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π² Π½Π°ΡΠ°Π»Π΅ render:
ΠΡΠΎ ΡΠ΅ΡΠ½Π°ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ if, ΠΊΠΎΡΠΎΡΡΠΉ Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π»ΠΈΠ±ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΏΡΡΡΠΎΠΉ ΡΠΊΡΠ°Π½ β Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° isLoading. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π·Π°Π½ΠΎΠ²ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ JSX ΠΈ JavaScript.
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ JSX, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ΅ΠΌΡ Π·Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠΈΡΠΊΠ° Π² return, ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ ΠΏΠΎΠ΄ Image ΡΡΡ ΡΡΡΠΎΠΊΡ:
ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΠΊΠ»Π°ΡΡ SearchPage:
ΠΠ΅ΡΠΎΠ΄ _executeQuery() Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°ΠΏΡΠΎΡ, Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ Π·Π°Π½ΠΎΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ isLoading, ΡΡΠΎΠ±Ρ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠ»ΠΎΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ»Π°ΡΡΡ Π² JavaScript Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ°, ΠΏΠΎΡΠΎΠΌΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° βprivateβ Π΄Π»Ρ Π½ΠΈΡ ΡΠΎΠΆΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. Π ΡΠΈΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΏΡΠ΅ΡΠΈΠΊΡ Π² Π²ΠΈΠ΄Π΅ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ private.
ΠΠ΅ΡΠΎΠ΄ onSearchPressed() Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ βGoβ. Π§ΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ, Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ render ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π²Π½ΡΡΡΠΈ ΠΎΡΠΊΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ΅Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° TouchableHighlight, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ΅Π³ΠΎ Π·Π° ΡΠ΅ΠΊΡΡ βGoβ:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Π΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ° SearchPage:
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ SearchPage, ΠΏΠΎΡΠΎΠΌΡ ΠΎΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠΊΠΎΡΠ΅Π΅ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄. Π‘Π½Π°ΡΠ°Π»Π° ΠΎΠ½Π° ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΡΠΎΠΊΡ Π·Π°ΠΏΡΠΎΡΠ°, ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· Π½ΠΈΡ , ΠΎΠ½Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΡΡΠΎΠΊΠΈ: ΠΏΠ°ΡΡ name=value, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π°ΠΌΠΏΠ΅ΡΡΠ°Π½Π΄Π°ΠΌΠΈ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ => ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΠ΅Π»ΠΎΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΌΡ Π½Π΅Π΄Π°Π²Π½Π΅ΠΌΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² JavaScript. Π‘ΡΡΠ΅Π»ΠΎΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ ΡΠΈΠΌΡΠ»ΡΡΠΎΡΡ, ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Cmd+R ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ βGoβ. ΠΠ° ΡΠΊΡΠ°Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ Xcode:
ΠΠ° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, Π° Π² Π»ΠΎΠ³Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ URL Π΄Π»Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΠΎΡ URL Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ: Π±ΠΎΠ»ΡΡΠΎΠΉ JSON-ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠΎ Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²Π½ΠΈΠΊΠ°ΡΡ Π² Π½Π΅Π³ΠΎ. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠΎΠ΄ ΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅ΠΌ Π΅Π³ΠΎ ΠΏΠ°ΡΡΠΈΠ½Π³.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ Nestoria API. JSON-ΠΎΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· API, Π²Π΅ΡΡΠΌΠ° Π½Π΅Π·Π°ΠΌΡΡΠ»ΠΎΠ²Π°Ρ. Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅, Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° URL-Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ².
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ β Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ΅ Π·Π°ΠΊΡΡΠ²Π°Ρ ΡΠ°ΠΉΠ» SearchPage.js, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠ»Π°ΡΡΠ°, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ message:
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ render ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π²Π½ΡΡΡΠΈ Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ:
ΠΠ½Π° ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π½ΠΈΠ·Ρ ΡΠΊΡΠ°Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ SearchPage ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΠΊΠΎΠ½Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Π° _executeQuery() Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄:
ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ fetch, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Web API ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠ΅Π½Π½ΡΠΉ API ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ XMLHttpRequest. ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° promise, ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ°ΡΡΠΈΠ½Π³ JSON-ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄ _handleResponse (ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Π³ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅).
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² SearchPage:
ΠΠ½Π° ΠΎΡΠΈΡΠ°Π΅Ρ isLoading ΠΈ ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² Π»ΠΎΠ³ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π Nestoria API Π΅ΡΡΡ ΡΡΠ΄ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΡΠ²Π΅ΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΊΠΎΠ΄Ρ 202 ΠΈ 200 Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π»ΠΎΠΊΠ°ΡΠΈΠΉ, ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Π½ΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π½Π°ΠΈΠ»ΡΡΡΠ΅Π³ΠΎ Π²ΡΠ±ΠΎΡΠ°. ΠΠΎΡΠ΅ΠΌΡ Π±Ρ Π½Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠ΅ΠΉ ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ?
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡ ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Cmd+R. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²Π²Π΅ΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ βlondonβ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² Π»ΠΎΠ³Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ 20 ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ (ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ Π΄Π»Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ). Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²Π²Π΅ΡΡΠΈ Π½Π΅Π²Π΅ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ βnarniaβ. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
ΠΡΠ΅ΠΌΡ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΠΎΠΈΡΠΊΠ° Π½Π° ΡΠΊΡΠ°Π½.
ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠΈΡΠΊΠ°
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ SearchResults.js ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΡ Π²Π΅ΡΠ½ΠΎ, ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ require, Π²ΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ react-native ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΡΡΡΠ΅Π΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅.
ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ:
ΠΠΎΠ΄ Π²ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ β ListView, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΄ΠΎΠ², ΠΏΠΎΡΡΠΈ ΠΊΠ°ΠΊ Π² UITableView. ΠΠ°Π½Π½ΡΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ListView ΡΠ΅ΡΠ΅Π· ListView.DataSource ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ UI Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ΄Π°.
Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ , Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΡ ΠΏΠ°ΡΡ ΡΡΠ΄ΠΎΠ². ListView Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ Π²ΡΡΠ²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π΄Π°Π½Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Nestoria API Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ guid, ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π½Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π° ΡΠΊΡΠΏΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ:
Π ΡΡΡ ΡΡΡΠΎΠΊΡ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π° SearchPage.js, Π½ΠΈΠΆΠ΅ Π²ΡΠ·ΠΎΠ²Π° require Π΄Π»Ρ React:
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ SearchResults ΠΈΠ·Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° SearchPage:
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ _handleResponse, Π·Π°ΠΌΠ΅Π½ΠΈΠ² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ console.log Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ SearchResults ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ ΠΈΠ· API-Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ push-ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΡΠ΅ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ², Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΠ΅Π³ΠΎ Ρ Π²Π°Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° βBackβ, ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡ, Π½Π°ΠΆΠΌΠΈΡΠ΅ Cmd+R ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠΈΡΠΊ. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ. ΠΡΠ°Π²Π΄Π°, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΠ½ ΠΏΠΎΠΊΠ° ΡΠΊΡΡΠ½ΠΎΠ²Π°ΡΠΎ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΈΠΌ Π΅Π³ΠΎ.
ΠΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΊΠΎΠ΄ React Native Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°ΡΡ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ Π²Π°ΠΌ Π²ΠΈΠ΄, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΠΈΠΌ ΡΠ΅ΠΌΠΏ ΡΠ°Π±ΠΎΡΡ.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΠ»Ρ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ SearchResults.js:
ΠΠ΄Π΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π²ΡΠ΅ ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ΄Π° Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΌΠ΅Π½ΠΈΠΌ renderRow() ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅Π½, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ β300,000 GBPβ ΠΈ ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΎΡΡΡΠ΄Π° GBP. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (Image) Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΈΠ· Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ URL (rowData.img_url), ΠΊΠΎΡΠΎΡΡΠΉ React Native Π±Π΅ΡΠ΅Ρ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΡΠ΄.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ΅Π»ΠΎΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π΅ onPress ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° TouchableHighlight. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°Ρ Π²Π°ΡΡΠ²Π°Π΅ΡΡΡ guid Π΄Π»Ρ ΡΡΠ΄Π°.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π³ β Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π² ΠΊΠ»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Π½Π° ΡΠΊΡΠ°Π½:
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ Π±ΡΠ» Π²ΡΠ±ΡΠ°Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΡΠ°Π²Π΄Π°, ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ½ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ ΠΌΡ ΡΡΠΎ ΡΠΊΠΎΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΠΌ. Π ΠΏΠΎΠΊΠ° Π»ΡΠ±ΡΠΉΡΠ΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡ ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Cmd+R, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ:
ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎβ¦ Π΅ΡΠ»ΠΈ Π·Π°ΠΊΡΡΡΡ Π³Π»Π°Π·Π° Π½Π° ΡΠ΅Π½Ρ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ PropertyView.js ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΡΠ΄Π° ΡΡΠΎΡ ΠΊΠΎΠ΄:
Π£Π²Π΅ΡΠ΅Π½, Π²Ρ ΡΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π½Π°Π±ΡΠ°ΡΡ Π΅Π³ΠΎ Π΄Π°ΠΆΠ΅ Ρ Π·Π°ΠΊΡΡΡΡΠΌΠΈ Π³Π»Π°Π·Π°ΠΌΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠΈΠ»ΠΈ:
Π§Π°ΡΡΠΎ ΡΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎ API Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈ Ρ ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ. ΠΠΎΡΠΎΠΌΡ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ render() ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°.
ΠΡΡΠ°Π»ΡΠ½Π°Ρ Π΅Π³ΠΎ ΡΠ°ΡΡΡ Π²Π΅ΡΡΠΌΠ° ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°: ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠΊΡΠΏΠΎΡΡ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π°:
ΠΠ΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ SearchResults.js ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ require Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ°ΠΉΠ»Π°, ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠΎΠΊΠΈ React require:
ΠΠ°ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ rowPressed(), ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ PropertyView:
ΠΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π²Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌ: ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Cmd+R. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠΈΡΠΊ, Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΏΡΠΎΡΠΌΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π΅ΠΌ:
ΠΡ , Π²ΠΎΡ ΡΡΠΎ Ρ Π½Π°Π·ΡΠ²Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΠΆΠΈΠ»ΡΠ΅ΠΌ!
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΈ Π³ΠΎΡΠΎΠ²ΠΎ, ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠΏΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ Π³Π΅ΠΎΠ»ΠΎΠΊΠ°ΡΠΈΠΈ.
Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΊΡΠΎΠΉΡΠ΅ Π² Xcode ΡΠ°ΠΉΠ» Info.plist ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π°ΠΏΡΠΎΡΠΈΠ² NSLocationWhenInUseUsageDescription ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
ΠΠΎΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²Π°Ρ plist-ΡΠ°ΠΉΠ» ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
ΠΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΈΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΊΡΠΎΠΉΡΠ΅ SearchPage.js, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ TouchableHighlight, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ΅ΠΌΡ Π·Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ βLocationβ, ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
ΠΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ onLocationPressed (ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ).
ΠΡΡΠ°Π²ΡΡΠ΅ Π²Π½ΡΡΡΡ ΠΊΠ»Π°ΡΡΠ° SearchPage ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
ΠΠ°Π½Π½ΡΠ΅ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±Π΅ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ navigator.geolocation. ΠΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Web API, ΠΏΠΎΡΠΎΠΌΡ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠ½ΡΡΠ΅Π½ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ, ΠΊΡΠΎ ΠΈΠΌΠ΅Π» Π΄Π΅Π»ΠΎ Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π³Π΅ΠΎΠ»ΠΎΠΊΠ°ΡΠΈΠΈ. React Native ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ API, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° iOS.
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π° ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠ΅Π»ΠΎΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ½Π° ΠΎΡΠΏΡΠ°Π²ΠΈΡ Π·Π°ΠΏΡΠΎΡ Π² Nestoria. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ Π½Π΅ ΡΠ°ΠΊ, ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ plist, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ° ΡΡΠΎΡ ΡΠ°Π·, ΡΠ²Ρ, Π±Π΅Π· Cmd+R. ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Xcode ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΅Π³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΡ. ΠΠ°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Location, ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΎΡ Π ΡΡ: ΠΠΎΠΈΡΠΊ ΠΏΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π±ΠΎΡΠ°Π» Π½Π΅ Ρ Π²ΡΠ΅Ρ . ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»Π° ΠΎΡΠΈΠ±ΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ°, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ. ΠΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ React Native. ΠΡΠ»ΠΈ ΠΊΠΎΠΌΡ-Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»ΠΎΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π½Π°ΠΌ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ Π½Π΅ ΠΠΎΠ½Π΄ΠΎΠ½, Π½ΠΎ ΡΠ΅Π½Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΈΡΡΠ½Π΅Π΅.
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΡ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° React Native. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΡΠ΅Π±Π΅ Π²Π΅ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠΎΠΉ ΠΊΠΎΠ΄.
ΠΡΠ»ΠΈ Π²Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ Π²Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΡΡΡΠ΄Π° ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ JavaScript ΠΈ React. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°Π΄Π΅ΡΡΡ, Π²Ρ ΠΎΡΠ΅Π½ΠΈΠ»ΠΈ ΠΏΠΎ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° React Native, ΠΊΠ°ΠΊ Π±ΡΡΡΡΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ JavaScript ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ Π² Π΄ΡΡ Π΅ CSS.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° ΡΡΠΎΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅? Π ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π²Ρ Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ Swift ΠΈΠ»ΠΈ Objective-C? Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅, Π½Π°Π΄Π΅ΡΡΡ, Π²Π°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π½ΠΎΠ²ΠΎΠ΅ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π΄Π»Ρ Π±ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΡΠ»ΠΈ ΠΆΠ΅ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ°, ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ.


















