DroidScript – простой и функциональный инструмент для разработки мобильных приложений под Android


Некоторое время назад мне была поставлена следующая задача: разработать прототип приложения под 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делать что-то серьёзное? Безусловно! Как известно, и с помощью простых инструментов можно создавать впечатляющие вещи!

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


Поделиться публикацией
Ой, у вас баннер убежал!

Ну. И что?
Реклама
Комментарии 22
  • +5

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

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

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

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

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

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


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

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

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

            • 0
              Трэш, это когда несколько штук баксов отдаёшь за Delphi, пишешь на нём под Android, а работает хуже, чем сделанное в App Inventor (знакомый рассказывал) или когда на свои покупаешь Лего для кружка робототехники.
              • 0
                зачем писать под Android на Delphi, когда есть поддерживаемая разработчиками Andoid Studio?) Работает хуже — потому что руки растут не оттуда, либо Delphi не совсем заточена под данную платформу (не проверял лично, не буду утверждать на 100%)
          • –1
            Потому что тот разработчик много лет и весьма успешно работает на Delphi. Смысл ему изучать Java? После Pascal вникать в Java не каждый рискнёт. Вот он и попробовал Delphi под Android для решения сопутствующей задачи. Delphi, пока, слаба под Android, но думаю, что за уплаченные за неё деньги ожидается больше, чем за плагины ценой в пару тысяч рублей.
            • 0
              Это как 1с под андроид, вроде и есть, вроде и рабочие приложения есть, но разработка такая боль…
              • 0
                Смысл ему изучать Java?

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

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

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

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

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

                      1) Стоимость плагина по выгрузке в APK (без подробного описания как и под какую версию андроида происходит сборка).
                      2) Отсутствие документации на достаточно широкий набор методов.
                      • 0
                        1) На странице загрузки сборщика ApkBuilder Plugin в Google Play дана информация о поддержке версии от 3.0 и выше. На текущий момент его стоимость 890 руб., но за 99 руб. в месяц можно оформить Premium-подписку, в которую входит бесплатное использование всех плагинов на период подписки + дополнительные бонусы.
                        2) Над официальной документацией силами сообщества сейчас ведётся работа, но лично мне больше нравится справка на droidscript.ru. Есть ещё Droidscript WiKi, но не скажу, что там информация активно обновляется, хотя есть что посмотреть. Также можно задать вопрос на официальном форуме. Стив (Steve Garman), Алекс (alex.symbroson) и другие активные форумчане помогут, да и сам разработчик Давид (Dave Smart) может подключиться по более или менее серьёзным вопросам.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое