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

Поделиться
HTML-код
  • Опубликовано: 3 окт 2024
  • Мы боимся разрабатывать универсальные приложения, которые и сайт и мобилка и десктопное приложение
    А что если я скажу, что нативная разработка не нужна? Что она мертва, и практически нет никакого смысла разрабатывать сервисные проекты на нативном стеке, сжигая десятки миллионов по году, усложняя cicd и все процессы выкатки релизов?
    Мы попробуем натянуть веб на мобилку, посмотрим как это работает, какие основные сомнения и сопротивления возникают у разработчиков и какие изменения потребует ваша архитектура, чтобы разрабатывать универсальные веб-приложения

Комментарии • 60

  • @ivangimsky1180
    @ivangimsky1180 Год назад

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

  • @ruslanrahmetov4897
    @ruslanrahmetov4897 Год назад +2

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

  • @СамирАбасов
    @СамирАбасов Год назад +1

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

  • @albertum_o2
    @albertum_o2 Год назад +2

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад

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

  • @ЕвгенийЕфимов-ф6щ
    @ЕвгенийЕфимов-ф6щ Год назад +3

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

  • @evgenysmirnov4762
    @evgenysmirnov4762 Год назад +5

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад +3

      С языка снял)

    • @dmitryalinsky5911
      @dmitryalinsky5911 Год назад +3

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

    • @АнтонКулибякин
      @АнтонКулибякин Год назад

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

    • @dmitryalinsky5911
      @dmitryalinsky5911 Год назад

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

  • @turbosokol3042
    @turbosokol3042 Год назад +2

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад +1

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

    • @chikenmacnugget
      @chikenmacnugget Год назад

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

  • @jigglydezar7331
    @jigglydezar7331 Год назад +1

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад +2

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад +1

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

    • @AleksandrNeo
      @AleksandrNeo Год назад

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

  • @user_of_youtube
    @user_of_youtube Год назад

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад

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

  • @dmitryalinsky5911
    @dmitryalinsky5911 Год назад +3

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

    • @RedkeiGost
      @RedkeiGost Год назад

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

    • @dmitryalinsky5911
      @dmitryalinsky5911 Год назад

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

    • @RedkeiGost
      @RedkeiGost Год назад

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

    • @dmitryalinsky5911
      @dmitryalinsky5911 Год назад

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

    • @АнтонКулибякин
      @АнтонКулибякин Год назад

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

  • @naum0vv
    @naum0vv Год назад +1

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

  • @AlpinWeb
    @AlpinWeb Год назад

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад

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

  • @RedkeiGost
    @RedkeiGost Год назад

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

    • @alexperemey6046
      @alexperemey6046 Год назад

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

    • @RedkeiGost
      @RedkeiGost Год назад

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

    • @chikenmacnugget
      @chikenmacnugget Год назад

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

  • @ПетяКовальчук-м2с
    @ПетяКовальчук-м2с Год назад +1

    Ни о чем.

  • @АнтонКулибякин
    @АнтонКулибякин Год назад

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад

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

    • @АнтонКулибякин
      @АнтонКулибякин Год назад

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад

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

  • @ilyashismat8832
    @ilyashismat8832 10 месяцев назад

    24:32

  • @icarus_dno
    @icarus_dno Год назад

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад

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

  • @СергейИванов-ш6ц5с

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад +1

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

    • @СергейИванов-ш6ц5с
      @СергейИванов-ш6ц5с Год назад

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

    • @tired_glebmikheev
      @tired_glebmikheev  Год назад

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

    • @СергейИванов-ш6ц5с
      @СергейИванов-ш6ц5с Год назад

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

    • @АнтонКулибякин
      @АнтонКулибякин Год назад

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