Содержание статьи
Начиная осваивать разработку для любой платформы, ты обязательно сразу же наткнешься на множество с первого взгляда незаметных подводных камней.
Большинство из них будут связаны с самим процессом кодинга: несостыковки в API, скрытые функции, ограничения, особый стиль программирования для платформы.
Есть и камни, лежащие немного поодаль: тестирование и автоматическая оптимизация, создание клипарта и иконок, получение автоматических краш-репортов. Неопытные разработчики для Android рискуют отбить о них обе ноги.
В этой статье мы рассмотрим проблемы разработки для Android в контексте утилит и инструментов.
Мы избавимся от необходимости подключать смартфон с помощью кабеля во время тестирования и отладки на устройстве, расщепим приложение на версии Lite и Pro, встроим в него механизм автоматической генерации и отсылки на сервер краш-репортов, автоматизируем тестирование, обфусцируем и оптимизируем код, а также за несколько минут создадим для приложения иконку и все необходимые ресурсы. Поехали.
Итак, ты набросал свое первое приложение, и пора его запустить и проверить на работоспособность. Для этого в комплекте Android SDK есть эмулятор. Долгое время его упрекали за медлительность, но с выпуском Android Studio 2.
0 ситуация намного улучшилась — x86-версия эмулятора получила хардварное ускорение, так что теперь он работает быстрее реальных устройств.
К тому же у него появился удобный графический интерфейс, с помощью которого можно симулировать звонки, СМС, изменять данные GPS и сбои в сети, то есть все, для чего раньше приходилось использовать инструменты командной строки.
Поэтому, если ты еще не обновился, настоятельно рекомендую это сделать, не говоря уже о переходе с Eclipse. И обязательно выбирать x86-версию эмулятора в AVD manager, ARM-версия не поддерживает хардварное ускорение.
Новый эмулятор Android Studio 2.0
Другие статьи в выпуске:
- Содержание выпуска
- Подписка на «Хакер»
Второй этап — тестирование на реальном устройстве.
Здесь все просто: подключаешь смартфон по USB, устанавливаешь драйверы, включаешь режим отладки в настройках для разработчиков, после чего девайс появляется в списке доступных для установки приложения (рядом с эмулятором).
Проблема только в том, что в данном случае устройство необходимо держать подключенным к ПК с помощью кабеля, а если это твой основной смартфон, на который поступают звонки и сообщения, то об удобстве говорить не приходится.
К счастью, Android Studio (а точнее, утилита ADB, которую он использует для связи с устройством) поддерживает работу по сети. Но данную функцию еще нужно активировать. Если у тебя рутованный смартфон, то тебе повезло: включить отладку по сети можно с помощью приложения WiFi ADB. Последовательность действий:
- Устанавливаем WiFi ADB, запускаем, включаем сетевой режим с помощью переключателя и запоминаем IP-адрес.
- Запускаем Android Studio.
- Открываем консоль, переходим в каталог с установленным SDK, далее в platform-tools и запускаем следующую команду:
$ adb connect IP-адрес
Теперь, если попытаться собрать и запустить приложение, ты увидишь в списке устройств также и свой смартфон. Те, у кого нет root, могут перезапустить ADB в сетевом режиме, предварительно подключив его кабелем. Делается это так:
- Подключаем смартфон и устанавливаем драйверы.
- Включаем режим отладки в настройках для разработчиков.
- Открываем консоль, переходим в каталог SDK/platform-tools и запускаем следующую команду:
$ adb tcpip 5555
- Подключаемся к смартфону по сети:
$ adb connect IP-адрес
IP-адрес можно узнать через настройки: «О телефоне (О планшете) → Общие сведения», пункт «IP-адрес».
Окей, твой накиданный за полчаса огрызок вроде бы работает, и настало время превратить его в настоящее приложение с красивым интерфейсом и виджетами для рабочего стола.
На этом этапе тебе наверняка понадобятся внешние библиотеки, реализующие различные концепции интерфейса, паттерны программирования и связь с внешними сервисами.
И если с последними все ясно (нужен SDK для Dropbox — открываешь портал для разработчиков и следуешь инструкциям), то с остальными уже сложнее. Где их искать и какие библиотеки лучше?
Наиболее полный каталог библиотек — это Android Arsenal. Там ты найдешь практически все, что тебе нужно.
Доступны удобный поиск и сортировка по рейтингу, для каждой библиотеки есть инструкция, как ее подключить к своему проекту, в том числе с помощью стандартной для Android системы сборки Gradle: достаточно добавить репозиторий в файл build.gradle проекта и указать библиотеку в списке зависимостей.
Для каждой библиотеки есть инструкция по подключению
Отличный список must have библиотек ты найдешь на этой странице. От себя добавлю, что на первых этапах стоит сразу изучить Dagger 2, RxJava и Retrofit. Став продвинутым разработчиком, ты так или иначе придешь к использованию этих библиотек.
Наконец, спустя дни или недели у тебя начинает вырисовываться полноценное приложение. Вот только никакого графического материала нет до сих пор: иконка стандартная, в форме зеленого робота, вместо клипарта — заглушки. Очевидно, без графики соваться в маркеты бессмысленно, однако и платить за иконку для своего первого приложения тоже глупо. Что делать?
На самом деле иконку можно сгенерировать. Есть замечательный веб-сервис Android Asset Studio, с помощью которого буквально за пару минут ты получишь красивую иконку во всех возможных разрешениях. В качестве основы можно взять подготовленную тобой картинку, просто написать текст или, что лучше всего, выбрать из предоставленного сервисом клипарта.
Также ты сможешь задать стиль иконки (круглая, квадратная, в стиле iOS…), цвет, настроить тени и другие параметры. В результате в твоем распоряжении появится архив ic_launcher.zip, который необходимо развернуть в каталог AndroidstudioProjects/ИМЯ_ПРИЛОЖЕНИЯ/app/src/main/res. Обязательно создай веб-иконку, нажав на кнопку «Generate web icon».
Она тебе понадобится.
Не забудь про веб-иконку
Тот же сервис позволяет создать иконки для ActionBar’а и строки состояния. Принцип примерно тот же, скажу лишь, что в строке состояния лучше всего смотрятся иконки с отступом от краев 15%.
Основные ошибки и риски при разработке мобильного приложения
Разработка мобильных приложений, как и постройка дома, и проектирование нового автомобиля, имеет множество нюансов.
Базовые правила очевидны: не делать плохой дизайн, интерфейс должен быть удобен для пользователей, багов быть не должно. Вместе с тем, ряд ошибок повторяется снова и снова. И эти ошибки влекут за собой риски при разработке мобильного приложения.
По нашему опыту наиболее часто встречаются следующие ошибки:
1. Слишком много функционала
Мы работали и с заказчиками из Германии, отличающимися, как водится, педантичностью и вниманием к деталям. Они работают так:
- Определяются с идеей;•
- Неделю собирают весь возможный функционал, который можно реализовать;•
- Еще неделю выбрасывают все лишнее;•
- Начинают с одного-двух оставшихся пунктов.
Критерий для отбора очень простой. Если на вопрос “Сможет ли без этой функции пользователь все-таки решить основную проблему?” ответ положительный, то фича отбрасывается мгновенно без всяких размышлений.
Начинать с такого объема функционала – не очень хорошо
Какой риск при разработке мобильного приложения в данном случае: наше мышление склонно к привыканию. В случае с продумыванием архитектуры, изначальный функционал через некоторое время уже не кажется таким эффектным и достаточным. Постоянно хочется добавить что-то еще, регулярно приходят новые мысли.
Но чем больше функций, тем сложнее разрабатывать продукт. Это означает больше времени, больше неповоротливости и больший отрыв от рынка.
Мобильное приложение должно оказаться на телефонах пользователей как можно быстрее. Чем скорее вы начнете получать обратную связь от клиентов, тем выше шансы на успех. Если эта цель достигнута – доработать функции не составит труда.
2. Игнорирование различий между iOS и Android
iOS и Android – разные операционные системы. Они имеют разные подходы к дизайну, навигации, монетизации и другим сторонам пользовательского опыта. Если вы задумываетесь о создании приложения для iphone, например, то стоит обратить на это внимание.
Системы навигации iOS и Android существенно отличаются
Кроссплатформенные решения или нативная разработка – отдельный вопрос, свои мысли о котором мы подробно описывали в этой в этой статье.
Однако помимо технологий мобильной разработки, нужно учитывать и другие аспекты:
- Android устройства имеют физические навигационные кнопки, iOS девайсы – нет;•
- Разработка андроид приложений подразумевает, что интерфейс Android строится на основе Material Design, имеющего глубокую концепцию. Принципы iOS интерфейса проработаны, в том числе, и с учетом аппаратных особенностей устройств. Они подробно описаны в Apple Human Interface Guidelines. Это совершенно разные принципы построение UI/UX;•
- Эти операционные системы имеют разную аудиторию, которую нужно анализировать для каждой ниши. Для какого-то приложения распределение типов ОС будет 50/50. Для другого 10/90;•
- Монетизация строится по-разному. Пользователю Android сложно продать подписку, в то время как к рекламе он гораздо более терпелив. В iOS развиты глубокие продажи, когда подписка продается несколько раз со все более расширенными опциями;•
- iOS устройства обновляются массово, в то время как версии Android сильно фрагментированы: более 30% девайсов используют Android 5.0 и более ранние, выпущенные до 2014 года.
Какой риск при разработке мобильного приложения в данном случае: Игнорировать особенности iOS и Android можно только на самых первых тестовых шагах прототипа, когда подтверждение гипотезы возможно без создания полноценных мобильных приложений. Полноценное же приложение должно учитывать все различия платформ, ведь никто не захочет пользоваться неудобным приложением, верно?
3. Плохая архитектура бэкенда
Часто бывает так, что в проектировании делается акцент прежде всего на то, что видно. Это понятно и естественно.
Однако бэкенд – серверная логика, структура базы данных, набор подключаемых внешних сервисов – имеют не менее важное значение.
Сами выбранные языки программирования при этом не имеют особого значения, на любой из современных технологий можно сделать хороший софт.
Какой риск при разработке мобильного приложения: Есть шанс создать приложение, которое не будет выполнять важных функций, или будет выполнять их из рук вон плохо. Важна именно продуманность серверной архитектуры. Не забывайте, пожалуйста, и про этот пункт, каким бы скучным и далеким он ни казался.
4. Дизайн для себя, а не для пользователей
Дизайн мобильного приложения – один из краеугольных камней всего процесса разработки продукта. Это единственная видимая часть результатов всей работы.
Наиболее частая ошибка в дизайне – подстраивать интерфейс под свой вкус.
Мы делаем продукт не для себя. Мы делаем его для пользователей.
Вам может нравиться ваш дизайн. Пользователям – нет.
Поэтому в первую очередь нужно понять аудиторию: их эмоции, вкусы, принципы восприятия интересующих нас продуктов и услуг. После этого мы можем предложить им хорошее решение и протестировать, насколько эффективно оно работает.
Японцы при выборе иконки для приложения делают, например, так. Предлагают трем-пяти дизайнерам сделать свою работу, включая анализ аудитории. Далее закупают рекламу, ведущую на лендинг готовящегося приложения, используя все эти иконки. На какую больше кликают – ту и выбирают.
Какой риск при разработке мобильного приложения: использовать бюджет на то, что не будет пользоваться спросом. Люди в любом случае будут пользоваться тем, что нравится им, а не вам. Вопрос кто быстрее либо угадает, либо создаст нужные эмоции.
5. Нет маркетинговой стратегии
Продумывать маркетинговую стратегию, хотя бы в общих чертах, необходимо до написание технического задания. Это важно.
Мобильное приложение – это инструмент. Маркетинг – это способ его использования. Нельзя сначала сделать какую-то штуку, что-то среднее между молотком и пассатижами, а потом искать ей применение. Инструмент делается всегда под конкретную задачу.
Какой риск при разработке мобильного приложения: приложение окажется ненужным конечному пользователю. Или о вашей разработке никто не узнает. Способ продвижения приложения, варианты взаимодействия с аудиторией, каналы общения с пользователями, используемые аналитические и рекламные инструменты – все это должно быть заложено в начальной версии технического задания.
Придумывать способы продвижения после того, как мобильное приложение уже находится в сторах – плохо.
6. Не организовано тестирование
Речь не о тестировании на наличие ошибок в коде – это само собой разумеющееся.
Типичные ошибки начинающего Android-разработчика
Уже давно спрос на Android-разработчиков превышает предложение. И такое положение сохранится ещё как минимум несколько лет. Если вы задумываетесь о работе, которая актуальна и в кризис, и в нормальной экономической обстановке, — сейчас самое время освоить её.
Ещё пять лет назад я ничего не знал ни о разработке под Android, ни о программировании вообще. И за это время успел набить много шишек и совершить достаточно ошибок — от них и постараюсь вас уберечь в этой статье. Расскажу, в чём заблуждаются новички и как этого избежать.
«Со всем разберёмся самостоятельно»
Если считаете, что способны сами разложить по полочкам учебный материал и вникнуть в любой код, — это здорово.
Наверное, вы готовы тратить сутки на то, чтобы найти баг или рабочее решение, шерстить интернет и пробовать всё, что только приходит в голову, пока код не заработает.
Это похвальное упорство, но лучше его применять так, чтобы получать новые знания, а не до бесконечности искать решения, которые уже миллион раз нашли до вас.
В большинстве случаев новичкам просто не хватает опыта, чтобы понять, какое из найденных в интернете решений оптимальное и почему.
Задавайте вопросы об этом в чатах и на форумах, советуйтесь со знакомыми программистами и своим наставником. Поверьте, вы сэкономите много времени, которое можете использовать для дальнейшего обучения.
С опытным ментором вы растёте на порядок быстрее, чем самостоятельно.
«Страшно чего-то не знать»
В английской культуре есть понятие, популярное в программистской среде: Fear Of Missing Out (FoMo), или «страх упустить что-то важное». Андроид — огромная система. Вы не сможете даже за пять лет изучить её досконально. Во-первых, платформа постоянно развивается и меняется. Во-вторых, чем больше вы узнаёте, тем больше видите соприкасающихся областей, в которых вы ещё не разбираетесь.
Для начинающего разработчика совершенно нормально не до конца понимать даже какие-то элементарные вещи. У меня есть коллеги, которые программируют всю жизнь, и даже они знают далеко не всё — их тоже можно удивить. Ваша задача не изучить область полностью, а узнать то, что поможет вам в работе именно сейчас. И последовательно расширять свои знания в ходе практики.
«Дизайн не нужен»
«Я же разработчик, мне нужно кодить хорошо, а как будет выглядеть интерфейс и навигация — это не ко мне, а к дизайнерам».
Знакомый ход мыслей? Чем больше вы понимаете в материальном дизайне (руководство для дизайна Android-приложений), тем лучше вы знаете возможности платформы как разработчик — и тем яснее представляете, как сделать хорошее приложение.
Вам не нужно уметь красиво рисовать иконки (для этого есть множество ресурсов), но понимать принципы важно.
Как избежать ошибок при разработке приложения
Создать мобильное приложение — это сложный процесс, требующий работы команды программистов, дизайнеров, отладчиков и других людей, без которых просто не обойтись. Всем им нужно платить зарплату, обеспечивать рабочие места. Кстати, приложение нужно поддерживать, латать дыры и исправлять баги, так что уволить сотрудников сразу после разработки программы не получится.
Самый лучший выход, позволяющий сэкономить деньги и время — отдать разработку на аутсорс. То есть тебе не придется нанимать штат программистов.
Многие считают заказ разработки в другой компании манной небесной и думают, что сразу после отправки технического задания им тут же пришлют идеальное приложение со всеми функциями и эффектами, которые они хотели видеть, не требующее последующего обслуживания.
В этой статье мы перечислим основные ошибки, которые совершают люди, отдавая разработку приложения другим компаниям.
Ошибки при разработке мобильных приложений
Мы задали несколько вопросов Константину Кононову, директору компании Applicatura, и он рассказал о нескольких распространенных ошибках.
Большинство стартапов заканчиваются именно на этом пункте. Многие люди, разрабатывающие приложения самостоятельно или обращающиеся в другую компанию, думают, что если они создадут программу, то мигом начнут получать прибыль.
На самом деле первые полгода (возможно, немного меньше или больше) приложение будет убыточным. Что входит в затраты на первоначальном уровне? Разработка и сопровождение. Но забывают и о другом, очень важном, а именно — о привлечении новых пользователей. Допустим, среднее приложение стоит 1 миллион рублей.
Его сопровождение обойдется в 150 тысяч в месяц. Эти цифры примерные, затраты могут быть и ниже, и выше. Привлечение одного пользователя обойдется в 150-170 рублей, и это только скачивание приложения.
При средней конверсии 5-7 процентов в покупку можно подсчитать, через какое время приложение начнет приносить прибыль. Становится понятно, что собственное мобильное приложение могут потянуть далеко не все компании.
«Я хочу, чтобы в моем приложении было всё красиво, эффекты, различные украшения». Это одна из самых распространенных ошибок, когда заказывают приложения «всё включено», тяжелые, дорогие и неудобные. Самое главное, на чем нужно сосредотачиваться при разработке приложения, — это продающий функционал.
Именно вокруг него строится всё остальное. Пользователю нужно совершить минимальное количество шагов для того, чтобы найти то, зачем он пришел, а не рассматривать анимацию.
Если вкратце, то все, что не про бизнес, отсекается и привносится в приложение уже на последних шагах разработки или после его коммерческого успеха.
Каталог может быть организован так называемым «круговым путем». То есть пользователь зашел в категорию, выбрал товар, хочет его купить, но вместо этого его бросает в другой каталог. Это задумано для того, чтобы пользователь увидел как можно больше предложений. Но на самом деле получается ровно наоборот. Такой интерфейс отпугнет покупателя.
До начала разработки нужно понимать, каковы действия пользователей и с помощью чего нужно отслеживать в приложении, какие именно метрики (а их может быть много) важны, а какие — нет. Также нужно изучить время, проведенное пользователем в приложении, количество органических установок, целевые действия.
Многие не обращают внимания на статистику, из-за чего их программа неизбежно провалится. Изучив аналитику, можно понять, куда пользователь идет, а куда не попадает по тем или иным причинам. Следует исследовать статистику, чтобы понимать, что нужно исправить в приложении, какой функционал доработать и что добавить.
Конечно, есть еще и фокус-группы, которые позволяют точно узнать, что хотят видеть пользователи в приложении, но это очень дорого и доступно только корпорациям.
Заказывая разработку приложения, многие относятся к разработчику как к роботу, который беспрекословно исполняет приказы. Проще говоря, заказчик выступает в роли всезнающего мудреца. На самом деле разработчика приложения можно сравнить с врачом.
Когда приходишь к врачу, ты же не советуешь ему, как тебя лучше осмотреть и какими лекарствами лечить? Разработка приложения не сильно отличается по принципу.
Конечно, разработчик не будет указывать, но к его советам лучше прислушиваться, так как они основаны на опыте создания приложений.
А теперь мы расскажем о компании Applicatura, заказав разработку приложения у которой, ты сможешь избежать перечисленных выше ошибок.
Applicatura
Компания Applicatura занимается созданием мобильных приложений для iOS и Android уже долгое время и разработала уже более тридцати приложений.
Компания начинает разработку с конца. То есть они отталкиваются не от визуальной составляющей и концепции приложения, а от бизнес-задач, реализация которых принесет прибыль заказчику.
До разработки приложения они исследуют метрики, и только когда бизнес-задача становится более понятной, специалисты переходят к фукнциональному описанию и дизайну.
Если точнее, то сначала разработчики пишут пользовательский сценарий, рисуют интерфейс приложения, проектируют и реализуют API, создают бэкенд, тестируют его, делают админку, разрабатывают мобильные клиенты, затем снова тестируют и готовят приложение к публикации.
Разработчик в компании Aplicatura — это консультант, который подсказывает, какой функционал реализовать, а какой лучше отбросить, выступает бизнес-партнером и отвечает за работу мобильного приложения. Проще говоря, разработчик является отсеивающим ненужное фильтром и, в первую очередь, сосредотачивается на том, чтобы бизнес заказчика постоянно рос и развивался, принося прибыль.
10 ошибок начинающих разработчиков
Разработка программного обеспечения — далеко не новая профессия, ей несколько десятков лет.
За это время для новичков, которые только что пришли в профессию, сотни авторов написали тысячи книг и руководств. Несмотря на это, начинающие разработчики продолжают допускать ошибки.
Основатель первого в России буткемпа для программистов Elbrus Георгий Бабаян помогает разобрать 10 самых распространённых ошибок новичков.
Георгий Бабаян
CEO Elbrus Coding Bootcamp
Слишком долгая работа над одной задачей
В школе или институте практически каждый получал «лайфхак» относительно контрольной или экзамена: если что-то не получается, не задерживайся над решением проблемной задачи, иди дальше. Когда решишь все, что можно решить быстро, возвращайся к проблемному заданию. В противном случае экзамен можно и завалить, потратив все время на поиск решения первой же задачи.
Это важный совет, который актуален и для разработки. Не стоит слишком долго работать над одной проблемой. Если что-то не получается, нужно либо отвлечься, а потом вернуться к выполнению, либо спросить у коллег или же поискать возможное решение в интернете.
Кроме того, есть еще один ценный совет — воспользоваться методом утенка. Как это работает? На стол кладется предмет. И разработчик начинает с ним разговаривать. Например, у него можно спросить, в чем проблема с текущей задачей.
Задавать вопрос нужно не формально, а реально — как будто вы разговариваете с человеком.
Правильно сформулировав вопрос, разработчик в большинстве случаев вскоре получает и ответ, потому, что в формулировке содержится 50% правильного решения.
Такой подход помогает быстро найти правильное решение проблемы, поскольку сознание фокусируется на ней. Это отличный психологический прием, позволяющий вывести мыслительный процесс из замкнутого цикла.
Нежелание гуглить в процессе поиска решения
Многие разработчики считают, что искать решение своей задачи в интернете — неправильно. На самом деле, фокус в том, чтобы максимально быстро и эффективно решить определенную задачу в сфере разработки ПО. Что именно при этом нужно или не нужно делать — личное дело каждого.
Нет ничего зазорного в том, что разработчик использует поисковики в процессе. Найдя подходящий код или метод, разработчик в состоянии оперативно решить свою проблему. Если есть время, лучше разобрать решение, которое вы отыскали, чтобы понимать его логику и метод реализации.
Юзабилити сайта
- Главная»
- Уроки»
- Юзабилити сайта
В этой рубрике публикуются интересные материалы, связанные с юзабилити интерфейсов Ваших сайтов.
7 записей на странице 15 записей на странице 30 записей на странице 50 записей на странице 100 записей на странице Все
- Вы все ещё пользуетесь почтовым маркетингом для продвижения своего бизнеса? Если нет, неужели это следствие того,что вы считаете рассылку неуместной для вашего бизнеса? Если вы все же используете рассылку, уверены ли вы в том, что она максимально эффективна? Как и многие другие вещи в жизни, область маркетинга полна слухов и мифов, которые звучат великолепно, но в действительности только вредят. К счастью, упомянутые ниже примеры помогут значительно улучшить стратегии почтового маркетинга.
- Думаю, вы как и я уделяете кучу времени, пытаясь усовершенствовать каждую деталь вашего сайта: от превосходного отображения на различных устройствах, до создания занимательных страницы 404! В то же время, вы когда-то задумывались, что произойдёт, если пользователь оставит поле поиска пустым, а затем нажмёт Enter?
- Термин “разумная достаточность” относится к склонности человека использовать минимальные ресурсы для успешного завершения работы. Это явление, которое осуществляется на подсознательном уровне: чаще всего мы даже не задумываемся о том, что сейчас нам необходимо использовать самый минимум усилий для выполнения определённой задачи.
- Вашему вниманию предлагаем наиболее впечатляющих приёмы за 2014 год, которые используются в веб-дизайне. Вне зависимости от тематики вашего сайта, данные направления могут быть вам полезны.
- UX зависит от множества факторов, но не существует никакой научной формулы, которая подсказала бы вам, что тот или иной вариант верный либо ошибочный. Вы единственные, кто может судить об этом в зависимости от того, соответствует ли UX подход вашим потребностям.
- Ссылки — это душа веба, они — это то, что делает его особенным. Но как же нам сделать так чтобы ссылки были доступными и понятными людям с ограниченными возможностями?..
- На большинстве сайтов навигация выглядит примерно так: основная панель с поддержкой под-навигации. Правда, существуют такие сайты, где обычной системы навигации не хватает. Сегодня мы рассмотрим подобные проблемы и способы их решения.