Создание приложений — это огромный проект. Одной из основных частей, влияющих на проект, будет используемая структура. Я хочу уладить это однажды полностью.

Введение

Так что для тех из вас, кто следил за мной какое-то время, вы могли заметить, что я не мог загрузить какой-либо контент ни на YouTube, ни на среду. Вы бы также заметили, что я не писал статей о разработке приложений. Ну вот и причина. Я стал более интенсивно изучать приложения.Теперь я научился разрабатывать приложения с использованием UWP, Windows Forms и WPF. Но моя главная цель сегодня — изучить три совершенно разных фреймворка с нуля……

Итак… Жертвы?

Ага. Не ждите, что я попробую все. Чтобы эксперимент был максимально задокументирован, я рассмотрю ограниченное количество фреймворков.

  • электрон js — javascript
  • Флаттер — Дартс
  • pyqt — питон
  • qt — C++

Если вы хотели большего, извините. Я очень устала только от них. Видите ли, к концу эксперимента мне нужно подробно изучить электрон, флаттер и qt. Это не просто создать простое приложение с помощью кнопки.

Некоторые упоминания

То, что я хотел бы, я мог бы также осветить

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

Что я знаю и чего не знаю о разработке приложений

Ну… Честно говоря, я не думаю, что я новичок. Я разрабатывал приложения и знаю, как они работают. Кстати, раньше я использовал react.js. Мне нравится, как он интегрирован с HTML, и его можно эффективно использовать, если вы хорошо его знаете.

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

Как Ты можешь верить Мне?

Я имею в виду... Конечно, это сомнение возникло бы у многих людей. Что, если я просто притворяюсь? Что, если я ничего не знаю и просто пытаюсь что-то выдумать? Я это понимаю. Для этого я собираюсь выложить несколько видеороликов YouTube на свой канал YouTube FadinGeek, так что…… скоро выйдут основные видеоролики о разработке приложений, просто чтобы показать на камеру, что я

Начиная

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

Прежде всего нужно решить, какую IDE или текстовый редактор я буду использовать? Ну, для этого вам нужно понять мой рабочий процесс. Обычно я никогда не использую IDE. Я устанавливаю необходимое расширение и необходимый компилятор или отладчик в самом редакторе, и это сделает мою работу. Для этого я буду использовать vscode.

Сколько времени это заняло? Честно говоря, я никогда не ожидал, что это будет так долго. Это заняло ОЧЕНЬ МНОГО времени.Я имею в виду около 3–4 месяцев! Да… большую часть времени ушло на пролистывание документации и просмотр видео.

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

Как я узнал и какие источники использовал? Ну, я не использовал ничего, за что можно было бы платить как таковое. Видео на YouTube и официальная документация были достаточно хороши. Подробнее об этом я расскажу в отдельном разделе.

Классификация, планирование и документирование моего путешествия

Вот так бы я учился. Я собираюсь идти один за другим, фреймворк за фреймворком и описывать каждый свой опыт, препятствия и так далее… Я делаю это, записывая свой рабочий стол (буквально записывая с помощью obs-studio), а затем просматривая видео и написание того, что я считаю необходимым для этой статьи. Да… Это требует много времени и усилий, так как я не просто изучаю это, я также тщательно документирую это и обдумываю каждое слово, которое нужно вставить сюда…

Говоря о том, как я буду учиться,

  • Посмотрите несколько больших полных руководств (те, что на YouTube, длятся около 5 часов).
  • Посмотрите несколько небольших видеороликов, чтобы получить более четкие руководства.
  • Кратко ознакомьтесь с документацией. (Я имею в виду… документы слишком длинные, чтобы их можно было прочитать полностью)
  • Создайте проект и начните с некоторых практических занятий
  • просмотрите документацию или видео, если необходимо, еще раз.
  • Создайте простое приложение

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

Установка и создание проекта

Электрон js

Электрон — это фреймворк javascript со встроенными в него HTML и CSS, который позволяет вам разрабатывать веб-сайт, а фреймворк встраивает его в окно. Итак, если вы разбираетесь в веб-разработке, вы почти знакомы с электроном.

установка электронов не составила труда(спасибо Winget). Все, что мне нужно было сказать, это «Winget install OpenJS.NodeJS» в терминале, и все. Чтобы создать проект, мне нужно было перейти в папку и сказать «npx create-electron-app ProjectName». Теперь я был готов начать свой электронный проект.

Флаттер

flutter — это фреймворк на основе dart, основанный на продуктах Google и JetBrains, таких как chrome и android studio. Хотя вы можете разрабатывать настольные приложения в нем, он в основном популярен для мобильных приложений.

Здесь многое нужно установить, все вручную. Не было ничего похожего на установщик или прямую установку через winget. Мне пришлось скачать его, вставить в папку src, добавить переменные среды и, наконец, исправить проблемы и заставить флаттер работать. ТАКЖЕ мне пришлось установить Android Studio, Google Chrome (хотя у меня было преимущество), принять лицензии, а затем установить эмулятор (если вы разрабатываете мобильное приложение)

После этого скажите «flutter create ProjectName» в терминале, чтобы создать проект, и… вы можете начать работу с ним в редакторе. Небольшое замечание: я буду использовать Android Studio вместо vscode для флаттера.

PyQt

PyQt — это… ну… фреймворк Python. Он позволяет использовать специальный программный инструмент под названием qt Designer,простой инструмент перетаскивания, используемый для разработкимакета приложения.

Установка pyqt, вероятно, проста. Продолжайте и установите python (pip), а затем просто скажите «pip install PyQt5» в ​​терминале Windows. Это только установит фреймворк. Теперь время для дизайнерского программного обеспечения. введите «pip install pyqt5-tools» в терминале, и это должно установить некоторые дополнительные инструменты вместе с необходимым программным обеспечением с графическим интерфейсом.

QT — C++

Это фреймворк на основе C++, созданный теми же людьми, которые создали pyqt (как вы могли догадаться). Даже это, как и pyqt, имеет дизайнерское программное обеспечение, которое можно использовать для создания простого макета для проектов qt. Он очень похож на pyqt. От установки до запуска. Единственная разница, которую я смог найти, это установка языка и некоторые различия во внешнем виде программного обеспечения с графическим интерфейсом.

Начало моего путешествия

Просмотр видео

Просмотр роликов был… ну… скажем, остыл. Все, что я должен был сделать, чтобы слушать и писать, если важно. Говоря о видео, которые я смотрю, все это просто ищется на YouTube. Я свяжу их вверх-вниз.

Электрон js —Начало работы с электроном js, быстрый поиск на YouTube привел меня к видео «Создание электронного приложения менее чем за 60 минут» с канала YouTube Traversy media. Этого видео было достаточно, чтобы узнать об электронной js. Я уже был довольно хорошо знаком с HTML, CSS и JavaScript и использовал такие фреймворки, как angular и так далее. Даже тогда, просто чтобы ничего не пропустить, я посмотрел все видео и еще одно видео с канала Fireship, в котором говорится ««Создать настольное приложение с помощью Electron… создать в нем приложение. Просмотр всех видео занял у меня примерно полтора дня.

Флаттер.Начать с флаттера было немного сложно. Во-первых, я не изучал дартс, так что теперь мне нужно полностью выучить язык, прежде чем начать… Я начал с видео на YouTube «Программирование дартс за 4 часа | Полный учебник для начинающих» сделал канал Майка Дейна, и он дал мне довольно хорошие знания о дартс. Теперь для флаттера я выбрал другое видео на YouTube «Flutter Crash Course for Beginners 2021 — Build a Flutter App with Google Flutter & Dart — YouTube» с канала Academind. Это дало мне большую часть того, что я хотел. На это ушло около 3 дней, чтобы посмотреть, изучить и убедиться в этом.

PyQt.Чтобы начать работу с ним, мне просто нужно узнать, как работает программное обеспечение для проектирования qt, а также как начать работу с pyqt с помощью python. Я довольно хорошо знаком с Python, поэтому мне не пришлось учить язык. Все, что мне нужно было изучить, это сам фреймворк. Опять же, я изучил фреймворк и программное обеспечение дизайнера, используя некоторые видео, такие как PyQt5 FULL Modern Gui Tutorial #1 — Экран приветствия [для начинающих] — YouTube» с канала Code With с Hala, «Полный курс PyQt5 за 7 часов | Курс Python GUI — YouTube от канала Geeks Coders. Это заняло у меня около 2 дней.

Qt(c++) — это было легко, так как я изучил pyqt. Итак, после установки мне легко понять базовую компоновку создателя qt, а также даже C++, поскольку он очень похож на pyqt. Хотя здесь, в c++, у нас есть встроенный текстовый редактор. Я использовал видео Qt Tutorial: C++ Notepad App — YouTube от канала Derek Banas и Полный курс разработки Qt5 C++ GUI для начинающих | C++ GUI — YouTube» канала Parwiz Forogh, чтобы достаточно изучить qt. Он написан на C++ и имеет улучшенный встроенный редактор. Это заняло у меня еще один день.

Документация

Посмотреть документацию не составило особого труда. Все, что мне нужно было сделать, это просто прочитать важные из них. Это НЕ читать все (я не хочу тратить на это время).

Electron js — если бы мне нужно было сказать, какую документацию легче всего изучить, то это, вероятно, электронная js.В ней есть небольшие, но важные примеры, на которые стоит обратить внимание, контрольные списки разработчиков, чтобы понять, где я нахожусь. в изучении электронной js и других разделов, таких как ресурсы, тестирование и отладка и т. д. Это довольно удобно для начинающих и легко пройти. Конечно, поскольку это открытый исходный код, у нас также есть отдельный раздел, в котором говорится о добавлении вашего кода в исходный код электрона.

Flutter — мне показалось, что flutter немного неясен (может быть, потому, что я не знаком с dart и мне пришлось смотреть документацию по dart отдельно). Но у него были видео на YouTube, систематизированная документация, и им было интересно пользоваться. . Да… опыт был коротким и простым. Мне потребовался еще день, чтобы просмотреть документы и прочитать их. (конечно, к концу дня я уже устал читать и… вы понимаете, о чем я)

PyQt(python)/Qt(c++) –документация по PyQt была длинной, скучной, но информативной.И, как и в случае с флаттером, здесь также было несколько видеороликов средней продолжительностью около 20 минут. strong> Опыт был смесью изнурительного выполнения одних и тех же действий в течение дня и выхода, поскольку, как только эта изнурительная часть была выполнена, я мог теперь приступить к работе с некоторыми реальными приложениями. Это было просто, поскольку у меня было достаточно знаний о питоне, в отличие от флаттера с дротиком. Должен сказать… это было очень похоже на qt c++, так как оно было разработано той же компанией. Это сделало документацию, видео и все остальное похожим, включая сам фреймворк. Единственная разница заключается в используемом языке.

Разработка приложения

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

Electron.js — фреймворк с наибольшим потенциалом

Electron.js был самым простым. Я имею в виду, что даже если этим займется человек, не имеющий опыта разработки приложений, он или она легко поймут это… Хорошо… При условии, что этот человек знает HTML. Если вы знаете, как работает HTML, вы можете создать приложение… без логики, а если вы знаете javascript вместе с HTML, вы можете создать любое приложение с логикой. Если вы знаете CSS вместе с этим, поздравляю! Вы не только веб-разработчик, но и разработчик приложений благодаря электрону.

Фреймворк был гладким, простым в использовании и… в отличие от некоторых других фреймворков на основе nodejs, легким. Некоторые очевидные вещи, которые нужно здесь изучить (если вы уже знаете HTML, CSS и js), изучают некоторые библиотеки, такие как шаблон меню, который делает вкладки за вас…Ну, вы, конечно, должны указать имена вкладок и логику, используя список.

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

Flutter — лучший вариант для мобильных телефонов, но и для настольных компьютеров тоже неплохо…

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

Кое-что, что также помогает мне, когда дело доходит до флаттера, заключается в том, что он заботится о внешнем виде, он гарантирует, что у него есть хорошая постоянная тема. У него также есть пакет тем ios (Cupertino), который поможет вам иметь согласованную тему для iPhone или других операционных систем Apple, что избавило меня от некоторой работы по написанию сценариев CSS или чему-то еще.

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

PyQt (python)/Qt (c++) — рай для проектирования перед кодированием

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

Вы начинаете с настройки простого макета, а затем работаете над ним, перетаскивая все необходимое (ярлыки, кнопки и т. д.). Затем вы можете сохранить его как файл .ui, который у вас есть. для преобразования позже в файл .py python с помощью команды терминала pyuic(5). после преобразования и открытия в редакторе вы получаете этот предварительно закодированный файл Python со всеми скучными/базовыми вещами, сделанными за вас. Вам просто нужно добавить немного логики и закодировать некоторые элементы, которые вам необходимы. Кроме того, через некоторое время я понял, что мы можем стилизовать элемент двумя способами.

  • Используя ванильный скрипт CSS или встраивая CSS
  • используя библиотеки Python из фреймворка qt

Они оба были потрясающими, хотя я обнаружил, что стили CSS намного проще. Да ладно… Я уже давно привык к CSS. Может быть и наоборот, если вы привыкли к Python больше, чем к CSS. Кроме того, добавление логики было простым и легким. То же самое было и в С++. Ничего не изменилось, кроме синтаксиса языка (я имею в виду… конечно, есть «некоторые» изменения, но они слишком похожи).

Недостаток в том, что его относительно сложно изучить по сравнению с флаттером или электроном. СТОП… Не поймите меня неправильно, это очень просто и легко, но… флаттер и электрон просто выигрывают, когда дело доходит до легкости при кодировании (по крайней мере, для меня). Итак, это зависит.

Вывод — что лучше (для меня)?

Я имею в виду, что это был трудный вызов.У нас есть один фреймворк, который очень прост и использует HTML, другой делает за вас все темы и стили, а третий дает вам интерфейс перетаскивания, делающий ваш жизнь в 100 раз проще! Давай! Это жесткое соревнование, которое не может быть решено такими тупицами, как я… Итак, что я сделал? Ну, я решил ничего не брать…

Электрон лучше всего подходит для приложений, требующих много динамической работы, поэтому я буду использовать электрон в этот момент. Флаттер чаще всего используется для мобильных телефонов, поэтому я буду использовать его там. И приложения QT лучше всего подходят для универсального приложения, поэтому я использую его в этот момент…… Не спрашивайте меня, какой язык я бы использовал. Я не знаю.

Если вам интересны видео, которые я снимаю, обязательно подпишитесь на мой канал YouTube FadinGeek, где я публикую больше видео о технологиях/разработке/дизайне/редактировании. С учетом сказанного, мы, наконец, подошли к концу этой статьи. Надеюсь, вам понравилось,

Ты восхитителен :)

ФадинГик