Автор оригинала: Vijay Thirugnanam.
I. Введение в реагировать родным
React Native – это рамки для строительства мобильных приложений, использующих React и JavaScript. Он имеет поддержку для создания мобильных приложений для iOS и Android платформ. Рамка открыта с помощью Facebook в марте 2015 года и построена на предпосылке: Узнайте один раз, напишите где-нибудь Отказ
Использование RECT для UI, мы можем построить как веб, так и мобильные приложения – с реактивным нацеленным, используемым для последнего, поскольку он имеет набор компонентов реагирования для iOS и Android платформ. Компоненты реагирования, доступные с реактивным средством, переведены на родные компоненты, которые обеспечивают лучший пользовательский опыт, который соответствует мобильной платформе.
Это Facebook Post Объясняет, почему «нужен« родной ».
II. Построить приложение
В этом руководстве будет расширение And Android-платформу Android-платформу Android. Приложение Todo Super-Simple. У него есть две вкладки, и первая вкладка имеет список Todo.
Когда товар TODO сделан, нажмите кнопку «Готово». Это удалит элемент TODO из списка. Вторая вкладка имеет Добавить Todo
форма.
Исходный код для приложения iOS можно найти в этом Проект GitHub Отказ И в этом руководстве мы подведем приложение для платформы Android.
А. Начало работы с Android в реакции
Есть Начало работы Руководство для настройки REACT RUBION для разработки приложения Android. Точные шаги варьируются на основе разработки OS -Mac, Linux или Windows. На высоком уровне настройка React Rearne для Android включает в себя:
- Установка узла.
- Установка Android Studio.
- Установка
Android_home
дорожка. - Создание нового AVD (виртуальное устройство Android или эмулятор )
Любой новый активный проект Android Android.
Android
Папка имеет приложение
Папка, которая имеет исходный код для приложения и Грейл
Папка, которая имеет соответствующие настройки сборки.
Точка входа для реакции нативное приложение IS index.android.js
Отказ При запуске NATION NATY APP APP, компонент Todo внутри index.android.js
оказывается.
B. Использование эквивалентных компонентов Android
Приложение iOS используется Tabbarios
Компонент для отображения вкладок. Для андроида Tabbarios
Компонент должен быть заменен Toolbarandroid
составная часть. Способ рендера index.android
Компонент показан ниже.
render() { return (); } { this.pager = c; }} style={styles.viewPager} initialPage={0} >
Две виды – Добавить
и Список
– встроены в ViewPagerandroid
составная часть. Компонент списка списки всех элементов Todo. Компонент Добавить добавляет новый товар Todo. Toolbarandroid
имеет Онакварный
Событие, которое должно быть обработано для переключения на новый вид.
handleActionSelected(position) { this.setState({ actionText: actions[position].title, }); this.pager.setPage(position); }
Причина, по которой мы переехали Tabbarios
к Toolbarandroid
Из-за родного опыта мы получаем. Следующее видео подчеркивает нативный опыт, когда мы выбираем действия панели инструментов.
Реагируйте нативные компоненты визуализации как родные компоненты в каждой платформе. Компоненты суффиксированы IOS
доступны только для платформы iOS. Компоненты суффиксированы Android
доступны только на платформе Android. Для отображения прогресса ProgressViewios
и ProgressBarandroid
являются эквивалентными реактивными нативными компонентами для каждой платформы.
C. Компоненты только для Android
Toastandroid
API доступен только для Android. Это отображает Тост
или сообщение, которое появляется на короткую продолжительность. Handleaddtodo
Метод добавляет элемент TODO в список Todo. После добавления элемента отображается тост сообщение, как так:
handleAddTodo(todo) { let { todos } = this.state; todos = todos.slice(); todos.push(todo); this.setState({ todos }); ToastAndroid.showWithGravity('Todo is added', ToastAndroid.LONG, ToastAndroid.TOP); }
Мы уже видели Toolbarandroid
и ViewPagerandroid
Компоненты, которые существуют только для платформы Android. DrawerlayoutAndroid является еще одним Android-ориентированным компонентом, который оборачивает Drawerlayout
Отказ Drawerlayout
Оказывает представление навигации, которое можно вытащить со стороны приложения.
D. Другие различия
Различия на платформе могут быть явно обрабатываются с помощью компонентов реагирования. Например, для TextInput
Компонент, мы не хотим показывать границу для платформы Android.
import { Platform, StyleSheet } from 'react-native'; const styles = StyleSheet.create({ input: { borderColor: '#ccc', borderWidth: (Platform.OS === 'ios') ? 1 : 0, borderRadius: 5, }, });
Реагируйте нативные компоненты настраиваются с использованием реквизитов, а некоторые реквизиты доступны только для платформы Android. Например, NumberofLines
и ReturnLabel
реквизит в TextInput
доступны только для платформы Android. KeyboardType
опоры в TextInput
также заслуживает упоминания. И не все типы клавиатуры доступны на обеих платформах. Только по умолчанию
, Числовое
, Адрес электронной почты
и Телефон
доступны кроссплатформенные.
III. Обертывание
Удлиняя IOS-только реагирующее нативное приложение на платформу Android, следует учитывать следующие пункты:
- Есть специфические компоненты платформы. Всякий раз, когда используется компонент только в iOS, следует использовать эквивалентный компонент только для Android-Android.
- Есть компоненты только для Android, которые следует использовать для улучшения родной опыт Отказ
- Большинство оригинальных компонентов реагирования являются кроссплатформенными, но в реквиртах доступны незначительные различия для каждой платформы.
Основная идея по сравнению с реагированием является обеспечение местного опыта для пользователя. Могут быть случаи, когда разработчики предпочитают использовать компоненты JavaScript, чтобы иметь одинаковый внешний вид на iOS и Android. Лучший подход – воспользоваться преимуществами специфических функций платформы, чтобы обеспечить лучший родной опыт. Родной опыт является предпочтительным над последовательным взглядом.
Есть сопроводительное Проект GitHub В этот учебник, который поможет вам узнать больше о реагированной местности. И для дальнейшего рассмотрения вы также можете прочитать это Учебное пособие на родном и ионном сравнении Отказ