ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

📱Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Android Π½Π° JavaScript с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Apache Cordova

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

РаспространСниС ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств Π² нашС врСмя достигло нСвСроятных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ Π΅ΡΡ‚ΡŒ Ρƒ 2 ΠΈΠ· ΠΊΠ°ΠΆΠ΄Ρ‹Ρ… 3 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π½Π° ΠΏΠ»Π°Π½Π΅Ρ‚Π΅. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… люди ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ, Π΄Π΅Π»Π°ΡŽΡ‚ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ³Ρ€Π°ΡŽΡ‚. Π­Ρ‚ΠΎ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Ρ€Ρ‹Π½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нСльзя ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π±Π΅Π· внимания.

Однако Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Π½ΡƒΠΆΠ½ΠΎ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ языком программирования. Swift – для iOS, Java ΠΈΠ»ΠΈ Kotlin – для Android. Или JavaScript – для iOS, Android ΠΈ ряда Π΄Ρ€ΡƒΠ³ΠΈΡ… ОБ!

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Π”Π°-Π΄Π°, 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 Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Android Studio

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Android Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Android Studio.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ tools ΠΈ platform-tools :

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Π—Π°Ρ‚Π΅ΠΌ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ установлСн ΠΏΠ°ΠΊΠ΅Ρ‚ Android SDK Build-Tools (Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ SDK Tools).

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ эмулятора

НаконСц, создадим эмулятор, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Для этого Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² мСню AVD Manager:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

И создайтС эмулятор с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Cordova

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ глобально ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ npm-ΠΏΠ°ΠΊΠ΅Ρ‚ Cordova:

Π¨Π°Π³ #1. ΠŸΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π²Π΅Π±-страницы Π² Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Ρ‹, ΠΏΠΎΡ€Π° ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ самому интСрСсному.

ВСроятно, самый интСрСсный вопрос – ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Π²Π΅Π±-страницу Π½Π° устройствС Android. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° Π½Π΅Π³ΠΎ, создадим пустой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Cordova ΠΈ разбСрСмся Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ пустого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Команда для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Cordova:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

deviceready – это событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сама Cordova. НСтрудно Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ устройство, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΎ Π΅Π³ΠΎ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ запустили ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΎΠ±Ρ…ΠΎΠ΄ Cordova, это событиС Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, поэтому надпись Connecting to device Π½Π΅ исчСзаСт.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

Π£ΠΊΠ°ΠΆΠ΅ΠΌ Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° – Ρƒ нас это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Android:

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Команда для сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для Android-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π° смартфон, запуститС – ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Ρƒ ΡΠ°ΠΌΡƒΡŽ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΡƒΡŽ Π²Π΅Π±-страницу. ВсС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Запуск Π½Π° эмуляторС ΠΈΠ»ΠΈ устройствС

НСт нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ apk Π½Π° устройство ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ прилоТСния.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° смартфонС, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ, Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈ запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠšΠΎΡ€Π΄ΠΎΠ²Π° сама собСрСт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ устройство ΠΈ запустит ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

МоТно ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΈ Π±Π΅Π· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ устройства.

ЗапуститС созданный Ρ€Π°Π½Π΅Π΅ эмулятор Π² Android Studio:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

ΠΈ снова Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

На этот Ρ€Π°Π· ΠΊΠΎΡ€Π΄ΠΎΠ²Π° Π½Π°ΠΉΠ΄Π΅Ρ‚ эмулятор ΠΈ запустит ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° Π½Π΅ΠΌ:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΡƒΠΌΠ΅Π΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Π²Π΅Π±-страницу ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Android-устройствС.

#Π¨Π°Π³ 2. TODO-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΡƒΡŽ страницу Cordova Π½Π° собствСнноС ΠΊΡ€ΡƒΡ‚ΠΎΠ΅ Todo-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² эмуляторС ΠΈΠ»ΠΈ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ устройствС ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

ΠžΡ‚Π»Π°Π΄ΠΊΠ°

Π—Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ΅ Π½Π° эмуляторС ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ устройствС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Cordova ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Chrome.

Для этого ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ адрСсу: chrome://inspect/#devices, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ устройство Π² спискС ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Inspect.

Π¨Π°Π³ #3. ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

Π”ΠΎ сих ΠΏΠΎΡ€ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ использовало Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π΅Π±-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Однако Cordova прСдоставляСт доступ ΠΈ ΠΊ возмоТностям мобильного устройства – Ρ‡Π΅Ρ€Π΅Π· многочислСнныС ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹.

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° ΠΈ оповСщСния.

Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΊΠΎΠ΄Π΅ прилоТСния Π½Π°ΠΌ доступ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ navigator.notification с Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ:

Нам Π½ΡƒΠΆΠ΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ confirm :

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Напоминания ΠΎ Π΄Π΅Π»Π°Ρ…

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΎΡ‡Π΅Π½ΡŒ полСзная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ – Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΎ Π΄Π΅Π»Π°Ρ… Π² установлСнноС врСмя.

Для Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΄Π°Ρ‚Ρƒ ΠΈ врСмя – Π½Π°ΠΌ понадобится ΠΏΠ»Π°Π³ΠΈΠ½ skwas-cordova-plugin-datetimepicker.

ИспользованиС в кодС:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

А для планирования ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ понадобится ΠΏΠ»Π°Π³ΠΈΠ½ cordova-plugin-local-notification.

ИспользованиС Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² 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, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для построСния Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 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. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Если Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΏΡ€Π΅ΠΆΠ΄Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с 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, Π½ΠΎ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… здСсь.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, сдСлайтС Π΅Π³ΠΎ сборку ΠΈ запуститС. Бимулятор ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡƒΡ€ΠΎΠΊΠ° Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, созданный 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. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Π­Ρ‚ΠΎ JavaScript-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ Π½Π° симуляторС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ UI – ΠΈ это Π±Π΅Π· ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

Всё Π΅Ρ‰Π΅ Π½Π΅ Π²Π΅Ρ€ΠΈΡ‚Π΅? Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ сами: Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² Xcode Debug\View Debugging\Capture View Hierarchy ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ прСдставлСний. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ²ΡΡŽΠ΄Ρƒ сущности UIWebView. ВСст прилоТСния отобраТаСтся Π² RCTText. Но Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅? Π’Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ Π² Xcode, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ File\Open Quickly… ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ RCTView.h. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ RCTView наслСдуСт нСпосрСдствСнно ΠΎΡ‚ UIView. Π’Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚, всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚? ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π² 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, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ сообщСниС Π½Π° экранС:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 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, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ интСрфСйс:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

ΠšΠΎΡ€Π½Π΅Π²ΠΎΠ΅ прСдставлСниС Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° соотвСтствуСт тСксту 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, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ интСрфСйс:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Π—Π΄Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ SearchPage.

Π‘Ρ‚ΠΈΠ»ΠΈΠ·ΡƒΠ΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Flexbox

Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ свойствами CSS, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ†Π²Π΅Ρ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… отступов. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, вСроятно, Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎ flexbox. Π­Ρ‚Π° тСхнология лишь Π½Π΅Π΄Π°Π²Π½ΠΎ Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ CSS, ΠΎΠ½Π° ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡ€ΠΈ построСнии ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов.

React Native ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ css-layout, которая являСтся JavaScript-Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ flexbox-стандарта, скомпилированного Π½Π° C (для iOS) ΠΈ Π½Π° Java (для Android).
ΠžΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ρ‡Ρ‚ΠΎ React Native создавался ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° нСсколько языков программирования, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это позволяСт Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния с использованиСм Π½ΠΎΠ²Π΅ΠΉΡˆΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², Π²Ρ€ΠΎΠ΄Π΅ примСнСния flexbox-ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΊ SVG.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ столбца, Ρ‡Ρ‚ΠΎ соотвСтствуСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ column – Π° Π·Π½Π°Ρ‡ΠΈΡ‚, всё содСрТимоС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Π­Ρ‚ΠΎ Ρ‚Π°ΠΊ называСмая главная ось, ΠΈΠ»ΠΈ main axis, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅, Ρ‚Π°ΠΊ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ элСмСнта ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° высчитываСтся с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π΅Π³ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… отступов, Π° Ρ‚Π°ΠΊΠΆΠ΅ высоты. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π΅Ρ‚ свойству alignItems Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ center, Ρ‡Ρ‚ΠΎ опрСдСляСт ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… элСмСнтов Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ оси. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ тСкст с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» SearchPage.js ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ сразу послС Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π΅Π³Π° Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта Text:

ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄Π²Π° прСдставлСния Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ уровня: Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… находится тСкстовоС ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°, Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ – Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°. БСйчас Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти элСмСнты

Π’Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ стилСй, ΠΏΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π·Π°ΠΏΡΡ‚ΡƒΡŽ послС Π±Π»ΠΎΠΊΠ° container ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΈΠΆΠ΅ Π½ΠΎΠ²Ρ‹Π΅ стили:

Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ: ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ свойство стиля ΠΈΠ»ΠΈ сСлСктор слСдуСт ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒ запятой.

Π­Ρ‚ΠΈ стили ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… поля Π²Π²ΠΎΠ΄Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ измСнСния, Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ Π² симулятор ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Cmd+R, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ интСрфСйс:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

ВСкстовоС ΠΏΠΎΠ»Π΅ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° β€˜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, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ интСрфСйс:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Если ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Π΄ΠΎΠΌΠΎΠΌ Π½Π΅ отобраТаСтся, Π° вмСсто Π½Π΅Π³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 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 Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ выраТСния:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Если Π²Ρ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ посмотритС Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ Π²Ρ‹ΡˆΠ΅, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ порядок записи Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½:

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:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

На экранС ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ активности, Π° Π² Π»ΠΎΠ³Π΅ появляСтся 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’. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

ВрСмя ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° поиска Π½Π° экран.

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ поиска

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ 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 ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² нСдвиТимости:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

НаконСц-Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ настоящий список. ΠŸΡ€Π°Π²Π΄Π°, выглядит ΠΎΠ½ ΠΏΠΎΠΊΠ° скучновато. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΈΠΌ Π΅Π³ΠΎ.

ΠŸΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎ ΠΊΠΎΠ΄ React Native Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ Π²Π°ΠΌ Π²ΠΈΠ΄, поэтому ΠΌΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ускорим Ρ‚Π΅ΠΌΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ стиля сразу послС Π΄Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ присваивания Π² Ρ„Π°ΠΉΠ»Π΅ SearchResults.js:

Π—Π΄Π΅ΡΡŒ содСрТатся всС стили для отобраТСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ряда Π΄Π°Π½Π½Ρ‹Ρ….

Π—Π°ΠΌΠ΅Π½ΠΈΠΌ renderRow() ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Ρ†Π΅Π½, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ β€˜300,000 GBP’ ΠΈ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΡ‚Ρ‚ΡƒΠ΄Π° GBP. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ строку интСрфСйса, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹, скорСС всСго, ΡƒΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (Image) загруТаСтся ΠΈΠ· Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½ΠΎΠ³ΠΎ URL (rowData.img_url), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ React Native Π±Π΅Ρ€Π΅Ρ‚ ΠΈΠ· основного ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΈ добавляСтся Π² ряд.

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° использованиС стрСлочной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² свойствС onPress ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TouchableHighlight. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ захватываСтся guid для ряда.

ПослСдний шаг – Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² класс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ Π½Π° экран:

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ опрСдСляСт, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ нСдвиТимости Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠŸΡ€Π°Π²Π΄Π°, сСйчас ΠΎΠ½ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ ΠΌΡ‹ это скоро исправим. А ΠΏΠΎΠΊΠ° Π»ΡŽΠ±ΡƒΠΉΡ‚Π΅ΡΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ измСнСния, Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ Π² симулятор ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Cmd+R, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ список:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Выглядит отлично… Ссли Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π³Π»Π°Π·Π° Π½Π° Ρ†Π΅Π½Ρ‹.

НаконСц, ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ послСднюю страницу.

ДобавляСм страницу просмотра ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ нСдвиТимости

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ PropertyView.js ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‚ΡƒΠ΄Π° этот ΠΊΠΎΠ΄:

Π£Π²Π΅Ρ€Π΅Π½, Π²Ρ‹ ΡƒΠΆΠ΅ способны Π½Π°Π±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π΄Π°ΠΆΠ΅ с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ Π³Π»Π°Π·Π°ΠΌΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ стили:

Часто случаСтся Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ API Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ качСства ΠΈ с ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ полями. ΠŸΠΎΡ‚ΠΎΠΌΡƒ пСрвая Ρ‡Π°ΡΡ‚ΡŒ render() ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… для частичного ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈΡ… качСства.

ΠžΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Π΅Π³ΠΎ Ρ‡Π°ΡΡ‚ΡŒ вСсьма ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°: это функция нСизмСняСмого состояния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ экспорт Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°:

Π’Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ ΠΊ SearchResults.js ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ require Π² Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π°, сразу послС строки React require:

Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ rowPressed(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ PropertyView:

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ дСйствий Π²Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌ: сохраняСм, возвращаСмся Π² симулятор ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Cmd+R. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ просмотру ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π½Π΅ΠΌ:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Π­Ρ…, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ я Π½Π°Π·Ρ‹Π²Π°ΡŽ доступным ТильСм!

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎ, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ поиска ΠΏΠΎ Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΈ.

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ поиск ΠΏΠΎ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π² Xcode Ρ„Π°ΠΉΠ» Info.plist ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² NSLocationWhenInUseUsageDescription ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ваш plist-Ρ„Π°ΠΉΠ» послС добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ значСния:

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

Π­Ρ‚ΠΎ информация, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡ… мСстополоТСниС.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ SearchPage.js, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ TouchableHighlight, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΌΡƒ Π·Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ β€˜Location’, ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

По Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ onLocationPressed (ΠΌΡ‹ сСйчас Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ).

Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π²Π½ΡƒΡ‚Ρ€ΡŒ класса SearchPage ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Π”Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ мСстополоТСнии бСрутся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ navigator.geolocation. Π­Ρ‚ΠΎ интСрфСйс Web API, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ понятСн ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ, ΠΊΡ‚ΠΎ ΠΈΠΌΠ΅Π» Π΄Π΅Π»ΠΎ с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΌΠΈ сСрвисами опрСдСлСния Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΈ. React Native прСдоставляСт ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ API, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ срСдства iOS.

Π’ случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ опрСдСлСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ мСстополоТСния Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° пСрвая стрСлочная функция. Она ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ запрос Π² Nestoria. Если ΠΆΠ΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ, отобразится стандартноС сообщСниС.

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ plist, потрСбуСтся ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ измСнСния. На этот Ρ€Π°Π·, ΡƒΠ²Ρ‹, Π±Π΅Π· Cmd+R. ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Xcode ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΡƒΡŽ сборку. Π—Π°Ρ‚Π΅ΠΌ запуститС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Location, Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ мСстополоТСниС ΠΈ смотритС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° javascript

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΎΡ‚ Рэя: Поиск ΠΏΠΎ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ сработал Π½Π΅ Ρƒ всСх. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»Π° ошибка доступа, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ мСстополоТСния Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ. ΠœΡ‹ ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ с этой ситуациСй. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° самого React Native. Если ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ, поТалуйста, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½Π°ΠΌ.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это Π½Π΅ Π›ΠΎΠ½Π΄ΠΎΠ½, Π½ΠΎ Ρ†Π΅Π½Ρ‹ Π³ΠΎΡ€Π°Π·Π΄ΠΎ приятнСС.

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ с созданиСм вашСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ прилоТСния Π½Π° React Native. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ сСбС вСсь ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠΎΠΉ ΠΊΠΎΠ΄.

Если Π²Ρ‹ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ понятнСС, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ интСрфСйс ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ JavaScript ΠΈ React. Если Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, надСюсь, Π²Ρ‹ ΠΎΡ†Π΅Π½ΠΈΠ»ΠΈ ΠΏΠΎ достоинству Ρ‚Π°ΠΊΠΈΠ΅ прСимущСства React Native, ΠΊΠ°ΠΊ быстроС взаимодСйствиС с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, соврСмСнный JavaScript ΠΈ понятныС ΠΏΡ€Π°Π²ΠΈΠ»Π° стилизации Π² Π΄ΡƒΡ…Π΅ CSS.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, вашС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ написано Π½Π° этом Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅? А ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π²Ρ‹ всё Ρ€Π°Π²Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со Swift ΠΈΠ»ΠΈ Objective-C? Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅, надСюсь, Π²Π°ΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Если ΠΆΠ΅ Ρƒ вас Π΅ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠΊΠ°, ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *