12 сентября 2017

Разработка под Android для менеджеров

Вы захотели сделать мобильное приложение? А, может, вы занимались разработкой ПО в других областях, но внезапно вас назначают руководителем проекта или владельцем продукта для приложения на Android? Тогда вам надо знать несколько простых вещей о том, что нужно для разработки под Android и чем это отличается от разработки под iOS (спойлер: все проще и дешевле).

Кадры

Потенциально количество разработчиков под Android значительно больше количества разработчиков под iOS. Попробовать писать приложения для «зеленого робота» может практически любой программист, порог вхождения здесь минимален. Однако, если вы хотите набрать крутых разработчиков для серьезного проекта, то здесь ситуация типична для всей отрасли: профессионалов не так уж и много, и стоят они недешево. Иногда даже компании, имеющие серьезный штат разработчиков, отдают часть проектов на аутсорс (например, так поступает Яндекс).

Техника

Именно здесь проявляется главный плюс (в теории) разработки под Android – для того, чтобы писать приложения, вам нужен компьютер. Любой. Свои первые приложения я начинал писать в 2011 году на Dell Inspiron Mini 12 – нетбуке с дохлым процессором Intel Atom (не требующим активного охлаждения), 1 Гб памяти и винчестером со скоростью вращения шпинделя 4200 об./мин. Но со временем все меняется. Другие инструменты требуют других ресурсов. Одна только система сборки приложений – gradle – на больших проектах пишет, что неплохо бы выделить лично ей 2 Гб памяти. Лично ей, а не всему пакету разработки Android Studio. Поэтому сегодня минимально комфортным набором я считаю Core i5, 8 Гб памяти и SSD.

Настоящая свобода царит в выборе ОС. Разработку под Android можно вести на Windows, Mac OS и Linux. Это очень удобно и позволяет закрыть все возможные случаи, будь то жесткие корпоративные стандарты в компании или ведение одним разработчиком проектов как под iOS, так и под Android).

Часть приложений разработчики могут запускать и отлаживать прямо на эмуляторе, но для некоторых им обязательно понадобятся «железные» гаджеты. Особенно много их нужно будет для тестирования (но об этом позже).

Дизайн

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

  • 3,88″ (ультрадешевые устройства с физической диагональю 4-5″ и разрешением 800×480);
  • 4,6″ (основной «парк» смартфонов);
  • 5,2″ (более-менее новые флагманы с физической диагональю от 5,2″).

Кроме того, не следует забывать о различной геометрии экрана (соотношении сторон).

Еще одна сложность для дизайнеров – многообразие плотностей пикселей. Растровая графика должна быть подготовлена как минимум для 240, 320, 480 dpi (иногда еще 640). Впрочем, после появления плотности пикселей 420 dpi как стандартной, Google рекомендует по возможности использовать векторную графику в формате SVG. В этом случае дизайнеру не придется делать по 3-4 варианта для каждой иконки.

Тестирование

Тестирование – одно из самых больных мест процесса разработки под Android. Бывает, что ошибки в приложениях не воспроизводятся на эмуляторе, но воспроизводятся на смартфоне. Бывает, что ошибку можно увидеть только на особой диагонали, плотности пикселей, процессоре, версии Android или оболочке.

Все это приводит к тому, что для качественного тестирования необходимо иметь много смартфонов (и/или планшетов, если вы делаете приложения для них) и своевременно их обновлять. И, конечно, зоопарк устройств влияет на продолжительность тестирования: одну и ту же функциональность приходится прогонять на нескольких устройствах, а не на одном.

«Дайте мне инсталлятор»

Сегодня любой смартфон на Android имеет опцию установки ПО из сторонних источников. Это значит, что разработчик всегда может собрать пакет с приложением (файл с расширением apk). В дальнейшем это приложение может быть установлено на любой смартфон (разумеется, с учетом стандартных ограничений, например, приложение для Android 5+ нельзя установить на 4.*). Для этого не требуется никаких сторонних сервисов, предварительной регистрации устройств и прочего. Просто устанавливаете — и получаете рабочее приложение. Кроме того, если вы планируете разработку большого числа приложений для ограниченного использования (например, внутри предприятия), то можно сделать свой магазин приложений (по примеру Яндекс.Store).

Публикация в Google Play

Несмотря на то, что ручная установка приложений иногда имеет место быть даже для вполне серьезных компаний, самым «правильным» способом все же остается Google Play. Для того, чтобы начать публиковать там приложения, необходимо зарегистрироваться в качестве разработчика и заплатить $25 (платеж разовый, никакой абонентской платы не предусмотрено).
В Google, в отличие от Apple, не предусмотрено никакой ручной проверки приложений. Точнее, выборочная проверка может быть. Но нет никаких специальных требований по подготовке к проверке. Например, если у вашего приложения какая-то закрытая система входа (регистрации), то при публикации в AppStore вы должны передать Apple данные для входа. Google ничего подобного не требует. Сами сроки публикации приложений, как правило меньше: не более суток для нового приложения и несколько часов для обновления. С отказом от публикации я ни разу не сталкивался.

Но однажды был случай, когда Google заподозрил в нарушении авторских прав на контент, отображаемый в приложении. Попытка объяснить, что весь контент предоставлен правообладателем на законных основаниях не сработала, и в итоге приложение было переопубликовано с другого аккаунта.

Итого

Итак, чтобы начать разрабатывать и распространять приложения под Android, вам понадобятся:

  • почти любой компьютер;
  • почти любой смартфон;
  • банковская карта с $25 (при необходимости публикации в Google Play);
  • человек, знающий или готовый изучить Android Studio и Android SDK.

Благодаря этому попробовать сделать приложение под Android обычно бывает проще, чем под iOS, и именно на Android зачастую проводится прототипирование («сделаем небольшой прототип приложения и попробуем, насколько удобно им пользоваться»).

 

Читайте также

  • ArtemV

    На основном сайте отображается как вторая статья про сяомибук.

  • Вроде, все починили уже.

  • Behzod Sabirov

    По мне, так человека, не знающего таких прописных истин, ПМ-ом или техлидом не назначат. Статья больше для чайников.

  • Cthulhu_Fhtagn

    Цианид и счастье прекрасны! 👏

  • Jim Beam

    То есть приложения, которые мы скачиваем из Плей Маркета, Гугл проверяет в лучшем случае антивирусом, а значит мы можем себе установить все, что угодно. Понятненько. Я знал, что многие эти программы хотят иметь доступ к тому, что им не надо ни по функционалу, ни для того чтобы рекламу гонять, но не знал, что все плохо настолько и что устанавливать апк с 4пда не более опасно, чем программы из Плей Маркета. Об отсутствии требований по оптимизации я вообще молчу.

  • Техлидом — нет (но это и не для них статья). PM или тем более PO — видел не раз.

  • Alexandr.Noskov

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

  • Lecron

    Только если вы берете такую-же типовую программу из каталога. Меняя лишь цвет, ширину текстового поля, ну и прочее по мелочи. Тогда прикинуть цену достаточно легко, ибо все подводные камни уже известны. Но в реальности, программа, это строго индивидуальный проект. И сравнивать ее надо не с кухней, а с целым домом. Опять же, полностью не типовым.

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

  • Alexandr.Noskov

    Мне кажется, надо упростить процедуру. Заказчик описывает программу, продавец (программист) прикидывает сколько людей и времени надо на ее изготовление и называет примерную цену. Т.е. если кабачки мы продаем на вес, то программы (любые) за человеко-часы. Т.е. разговор должен быть такой: нужно то-то, ответ — 20 моих человек напишут эту программу за 2 месяца за 2 400 000 руб (из расчета 60 000 на человека в месяц).

  • Lecron

    Не получится. Программирование, самый непредсказуемый процесс, из всех известных мне. Даже долгосрочные прогнозы погоды точнее. ))
    Да, цена программы это человеко часы, вот только сколько их понадобится никто не скажет. Грабли оказываются в самых неожиданных местах.

  • Как правило, оценивается трудоемкость, а потом выставляется цена исходя из часовой ставки (хоть отдельного разработчика, хоть компании в целом). Оценка, конечно, бесплатная.

    Бывают и варианты с фиксированной ценой. Тогда уже разработчик смотрит, выгодно ли ему делать предложенный объем работы, по предложенной цене.

  • Так и бывает. Только после подробного ТЗ цена может быть изменена.

  • Тут есть нюанс. При установке приложения из Play Market вы можете проверить, что это за разработчик. При установке с 4pda — вы не видите, кто реально подписал пакет (apk). Максимум, что вы можете сделать, это поставить новую версию с 4pda поверх старой, ранее установленной с Play Market. Если получится, значит подпись разработчика не сломана.

  • Вячеслав Алехин

    «В Google, в отличие от Apple, не предусмотрено никакой ручной проверки
    приложений. Точнее, выборочная проверка может быть. Но нет никаких
    специальных требований по подготовке к проверке. Например, если у вашего
    приложения какая-то закрытая система входа (регистрации), то при
    публикации в AppStore вы должны передать Apple данные для входа. Google
    ничего подобного не требует. Сами сроки публикации приложений, как
    правило меньше: не более суток для нового приложения и несколько часов
    для обновления. С отказом от публикации я ни разу не сталкивался.»
    Вот это я понимаю ответственный подход, не то что яблоко!

  • iVasya

    Что самое забавное, из списка требований формально можно убрать «почти любой компьютер», поскольку приложения под Android-устройства можно писать прямо на этих самых устройствах. Что-то сложное, конечно, писать не станешь, но простую утилитку сваять или учебное задание — вполне. И такие андроид-IDE как AIDE с миллионами закачек подтверждают, что людям тема интересна.

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

  • Ираклий Базгадзе

    Прямо на смартфоне или планшете можно программировать полноценно, хватает сред разработки для Андроид, например на Ноуте 8 со стилусом было бы здорово.

  • iVasya

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

  • >> В основном для знакомства с миром андроид-разработки используются такие среды, насколько я могу судить.

    Никогда не видел. Честно. Сегодня даже у школьников дома есть ПК. Скачать и установить Android Studio — дело нескольких минут. И все получается намного удобнее.