Обновить

Комментарии 28

Не раскрыто с точки зрения Андроид-разработчика. Два (±) сравнения — мало.
Вот мне интересно, что можно использовать еще, кроме стандартных передачи-получения-обработки-показа данных. Те же нативные методы для работы с камерой, сетями, апи других процессов. Кое-что описано в доке, но хотелось бы узнать от тех, кто копнул глубже, как много ньюансов возникает в разработке полноценного приложения.
Копать глубже я буду и напишу еще статьи по этому поводу. Это же вводная статья для людей, которые хотели начать учить, но по каким-то причинам откладывали. Я объяснил самые азы, что бы люди уже самостоятельно смогли изучать. Лично для меня с первого подхода все этим props и state были не понятны.
Но, что бы понять, нужно ли тебе это и стоит ли учить, надо в целом понимать возможности приложения написанного на react. На основе вашей вводной статьи такого решения не принять. Следовательно, я скорее не буду больше тратить время как минимум на ваши статьи, а поищу более комплексный обзор + и -, который позволит мне сформировать примерную картину возможностей и определиться кидаться ли в этот омут или другой. Представляете, я вот ничего не знаю об этой теме и я не разработчик, честно сказать, но решил копнуть эту тему и сижу читаю вашу статью, прикидываю своё приложение, а потом в прекрасный момент пойму, что "***!" так я не смогу банально фотку получить с камеры ус-ва (например)!!! Ну и нафига я потратил столько времени? Тем более из вашей статьи можно сделать ошибочный вывод, что мы только и сможем, что гонять данные туда-сюда и всё.

Впрочем, это не умоляет того, что вы в принципе вложились в написание статьи. За это вам спасибо! А, всё, что выше небольшая критика от вашей ЦА, так сказать.
Интересный ракурс. Думаю стоит отметить, что запросы данных всё-таки нужно делать в сайд-эффектах, тут уже и про Redux нужно почитать.
Читаю про redux, но пока в своем тестовом проекте не знаю куда и зачем его прицепить. Потом, как закончу приложение, я сделаю еще 1 общий обзор с глубоким обзором react native, может быть и до redux доберусь. А если и не доберусь, то, надеюсь, люди подскажут где и зачем его использовать.
Если добавить ещё комментариев, которые по вашему мнению стоит знать реакт разработчикам, и которые скорее относятся к нативной части, то получится обзор на стыке технологий. Например рассказать про например папку android, что там за манифесты и вообще что можно там сделать из настроек нативного приложения. Я вот пока не понял как достучаться из реакта к ресурсам, положенным в android/app/src/main/assets/.
Хм, интересная идея, подумаю над этим. По поводу assets, я не понял, зачем это нужно, как я понял мы спокойно можем создать свою папку с картинками и прочим, импортировать их в js коде и оно будет работать что на андроид, что на iOS, разве не так?

Есть прекрасный видео-курс для быстрого погружения в Redux — тынц


И еще вот это руководство перечитывал не один раз.

React Native с колокольни Android-разработки

A на скриншотах iPhone :(


По сабжу, здесь JS интерпретируется или компилируется во что-то? И в какой момент времени это делается и как влияет на рантайм андроида?

Скриншоты я брал с оф. туториала react native, а там айфон(
По поводу работы: JS компилируется в obj-c для iOS и в java для андроида. С рантайм, естественно, страдает, смысл в том, что для андроида (iOS глубоко не изучал) есть 1 активити, которая и запускается при старте, и в эту активити потом отправляется скомпилированный JS код. Во всяком случае во время разработки (SDK я еще не собирал) происходил билд приложения, потом оно запускает эту активити, потом эта активити показывает процесс компиляции JS. Во время первого запуска рантайм увеличивается раза в 2. После, этот процесс намного быстрее. Как допишу приложение, расскажу как оно в готовом виде работает.
Ничего там не компилируется — делается нейтивный враппер, работающий с UI и в который парсится весь JSX / TSX / порезанный flexbox (основной поток), а весь пользовательский код логики гоняется как есть (в виде JS) в фоновом потоке. Основное преимущество над phonegap и прочими решениями, основанными на полноэкранном webview — интерфейс таки нейтивный, а js-логика работает без блокировки основного потока.
Отличная статья, спасибо!
Чтобы было удобно так же как в AndroidStudio — рекомендую посмотреть на WebStorm, попробовать можно бесплатно.
НЛО прилетело и опубликовало эту надпись здесь
Спасибо за объяснение работы state. Но, тогда у меня вопрос, как лучше сделать ту же страницу логина, если не записывать изменения в state?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Очень интересен взгляд с другой стороны. Используйте сразу React+Redux, да писать лишнего кода больше (WebStorm вам поможет) но потов это с лихвой компенсируется.

Лучше так не писать что бы потом не говорили что react тормоз
<View style={{alignItems: 'center'}}>

а так
const style = {
      alignItems: 'center',
    };
....
render() {
  return (
    <View style={style}>
....


Да, я так и делаю, то был пример с оф. туториала react native =) Да и в любом случае, style обычно так сильно разрастается, что в любом случае приходится выводить отдельную константу под это.

Маленькое замечание по коду — вы объявляете функции-обработчики событий прямо в props в функции рендеринга, так не рекомендуется делать (объяснение, почему именно, здесь: https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md ).

Спасибо, учту.

Ощущение такое, что пишет десятиклассник, а не "андроид разработчик с многолетним стажем". В вашем тексте много грамматических и синтаксических ошибок. Авторитетность такой статьи под большим вопросом

Прощу прощения. По большей части это опечатки, т.к. пишу по ходу мысли, я не из тех кто долго-долго думает над текстом и пишет 33 черновика. Я пишу на вдохновении, а потом перечитываю пару раз свой текст. Конечно, проверяю и спел чекером, но от слова в не правильной форме это не спасает, а внимательно вчитываться в каждую букву на 3-4 раз уже невозможно. Буду работать над языком.

Пишите ещё! Затронули интересную и нужную тему

А вот скажите, как в RN дела с:


  • Сохранением состояния при пересоздании активити?
  • Выполнением фоновых задач, когда активити уже закрыто?
  • Взаимодействием с системным апи (покрасить системную панель в свой цвет, прочитать контакты и т.д.)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации