• Регистрация
hex oct bin
hex oct bin +43.63
н/д
  • Написать
  • Подписаться

MATLAB Application Designer

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

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

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

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

 

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

 

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

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

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

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

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

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

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

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

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

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

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

Выводы. 

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

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

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

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

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

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

 

 

 

Теги

      06.02.2021

      Комментарии