1 октября 2012 в 13:34

Среда веб-разработки на Android из песочницы

Прелюдия


Здравствуйте, уважаемые хабраюзеры.

На написание данной статьи меня сподвиг пост хабровчанина ilichmeДесктоп – давай, до свидания!. Поэтому, сегодня более детально поговорим о том есть ли жизнь на Марсе насколько возможно и удобно писать код на устройстве с Android на борту. Сразу оговорюсь — обсуждать буду только планшеты, так как о прелестях кодирования на смартфоне и так все ясно. Хоть и речь не о написании кода, а об организации рабочего пространства, которое будет максимально удобным для разработки в условиях, где нет любимых IDE и т.д.

В свое время, когда покупал планшет, одним из критериев выбора было наличие удобной клавиатуры, так как я тогда знал, зачем покупаю сей девайс. А так как выбор в данном секторе небольшой, то остановился на ASUS Transformer. Это я к тому, что если у вас есть реальная необходимость писать код «на коленке», в условиях, которые не способствуют этому — значит статья для вас. Хотя она совсем не претендует на подробное пособие и решение ваших проблем (так как запросы у всех разные). А если уже говорить о запросах — эта стать скорее всего повод развить тему более подробно и поделиться опытом. Я уверен, что где-то существует еще не один вариант решения таких задач, под разные уровни работы.

Что будем обсуждать?


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

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

Техническое задание


Теперь, наконец-то, перейду к описанию непосредственно среды разработки. Оговорюсь, что именно и для выполнения каких задач я искал:
  • Удобный редактор кода, с подсветкой синтаксиса, с возможностью просмотра результата в браузере, функциями undo\redo, с выбором кодировки и т.д.
  • Локальный веб-сервер (имеется в виду полноценный — с PHP, MySQL). Конечно, можно отдельно поставить PHP как? и руками прикрутить MySQL, но я хотел все и сразу
  • Так же хотелось иметь встроенный ftp для работы с удаленным сервером (пока не критично)


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

Что я нашел


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

Редактор кода

Как ни странно, но с выбором редактора кода проблем практически не было. Дело в том, что в PlayMarket'е не так уж и много достойных редакторов (по меркам существующих) — на пальцах одной руки можно пересчитать. Некоторые из них были кратко описаны на Хабре раньше — здесь и вот здесь. Поэтому, после коротких тестов и размышлений, я остановился на WebMaster's HTML Editor — ссылка на PlayMarket. Также есть тема на 4PDA. Всем моим требованиям данная программа отвечает на все 100%, а как бонус даже автозавершение кода есть. Сильно вдаваться в детали не буду, но вот общие моменты:
  • Поддерживаемые форматы: .js .htm .html .css .php .php3 .php4 .php5 .txt and .xml;
  • Подсветка синтаксиса;
  • Встроенные виртуальные клавиши для тэгов и популярных ключевых фраз;
  • Undo/Redo

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




Для тех, кому не понравился данный редактор, как альтернативу, могу посоветовать DroidEdit. Он также существует в двух версиях. Но как по мне, он уступает WebMaster's HTML Editor. Но, это дело вкуса. Все остальные редакторы мне совсем не понравились, так как имеют проблемы или с кодировкой или с работой с большими файлами. А это важно.

FTP-клиент

Для работы с FTP я выбрал программу AndFTP — ссылка на бесплатную версию и на Pro версию. На странице WebMaster's HTML Editor в PlayMarket разработчики редактора сами рекомендуют использовать данный клиент, да и раньше я встречал неплохие отзывы о нем, так что сразу сделал свой выбор. Относительно ftp я не сильно вдавался в детали, так как мне для работы это не критично, хотя иногда нужно что-то подправить «на лету». Возможно, со временем, эта необходимость станет весомой, и я задумаюсь над лучшей оптимизацией.

Программа позволяет сохранять конфигурации соединений (сервер, логин, пароль), а также предоставляет возможности скачивания/закачивания файлов, синхронизации каталога в сети с каталогом на мобильном устройстве, удаления и переименования файлов, изменения прав доступа. Для защиты ваших данных, программа позволяет использовать SSH RSA/DSA ключи. В общем, стандартный набор нормального ftp-клиента, вот только синхронизация папок, поддержка SCP и импорт настроек из файла доступны в ПРО-версии, которая стоит чуть больше 5$.



Локальный веб-сервер

А теперь поговорим о самом интересно — о локальной среде разработки и отладки написанного кода. Согласитесь, без локального веб-сервера вся идея разработки на планшете ничего бы не стоила. И так приходиться терпеть неудобства с ftp, так если бы еще пришлось работать с удаленным веб-сервером, было бы совсем неудобно. Как для меня, так это очень важный момент.

После некоторого времени поисков, я нашел-таки парочку неплохих решений, таких как kWS — Android Web Server или PAW Server for Android, но они меня не впечатлили.

Я уже было согласился их использовать, но неожиданно наткнулся на очень интересный продукт — KSWEB — server + PHP + MySQL и я сразу понял, что это то, что я так долго искал.

KSWEB — это пакет веб разработчика для платформы Android. В его состав входят: веб сервер, язык программирования PHP версии 5.4 и СУБД MySQL версии 5.1. KSWEB дает возможность организовать на вашем Android устройстве платформу для запуска и отладки веб приложений (сайтов). Все, что вам нужно, это установить приложение. В корне памяти устройства создастся папка htdocs, куда необходимо сохранять ваши файлы. Все, как в любом нормальном веб-сервере. После установки, откроется окно управления сервером.


Первым делом, я установил phpMyAdmin (он не установлен по умолчанию). Необходимо кликнуть на соответствующую кнопку в меню, программа спросит, куда устанавливать (путь оставить по умолчанию, так как он должен установиться в папку веб-сервера). Все файлы сервер скачает и распакует самостоятельно. После этого зайти в phpMyAdmin можно будет через панель управления сервером или через браузер, прописав localhost:8080/phpmyadmin. phpMyAdmin полностью функциональный, версии 3.5.2

Для того, чтобы запустить ваш файл, необходимо в панели управления нажать кнопку GO TO. Сразу откроется браузер по умолчанию, в адресной строке уже будет прописан путь к серверу (localhost:8080/), вам же остается только дописать имя файла. С панели управления также можно перегрузить сервер при необходимости. Кнопка Minimize сворачивает сервер в трей, а кнопка Exit закрывает приложение.

Панель настроек имеет такой вид:

Здесь вы можете указать порт, через который будет работать сервер, можете выбрать другую папку для сервера, заставить сразу грузиться в трей не открывая при запуске главное меню. По умолчанию, KSWEB содержит настроенные конфигурационные файлы сервера, PHP и MySQL. Однако, если вы хотите что-то в них изменить, в опциях сервера кликните на пункт «INI Files». Файлы с настройками будут пернесены на SD-карту вашего устройства по адресу "/mnt/sdcard/ksweb/ini/", если она доступна. Повторно кликнув на пункт настроек «INI Files», будут задействованы внутренние файлы настроек.

В Маркете нет возможности купить платную версию, это вы можете сделать через панель опций программы. Лицензия стоит чуть больше 2$ — смешная цена за столь удобное и полезное приложение.

Вот, собственно, и весь необходимый минимум. Конечно, все это субъективно, и я рад буду услышать дополнения и новые решения. Я же, параллельно с личностным ростом и новыми проблемами, буду искать новые пути и средства решения. Может, в конце-концов, и соберу идеальную среду разработки на Android) Спасибо за внимание.
+20
37690
177
Bogdan92 2,5

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

+1
Fesor #
Хм… А зачем? Вот серьезно? Если нужна мобильность — можно курить ультрабук какой (он весит чуть больше килограмма в среднем) и кодить где угодно. Из новых ультрабуков часть идет с сенсорным экраном. Стоимость — выше, но и ресурвов получаете больше.

ИМХО на планшете можно только дебажить, разрабатывать на нем это… ну как минимум странно.
0
Bogdan92 #
Вполне понимаю вас, и, даже, в некотором роде поддерживаю. Как я написал выше — данный вариант не претендует на универсальность и максимальную практичность. Я описал один из вариантов. Например, у меня нет возможности купить ультрабук, несмотря на все его достоинства. Зато есть планшет. С удобной клавиатурой. Такая же ситуация может быть и у других людей. Вот тут-то и пригодится написанная информация, так сказать, для старта. Да и не говорю я, что это полнофункциональная замена ноутбукам\ультрабукам для удаленной разработки — просто возможность всегда иметь возможность что-то решить на ходу. Или подучить что-то, что в моем случае важно)

Да и тема меня заинтересовала, ибо в сети есть некоторое количество информации по этому вопросу, но она вся разбросана и не систематизирована. Вот я и предпринял попытку описать, так сказать, основы, и, может, облегчить кому-то жизнь)
0
Fesor #
Ну за сбор информации спасибо.

Просто как по мне на 10" экране кодить то не особо удобно. Потому считал и считаю нетбуки меньше чем на 12" бесполезной штукой.
0
Bogdan92 #
Конечно, тут и не поспоришь — 10'' не самый удобный формат) и я не пытаюсь никого переубедить в обратном. Все дело в уровне развития — я пока больше внимания обращаю на технику, знания и т.д. А для таких целей это вполне приемлемый вариант.
0
Sterpa #
Что же это за код то будет, в метрЕ, стоймя, а то и на бегу…
+1
Fesor #
Экстремальное программирование в прямом смысле этого слова
+1
Sterpa #
Я бы сказал экстремистское, поскольку вынудит пользователя очень оскорбить ваши чувства верующих, периодически поминая вашу карму и ее создателей…

Что за хень, вообще, продвигают, мобильное программирование — это как посрать на перегонки!
И сейчас обязательно найдется юный падаван, который с пеной у рта будет стучать себя пяткой в грудь, что мол в некоторый особенных случаях все это очень удобно, и даже необходимо!..
Тьфу!..
0
Bogdan92 #
Вот именно — юный падаван) Не обязательно воспринимать этот пост крайне серьезно. Никто же яростно не призывает переходить на «планшетное программирование». Я, наверное, нечетко определил, для чего это все написано — не для того, чтобы доказать, насколько такой способ крутой или практичный, а для того, чтобы рассказать, что на данный момент твориться в этом сегменте.

Про качество кода согласен — паршивое качество. Но меня, того самого «юного падавана», такая комбинация технологий иногда выручает. Всякое в жизни бывает) Понятно, что это временно, но больше, на данный момент, и не требуется. Да и не о практичности этот пост, в общем, а больше в познавательных целях.
+1
telegamochka #
Я бы не относилась к «мобильному программированию» так скептически. Я пользуюсь этим лайф-хаком с 2006. Благодаря возможности вести разработку в дороге (с 2006 — на Nokia E61, с 2010 — на Nokia N900) мне удалось сделать ряд проектов, проведя 100% разработки на мобильнике в дороге между домом и офисом. Это была и разработка мобильных игр, и разработка софта для носимого компьютера.

Попробуйте посчитать, сколько времени набегает за год, если работать в дороге по 2 часа в день, 5 раз в неделю. Реально получается 3-4 рабочих месяца (считая в 40-часовых рабочих неделях). 3-4 рабочих месяца в год на собственные проекты — не за счет сна, отдыха, или личной жизни :) И лично мне в дороге удается лучше сосредоточиться на задаче — не отвлекает ни интернет, ни мессенджеры.

Конечно, такой способ работы подойдет не каждому. Но для меня это — отличный инструмент повышения эффективности использования моего времени.
0
Bogdan92 #
Полностью согласен. Мне, например, тоже комфортно работать в местах, не очень для этого приспособленных. Я отлично абстрагируюсь от внешнего воздействия, и мне ничего не мешает что-то изучать или над чем-то работать.
0
Fesor #
По доброму вам завидую. К сожалению в моем случае то, что я смогу набросать на мобильнике/планшете по пути с работы можно сделать на лэптопе раза в 4-5 быстрее. Ради интереса сегодня засекал специально. Быть может если потренироваться выйдет нормально, но обычно мне комфортнее по пути на работу/с работы обдумывать и планировать то, как и что я буду делать.
0
telegamochka #
Если не секрет, какой у Вас мобильник / планшет?
0
RightBuilder #
Кодинг на планшетах да и на смартфонах начинает проникать в нашу жизнь, приложений всё больше…
0
Bogdan92 #
Ну, на смартфонах это вы погорячились) максимум, это книжку в метро почитать, но разбирать, или более того, писать код — крайне неудобно. а на счет приложений — на самом деле пока негусто. Наверное, нет спроса — нет предложения. Надеюсь, со временем все изменится, тем более, что уже есть неплохие, как для начала, наработки.
0
Sterpa #
А зарплату не хотели бы получать через таким образом разработанный банк-клиент?
Или чего уж банк-клиент, лучше уж смартфон обновить на такую вот прошивку, которую всем миром в метро ваяли.
0
telegamochka #
> на смартфонах это вы погорячились) максимум, это книжку в метро почитать

Все зависит от смартфона. Я специально в 2006 выбирала смартфон, чтобы он заменил мне ноутбук, позволив работать в дороге. Nokia E61 оказался отличным инструментом для ведения проектов по разработке мобильных приложений. Общение с аутсорсерами (художники, программисты, занимающиеся портингом). Смартфон позволил мне успешно завершить с десяток проектов, когда мне вместо того, чтобы сидеть в офисе, приходилось ездить к родственникам в больницы, сидеть в очередях у нотариусов и т.п. Единственное, чего мне не хватало от смартфона — это возможности вести с его помощью разработку программ. И я решила этот вопрос, сделав для себя сервер удаленной компиляции.

> писать код — крайне неудобно

Все зависит от клавиатуры и от редактора. DEdit, который я использовала — отлично заточен под написание кода.

> на счет приложений — на самом деле пока негусто

Ну почему же, еще 6 лет назад существовали приложения, позволяющие работать на смартфоне: habrahabr.ru/post/53010/

После того, как необходимость круглый день бегать по городу исчезла, я поняла, что мне _удобно_ работать в дороге. В 2010 я поменяла Nokia E61 на Nokia N900, позволяющий компилировать программы непосредственно на смарте.

Кстати, и для андроидов есть приложения, позволяющие заниматься разработкой непосредственно на смартфоне или планшете:

DroidDevelop
Микро-обзор: 4pda.ru/2012/01/27/54010/
Сайт: ru.assoft.ru/droiddevelop
Маркет: market.android.com/details?id=com.assoft.DroidDevelop

AIDE: telegamochka.livejournal.com/226440.html
0
TideSofDarK #
Кстати странно что в статье AIDE не упомянут. Один их лучших инструментов.
0
TideSofDarK #
Из, извиняюсь.
0
Bogdan92 #
Я знаком с этой программой очень посредственно. Насколько я понял, она больше ориентирована на языки типа C++ или Java. В моем случае речь идет о веб-разработке. Но программа на самом деле стоящая.
+3
Mithgol #
[комикс]
0
blaberus #
Да, подтверждаю, WebMaster's HTML Editor отличный редактор. Сколько уж я на нем в трамвае разбирал и писал простенькие скрипты. Для обучения — вполне покатит.

И спасибо за ссылку на сервер. Попробую обязательно. А то иногда в неподходящем месте как придет гениальная мысль насчет какой-нибудь CMS — можно будет сразу и проверить :)
0
Bogdan92 #
да не за что. сам рад, что нашел)
0
immaculate #
По-моему, оптимальнее выделенный сервер + vim через ssh на планшете.
0
Fesor #
Смотря как у вас с интернетом.
0
telegamochka #
Я пробовала работать с выделенным сервером. Но в вечерние часы пик МТСовский интернет в метро (а часто и на улице) отсутствовал как класс. Меня жутко раздражало, что час вечерней дороги пропадает впустую. В результате сервер из интернета переместился в мою сумку. Потом меня достало, что вайфай быстро съедает батарею — и я написала небольшую клиент-серверную системку, «в один клик» кидавшую по блютуз исходники с телефона на ноут, компилирующую их там и забирающую результат по бт обратно на смарт.

Потом захотелось не только работать, но и управлять со смарта проигрыванием файлов на ноуте. Потом захотелось совсем уж странных вещей — и я втянулась в конструирование wearable computers :)
0
ilichme #
как жаль, что среди всех моих постов вас вдохновил самый неудачный
+1
Bogdan92 #
ну почему же неудачный? раз он натолкнул на какие-то мысли, раз он развил желание поглубже рассмотреть тему, значит он не неудачный.
+1
telegamochka #
Присоединяюсь :) Интересный пост, добавила в избранное.
0
Divers #
Вот мое творение. На мой взгляд, сейчас это лучшая «ide» для веб разработчиков.

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