От разработки к производству

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

Итак, вы по какой-то причине планировали написать настольное приложение и не хотите изучать C ++ / Java ради написания собственного приложения. Что ж, вам повезло, потому что Atom Shell GitHub, также известное как Electron, здесь для вас.

Написание приложения с помощью Electron дает три основных преимущества:

  • Вы можете повторно использовать свои знания HTML и CSS, чтобы в кратчайшие сроки написать часть пользовательского интерфейса.
  • Вы можете повторно использовать свои знания JavaScript для написания бизнес-логики приложения.
  • Оно работает…

Тогда о чем этот блог?

Почему?

Прежде чем мы даже погрузимся в то, зачем использовать X и зачем использовать Y, давайте попробуем ответить на очень простой вопрос: почему мне пришлось потратить огромное количество времени на попытки экспериментировать с различными комбинациями и параметрами конфигурации, потому что каждый блог в Интернете просто писал «Как начать», никто не говорил о том, как завершить сборку. И это то, что так раздражало во всех этих статьях. Любой дурак может понять, с чего начать, настоящая рутина начинается, когда вы переходите к деталям приложения. Но я надеюсь, что своим взглядом на эту тему смогу достичь максимальной скорости.

Мы рассмотрим кодирование, структуру, архитектуру и распространение в следующей статье, и, чтобы вы знали, мы уже используя этот конвейер сборки и технический стек на https://github.com/fossasia/pslab-desktop.

Технический стек - Рассуждения

Теперь поговорим о том, зачем нам React или Python в приложении Electron.

1. Реагировать

Совершенно нормально использовать все минимальное, простой старый HTML, CSS и JS отлично подойдут для вашего пользовательского интерфейса, но как долго? React открывает так много возможностей и делает логику кода естественной через очень хорошо разработанный язык пользовательского интерфейса. Система управления состоянием также великолепна, и самое важное, что определенно облегчит вашу жизнь, - это методы жизненного цикла, предлагаемые компонентами класса React. Использование react также позволяет вам воспользоваться преимуществами хорошо известных библиотек, ориентированных на React, таких как Material UI React и Styled-Components. Эти вещи меняют правила игры и могут превратить ваш пользовательский интерфейс из мусора в абсолютную жемчужину, которая понравится вашим пользователям.

О, кстати, React UI работает быстро ...

Но это не самая лучшая часть, мы не будем настраивать React самостоятельно, а позволим любимой публике CRA сделать это за нас. CRA (Create-React-App) не только абстрагирует все файлы конфигурации веб-пакета, но также будет следить за тем, чтобы ваши зависимости реакции оставались обновленными. Это поможет поддерживать ваш код в актуальном состоянии в долгосрочной перспективе.

2. Python

Задача, которую выполняет python в нашем случае, была неизбежна и не могла быть выполнена с помощью JavaScript, потому что у нас не было для этого библиотек. У нас не было времени писать все заново для JS, поэтому мы придумали способ использовать python в электронном приложении. Если вы можете делать все с помощью JS и у вас есть для этого необходимые библиотеки, то это вам не нужно. Например, если вам нужно предсказать какое-то значение, используя модель, которую вы обучили с помощью TensorFlow, то это будет один из таких вариантов использования.

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

3. Электрон

Короче говоря, это дает вам платформу для использования двух вышеупомянутых. Это становится более интересным, когда мы углубляемся в детали того, как работает электрон. Но пока, позвольте нам просто сказать, он предоставит вам пространство, на котором response будет отображать пользовательский интерфейс, он предоставит средства для вашего пользовательского интерфейса, чтобы общаться с кодом Python, он также предоставит API-интерфейсы для взаимодействия с собственными функциями системы, такими как файловая система, уведомления и т. д.

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

Следующая статья: