Innopolis Frontend Meetup: Архитектура универсальных веб-приложений (Глеб Михеев)

Sdílet
Vložit
  • čas přidán 24. 12. 2022
  • Мы боимся разрабатывать универсальные приложения, которые и сайт и мобилка и десктопное приложение
    А что если я скажу, что нативная разработка не нужна? Что она мертва, и практически нет никакого смысла разрабатывать сервисные проекты на нативном стеке, сжигая десятки миллионов по году, усложняя cicd и все процессы выкатки релизов?
    Мы попробуем натянуть веб на мобилку, посмотрим как это работает, какие основные сомнения и сопротивления возникают у разработчиков и какие изменения потребует ваша архитектура, чтобы разрабатывать универсальные веб-приложения

Komentáře • 60

  • @ruslanrahmetov4897
    @ruslanrahmetov4897 Před rokem +2

    Красава 👍🏻 прям по всему прошел с чем я сталкивался ещё в бородатом 2013 году, тогда это вообще выглядело иноверно. Ну а счастливые клиенты экономили до 2кк.

  • @user-zi4gy8nk6d
    @user-zi4gy8nk6d Před rokem +1

    Спасибо что поделились

  • @ivangimsky1180
    @ivangimsky1180 Před rokem

    Спасибо за доклад, Глеб!
    Открыл глаза на мир кроссплатформенных десктоп фреймворков.
    Сразу после просмотра пошел знакомиться с Electron на практике, сказать, что приятно удивлен - ничего не сказать.

  • @albertum_o2
    @albertum_o2 Před rokem +2

    Т.е. я могу из веба вызывать нативное окошко оплаты, как в android, так и в iOS? Если да, то подскажите, в какую сторону гуглить?
    Есть ещё один момент и о нём стоит сказать - когда люди качают приложение, то конверсия в покупку там гораздо выше, чем в вебе. Можно сделать предположегние, что нативку ставят зачастую очень мотивированно(во многих случаях ещё и с купленного трафика), поэтому такие результаты. Но вот сейчас ещё мысль пришла, что на iOS совсем туго стало из-за анонимизации пользователя, а на вебе это теперь может быть преимуществом для привлечения трафика.

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem

      Да все так, но, только если твое веб-приложение открыто из под UiWebView и туда прокинут бридж платежного апи, как в примере с плагинами

  • @AlpinWeb
    @AlpinWeb Před rokem

    А кто-нибудь в курсе как работает html 5 canvas в том же электроне? Нормально оборачивается?

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem

      Абсолютно, там технически нет разницы, более того, можно влагами управлять и уточнять поведение браузера (включать и отключать фичи, акселерацию и тп)

  • @user_of_youtube
    @user_of_youtube Před rokem

    Я правильно понимаю, что React Native (который по итогу компилируется якобы в нативное приложение Android / IOS) по итогу не относится к конкретно этой теме с UiWebView, про которую вы рассказали в докладе ? Ну то есть суть с точки зрения бизнеса/денег и прочей логики из начала - та же, но с точки зрения результата иная

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem

      Сейчас за него не скажу, может что поменялось, года 4 назад он крутил js-код, но из под него управлял нативным рендерингом. Тут можно к Андрею Мелихову пристать, он на нем пишет долго и давно (тот самый из Веб Стандартов)
      Вот его канал, можно туда в комменты забуриться и попросить пояснить: t.me/melikhov_dev

  • @evgenysmirnov4762
    @evgenysmirnov4762 Před rokem +5

    Вообще странно, сначала приложения все были нативными (десктоп) типа Фотошопа и др... Теперь все это переезжает в веб и все ок.
    Но почему то мобилки этому сопротивляются, типа не нативно==отстой

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem +3

      С языка снял)

    • @dmitryalinsky5911
      @dmitryalinsky5911 Před rokem +3

      Отличный пример! Сразу вспомнил Figma.

    • @user-cx8rl2cd2l
      @user-cx8rl2cd2l Před rokem

      @@dmitryalinsky5911 для начала почитайте блог фигмы, сколько они модулей писали на c++ , потом ставьте их в пример

    • @dmitryalinsky5911
      @dmitryalinsky5911 Před rokem

      @@user-cx8rl2cd2l Когда-то писали. Может и сейчас что-то осталось. Суть в том, что большая часть стала общей на HTML+CSS+JS.

  • @user-ni1tr8qg5m
    @user-ni1tr8qg5m Před rokem +3

    Кто на vue, смотрите quasar

  • @dmitryalinsky5911
    @dmitryalinsky5911 Před rokem +3

    Очень хороший доклад на эту тему. Супер подача. Спасибо!
    Мне кажется, что помимо наших привычек, ещё играют роль сами нативные разработчики, которые не хотят лишиться большого объёма работы, а соответственно и дохода. К примеру, в моей стране разработчики мобильных приложений получают в разы больше веб (фронтенд) разработчиков. И им будет сложно пойти на понижение.
    Вот так вот.

    • @RedkeiGost
      @RedkeiGost Před rokem

      Да-да-да, это заговор нативных разработчиков, чтобы лишить фронтендеров денег.

    • @dmitryalinsky5911
      @dmitryalinsky5911 Před rokem

      ​@@RedkeiGost а на заводах уже нет свободных мест :)
      Я просто сам знаю несколько таких людей, которые не идею ролика не принимают, так как это ударяет напрямую по их направлению. И тут вступает в силу лень и (или) консерватизм.

    • @RedkeiGost
      @RedkeiGost Před rokem

      @@dmitryalinsky5911 дело в том, что вы изначально решаете вопрос с помощью оценочного суждения о причинах их неприятия. Осталось только решить, сильно это обругать ленью, или подобрать более мягкое слово "консерватизм". Я вот некоторые возражение выше озвучил, если их ютуб не забанит. Большие тексты на ютубе писать рискованно, кто знает, что боту не понравится - удалит, а ты старался.

    • @dmitryalinsky5911
      @dmitryalinsky5911 Před rokem

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

    • @user-cx8rl2cd2l
      @user-cx8rl2cd2l Před rokem

      @@dmitryalinsky5911 кто говорит из разработчиков такой бред ?

  • @jigglydezar7331
    @jigglydezar7331 Před rokem +1

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

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem

      Нет с этим проблем, с точки зрения безопасности и так далее
      Ругается только если использовать несекьюрные директивы, которые лишние дырки открывают - то есть на одинаковых правах с классическими приложениями

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem

      Нет с этим проблем, с точки зрения безопасности и так далее
      Ругается только если использовать несекьюрные директивы, которые лишние дырки открывают - то есть на одинаковых правах с классическими приложениями

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem +2

      Более того докину, что сейчас так пишутся банкоматы, где вопрос лицензирования софта раньше занимал полтора года. К вопросу требований и безопаности)
      Тиньковский банкомат, это ядро на шарпе (или плюсах не помню), и весь интерфейс на реакте с rxjs открытый в браузере

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem +1

      Могу поискать доклад об этом после приземления

    • @AleksandrNeo
      @AleksandrNeo Před rokem

      @@tired_glebmikheev Привет! Сможешь скинуть? Интересно посмотреть)

  • @naum0vv
    @naum0vv Před rokem +1

    Это парень с "10 глупых вопросов ПРОГРАММИСТУ" ?

  • @RedkeiGost
    @RedkeiGost Před rokem

    Т.е. если производительность приложения на электроне складывается из производительности браузера электрона + приложения, это значит руки такие кривые? Ну, не, тут как бы вопрос к требованиям проги по производительности. Если чатик т.е. месседжер какой-нибудь пилим, то норм. Вообще на слайде среди примеров приложений на электроне показаны те, которым на роду написано на нём быть и которые по своей специфике классно ложатся. А если у тебя конкретно не такое приложение и если оно к тому же плохо работает на мобилке - так вы сами и виноваты, работайте лучше - ну классный подход. Самое лучшее вообще на упоминание проблем отвечать оценочными суждениями, что проблема там в кривых руках, ногах и т.д. Вообще две трети доклада - оценочные суждения Глеба.
    В месседжере и интерфейс вебовский уместнее. А если у вас в приложении были допустим гриды, с разными продвинутыми фильтрами по колонкам, ещё и строки расскладывающиеся, и другие фичи, то как их отобразить в мобильной версии? Гриды это сильно не мобильная тема. На нативной технологии тоже будет эта проблема, но нативные разработчики по крайней мере имеют интуицию о том, что в их среде выглядит норм, а что нет, что хорошо работает, и реализуют это на реально нативном интерфейсе. Глеб обвиняет противников гибрида в том, что они просто эмоционально не принимают технологию и поэтому придумывают "а вот у них там не красиво", но мне кажется, что он и отвечает в том же духе, совсем не проработав аргументацию, не послушав нормально, когда и где не красиво, что должно быть и что есть. Такая аргументация годится только в компании гибридофилов собраться и дружно кивать головой "да, гибридка хорошая, а они просто не хотят, просто придумывают".
    Не вендр-лок? Ну, не знаю, можно ли называть это вендр-локом, но вот вы сделали на Cordova или чем-то еще, а это самое закрылось и больше не обновляется? А вы из-за этого ангулар обновить не можете? Вот было у нас приложение на нативскрипте с шерингом кода (кому непонятно, но интересно, загуглите "NativeScript Code Sharing"). В один прекрасный момент я обновляю планово ангулар и вместе с ним очевидно нативскрипт - и просто при запуске вылетает море ошибок. Потому что теперь команда нативскрипт решила, что не будет поддерживать фичу с шеррингом кода и просто выпилила её из нативскрипта. А без шеринга кода гибридное приложение становится не такое уж и гибридное. Документация предлагает разделять логику и представление, но мы уже выделели логику в чертов бекенд, и на клиенте нам надо только подменять шаблончики с мобильного на html. Че за хрень, нам все нравилось, все норм работало, а как теперь быть? Нам нужна новая версия ангулара, а со старой версией нативскрипта она не совместима. Но и новая версия ангулара несовместима с текущем приложением, потому что у нас обычная спашка + мобильная версия, а не просто мобила на ангуларе. Беда. Реально беда. А что до нативной платформы андроида, она может закрыться, если только андроид закроется. А так ни.
    Вообще на мобилке в нативе норм юзать SQLite, а не извращаться с indexedDB. Реально проще. Кто-нибудь пробовал TypeORM? Я пробовал, ну, может её там и перепаяли, но вообще я не в восторге и плююсь от того, что мне приходитс искать и юзать кривые прокладки.
    ЗЫ Типографика слайдов збс, не иронично.

    • @alexperemey6046
      @alexperemey6046 Před rokem

      Понятно, что натив быстрее. Поэтому в вебе выше требования к качеству кода и оптимизации. Он об этом говорит. Сейчас привыкли делать говно, и надеяться что проц все стерпит. Причём везде привыкли - и на нативе и в вебе. Мобильный веб возвращает вопрос оптимизации снова. Это безусловно минус веб-технологии. В общем, пока для нативa место есть. В будущем возможно просто допилят натив на JavaScript.

    • @RedkeiGost
      @RedkeiGost Před rokem

      @@alexperemey6046 о какой оптимизации можно говорить, если у нас в приложении браузер, который внутри себя открывает и выполняет spa-приложение? Что там к лешему можно оптимизировать, если фреймворк вне вашего контроля, а сверху только высокоуровневые абстракции для манипуляции DOM? Есть возможность например на потоки код разделить, или все в старом добром ивент-лупе? Или может там можно структуры данных какие-то более производительные подобрать, в джаваскрипте-то? spa в принципе не про производительность изначально, даже в мире фронтенда, а тут мы его еще и на мобилку натягиваем и какие-то вещи вджаву транслируем. Трактовать слова Глеба можно как угодно, но буквально он сказал так: непроизводительное, потому что руки кривые, делайте хорошо и у вас проблем с производительностью не будет. Но он как бы очень избирательно подбирает примеры хороших гибридных приложений - те, которые представляют собой просто по природе сайт, и которым удобнее в браузере, просто разрабы захотели больше власти над устройством пользователя.

    • @chikenmacnugget
      @chikenmacnugget Před rokem

      @@RedkeiGost на потоки делить можно, структуры данных использовать можно, писать эффективный код на джаваскрипте можно. Если с такими пунктами возникают проблемы, то должны задуматься о квалификации разработчика на этих технологиях.... Вообще очень умиляют комментарии по типу этого, мол вот джаваскрипт, на нем ничего сделать нормально нельзя. Нет, соглашусь, если вы дурак, а не инженер, то тут да, можно и молотком гвоздь подходящего размера не забить... Как бы вам не хотелось и не кричалось, но 70% приложений легко можно написать на веб технологиях и они будут работать на мобильных устройствах ничем не хуже, было бы только желание документацию изучать и лучшие практики.

  • @ilyashismat8832
    @ilyashismat8832 Před 8 měsíci

    24:32

  • @turbosokol3042
    @turbosokol3042 Před rokem +2

    "Го костылить" - только тех дир скиллбокса мог так точно и ёмко описать всю суть скиллбокса)

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem +1

      Суть разработки ты хотел сказать)))

    • @chikenmacnugget
      @chikenmacnugget Před rokem

      @@tired_glebmikheev выпускников скиллбокса

  • @icarus_dno
    @icarus_dno Před rokem

    Выглядит, как переизобретение React Native

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem

      Это было изобретено лет на 10 раньше, скорее наоборот, реакт нейтив дополнил идею, сказав, что хочет рендеринг делать на нативке, но оставив управляющий код на js

  • @user-cx8rl2cd2l
    @user-cx8rl2cd2l Před rokem

    Я буду краток . Среди массы маркетингового цирка который Михеев нам пытается продать, я задам простой вопрос . Ты готов удалить все нативные приложения которые у тебя на айфоне и пользоваться браузером ?

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem

      Хамоватая подача не сделает вас более правым, а ваши слова крепче
      Я не предлагаю ничего удалять и пользоваться браузером. Это ваше искаженное восприятие, не ищите смысла между строк
      Маркетинговый цирк

    • @user-cx8rl2cd2l
      @user-cx8rl2cd2l Před rokem

      @@tired_glebmikheev Глеб, если бы в место тебя доклад бы рассказал допустим Гладков ну или не знаю 🤷‍♂️ Пронин Сергей , я бы даже бы не отреагировал, но когда это вещаешь ты , то приходится реагировать. Ты человек которого послушают джуны а они тебя слушать любят и будут и ты обязан фильтровать то, что ты несёшь в массы, а ты им говоришь переходите на ПВА , натив дерьмо 💩, лишняя трата времени, только проблема в том, что ты как пользователь используешь натив, а куча людей потом на собесах будут доказывать твои слова, что натив это плохо. Одна уже женщина докричалась по имени Пушкарская, что натив не нужен и толкала эту парадигму на своих курсах, в результате ее не слышно не видно.

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem

      Я согласен с твоими словами, надо фильтровать, но ты меня не совсем правильно понимаешь(
      Я наоборот борюсь с теми, кто орет - только натив, а люди их слушают и берут за чистую монету. Надо помочь разобраться в том как все работает
      Иначе наши мнением будут управлять радикалы-самодуры

  • @user-tr9rx9zp2o
    @user-tr9rx9zp2o Před rokem +1

    Ни о чем.

  • @user-nu2wg3rx6n
    @user-nu2wg3rx6n Před rokem +2

    Чудес не бывает, вместо двух команд нужна будет одна, которая имеет опыт разработки, а вероятность найти таких гораздо ниже. Если у яндекса в их такси получилось полное УГ, то про других даже можно не упоминать. Общий фреймворк, который одинако хорошо работает на любой платформе пока из области сказок про космические корабли, которые бодро бораздят любые просторы. Даже для мс с silverlight это оказалось непосильной задачей

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem +1

      Никто и не говорит про общий фреймворк, только про подход, и если бы все было так как ты говоришь, ты бы не пользовался бы такими приложениями на постоянной основе)
      Кстати Ubuntu взяла те же флаттер приложения за канон, и проповедует их, винда вовсе веб-стек продвигает в разработке прилаг, и сделала pwa каноном
      Так что чудес не бывает) Все понятно как, что и зачем развивают)

    • @user-nu2wg3rx6n
      @user-nu2wg3rx6n Před rokem

      @@tired_glebmikheev Пусть будет не фреймворк, а движок GUI и набор библиотек, которые ровно так же - кривые, куцые и тормознутые костыли для совершенно разных платформ. Во-вторых, все тем же яндекс такси пользуюсь постоянно и кроме - программасты, убейте себя об стену,- это тормозное и тупое УГ никаких других эмоций не вызывает.
      На счет убынты, каждый сходит с ума по своему и сейчас явная тенденция снижения стоимости разработки даже в ущерб качеству

    • @tired_glebmikheev
      @tired_glebmikheev  Před rokem

      @@user-nu2wg3rx6n Больно радикально звучит, везде важен баланс. Я считаю, что нельзя поддаваться вот такому радикальному подходу. И ты даже себе не представляешь сколько гибридных технологий в ААА-приложениях, которыми ты пользуешься каждый день)
      По поводу Яндекса у меня не тормозит совсем, может у тебя старое железо, типа затротленного айфона? (дада, они тротлят железо и понижают качество работы своего железа, которое старенькое после обновлений)

    • @user-nu2wg3rx6n
      @user-nu2wg3rx6n Před rokem

      @@tired_glebmikheev Huawai P30 pro, который по производительности более, чем устраивает. Я список багов и тупостей я почти на лист накатал(допекли), повторяться не буду. В-третьих, я этих серебрянных пуль насмотрелся вдоволь, это очередная, которую тоже выбросят на помойку

    • @user-cx8rl2cd2l
      @user-cx8rl2cd2l Před rokem

      @@tired_glebmikheev и сильно много Ubuntu на flutter приложений выпустила ?