- Разработка под планшеты
- Квалификаторы large/xlarge (устар.)
- Квалификатор Smallest-width (sw)
- Квалификаторы width (w) и height (h)
- Псевдонимы
- res/values-large/layout.xml
- res/values-sw600dp/layout.xml
- Квалификаторы ориентации
- Поддержка планшетов, которые умеют принимать/отправлять SMS, но не умеют звонить
- Только под планшеты, только под телефоны
- Лучшие Android приложения для мобильной разработки
- Мой опыт разработки с использованием андроид устройства
- Как все начиналось.
- Ах, этот дивный новый мир.
Разработка под планшеты
Устройства под Android можно условно разделить на две группы — телефоны и планшеты. До недавнего времени существовали две ветки развития платформы — версии 2.* и версии 3.*. С выходом Android 4.0 обе ветки были объединены и теперь везде используется единый код. Но пусть данное обстоятельство не вводит вас в заблуждение.
Разработка под планшеты очень сильно отличается от разработки под обычный смартфон. Для меня первый звоночек прозвучал, когда я выложил на Google Play простенькую программу для снятия показаний счётчика электроэнергии. Писалась программа для практики в учебных целях и была выложена в магазине приложений для изучения механизма работы этого самого магазина. Но неожиданно для меня несколько тысяч человек скачало программу и стали просить продолжить работу над ней. В статистике загрузок было видно, что очень много пользователей устанавливает приложение именно на планшет. И вот однажды один из пользователей программы прислал мне скриншот, где описывал свою проблему и просил меня подправить логику приложения. Когда я увидел этот скриншот, то чуть со стула не упал. Не ожидал, что впечатление от программы так может резко меняться от размеров. Но размер имеет значение!
Когда я запускал программу на маленьком телефоне, то всё выглядело достаточно аккуратно и изящно. А теперь возьмите в руки стандартную книгу, разверните её в альбомной ориентации и представьте себе кнопку, которая тянется по всей ширине книги. Жуткое зрелище.
Далее одна компания попросила сделать им программу специально под планшеты. Так как у меня не было на тот момент планшета, то я тестировал все изменения на телефоне. И тут тоже возникли проблемы. Если на телефоне расположение элементов казалось компактным, то на планшете либо оставалось много лишнего пространства, либо элементы казались слишком большими. Можно, конечно, было разрабатывать приложение только под планшет, руководствуюясь присылаемыми скриншотами. Но это не наш путь. Мне хотелось создать универсальную программу, которая была бы удобной и под телефон и под планшет. Так я начал изучать вопрос в этом направлении.
Средства разработки позволяют достаточно удобно создавать программу под разные форм-факторы. Но есть ряд особенностей, о которых нужно знать. Во-первых, дизайнер форм и эмулятор не совсем точно показывают размеры и взаимное расположение элементов. Необходимо всегда проверять конечный результат на реальном устройстве. Во-вторых, нужно грамотно настроить среду разработки под наши цели.
Квалификаторы large/xlarge (устар.)
Существует специальный квалификатор large (res/layout-large и его производные layout-large-land и т.п.), который действует на устройства с экранами от 7 дюймов и выше. Сейчас считается устаревшим, так как некоторые устройства не совсем правильно определяли данный квалификатор. Часто в целях совместимости создают папку с данным квалификатором и копируют в него файлы из новых квалификаторов (или псевдонимы), о которых ниже.
Тоже самое относится к xlarge, который действует на устройства с диагональю экрана 10 дюймов.
Квалификатор Smallest-width (sw)
В Android 3.2 и выше доступен квалификатор Smallest-width, сокращёно sw. Он позволяет определять экраны с заданной минимальной шириной в dp. Например, планшет с экраном 7 дюймов имеет минимальную ширину 600 dp, и если вы хотите, чтобы приложение работало на нём в двухпанельном режиме (а на меньших экранах в однопанельном), используйте два макета, но вместо квалификатора размера large укажите sw600dp. В таком случае на экранах, минимальная ширина которых составляет 600 dp, будет использоваться двухпанельный макет.
Далее речь пойдёт применительно к планшету на 7 дюймов с разрешением экрана 1024×600. Мы уже привыкли, что вся основная разметка содержится в файле activity_main, которая находится в папке res/layout. Отлично, начните с этого файла и набросайте макет для телефона. Теперь создайте новую папку res/layout-sw600dp/ и скопируйте в неё файл activity_main.xml. В этой папке будет находиться макет программы, специально разработанный с учетом семидюймового экрана. Теперь, в зависимости, где запускается программа, система сама автоматически выберет нужный макет и покажет его пользователю.
Квалификаторы width (w) и height (h)
Также можно использовать квалификатор типа wXXXdp, где доступная ширина больше или равна XXX dp, и квалификатор типа hXXXdp, где доступная высота больше или равна XXX dp.
Псевдонимы
Следует учесть, что на Android-устройствах до версии 3.2 квалификатор sw600dp не будет работать, поэтому для них по-прежнему нужно использовать large и вам потребуется еще один файл с названием res/layout-large/main.xml, идентичный файлу res/layout-sw600dp/main.xml. Поэтому приходится дублировать оба файла с одинаковым содержанием.
Чтобы избежать дублирования файлов, используйте псевдонимы. Например, можно определить следующие макеты:
- res/layout/main.xml (однопанельный макет);
- res/layout/main_twopanes.xml (двухпанельный макет).
Добавляем новые папки с файлами:
res/values-large/layout.xml
res/values-sw600dp/layout.xml
Содержание последних двух файлов одинаково, но сами по себе они не определяют макет. Они служат для того, чтобы назначить файл main в качестве псевдонима main_twopanes. Так как в них используются селекторы large и sw600dp, они применяются к планшетам и телевизорам на платформе Android независимо от версии (для версий до 3.2 используется large, а для более новых – sw600dp).
Квалификаторы ориентации
Так как число устройств с разными экранами растёт, то приходится дополнительно адаптировать дизайн для маленьких экранов, планшетов на 7 и 10 дюймов, телевизоров. Вот примеры различных вариантов дизайна.
- Маленький экран, вертикальная ориентация: однопанельный вид с логотипом.
- Маленький экран, горизонтальная ориентация: однопанельный вид с логотипом.
- Планшетный ПК с 7-дюймовым экраном, вертикальная ориентация: однопанельный вид с панелью действий.
- Планшетный ПК с 7-дюймовым экраном, горизонтальная ориентация: двухпанельный вид с панелью действий.
- Планшетный ПК с 10-дюймовым экраном, вертикальная ориентация: двухпанельный вид (узкий вариант) с панелью действий.
- Планшетный ПК с 10-дюймовым экраном, горизонтальная ориентация: двухпанельный вид (широкий вариант) с панелью действий.
- Телевизор, горизонтальная ориентация: двухпанельный вид с панелью действий.
Каждый из этих макетов определен в XML-файле в каталоге res/layout/. Чтобы сопоставить их с определенными конфигурациями экрана, в приложении используются псевдонимы. Примеры можно посмотреть в документации (русский перевод).
Как с этим работать в Eclipse. Когда вы создадите файл в новой папке, то в верхней части IDE вы можете увидеть выпадающий список, позволяющий быстро переключаться между двумя файлами activity_main.xml. Изменения, которые вы делаете в одном файле, не переносятся в другой файл. Поэтому будьте внимательны. Если какие-то элементы должны совпадать, то нужно внести изменения в оба файла. Также рядом с этим выпадающим списком можно выбрать форм-фактор устройства, чтобы увидеть созданный макет визуально. Эта операция возможно только при работе с XML в графическом режиме.
Также необходимо создать несколько новых эмуляторов под ваши требования. Сразу хочу предупредить об одной проблеме, с которой сам столкнулся. Когда я попытался загружать программу в уже готовый эмулятор на 7 дюймов, он по-прежнему загружал разметку под обычный телефон. В конце концов я снёс все эмуляторы, перезагрузился и создал эмуляторы под нужные мне размеры заново. И тогда всё заработало.
Второй важный момент — указание размеров. Обычно мы храним значения размеров в файле res/values/dimens.xml. Текст, заданный для телефона, окажется слишком мелким для планшета. Поэтому аналогично, создаём альтернативный файл res/values-sw600dp/dimens.xml. Я также пробовал сохранить файл dimens.xml в папке res/values-v15 и у меня также всё работало. Честно говоря, не знаю, какой вариант правильный.
Также можно управлять размерами через стили. В файле res/values/styles.xml:
В файле res/values-sw600dp/styles.xml:
Третий важный момент, о котором нужно помнить — различия в железе. Например, в новом планшете Google Nexus 7 нет телефонного модуля и только одна фронтальная камера. Поэтому, в манифесте рекомендуется указывать, что программа требует наличия телефона или камеры, чтобы ваше приложение не было доступно в магазине приложений для пользователей, у которых нет телефона и камеры. Например:
Т.е. ваша программа не требует наличия камеры, но обязывает иметь микрофон.
Кстати, выяснил интересную особенность фильтрации по разрешениям для Nexus 7. Оказывается, для него отдельно следует добавлять строку с точным указанием dpi:
Делайте отступы 16dp как минимум от краёв экрана для текстов.
Длина строки не должна быть слишком большой. Максимум 100 символов, оптимальный вариант: 50-75.
ListView и меню не должны растягиваться на весь экран (используйте фрагменты).
Рекомендуемый размер для элементов экрана, работающих от пальца — 48dp (32dp как минимум).
Поддержка планшетов, которые умеют принимать/отправлять SMS, но не умеют звонить
Существуют планшеты с модулем, позволяющим принимать и отправлять SMS. Для них стоит установить разрешения:
Только под планшеты, только под телефоны
Можно прописать в манифесте различные настройки, чтобы программа выводилась в Google Play только под планшеты или только под телефоны. Приблизительно так.
Источник
Лучшие Android приложения для мобильной разработки
Уверен, что не только я, но и большая часть из здесь присутствующих чувствует себя без мобильных устройств как без рук. К счастью, мы живем во времена, когда мобильная разработка становится нормой, и на рынок выходит все больше действительно удобных приложений, с которыми можно не просто поправить строчку кода, но и полноценно продолжить работу над своим проектом.
Под катом я приведу список приложений для Android устройств, которые позволят вам эффективно заниматься разработкой с вашего мобильного устройства из любой точки мира.
DroidEdit
Если вы ищите идеальный текстовый редактор исходного кода для своего планшета или телефона, трудно посоветовать что-либо лучше чем DroidEdit. Подсветка синтаксиса языков, включая C, C++, HTML, CSS, JS, Ruby, Python и многих других.
Стоимость 60 руб.
Доступна бесплатная пробная версия
Programmer Keyboard
Написать строчку кода на мобильном устройстве бывает ой как нелегко. PHP программисты обязательно должны оценить эту клавиатуру, с автозаполнением всех PHP команд, а также функциями undo и redo. На ней также есть клавиши Ctrl, Alt и стрелки!
После установки необходимо добавить эту клавиатуру через настройки вашего устройства.
kWS Web-Server
Легкий и быстрый (и бесплатный) веб-сервер для вашего телефона. Можно хостить веб-сайты, а можно использовать для доступа по FTP. Использует HTTP-1.0. Много других интересных фич. Рекомендую.
Есть PRO версия за 80 руб.
gAnalytics
Приложений для аналитики посещаемости на маркете предостаточно, однако моим любимым является gAnalytic, отличный интерфейс, скорость работы и юзабилити.
AndFTP
Великолепный маст-хев FTP клиент на русском языке, с возможностью доступа к файловой системе вашего телефона. Выручал меня не раз!
AIDE
Это приложение должно понравиться разработчикам мобильных приложений под Android. Оно совместимо с проектом Eclipse и позволяет с легкостью переносить проекты ваших приложений с рабочего компьютера на телефон. Оно также совместимо с Dropbox.
View Web Source
Любите покопать чужой исходный код, чтобы посмотреть «а как это у них сделано»? Вам сюда. Вбиваем URL интересующего сайта и смотрим, что там у него под капотом.
HC-16C Programmer’s Calculator
Отличный эмулятор известного многим калькулятора. Программируемый, помимо деления/сложения/умножения/вычитания умеет много полезных функций, полезных программистам.
Стоимость 202 руб.
Syntax Highlighted Code Editor
Еще один редактор для целого ряда языков (включая CoffeeScript, Haskel, Clojure помимо прочих), умеющий подсвечивать синтаксис, search/replace, undo/redo. Посмотреть результат ваших трудов можно не выходя из приложения.
C4droid
Если ваш основной язык — C, то этот компилятор вам определенно пригодится. Приложение использует GCC, и, по мнению пользователей, работает на телефоне на 4+.
ConnectBot
Мощный и открытый SSH клиент. Справляется с множественными сессиями и многое другое.
WordPress for Android
С легкостью управляйте и пополняйте свой сайт на Вордпрессе с помощью этого бесплатного приложения.
Java Quick Reference Cards
Шпаргалки по Java, для изучающих (или вспоминающих) язык. Средняя оценка 4, отзывы есть и отрицательные, но денег за него не берут, так что почему бы и нет?
C Programming Reference FREE
Еще один набор бесплатных шпаргалок, на этот раз для изучающих C.
JavaScript Reference
Бесплатный набор шпаргалок по JS. Без комментариев.
Как видите, полная мобилизация уже не за горами, и с комфортом создавать и администрировать свои проекты становится все проще. А какими мобильными приложениями для разработки пользуетесь вы?
Источник
Мой опыт разработки с использованием андроид устройства
Как же люди любят упрощать сложное и усложнять простое, ну или как провести свои выходные без пользы.
Как все начиналось.
А начиналось все как обычно с разматывания губы на тему вот сейчас как перейду с ПК на планшет, да как все заиграет.
Раньше (недели две назад) я постоянно задумывался почему так мало слышно о разработке пусть даже front-end’a на мобильных устройствах (нет, не под мобильные, а именно с мобильных устройств).
И думал я, что может только у меня такая потребность возникла. Что только я мучаюсь с подготовкой к работе. Ведь, чтобы развернуть бурную рабочую деятельность, мне нужно сперва сварить кофе, уложить всех спать, выгнать кота. А с мобильным устройством все проще. И уж если куплю планшет, да его настрою, будет у меня и мобильность, и скорость, да и лёгкость в движениях появится=)
И вот «летящей походкой я вышел за . », то есть за планшетом, и вернулся со средним, ну ладно, бюджетным «китайцем».
Решил, что рута я сбивать не буду, дефолтную систему сносить не буду, а то вдруг не просто так люди на ПК до сих пор работают.
Ах, этот дивный новый мир.
Признаться, за время работы на ПК я уже успел пристреляться. И имею представление, что сначала нужно настроить среду разработки, так сказать, разложить инструменты.
Поэтому первое, что я сделал – удалил все лишнее и полазили по настройкам, чтобы ничего не раздражало (это подробно думаю описывать не стоит, каждый сам под себя точит все свои инструменты). Далее по списку:
Войти в аккаунт (почта, браузер, GitHub)
настроить редактор кода
настроить хотя бы подобие IDE
Как вы понимаете с первым пунктом ничего сложного, хотя и в этом случае пришлось немного потыкаться. Приложения GitHub предоставленные в плеймаркете(то что попалось мне из 5 установленных, в том числе и сам GitHub). Позволяют, максимум, посмотреть историю, комментарии (смотреть и отвечать), но создавать и изменять контент и запросы не могут. Так что нельзя назвать это полноценной заменой для андроида.
В итоге на первых порах, достаточно браузерной версии гит, вот только если хочешь добавить или изменить папку, то быстро сделать это не получится, нужно выгружать, менять и загружать папки обратно (создаёшь папку с файлом, прописывая путь, а затем все файлы в папку загружаешь через appload file). Как вы понимаете это не удобно если нужно перенести проект на GitHub через планшет.
С редакторами немного проще. Почти каждое третье справляется с элементарными нуждами, да ещё имеет возможность просмотра результата фронт-енда в браузере. Однако не все из них отображают сайт корректно (как и когда просто открытая через проводник страница не подгружает css и js файлы, а просто выводит голый скелет сайта) ещё меньше из них имеет возможность перейти по внутренней ссылке сайта, в случае многостраничного сайта.
В итоге из порядка 15 я нашел около 3 которые мне подходят. Однако в дальнейшем я решил использовать в качестве быстрого редактора Acode, хотя он больше похож на ide чем на простой редактор.
Двигаемся дальше. Что же мне нужно от IDE.
Наличие консоли при тестировании
Интеграция с GitHub
Удобство в использовании (в частности расположение вкладок и настройки)
Терминал для Nodejs
Теперь посмотрим, что я нашел:
Хоть в play market и написано, что это IDE для веб разработки, но работать на нем неудобно.
Полноценных снипетов нет (нет автоопределения, вставляется только тег без символов, нет автоопределения атрибутов тегов). Из удобных только автозакрытие тега (в случае написания «
Источник