Браузер electron что такое
До свидания, Electron. Здравствуйте, настольные PWA
Автор материала, говорит, что он, возможно, слишком торопится, но то, о чём он хочет рассказать, представляет собой, по меньшей мере, весьма интересную новость. Речь идёт о настольных прогрессивных веб-приложениях, которые вполне могут значительно потеснить позиции приложений, основанных на Electron.
Новшества Chrome v70
Свежая версия Chrome (v70) поддерживает настольные прогрессивные веб-приложения (Desktop Progressive Web Apps, PWA) на платформах Linux и Windows.
Если взглянуть на список поддерживаемых систем, тут же становится заметным отсутствие в нём MacOS. Однако это так лишь до тех пор, пока не выйдет Chrome v72.
Важно отметить, что хотя эта возможность в MacOS по умолчанию не включена, её можно активировать с помощью соответствующего флага. Для этого надо открыть Chrome, перейти по адресу chrome://flags и найти там этот флаг. Можно и перейти к флагу напрямую, воспользовавшись ссылкой chrome://flags/#enable-desktop-pwas.
Что такое прогрессивные веб-приложения?
В особые подробности, касающиеся PWA, мы тут вдаваться не будем. Вот раздел документации Google, в котором можно почитать о них. Для того чтобы своими глазами увидеть PWA и попробовать их в деле, откройте Chrome для Android или Safari в iOS (тут, правда, поддерживаются не все возможности PWA) и посмотрите эти примеры. А вот — выступление на эту тему с Google I/O ‘18.
Что такое Electron?
Electron — это платформа, которая позволяет разработчикам создавать кросс-платформенные настольные приложения с использованием JavaScript, HTML и CSS. Здесь же используются некоторые замечательные JavaScript-библиотеки и фреймворки. Это облегчает веб-программистам вхождение в разработку настольных приложений. Приложения, основанные на Electron, в последние годы приобрели огромную популярность. В рамках таких проектов, как Slack, VS Code, Atom, Discord, вложены немалые силы в разработку приложений с использованием Electron. Если вам эти проекты не знакомы, то вам, определённо, стоит взглянуть на соответствующие приложения и сервисы. Традиционные настольные приложения нередко казались какими-то неуклюжими, элементы их интерфейсов выглядели как нечто устаревшее. Electron, определённо, принёс красоту и изящество в мир настольных приложений.
При чём тут PWA?
Хотя Electron-приложения — это растущее и развивающееся явление, и их реализация близка к реализации веб-приложений, у них, всё же, есть некоторые минусы. Во-первых, такие приложения используют собственные экземпляры браузера Chromium. Многие знают о том, сколько оперативной памяти нужно для работы Chrome. Теперь, для того, чтобы оценить ситуацию, возникающую в системе при одновременном запуске нескольких Electron-приложений, надо взять их количество и умножить на этот объём памяти. Если интересно — откройте несколько Electron-приложений и посмотрите на то, сколько памяти они потребляют.
Чрезмерное использование памяти — это само по себе не очень хорошо, а сюда ещё надо добавить то, что многие Electron-приложения специфическим образом взаимодействуют с Node.js, не обязательно делая это так же, как соответствующие веб-приложения.
Использование Electron добавляет сложностей, связанных с поддержкой старых версий программ и с наладкой процесса обновления приложений.
Теперь поговорим о настольных PWA. Представьте себе приложения, которые выглядят как те, что написаны на Electron, с которыми так же удобно работать, но при этом устанавливать их проще простого, обновляются они тоже без проблем, в ходе передачи клиенту материалов единственного веб-приложения. Возникает такое ощущение, что Chrome задаёт стандарт для подобного сценария поведения в настольных PWA. Когда пользователь, работающий в Chrome, посещает некую веб-страницу, и представленное ей приложение соответствует этому набору критериев, у разработчика приложения появляется возможность предложить пользователю установить приложение на его компьютер. Приглашение выглядит примерно так, как показано ниже.
После запуска подобного приложения оно открывается в браузерном окне, не оснащённом обычными элементами управления. Такое приложение воспринимается как настоящее настольное приложение.
Пример PWA
Вот пример настольного PWA, скриншоты которого были использованы выше в виде иллюстраций. Вотего репозиторий на GitHub. Для того чтобы установить это приложение, нужно включить соответствующий флаг в Chrome и провести на сайте хотя бы 30 секунд.
Как уже было сказано, веб-приложение, для того, чтобы считаться настольным PWA, должно соответствовать определённому набору требований. Если вы хотите создать и испытать собственное настольное PWA, можете взять за основу этот репозиторий и учесть требования. Если сделать краткую сводку по ним, то получится следующее:
Дополнительные примеры
Если вы работаете на MacOS, то PWA могут счесть, что установить их вы не сможете, и не покажут вам приглашение для их установки. Если включить соответствующие флаги и повозиться с консолью разработчика, можно добиться от PWA того, что они приглашение на установку выведут. Вот некоторые из существующих PWA, которые удалось установить на Mac.
Starbucks
Компания Starbucks вложила немало сил в разработку отличного PWA. Их настольное приложение получилось прямо-таки впечатляющим.
Google Maps
Это — просто замечательное приложение. Оно делает своё дело и не особенно сильно нагружает систему, отличаясь быстрой работой и отзывчивым дизайном. Для установки этого приложения нужно исхитриться и загрузить мобильный сайт Google Maps.
Компания Twitter постаралась при разработке мобильного PWA, а настольную версию можно считать достойным дополнением к мобильному приложению.
Итоги
Не смотря на то, что вокруг настольных PWA поднято много шума, нужно отдавать себе отчёт в том, что эта технология пока находится на стадии становления. В частности, можно отметить следующие направления развития настольных PWA:
После того, как технологии разработки настольных PWA достаточно разовьются, эти приложения станут серьёзными конкурентами сегодняшних проектов, основанных на Electron.
23 приложения на Electron, о которых нужно знать
Здесь мы представляем лучшие приложения Electron, доступные для настольных систем Linux, включая Ubuntu, а также macOS и Windows.
Не все ценят кроссплатформенную универсальность Electron так же, как мы. У некоторых возникают проблемы с количеством используемой ими памяти, процессора и размером занимаемого ими места на диске.
Но для тех, кто не против использовать приложения Electron, а также для тех, кто просто любит устанавливать новые приложения, может быть интересен обзор лучших приложений Electron, доступных для Linux.
Что такое приложения Electron?
Electron справляется со сложными задачами, позволяя разработчикам сосредоточиться на создании великолепных приложений с великолепным дизайном.
Преимущества использования Electron для создания приложения:
Недостатки использования Electron для создания приложений:
Каждое приложение Electron запускает свой отдельный экземпляр Chromium.
Поклонники Electron утверждают, что преимущества, функции и полезность этих приложений перевешивают заявления о чрезмерном использовании ресурсов. В конце концов, вы, вероятно, не будете запускать 23 приложения Electron одновременно, только пару.
Если ваш ноутбук или настольный компьютер не является антиквариатом, он, вероятно, отлично справится с запуском нескольких приложений Electron!
23 лучших приложений на Electron.js
После того как мы рассказали что такое Electron, давайте посмотрим, как разработчики используют его для настольных ПК. Ниже приведены 23 приложения Electron, которые я считаю достойными внимания.
1. Visual Studio Code (текстовый редактор)
VS Code включает в себя интеграцию с Git, подсветку синтаксиса, интеллектуальное завершение кода, фрагменты кода и рефакторинг кода. Пользователи могут быстро изменить внешний вид редактора с помощью тем, добавить дополнительные функциональные возможности с помощью доступных модулей и перенастроить сочетания клавиш.
Visual Studio Code поддерживает C, C#, C ++, HTML, JSON, Objective-C, Objective-C ++, PHP и другие.
2. Etcher (Запись образов)
С помощью Etcher легко создать загрузочную флешку на настольных ПК с Windows, MacOS или Linux.
Приложение для записи ISO имеет невероятно простой пользовательский интерфейс. Просто подключите пустой USB-накопитель, выберите совместимый образ ISO, и дождитесь окончания записи!
3. Raven (RSS Ридер)
Raven лучше всего работает локально и поддерживает импорт списка каналов в виде XML-файла. Последняя версия также интегрируется со службой RSS-ленты Inoreader, помогая синхронизировать прочитанные и непрочитанные элементы на разных устройствах и платформах.
Настоятельно рекомендуется для фанатов rss и новостных лент.
4. Temps (Погода)
Красивый вертикально ориентированный дизайн в сочетании с тонкой анимацией создает мобильное и привлекательное приложение. Temps может автоматически определять ваше местоположение (хотя вы можете ввести его вручную, если это необходимо).
Основное окно Temps показывает текущие условия для данного места, включая температуру, имеет скрытый интерактивный «почасовой» график условий и показывает краткий 4-дневный прогноз.
К сожалению, вы не можете переместить главное приложение Temps. Автоматически, оно исчезает, как только вы фокусируете другое приложение. Несмотря на этот недостаток, приложение остается полезным. Его элемент в трее может отображать текущие условия и температуру, что очень удобно.
Temps стоит скачать, если вы страстный любитель погоды.
5. Ramme (Instagram Клиент)
И да: Ramme даже позволяет загружать в Instagram с компьютера, телефон не нужен!
Ramme доступен для Windows, MacOS и Linux. Вы можете узнать больше о приложении на Github.
6. Museeks (Музыкальный плеер)
Museeks позиционирует себя как «простой, понятный и кроссплатформенный музыкальный проигрыватель», и, конечно же, это именно так.
Простой пользовательский интерфейс и библиотека мультимедиа позволяют легко управлять музыкальными файлами и сортировать их. Библиотека представлена в виде списка (без просмотра обложек альбомов здесь), и вы можете сортировать треки по названию, исполнителю, альбому или жанру.
В целом, без излишеств, но хорошо оснащен музыкальным проигрывателем Electron.
7. Tusk (Evernote Клиент)
Поскольку официального клиента Evernote для Linux не существует, веб-приложению хорошо известной службы ведения заметок предоставляется возможность справиться с трудностями.
Tusk предлагает более 70 сочетаний клавиш, дополнительные темы и режим фокусировки без отвлекающих факторов. Он даже позволяет вам экспортировать заметки в PDF, HTML или файлы разметки, чтобы вы могли делать полезные заметки в другом месте.
Независимо от ОС, Tusk является важным инструментом для пользователей Evernote.
8. Typora (Редактор Markdown)
Разработанный так, чтобы как можно меньше отвлекать пользователя от основной задачи. Здесь нет больших кнопок или яркой плавающей палитры. Вместо этого вы форматируете текст с использованием встроенной разметки markdown и автоматически отображаются отформатированный текст с использованием предварительного просмотра в реальном времени.
Помощь под рукой, если вы забудете, как вставить изображение или сделать текст жирным: просто выделите текст и / или щелкните правой кнопкой мыши.
Typora стоит попробовать для изысканного, внимательного написания, основанного на простом для изучения формате редактирования текста Markdown.
9. Windows 95 (OS)
Я добавляю этот приложение в пользу ностальгирующих геймеров и фанатов винтажа.
Да, вы можете запустить Windows 95 на вашем рабочем столе (Linux, macOS или Windows). Это полноценная ОС: инструменты, утилиты и игры, всё как в Windows 95. Вы можете играть в Doom в Windows 95 и создавать иллюстрации в Microsoft Paint и всё это из под вашей любимой Linux.
Созданное просто потому, что это возможно, приложение Windows 95 Electron обеспечивает триповый способ создания операционной системы без запаса мощности для традиционной виртуальной машины.
10. TweetTray (Twitter Клиент)
Откройте обычный веб-сайт Twitter в новой вкладке, и вы получите билет в один конец. Вот где приходит TweetTray.
Это простое приложение на основе трея позволяет вам делиться своими мыслями и размышлениями со всем миром, не беспокоясь о том, чтобы быть втянутым в новую вирусную нить или провал знаменитостей.
Восхитительно простое приложение позволяет твитнуть с рабочего стола и ничего более. Вы не можете читать твиты, отвечать на твиты или добавлять их в избранное, но вы можете поделиться своими мыслями и добавить картинки или изображения.
11. Mailspring (Email Client)
Почтовые клиенты для настольных компьютеров в наши дни устарели, и если вы большой любитель Gmail (как и я), вы можете вообще пропустить его.
Но Mailspring предлагает вескую причину не делать этого.
Во-первых, приложение невероятно хорошо разработано. Оно выглядит великолепно, и функционирует фантастически. Оно даже поддерживает пользовательские темы и другие макеты.
Во-вторых, оно полно действительно полезных функций. Фактически полезные, такие как: поддержка нескольких учетных записей (IMAP и Office 365); единый почтовый ящик; сверхбыстрый поиск по электронной почте; и пользовательские темы и макеты, чтобы помочь вам создать пользовательский интерфейс, который соответствует вашим вкусам (или теме вашего рабочего стола).
Поддержка почтовых подписей, встроенные инструменты перевода, средство проверки орфографии и, если хотите, такие функции «за», как отслеживание ссылок и отчёте о прочтении, также доступны в приложении.
Так что, если вы ищете современный настольный почтовый клиент для Linux, macOS или Windows, вам, честно говоря, не нужно искать дальше.
12. Simplenote (Продуктивность)
Все приложения Simplenote для настольных ПК используют Electron для предоставления удобного инструмента для заметок на разных платформах.
И хотя приложениям для настольных компьютеров не хватает расширенных функций, доступных через Evernote (см. Пункт № 7), я думаю, что для оно все-таки лучше: вы получаете надежный инструмент с облачной синхронизацией и историей изменений, но без наворотов и лишних функций которые все ты всё равно не используешь.
Если вам нужна целенаправленная и понятная заметка, ознакомьтесь с Simplenote.
13. Rambox (Сообщения)
Использование современных систем обмена сообщениями и социальных сетей имеет существенный недостаток: их очень много.
Rambox стремится решить эту проблему. Он объединяет ваши учетные записи для Twitter, Facebook Messenger, WhatsApp, Telegram, Slack и более 90 других сервисов в единое окно.
Поэтому вместо того, чтобы открывать в браузере 12 вкладок, просто откройте Rambox.
Rambox может похвастаться отличной интеграцией с рабочим столом, например уведомлениями о новых / непрочитанных сообщениях и апплетом в системном трее с быстрыми действиями, поддержкой мастер-пароля и режимом блокировки (чтобы отвлечь внимание от ваших социальных сетей) и полезной настройкой «не беспокоить» когда хочешь расслабиться и отдохнуть.
14. Skype
Ни один список приложений Electron не будет полным без ссылки на самое известное из всех приложений Electron: Skype.
VoIP-клиент Microsoft не является той мощной платформой, которой он был когда-то (благодаря видео и голосовым вызовам, внедряемым, казалось бы, во все мыслимые сервисы, включая Facebook Messenger и Telegram), но он все еще имеет место быть.
Для альтернативы Skype, ориентированной на конфиденциальность, я рекомендую попробовать Signal и Wire, которые используют Electron для своих настольных клиентов.
15. Discord (Сообщения)
Пока мы говорим о VoIP-клиентах, было бы упущением, если бы я пропустил Discord, бесплатный (но не с открытым исходным кодом) сервис обмена сообщениями в видеоиграх.
Discord может похвастаться более чем 200 миллионами пользователей и рассматривается как важный инструмент для общения геймеров (хотя многие другие сообщества также используют его). Он позволяет вам присоединяться к каналам чата, отправлять текст, изображения или видео другим пользователям, а также поддерживает аудиовызовы.
Самое приятное, что Discord работает на всех основных настольных операционных системах благодаря Electron.
16. Musixmatch Lyrics
Это в основном все, что он делает, но что еще нужно сделать?
17. Left (Писательский инструмент)
Для приложения также есть отличный онлайн-справочник.
Короче говоря, если вы серьезно относитесь к письму, вам нужно попробовать Left.
18. Upterm (IDE)
Частично терминал, частично интерактивная оболочка, частично IDE: Upterm превосходит ожидания.
Upterm имеет удобную функцию автозаполнения, которая исключает ошибки при вводе.
Этот инструмент также может похвастаться совместимостью и поддержкой большинства программ и утилит CLI, включая такие основные продукты, как vim, emacs, htop, git и другие.
19. Poddr (Клиент подкастов)
Если вы ищете настольный клиент подкастов с привлекательным дизайном, полезными функциями и доступом к самым популярным подкастам через iTunes, подружитесь с Poddr.
Poddr обладает всеми ожидаемыми функциями, включая просмотр и поиск подкастов, списки эпизодов, описания шоу, кнопки быстрого перехода назад / вперед и многое другое.
Пользователи Linux также получают выгоду от поддержки медиа-ключей и интеграции MPRIS. Приложение также доступно через магазин Snapcraft.
20. Sftp Client
Передача файлов с удаленных серверов не является простой задачей, но она легко справляется с ней.
Sftp Client не будет отличаться методом передачи от того же FileZilla, но его простой пользовательский интерфейс, может кому-то понравится больше. Это программа помогает передавать файлы по FTP, FTPIS, FTPES и SFTP, включая SSH Terminal, без особых хлопот.
Приложение скрывает несколько функций за «pro» подписку (который, естественно, стоит денег), но бесплатная версия также доступна.
21. Noty (Записки)
Я очень плохо запоминаю, что мне нужно делать, поэтому стараюсь писать что-то на пост-заметках (или на заметках) и прикреплять их на свой рабочий стол.
Большинство настольных компьютеров поставляются с функцией заметок для использования на рабочем столе. Но, честно говоря, у меня их слишком много. Они просто мешают.
Оно поддерживает автоматическое сохранение, поддерживает функциональность чекбоксов / списков дел, базовое форматирование текста и использует шрифт FiraCode, чтобы разрешить все виды изящных глифов и стрелок.
Революционный? Нет. Полезно? Абсолютно.
22. Image Shrinker (Фотография)
Я стараюсь стремиться к небольшому размеру файла (что ускоряет загрузку), но не влияет на качество.
Обычно я использую собственный инструмент сжатия изображений Linux (например, Trimmage) или командную строку. Но в последнее время я перешел на использование приложения Image Shrinker.
Быстро, эффективно и действительно очень приятно!
23. LosslessCut (Видео редактор)
Для быстрой и эффективной обрезки видео и аудио файлов используйте LosslessCut.
Это позволяет быстро пролистывать клипы, чтобы пометить часть видеофайла для «вырезания». Вы можете выбрать несколько разделов и объединить их в один клип, и все это без необходимости перекодировать или снижать качество.
LosslessCut работает на ffmpeg, поэтому поддерживаются наиболее распространенные форматы видео. А поскольку он работает без перекодирования или обработки видео, он тоже очень быстрый.
Вырезанное видео сохраняется в том же каталоге, что и исходное видео, без перезаписи.
Приложения на Electronjs не популярны, но могут быть полезны
Какие приложения Electron вы используете?
Поделитесь своими мыслями в разделе комментариев ниже
Почему мы выбрали Electron
Предыстория
Мы небольшая команда разработчиков, занимаемся созданием нового инструмента для работы с API Testmace. По факту это продвинутый rest клиент с возможностью создавать автоматизированные тесты API с помощью графического интерфейса, оснащенный такими приятными штуками как продвинутый механизм переменных, автокомплит во всех полях ввода и тотальная подсветка синтаксиса.
Хочу вам рассказать о том, как мы пришли к Electron как технологии для написания нашего приложения.
Почему десктоп
В последние 10-15 лет web пережил взрывной рост и продолжает активно развиваться. Постоянно появляются все новые и новые инструменты для создания все более функциональных и сложных web-приложений. Создаются даже целые языки программирования, заточенные для написания web-приложений и практически не имеющие готовых решений вне этой области. Да и в нашей повседневной жизни мы уже частично заменили microsoft office и thunderbird на google docs и интерфейс gmail-а.
Однако веб не может пока полностью вытеснить десктопные приложения, и вот по каким причинам:
Выбор технологии
Мы определились, что наше приложение будет десктопным, однако, пока не определились с языком и технологиями, на которых будем это реализовывать. Что касается языков программирования, то к ним нами предъявляются следующие требования:
Как бы то ни было, список требований не кажется уж слишком жестким, и ему удовлетворяют такие языки как C#, TypeScript, Go. Дальнейший выбор технологий будем проводить с учетом наличия реализаций необходимых компонентов для данных языков.
Гораздо более интересно обстоят дела с выбором решений для разработки пользовательского интерфейса. Требования к ним следующие:
Qt (Qml)
Qt — это мощный тулкит для написания кроссплатформенных приложений. В последних версиях данного фреймворка появился компонент Qt Quick для написания приложений с использованием декларативного языка описания разметки QML. Qt в общем и QML в частности — это проверенные в боях решения, нашедшие свое применение практически во всех сферах — от embedded до программных оболочек операционных систем.
Основным языком программирования в Qt является C++ (в QML можно использовать javascript). Однако для Qt и QML есть биндинги для других языков программирования (вот например для C#). Однако официально поддерживается только интеграция с питоном. Все остальное — сторонние реализации. Согласитесь, не хотелось бы доверять самую базовую часть приложения библиотеке, которую разрабатывает как хобби небольшая группа энтузиастов.
Еще есть проект Brig. Это NodeJS биндинги для QML. Отличительной особенностью данного проекта является впечатляющая демка. Однако, как оно часто бывает в open source проектах, авторы не уделяют должного внимания проекту и поэтому он также сходит с дистанции.
Библиотека для построения пользовательского интерфейса, которая начиналась как часть проекта GIMP и впоследствии была выделена в отдельный проект. Имеется инструмент Glade для быстрой разработки пользовательского интерфейса. Основным языком для разработки GTK является C, однако есть биндинги для многих популярных языков программирования. Более того, с использованием C# биндингов создавалась MonoDevelop — одна из самых мощных IDE для разработки под C#. Однако после более внимательного изучения мы понимаем, что проект GTK# находится в полузаброшенном состоянии — последний коммит был в феврале 2018, следующий в январе 2017 и далее 2016. По коммиту в год. Негусто, учитывая, что основной репозиторий gtk активно развивается. А счастье было так близко…
Electron
В последнее время очень много шума связано с данным фреймворком. Кто-то хвалит его за возможность перенести наработки веб-приложений на десктоп, кто-то ненавидит за чрезмерную прожорливость. И тех и других можно понять. Electron под капотом использует node.js и библиотеку рендеринга из Chromium. По сути создается обычное web-приложение и заворачивается в исполняемый файл. Причем каждое приложение поставляется с собственной версией Node.js и Chrome.
Минус по сути только один, но достаточно серьезный — это большое (по сравнению с другими технологиями) потребление памяти: пустой проект занимает в памяти 100-200 мегабайт. Для некоторых это причина отказаться от использования таких приложений (привет, Skype). Однако давайте проанализируем ситуацию на рынке. На данный момент многие популярные приложения написаны на Electron (Slack, Skype, Discord, VSCode, Atom, Postman, Insomnia и т.д.). Многие из них являются стандартами в своей сфере или стремительно завоевывают сердца пользователей (как, например, те же VSCode и Insomnia). Люди просто используют инструменты, которые хорошо решают их повседневные задачи, невзирая на некоторые побочные эффекты. С другой стороны, компьютеры становятся все мощнее (как минимум, рост RAM не прекратился), и все меньше приходится слышать отзывы недовольных клиентов, что «ваш хром съел всю мою память». Резюмируя, мы считаем, что повышенное потребление оперативной памяти не будет играть большой роли в случае, если продукт будет действительно хорош в своей сфере.
Плюсы же данной технологии очевидны:
В итоге, мы остановились на Electron как на основном инструменте для разработки нашего проекта. Автоматически, в качестве языка для разработки приложения мы выбрали TypeScript.


























