Статьи

Простая публикация приложений с React Native и Siphon

Siphon — это среда песочницы, которая позволяет создавать приложения React Native без необходимости установки Xcode или Android Studio. Сифон позволяет публиковать и публиковать мгновенные обновления для производственных приложений.

Сифон предоставляет инструмент командной строки, который облегчает создание и тестирование приложений с помощью нескольких команд.

В этом уроке я покажу, как использовать Siphon для создания собственных мобильных приложений. Я создам и протестирую приложение, используя среду песочницы Siphon.

Исходный код из этого урока доступен на GitHub .

Начиная

Чтобы начать работу с Siphon, загрузите инструмент командной строки Siphon.

curl https://getsiphon.com/install.sh | sh 

Установите приложение песочницы Siphon на свой тестовый телефон, открыв https://getsiphon.com/a на устройстве Android или https://getsiphon.com/i на устройстве iOS.

После установки зарегистрируйтесь для бесплатной учетной записи и войдите.

Создание интерфейса приложения Siphon

Используйте команду siphon для создания структуры мобильного приложения.

 siphon create SiphonFireBaseApp 

Это запросит учетные данные вашей учетной записи на Сифон, введите их для создания структуры приложения. Откройте песочницу SiphonFirebaseApp со своего телефона, чтобы увидеть приложение SiphonFirebaseApp .

Главный экран сифона по умолчанию

Откройте каталог проекта, чтобы увидеть структуру приложения. Внутри находится файл index.js, который содержит код реакции для мобильного приложения.

Удалите весь код из index.js, так как вы создадите собственный интерфейс приложения с нуля.

Вы создадите простой экран входа в систему с двумя текстовыми полями для ввода адреса электронной почты, пароля и кнопки входа. Для создания кнопок и ввода текста вам нужно будет среагировать, так что начните с использования react-native .

 var React = require('react-native'); 

Определите поля ввода текста и кнопки:

 var { AppRegistry, View, Text, TextInput } = React; 

AppRegistry требуется для регистрации компонента. В приложении используется встроенная библиотека кнопок реагирования , поэтому установите ее, используя npm. Инициализируйте приложение, используя npm.

 npm init 

При появлении запроса введите данные, и вы должны иметь файл package.json в папке приложения. Установите кнопку реагирования, используя npm.

 npm install react-native-button --save 

Опция --save сохраняет зависимую кнопку собственных реакций в файле package.json . Инициализируйте собственную кнопку реагирования в index.js .

 var Button = require('./node_modules/react-native-button'); 

Определите класс реакции с именем SiphonApp в index.js .

 var SiphonApp = React.createClass({ // code will be here !! }); 

Добавьте функцию рендеринга, чтобы отобразить представление в SiphonApp.

 var SiphonApp = React.createClass({ render: function() { return( <View> <Text> Siphon App Home </Text> </View> ) } }); 

Зарегистрируйте класс AppRegistry с помощью AppRegistry .

 AppRegistry.registerComponent('App', () => SiphonApp); 

Нажмите на изменения, используя инструмент командной строки сифона.

 siphon push 

Обновите приложение в Siphon SDK на телефоне, чтобы просмотреть мобильное приложение.

Экран приветствия приложения Siphon

Добавьте заголовок в SiphonApp рендеринга SiphonApp чтобы отобразить его в верхней части приложения, заменив текущий элемент Text .

 <Text style={{ padding: 5, margin: 10, marginTop: 50, fontSize : 25, color : 'rgb(0,0,255)', textAlign: "center" }}> Siphon Firebase App </Text> 

Добавьте два текстовых представления в SiphonApp рендеринга SiphonApp чтобы отобразить текстовые поля для имени пользователя и пароля.

 <TextInput style={{ height: 40, borderColor: 'gray', padding: 5, margin: 10, marginTop: 20, borderWidth: 1}} placeholder="UserName" /> <TextInput secureTextEntry={true} style={{ height: 40, borderColor: 'gray', padding: 5, margin: 10, borderWidth: 1}} placeholder="Password" /> 

Добавьте кнопку для входа пользователя в приложение.

 <Button style={{ fontSize: 20, height: 40, padding: 5, margin: 10, backgroundColor: 'black', color: 'green' }} styleDisabled={{color: 'red'}}> Sign In </Button> 

Вот полный класс SiphonApp :

 var SiphonApp = React.createClass({ render: function() { return( <View> <Text style={{ padding: 5, margin: 10, marginTop: 50, fontSize : 25, color : 'rgb(0,0,255)', textAlign: "center" }}> Siphon Firebase App </Text> <TextInput style={{ height: 40, borderColor: 'gray', padding: 5, margin: 10, marginTop: 20, borderWidth: 1}} placeholder="UserName" /> <TextInput secureTextEntry={true} style={{ height: 40, borderColor: 'gray', padding: 5, margin: 10, borderWidth: 1}} placeholder="Password" /> <Button style={{ fontSize: 20, height: 40, padding: 5, margin: 10, backgroundColor: 'black', color: 'green'}} styleDisabled={{color: 'red'}}> Sign In </Button> </View> ); } }); 

Сохраните изменения и нажмите их с помощью инструмента командной строки сифона. Откройте приложение из Siphon SDK для просмотра экрана входа в систему.

Экран входа в приложение Siphon Firebase

Привязка событий к входу в триггер

Добавьте событие onChange к текстовым onChange имени пользователя и пароля, чтобы связать текст с переменной:

 ... onChangeText={(text) => this.setState({username: text})} ... onChangeText={(text) => this.setState({password: text})} ... 

На кнопке входа добавьте событие onPress для обработки нажатий кнопки.

 onPress={this._handlePress} 

В классе реакции SiphonApp определите функцию _handlePress запускаемую событием onPress :

 _handlePress:function(event){ var username=this.state.username; var password=this.state.password; console.log('Username is ',username); console.log('Password is ',password); }, 

Вот модифицированный класс реагирования SiphonApp:

 var SiphonApp = React.createClass({ _handlePress:function(event){ var username=this.state.username; var password=this.state.password; console.log('Username is ',username); console.log('Password is ',password); }, render: function() { return( <View> <Text style={{ padding: 5, margin: 10, marginTop: 50, fontSize : 25, color : 'rgb(0,0,255)', textAlign: "center" }}> Siphon Firebase App </Text> <TextInput onChangeText={(text) => this.setState({username: text})} style={{ height: 40, borderColor: 'gray', padding: 5, margin: 10, marginTop: 20, borderWidth: 1}} placeholder="UserName" /> <TextInput onChangeText={(text) => this.setState({password: text})} secureTextEntry={true} style={{ height: 40, borderColor: 'gray', padding: 5, margin: 10, borderWidth: 1}} placeholder="Password" /> <Button onPress={this._handlePress} style={{ fontSize: 20, height: 40, padding: 5, margin: 10, backgroundColor: 'black', color: 'green'}} styleDisabled={{color: 'red'}}> Sign In </Button> </View> ); } }); 

Сохраните изменения и нажмите их:

 siphon push 

Сифон предоставляет команду для мониторинга журналов, когда приложение работает. В каталоге проекта введите следующую команду для мониторинга журналов:

 siphon logs 

Введите имя пользователя и пароль и нажмите кнопку входа, чтобы увидеть полученные журналы в окне терминала.

Использование Firebase для аутентификации имени пользователя и Amp; пароль

Далее вы добавите функциональность для аутентификации имени пользователя и пароля, введенных для базы данных Firebase. Чтобы начать работу с Firebase , создайте учетную запись и войдите в Firebase. Нажмите на вкладку « Вход и авторизация » в левом меню, а на вкладке « Электронная почта и пароль » нажмите, чтобы включить регистрацию по электронной почте и паролю.

Если вы прокрутите страницу вниз, вы увидите опцию добавления пользователей в список. Нажмите кнопку « Добавить пользователя» , введите адрес электронной почты и пароль и нажмите « Добавить» . Этот пользователь будет аутентифицировать мобильное приложение. Обратите внимание на уникальный URL-адрес Firebase из браузера, в моем случае это https://burning-fire-1723.firebaseio.com

Затем установите клиент Firebase внутри мобильного приложения для вызова API.

 npm install firebase --save 

Требовать библиотеку firebase в файле index.js .

 var Firebase = require('firebase'); 

Внутри функции _handlePress замените код ссылкой на Firebase URL, например:

 var ref = new Firebase("https://burning-fire-1723.firebaseio.com"); 

Использование API-интерфейса authWithPassword для аутентификации имени пользователя и пароля в Firebase.

 ref.authWithPassword({ email: username, password: password }, function(error, authData) { if (error) { console.log("Login Failed!", error); } else { console.log("Authenticated successfully"); } }); 

Как только имя пользователя и пароль аутентифицированы, вышеприведенный код регистрирует сообщение Authenticated successfully или сообщение об ошибке. Сохраните изменения и нажмите их с помощью siphon push .

Попробуйте войти в приложение, используя адрес электронной почты и пароль, добавленные ранее, и вы должны получить сообщение об успехе в консоли журнала терминала.

Что дальше? Как использовать в производстве?

Когда приложение будет завершено, вы можете создать готовое к использованию приложение, используя следующую команду для выбранной вами платформы:

 siphon publish --platform ios siphon publish --platform android 

Эта команда предложит вам ввести некоторую информацию о вашем приложении, а затем Siphon создаст, упакует и отправит приложение в магазины от вашего имени.

Публикация с использованием Siphon требует платной подписки. Более подробную информацию о публикации с использованием Сифона читайте в официальной документации

Завершение

Из этого руководства вы узнали, как Siphon помогает создавать собственное приложение с реагированием без установки Android Studio или Xcode. Одним из преимуществ использования Siphon является возможность загружать обновления в ваше приложение без необходимости каждый раз выпускать новую версию магазина приложений.

Вы бы использовали сифон? Любые комментарии и вопросы, пожалуйста, дайте мне знать ниже .