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 зачастую проводится прототипирование («сделаем небольшой прототип приложения и попробуем, насколько удобно им пользоваться»).
На основном сайте отображается как вторая статья про сяомибук.
Вроде, все починили уже.
По мне, так человека, не знающего таких прописных истин, ПМ-ом или техлидом не назначат. Статья больше для чайников.
Техлидом — нет (но это и не для них статья). PM или тем более PO — видел не раз.
Цианид и счастье прекрасны! ?
То есть приложения, которые мы скачиваем из Плей Маркета, Гугл проверяет в лучшем случае антивирусом, а значит мы можем себе установить все, что угодно. Понятненько. Я знал, что многие эти программы хотят иметь доступ к тому, что им не надо ни по функционалу, ни для того чтобы рекламу гонять, но не знал, что все плохо настолько и что устанавливать апк с 4пда не более опасно, чем программы из Плей Маркета. Об отсутствии требований по оптимизации я вообще молчу.
Тут есть нюанс. При установке приложения из Play Market вы можете проверить, что это за разработчик. При установке с 4pda — вы не видите, кто реально подписал пакет (apk). Максимум, что вы можете сделать, это поставить новую версию с 4pda поверх старой, ранее установленной с Play Market. Если получится, значит подпись разработчика не сломана.
Андрей, а как нужно правильно загибать ценник для заказчика? Вот допустим заказал я у тебя или твоей фирмы приложение. На каком этапе ты скажешь мне цену? И из чего она будет складываться? Есть ли возможность, как в супермаркете при выборе кухни, сначала ее бесплатно посчитать? 🙂
Только если вы берете такую-же типовую программу из каталога. Меняя лишь цвет, ширину текстового поля, ну и прочее по мелочи. Тогда прикинуть цену достаточно легко, ибо все подводные камни уже известны. Но в реальности, программа, это строго индивидуальный проект. И сравнивать ее надо не с кухней, а с целым домом. Опять же, полностью не типовым.
И да, если вы четко опишите свои пожелания к программе, и не начнете их менять в процессе, шанс на точную цену значительно возрастет.
Мне кажется, надо упростить процедуру. Заказчик описывает программу, продавец (программист) прикидывает сколько людей и времени надо на ее изготовление и называет примерную цену. Т.е. если кабачки мы продаем на вес, то программы (любые) за человеко-часы. Т.е. разговор должен быть такой: нужно то-то, ответ — 20 моих человек напишут эту программу за 2 месяца за 2 400 000 руб (из расчета 60 000 на человека в месяц).
Не получится. Программирование, самый непредсказуемый процесс, из всех известных мне. Даже долгосрочные прогнозы погоды точнее. ))
Да, цена программы это человеко часы, вот только сколько их понадобится никто не скажет. Грабли оказываются в самых неожиданных местах.
Так и бывает. Только после подробного ТЗ цена может быть изменена.
Как правило, оценивается трудоемкость, а потом выставляется цена исходя из часовой ставки (хоть отдельного разработчика, хоть компании в целом). Оценка, конечно, бесплатная.
Бывают и варианты с фиксированной ценой. Тогда уже разработчик смотрит, выгодно ли ему делать предложенный объем работы, по предложенной цене.
«В Google, в отличие от Apple, не предусмотрено никакой ручной проверки
приложений. Точнее, выборочная проверка может быть. Но нет никаких
специальных требований по подготовке к проверке. Например, если у вашего
приложения какая-то закрытая система входа (регистрации), то при
публикации в AppStore вы должны передать Apple данные для входа. Google
ничего подобного не требует. Сами сроки публикации приложений, как
правило меньше: не более суток для нового приложения и несколько часов
для обновления. С отказом от публикации я ни разу не сталкивался.»
Вот это я понимаю ответственный подход, не то что яблоко!
Что самое забавное, из списка требований формально можно убрать «почти любой компьютер», поскольку приложения под Android-устройства можно писать прямо на этих самых устройствах. Что-то сложное, конечно, писать не станешь, но простую утилитку сваять или учебное задание — вполне. И такие андроид-IDE как AIDE с миллионами закачек подтверждают, что людям тема интересна.
Такие IDE все же используются для исключительных ситуаций, а не для штатного процесса разработки. Обычный ПК будет намного удобнее. Да он и есть почти у всех, кто действительно интересуется разработкой.
Я понимаю, комментарий был на правах шутки.
В основном для знакомства с миром андроид-разработки используются такие среды, насколько я могу судить. Попробовать в несколько кликов, на ходу. Именно поэтому, несмотря на миллионы закачек, лицензию оплатили один из ста.
>> В основном для знакомства с миром андроид-разработки используются такие среды, насколько я могу судить.
Никогда не видел. Честно. Сегодня даже у школьников дома есть ПК. Скачать и установить Android Studio — дело нескольких минут. И все получается намного удобнее.
Удобнее, да. И PC у каждого желающего. Но более миллиона скачиваний AIDE — это всё же о чём-то говорит. Не каждая игрушка-головоломка таких показателей добивается. Там есть интерактивные уроки, может, этим привлекает. Может, своеобразный способ скоротать время, когда телефон под рукой. В конце концов, находятся люди, которые географические карты пальцами на телефонах рисуют с помощью Vespucci OSM Editor, что, на мой взгляд, куда большее извращение.
>> Может, своеобразный способ скоротать время, когда телефон под рукой.
Может быть. Или, может, уже опытный разработчик ищет способы всегда оставаться в процессе разработки, даже если не взял с собой ноутбук. Я ведь не отрицаю эту IDE. Просто, как мне видится, на начальном этапе она совсем не нужна. Проще и лучше работать на PC с Android Studio.
Прямо на смартфоне или планшете можно программировать полноценно, хватает сред разработки для Андроид, например на Ноуте 8 со стилусом было бы здорово.