rambler-ios / team

sweet home
177 stars 40 forks source link

Доклад на тему ReactNative #71

Closed katleta3000 closed 7 years ago

katleta3000 commented 7 years ago

Всем привет!

Хотелось бы сделать классическое выступление для следующего Рамблер-митапа по плану: 1 Постановка проблемы; 2 Предложение нескольких решений; 3 Выбор одного, обоснование критериев; 4 Реализация его; 5 Проверка насколько оно решило проблему; 6 Выводы.

Итак по плану пока вижу выступление таким: 1 В компании появляется необходимость делать много мобильных приложений быстро и при этом реиспользовать огромную часть, написанную для web. (2-3 слайда) 2 Встает вопрос об использовании “кросс-платформенных” решений. (1-2 слайда) 3 Текущий стек технологий web-решений - это JS + React + Redux. Недавно вышедший ReactNative идеально сочетается со стеком. Огромный плюс, что он позволяет исполнять нативный код, а не “эмуляцию” работы с UIKit путем реализации своей библиотеки на css. Быстро откидываем решения типа Cordova. (2-4 слайда) 4 Библиотека элементов для web и ios на ReactNative (основная часть 10-15 слайдов) 4.1 Что это значит в чем замысел и суть подхода / архитектуры. 4.2 ReactNative с чем его едят? Как эта магия работает? Как он позволяет связывать JS и objective-c? Какие конкретно есть механизмы связи? 4.3 Flexbox - как работает? Как сочетается Autlayout и flexbox? 4.4 Hot Reloading. Верстать на JS намного удобнее, чем в xib. 4.5 Память? В какой момент выделяется/освобождается? Есть ли утечки? 4.6 Как подойти к построению архитектуры компонентов / приложения? (Здесь несколько вбросов, так как вообще тянет на отдельное выступление). 5 Просмотр работоспособности простого приложения + демонстрация возможностей. (минуты 3-5) 6 Выводы (1-3 слайда). Суммарно думаю 35-45 минут.

Если тема интересна, подскажите, в каком ключе нужно строить выступление, какие тезисы интересны, какие нет)

etolstoy commented 7 years ago

@katleta3000 Женя, спасибо за предложение - доклад выглядит очень круто! Единственная проблема - мы придерживаемся формата более коротких выступлений, по 20-25 минут, поэтому нужно подумать, как можем под него адаптироваться.

complexityclass commented 7 years ago

@katleta3000 Интересная тема, хотелось бы еще немного про js. Насколько больно на нем писать оказалось после objc/swift и есть ли возможность вместо чистого js что-то более приятное использовать (TypeScript или любой другой диалект).

katleta3000 commented 7 years ago

@etolstoy @complexityclass 1) TypeScript - ок. Сегодня как раз на работе поняли, что нужно писать на нём, а не JS. 2) Сократить выступление - тоже ок. 3) Про разработку на JS/TS вместо нативного кода - в целом основной удар, так как совсем другой стек и архитектурный подход - React + Redux.

Какие мои дальнейшие шаги?)

etolstoy commented 7 years ago

@katleta3000 Женя, как и говорил, надо уменьшить продолжительность доклада.

1 В компании появляется необходимость делать много мобильных приложений быстро и при этом реиспользовать огромную часть, написанную для web. (2-3 слайда)

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

2 Встает вопрос об использовании “кросс-платформенных” решений. (1-2 слайда) 3 Текущий стек технологий web-решений - это JS + React + Redux. Недавно вышедший ReactNative идеально сочетается со стеком. Огромный плюс, что он позволяет исполнять нативный код, а не “эмуляцию” работы с UIKit путем реализации своей библиотеки на css. Быстро откидываем решения типа Cordova. (2-4 слайда)

Тут, думаю, можно опустить сравнение с другими решениями, а просто показать на одном слайде, что вы решили использовать реакт нейтив. Обоснованием этого выбора, по сути, будет вся остальная твоя презентация :)

4.1 Что это значит в чем замысел и суть подхода / архитектуры.

Запрашиваем побольше красивых схем :)

4.2 ReactNative с чем его едят? Как эта магия работает? Как он позволяет связывать JS и objective-c? Какие конкретно есть механизмы связи?

Тут можно не сильно останавливаться на механизмах связи - про JSCore рассказывали на прошлом митапе, можно сослаться на это выступление, либо, к примеру, на выступление с YAC 2014.

4.5 Память? В какой момент выделяется/освобождается? Есть ли утечки?

Здесь хочется максимум хардкора и подробностей работы.

4.6 Как подойти к построению архитектуры компонентов / приложения? (Здесь несколько вбросов, так как вообще тянет на отдельное выступление).

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

5 Просмотр работоспособности простого приложения + демонстрация возможностей. (минуты 3-5)

Демки очень продолжительны по времени - во-первых, переключение оборудования, во-вторых, всегда возникают какие-то проблемы. Тут предлагаю два варианта:

  1. После выступления в зоне для спикеров показать приложение заинтересованным - пусть подходят, тыкают, пробуют - а ты будешь параллельно овтечать на их вопросы.
  2. Построить последний раздел в формате "миф-опровержение". К примеру, миф - в React Native нет реюза ячеек, приложение быстро падает при скролле. Опровержение - слайд с видео приложения, где показан плавный скроллинг таблички, и ты на словах объясняешь основные мысли, как это работает.

По датам - предлагаю первый прогон назначить примерно на 10 ноября, если за это время успеешь подготовиться.

novixon commented 7 years ago

@katleta3000 Спасибо, интересная тема для Rambler.iOS!

По времени, действительно, нужно уложиться в 20-25 минут. Как и сказал @etolstoy, это наш формат. Ты можешь подготовить больше объем к первому прогону и мы вместе подумаем, что можно подсократить.

По содержанию, немного смущает, что нет пунктов про ограничения подхода. Будешь ли ты утверждать, что, например, приложение абсолютно любой сложности будет здорово делать на ReactNative? На какие нюансы предметной области стоит обратить внимание при принятии решения о выборе ReactNative в качестве основного инструмента? Что-то подобное, мне кажется, есть смысл обсудить.

katleta3000 commented 7 years ago

@novixon Договорились, расскажу. Замечание абсолютно верное.

katleta3000 commented 7 years ago

@etolstoy Егор, я на ноябрьские на 5 дней улетаю. Боюсь к 10-ому не успеть. Может быть 14-15 ок?

etolstoy commented 7 years ago

@katleta3000 по датам ок :)