• Регистрация
Хасбулат Нурмагомедов
Хасбулат Нурмагомедов +43.63
н/д

MATLAB Application Designer

06.02.2021

На форуме частенько всплывал вопрос про MATLAB Application Designer. Хотелось бы внести и свою скромную лепту в обсуждение этого вопроса. Поговорим о его преимуществах, недостатках и сравним его с другим фреймворком.

Итак, начнем с самого главного: MATLAB я пользуюсь с удовольствием, в том числе и для личных нужд. И вот мне понадобилось написать пару скриптов, которые решают уравнение Менделеева-Клапейрона, а также строят пару графиков - изобару и изотерму, если быть конкретным. Дело 15-20 минут и готово - все решено и графики построены. Однако, каждый раз запускать MATLAB и менять значения переменных в шапке скрипта занятие утомительное, тут нам на помощь приходят Application Designer и Application Compiller. Если коротко ,первый - это среда разработки, второй - компилятор под различные платформы. Соответственно, первый идет в базовом MATLAB, второй докупается отдельно. В отличие от Guide это уже полноценная среда разработки.

Цель данной статьи - обсудить ключевые моменты разработки в App Designer и фреймворке Kivy, в чем-то сравнить их и попытаться сделать какие-либо выводы. Как пользоваться тем или иным инструментом в статье не будет обсуждаться, но будут приведены ссылки на обучающие материалы. 

1. Наличие IDE. Очевидно, что тут выигрывает MATLAB, у него есть хорошая IDE для разработки приложений, можно перетаскивать компоненты мышкой и получать скелет кода в другом окне.

 

Красиво, удобно, как в принципе и в аналогичных IDE (Qt, MSVS), opensource фреймворк отвечает в своем стиле: файл разметки, файл с кодом, терминал... Если есть привычка, то вполне себе можно жить.

 

Однако, есть еще и песочница, где можно поиграть с виджетами. Но до того, что есть в MATLAB все равно далековато.

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

3. Кроссплатформенность. Похвалили, настало время и камень в огород кинуть. С чего это вдруг я заговорил про Kivy фреймворк? А с того, что свое приложение я захотел скомпилировать под Андроид... И вот тут-то я и наткнулся на то, что скомпилировать приложение под Андроид не получится. Да, по ссылке предлагается воспользоваться MATLAB Coder, однако, я считаю, что это не выход и требует дополнительных расходов на приобретение того самого кодера. Windows, Linux, Web без проблем, а вот под мобильные платформы пока не получится сделать приложение, хотя MW не стоит на месте и может в следующем релизе они добавят такую возможность, тогда обязательно про это поговорим.

Вот пример запуска Kivy: вводим команды и, если все правильно настроено, ваше приложение запустится на подключенном телефоне. Под "все настроено" я подразумеваю достаточно длинную последовательность действий.

4. Идеология разработки. Тут все примерно одинаково. Есть объект - наблюдатель, через который организовывается взаимодействие виджетов и модулей приложения между собой. Похожая структура почти у всех фреймворков и обсуждать тут наверное нечего.

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

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

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

6. Экосистема. Оба фреймворка являются частью больших программных "экосистем", т.к. один входит в систему MW, а другой использует python, что тоже открывает широкие возможности интеграции. Однако, в MATLAB все делается в разы проще - нужно FFT? Берешь и пользуешься. Все интегрируется в приложение без проблем.

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

7. Порог вхождения. Сами языки, на которых стоят фреймворки, мы в расчет не берем, курсов полно и по одному, и по другому. Однако, чтобы начать что-то делать в App Designer, нужно просто его запустить, перетянуть мышкой виджет и начать что-нибудь писать, например, цвет менять с красного на зеленый. С Kivy вам нужно более-менее понимать, чего вы хотите от жизни, почему именно этот фреймворк вы выбрали и т.д. В общем, потребуется приложить немного усилий, что поднимает порог вхождения.

Выводы. 

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

Во-первых, нужно понимать, что MATLAB - это огромная экосистема, в которой можно решать задачи от рассчета скорости размножения бактерий до моделирования аэродинамических характеристик космических кораблей. И Application Designer во всей этой системе - маленькая крупинка. В первую очередь его задача - дать вам возможность сделать красивый и удобный интерфейс к своим алгоритмам и моделям, которые были разработаны в MATLAB или Simulink. Предложенный инструмент для решения этой задачи очень хорош и даже позволяет создавать вполне себе самостоятельные приложения с адекватным интерфейсом.

Во-вторых, этот инструмент посталяется бесплатно вместе с базовым MATLAB, и многие даже не знают, что он у них есть.

Что касается Kivy, то это прекрасная поделка энтузиастов, которая позволяет делать неплохие графические приложения в том числе и под мобильные платформы. Собственно говоря, именно из-за этого и зашла речь про него. Да, Android Studio в разы мощнее, но с этим фреймворком я по-быстрому переписал алгоритм из MATLAB и решил свою задачу. Вот такая история.

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

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

 

 

 

Теги

      06.02.2021

      Комментарии