Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Единая платформа для сайта и приложений Медузы / Ярослав Кравченко, Самат Галимов (Meduza)

691 views

Published on

Meduza запустилась полгода назад. Сейчас это 25 миллионов хитов в месяц, тысячи 5-звездочных отзывов в аппсторе и гугл-плее, релизы мобильных приложений раз в две недели. И все это за полгода. Техническая команда при этом — 7 человек, а весь трафик может обслуживать один небольшой сервер.

О чем будем говорить:
— как синхронно поддерживать десктоп, мобильный веб и нативные приложение с одинаковым функционалом;
— как добавлять новые функции в нативное приложение без процедуры апрува;
— как поддерживать большие нагрузки в бизнес-критичном функционале, но легко и быстро программировать некритичные функции;
— как и зачем бороться с webview, CORS, jsonp и ASAP.

Published in: Engineering
  • Be the first to comment

Единая платформа для сайта и приложений Медузы / Ярослав Кравченко, Самат Галимов (Meduza)

  1. 1. План • Самат Галимов, техдир — разогрев — 10 минут • Ярослав Кравченко, фронтенд — спецпроекты без боли — 30 минут
  2. 2. 7
  3. 3. 8
  4. 4. desktop vs mobile 8млн vs 2млн сессий в месяц 10
  5. 5. 11
  6. 6. 12
  7. 7. сложности в мобилах • нет возможности откатиться • креши видны явно • апдейты с рекламой = не круто • ревью 2 недели в iOS 13
  8. 8. 14
  9. 9. ops problem now 15
  10. 10. скрудж
  11. 11. итого • нет быстрым спецпроектам (реклама!) • нет экспериментам 18
  12. 12. Что же делать?
  13. 13. 20
  14. 14. 21
  15. 15. 22
  16. 16. кто сталкивался с webview в iOS/Android? 23
  17. 17. 24
  18. 18. 1 <html> 2 <head> 3 JS 4 CSS 5 </head> 6 <body> 7 %%json>body%% 8 </body> 9 </html> 25
  19. 19. 26 1 { 2 meta: { 3 published_at: 4 ... 5 }, 6 content: { 7 body: "<div>text</div>", 8 layout_url: "layouts/19" 9 } 10 }
  20. 20. mdza.io/json 27
  21. 21. native+web profit • native feel • новые фичи в обход обновления приложения • веб-инфраструктура: деплой, ролбек, поддержка 28
  22. 22. Ярослав Кравченко 29
  23. 23. Решения • inline • iframe 30
  24. 24. 31
  25. 25. • CORS в iOS ⟶ JSONP • Дублирующиеся элементы из-за SEO ⟶ удалили SEO из материала с игрой • Правки стилей / JS кода ⟶ исправить материал, опубликовать, обновить лэйаут Проблемы и решения 32
  26. 26. 33
  27. 27. 34
  28. 28. 35
  29. 29. duckling • Gulp + Webpack • Node.js + Express • React • LESS • MongoDB 36
  30. 30. Проблемы и решения • CORS ⟶ duckling на том же домене • Респонсив по высоте ⟶ postMessage • Коммуникация эмбеда с вебом ⟶ postMessage • Коммуникация эмбеда с приложением ⟶ postMessage + bridge 37
  31. 31. Профит от подхода с эмбедами • Модный стэк технологий - быстрая и простая разработка • Можно выпилить множеством способов не ломая сам материал • API медузы доступно без магии • Минимальные изменения в коде вэба/лэйаутов 38
  32. 32. 39
  33. 33. 40
  34. 34. Нерешенные проблемы • Из-за сложной архитектуры сложно запускать локально • Отладка Webview 41
  35. 35. Какие вопросы у вас возникли? Ярослав Кравченко @sowingthewounds Самат Галимов @samat Meduza Dev @mdzdev

×