Некоторое время назад мне была поставлена следующая задача: разработать прототип приложения под Android для беспроводной связи с Arduino в реальном времени. Погружаться ради этого с головой в Java, Qt или C# было непрактично, поэтому решил искать готовое решение на скриптовом движке. PhoneGap? Интересно, но не для работы с Bluetooth. Что-то из мобильных сред разработки? Возможно, но хотелось работать в привычной десктопной среде, а не на планшете с небольшим экраном. Вскоре желаемое нашлось – мобильная среда разработки DroidScript с возможностью подключения к ней из браузерной WiFi IDE, которую можно установить на Windows, Mac и Linux.

Что такое DroidScript?


DroidScript представляет собой приложение Android, которое включает в себя среду разработки и выполнения программного кода на Android устройстве. Он позволяет создавать приложения двух типов – JavaScript (с нативным интерфейсом) и HTML (гибридные).

Для создания нативного UI и доступа к программно-аппаратным ресурсам Android, JavaScript используется совместно с API DroidScript, который позволяет работать с WebView, SQLite, email, SMS, WebGL, сенсорами, Web-серверами, сокетами, спрайтовой анимацией и многим другим, а также осуществлять взаимодействие с внешними устройствами посредством Bluetooth, WiFi, USB и LAN.

Впечатляющая функциональность ”из коробки” – это одна из особенностей DroidScript. Другая особенность – простота его использования. В чём она состоит? Прежде всего, в кодировании. Ниже дан пример кода простого приложения:

// функция инициализации
function OnStart()
{
  // создаём линейный компоновщик во всю область экрана
  var lay = app.CreateLayout( "linear", "FillXY" ); 

  // создаём кнопку с шириной 30% и высотой 10% относительно размеров экрана
  var btn = app.CreateButton( "Кнопка", 0.3, 0.1 );

  // задаём размер надписи на кнопке
  btn.SetTextSize( 18 );

  // задаём обработчик нажатия на кнопку
  btn.SetOnTouch( function(){

    app.ShowPopup( "Привет, Андроид!" ); // всплывающее сообщение
    app.Vibrate( "0,100,30,100,50,300" ); // вибросигнал
  });

  // добавляем кнопку компоновщику
  lay.AddChild( btn );

  // добавляем компоновку объекту приложения для её отображения на экране
  app.AddLayout( lay );
}

Всё кодируется на JavaScript и API DroidScript без использования xml-разметки, подключения библиотек, создания классов и др.

В DroidScript нет визуальных средств проектирования интерфейса, как в Android Studio, AIDE или MIT App Inventor, но в нём можно реализовать LivePreview на Android для ещё более быстрой разработки интерактивных прототипов, а также расширить функциональность при помощи плагинов, написанных на JavaScript или Java.

Простота работы с DroidScript заключается не только в кодировании. Он изначально разрабатывался так, чтобы дать начинающим разработчикам под Android просто и быстро погрузиться в этот процесс.

Установка и настройка


В случае отсутствия под рукой телефона или планшета с операционной системой Android можно воспользоваться её эмулятором, например, BlueStacks или Nox APP Player.

Устанавливаем DroidScript из Google Play и открываем его. На экране появляется интерфейс с единственным приложением Hello World в области приложений.


Короткое касание пиктограммы приложения приведёт к его запуску. Для редактирования кода нужно выполнить долгое касание пиктограммы и выбрать опцию Edit в появившемся списке действий.

Панель управления включает в себя кнопки для доступа к документации, соединения с WiFi IDE, общим командам и примерам.

Настройка удалённой среды разработки WiFi IDE происходит так:

  1. Запускаем DroidScript и переходим в настройки по команде …/Settings для изменения пароля доступа или его сброса.
  2. В панели управления нажимаем кнопку со стрелкой вверх. Появляется диалог с адресом DroidScript.
  3. На настольном компьютере или ноутбуке открываем браузер и вводим полученный в предыдущем пункте адрес. Появляется диалог запроса пароля, если он не был сброшен. Вводим пароль, и после успешного получения доступа на экране отобразится интерфейс среды разработки.


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

В WiFi IDE заложена возможность расширения его функциональности за счёт добавления вкладок. Вкладка “Espruino” является примером данного расширения.

В самом простом случае приложение может состоять из одного файла с расширением js, в котором код хранится в исходном виде. Для обмена проектом в исходном коде его можно запаковать в spk-архив. Также возможна сборка проекта в apk-файл, но для этого необходимо купить и установить плагин ApkBuilder.

Когда впервые видишь столь простые интерфейсы DroidScript и WiFi IDE, после работы в десктопной или web-среде, то возникает логичный вопрос, а можно ли с помощью этого cделать что-то серьёзное? Безусловно! Как известно, и с помощью простых инструментов можно создавать впечатляющие вещи!

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


Поделиться с друзьями
-->

Комментарии (20)


  1. HeaTTheatR
    13.04.2017 19:49
    +5

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


    1. actech
      13.04.2017 22:32

      О нативности речь идёт хотя бы на том основании, что в DroidScript посредством Java-плагинов можно напрямую обращаться к API Android и выводить на экран виджеты, которые разработчики исходно не включили в базовую функциональность, что проверить несложно. Помимо нативных кнопок можно, конечно, создавать и кастомные. Иначе будет скучно.

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

      Если приложение писать для себя, то можно обойтись и без apk. Если требуется написать коммерческое приложение, то включаем стоимость плагинов на сторону заказчика.


      1. HeaTTheatR
        13.04.2017 23:05

        Ну, про то, какие возможности у DroidScript я знаю не по наслышке — читал на форумах боль и слезы от того, что приходится становись приложение на костыли, ибо то это не работает, то то криво реализовано. Проект сырой и на данном этапе напоминает mShell времен Symbian!


        1. actech
          14.04.2017 00:39

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


  1. savinilya34
    13.04.2017 21:30

    Извиняюсь, но, что это за трэш?


    1. Zenitchik
      13.04.2017 21:35

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


      1. Miller777
        14.04.2017 08:25

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


        AIDE, кмк, для этого удобнее.


        1. actech
          14.04.2017 08:54

          В AIDE я пробовал работать с использованием аппаратной клавиатуры и мыши на большом планшете. Удобнее, конечно, чем набивать текст с экрана, но устал править код после очередного использования привычного клавиатурного сочетания. Если же аппаратной клавиатуры нет, то при прочих равных удобнее там, где меньше кода нужно набивать. И во многих случаях это скрипты.


        1. Zenitchik
          14.04.2017 14:36
          +1

          Я JavaScript-ер. Ради одноразовых программок учить ещё один язык — это явно не рационально.


    1. sen77
      13.04.2017 22:07

      Такой же треш как и ардуино в сегменте микросхем.
      Для прототипирования — самое оно. А также снижает порог вхождения для энтузиастов.


      1. actech
        13.04.2017 22:44

        Трэш, это когда несколько штук баксов отдаёшь за Delphi, пишешь на нём под Android, а работает хуже, чем сделанное в App Inventor (знакомый рассказывал) или когда на свои покупаешь Лего для кружка робототехники.


        1. Kenya
          14.04.2017 00:02

          зачем писать под Android на Delphi, когда есть поддерживаемая разработчиками Andoid Studio?) Работает хуже — потому что руки растут не оттуда, либо Delphi не совсем заточена под данную платформу (не проверял лично, не буду утверждать на 100%)


  1. actech
    14.04.2017 00:21
    -1

    Потому что тот разработчик много лет и весьма успешно работает на Delphi. Смысл ему изучать Java? После Pascal вникать в Java не каждый рискнёт. Вот он и попробовал Delphi под Android для решения сопутствующей задачи. Delphi, пока, слаба под Android, но думаю, что за уплаченные за неё деньги ожидается больше, чем за плагины ценой в пару тысяч рублей.


    1. Neikist
      14.04.2017 09:21

      Это как 1с под андроид, вроде и есть, вроде и рабочие приложения есть, но разработка такая боль…


    1. domix32
      14.04.2017 10:41

      Смысл ему изучать Java?

      Эм… Научиться делать более производительные приложения на ява, заодно и скилл дополнительный получить? Мобильная разработка так или иначе будет иметь нюансы на разных уровнях и в частности на уровне языка. Не вижу смысла стагнировать на одном языке, если можно сделать то же самое лучше на другом и с меньшими трудозатратами. Тем более гугл и SO определенно будут иметь больше мануалов/туториалов/решений проблем для Java нежели для того же Delphi.


  1. Santiago26
    14.04.2017 00:36

    По сути, DroidScript позволяет разработать не приложение, а приложение в приложении, плагин. Экспорт в APK предлагается только за деньги? Удивительно, но в самом приложении я упоминание этой функции вообще не нашёл.
    Непонятно, как проект собирается выживать, при наличии PhoneGap etc.


    1. actech
      14.04.2017 01:06

      Да, до кризиса цена за сборщик APK была ощутимо приятнее. В самом приложении функция вызывается так: запускаем DroidScript и долго жмём на пиктограмму приложения. Всплывает список с действиями. Внизу выбираем Build APK.

      Поэтому и не кидаюсь на всё новое. Сегодня анонсируют фреймворк, через год о нём и не вспоминают, а скрипты вечны, как и проверенные временем языки программирования.

      PhoneGap хорош, но и в нём не всё можно сделать быстро. Смысл часами вникать в поиск, установку и настройку расширений и плагинов, а потом ещё и на форумах зависать, разбираясь с этим, если есть готовое на нескольких десятках строк?


    1. Zenitchik
      14.04.2017 02:26

      Это хорошее нишевое решение для программ, которым не требуется экспорт в APK.


  1. iKest
    14.04.2017 08:56

    Если нужно что действительно простое, кросс-платформенное и «из коробки», то я бы посоветовал Corona SDK. Порог вхождения мизерный (lua). Дефолтный API покрывает большинство потребностей, а в связи с переводом Энтепрйз версии на бесплатную основу, скоро появится ещё куча наивных плагинов. Сам движек достаточно быстрый и компактный (примерно 5mb к проекту). Новые сборки выходят регулярно, сообщество большое.


    1. actech
      14.04.2017 09:25

      Можно и Corona. Скриптовые движки вообще радуют. Но, если в мобильную разработку идти из web (или совмещать), особенно после Frontend, то роднее как-то JavaScript, HTML и CSS.