Айти – быстро развивающаяся сфера. Сейчас одной из ее самых востребованных отраслей является мобильная разработка. Общение, музыка, оплата услуг, развлечения и покупка товаров – все это становится невероятно быстрым и удобным именно благодаря мобильной разработке.
Как происходит разработка мобильного приложения, можно ли переквалифицироваться из гуманитария в технаря и чем сейчас живет волгоградская IT-тусовка, читайте в нашей новой статье.
Кто такой Android-разработчик и чем он занимается
Android-разработчик – программист, который разрабатывает приложения под операционную систему Android. Много лет официальным языком программирования был Java, но в 2019 году произошли довольно масштабные перемены, и в январе на конференции для разработчиков I/O 2019 Google объявила, что теперь предпочтительным для разработки приложений под Android является язык программирования Kotlin. Интересный факт: Kotlin разработали питерские программисты, он назван в честь острова Котлин в Финском заливе, на котором расположен город Кронштадт.
Об этапах разработки мобильного приложения
Первый этап – обсуждение главной идеи приложения, его целей и задач. Перед началом работы обязательно нужно иметь четкое понимание, зачем оно кому-то нужно и какие задачи пользователей оно будет решать. Обычно этим занимается заказчик. К разработчикам он приходит с уже готовой бизнес-целью, и приложение, как правило, нужно ему для того, чтобы зарабатывать деньги.
Чтобы будущее приложение понравилось пользователям, над ним должны поработать дизайнеры. Сначала вместе с заказчиком мы рисуем так называемые вайрфреймы дизайна, наброски того, как в будущем будет выглядеть приложение. А затем дизайнеры отрисовывают уже детализированные макеты. Далее все это обязательно согласуется с заказчиком, и мы все вместе решаем, что можно еще поправить или улучшить.
*Вайрфрейм – это низко детализированное представление дизайна. Он четко должен показывать все важные элементы конечного продукта.
Кстати, когда мы говорим о дизайне мобильного приложения, важен не только его внешний вид, но еще и удобство использования пользователями. То есть, помимо того, что приложение должно красивенько выглядеть, оно должно удобно использоваться: чтобы были логичные переходы между экранами, чтобы оно было достаточно отзывчивым, не вводило пользователя в заблуждение некорректными формулировками и успешно решало все его задачи и цели.
После того как ключевая цель приложения четко сформулирована и отрисованы все макеты, начинается процесс разработки, в том числе программирование. Версткой макетов Android-разработчики занимаются, как правило, сами.
В процессе создания мобильного приложения одних только Android-разработчиков и дизайнеров недостаточно. Фишка в том, что приложение еще так или иначе будет взаимодействовать с сервером, поэтому нам почти всегда необходима помощь бэкенд-разработчиков. Их задача – разрабатывать серверный API и обрабатывать данные, которые мы, мобильные разработчики, по Сети им посылаем.
О любимом этапе разработки
У меня таких два. Первый любимый – самая ранняя стадия разработки, когда мы обсуждаем главные идеи приложения, придумываем фичи, когда ведется очень много споров с дизайнерами о том, как лучше ту или иную штуку презентовать пользователю. И второй любимый этап – непосредственно запуск продукта. Время, когда уже можно посмотреть на метрики, узнать, кто и каким образом использует наше приложение, и на основе этих данных делать какие-то предположения, выводы о том, насколько то, что мы создали, работает так, как мы планировали.
О публикации готового приложения в Google Play
Публикация в Google Play – это всегда довольно большой шаг в создании приложения.
Во-первых, это подготовка скриншотов для размещения на страничке приложения. Они должны быть такими, чтобы пользователь влюбился в наш продукт с первого взгляда.
Во-вторых – иконка. Это, возможно, даже важнее скриншотов будет, ведь, когда пользователь будет искать приложение в Google Play, в первую очередь он увидит именно иконку.
Потом нужно обязательно придумать для приложения лаконичное привлекательное описание и перевести его на языки тех стран, в которых мы хотим его распространять.
Также нужно хорошо разобраться в юридических аспектах: например, если наше приложение обрабатывает личные данные, понадобится подготовить политику конфиденциальности. Ну и также придется пройти разные опросы от Google, чтобы нашему приложению установили возрастной рейтинг.
После того как эти этапы пройдены и запрос на публикацию отправлен, Google какое-то время просматривает заявку, проверяет приложение на то, что там нет совсем уж очевидных ошибок в работе и оно не пытается делать что-то очень небезопасное для пользователей.
Помимо прочего, необходимо иметь аккаунт разработчика, который, если честно, не знаю, сколько сейчас стоит. У меня такого аккаунта нет, потому что публикация приложения всегда происходит из-под аккаунта разработчика той компании, для которой мы разрабатываем продукт.
О том, какие еще бывают разработчики
Помимо iOS- и Android-разработчиков, есть еще такая каста, как кросс-платформенные разработчики. Разработка и под Android, и под iOS обходится довольно дорого, поэтому индустрия постоянно ищет способы найти решение этой проблемы и эти расходы минимизировать.
Кросс-платформенные технологии выгоднее для нашего бизнеса тем, что не нужно иметь две отдельные команды – отдельно под iOS и отдельно под Android, можно просто иметь одну команду, которая пишет код сразу под все целевые платформы. Но из минусов пока могу выделить то, что все кросс-платформенные фреймворки имеют меньше фич, чем нативные библиотеки.
И поэтому для решения каких-то специфичных задач кросс-платформенному фреймворку приходится взаимодействовать с нативным кодом. А для этого всего кросс-платформенной команде очень желательно иметь хотя бы одного человека, который разбирается в iOS, и одного, который разбирается в Android. Помимо нативных библиотек, для разработки под iOS и Android существуют специальные фреймворки, которые позволяют писать код единожды и запускать его на всех мобильных платформах сразу. Сейчас наиболее популярны такие фреймворки, как Flutter и React Native.
*Фреймворки – это программные продукты, которые упрощают создание и поддержку технически сложных или нагруженных проектов.
О том, сложно ли переквалифицироваться из Android-разработчика в iOS-разработчика
Я не пробовал но, думаю, что это не тяжело. Достаточно лишь обзавестись устройством с Mac OS для работы с Xcode. Хотя думаю, можно просто скачать себе эмулятор и не заморачиваться покупкой iPhone.
*Xcode – интегрированная среда разработки программного обеспечения для платформ macOS, iOS, watchOS и tvOS, разработанная корпорацией Apple.
О самых интересных коммерческих проектах
Последним интересным проектом, которым я занимался, была разработка приложения для волонтеров Ямало-Ненецкого автономного округа. С его помощью обычные жители могут заказывать себе волонтеров на дом для помощи при разных жизненных обстоятельствах или в проведении каких-нибудь мероприятий.
О выборе между офисом и удаленкой и зарплате
Меня больше привлекает работа в офисе, но с возможностью опционально работать из дома. Офисная работа мне нравится больше просто потому, что я люблю общаться с коллегами и всегда есть с кем сходить на обед.
На самом деле я мало знаю о том, что такое среднестатический волгоградец и сколько он зарабатывает, но в Москве, конечно же, гораздо больше вакансий и гораздо более существенные зарплаты. В Волгограде не так много студий, которые полноценно занимаются Android-разработкой. Знаю, что есть несколько команд, которые занимаются аутсорсом, и еще недавно я видел несколько вакансий у нас в городе вроде как на продуктовую разработку. Но на самом деле многие программисты, живя и работая в Волгограде, параллельно работают с теми же московскими компаниями удаленно. И я точно знаю, что таких людей в нашем городе много.
О «чужом» коде и о том, можно ли переквалифицироваться из гуманитария в технаря
В чужом коде мне приходится копаться довольно часто. Как правило, это чей-нибудь код с гитхаба, когда нужно взять уже готовую библиотеку, но что-нибудь там подсмотреть, переделать. Хотя сейчас вот говорю и понимаю, что на самом деле в чужом коде мне приходится разбираться не так уж и часто, просто потому что я единственный Android-разработчик в нашей команде. Кодовую базу я пишу, как правило, один. Остальные ребята пишут под другие платформы.
*GitHub – крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки.
Переквалифицироваться из гуманитария в технаря вполне возможно. Но крайне желательно иметь при этом ментора, то есть человека, который уже достаточно искушен в технических вопросах и может, во-первых, ревьюить код, написанный гуманитарием, направить его в нужное русло и всячески мотивировать.
*Код-ревью – систематическая проверка исходного кода программы с целью обнаружения и исправления ошибок, которые остались незамеченными в начальной фазе разработки. Целью обзора является улучшение качества программного продукта и совершенствование навыков разработчика.
Чем привлекает разработка под Android
Все началось еще в школе, когда я уже увлекался программированием и у меня появился мой первый девайс на Android 2.3.7. Сначала это были просто любопытство, интерес, не более того. Но потом мне стали подворачиваться всякие подработки: то приложение написать, то еще что-то... Ну и потом уже как-то так вышло, что основная часть моих заказов – это Android. Хотя, помимо Android, у меня есть еще довольно много заказов из мира веба.
О предрасположенности
Я думаю, что предрасположенность и мотивация – это ортогональные понятия. Ну то есть может быть хорошая предрасположенность, но мало мотивации, а может быть наоборот. Тут уж как повезет: кто в чем себя найдет и реализует.
О постоянной учебе и математике
Вообще, для коммерческой разработки важнее навык знания английского языка, чем математики. И это правда: нужно постоянно следить за тем, что происходит в сфере разработки, критиковать те технологии, с которыми ты сейчас работаешь, чтобы вместо тех болей, которые ты сейчас имеешь, появлялись новые, но зато «исцелялись» старые.
Об айти-движухе в Волгограде
У нас в городе есть IT-сообщество под названием IT-34, эти ребята регулярно, где-то каждые 2-3 месяца, проводят митапы. Я почти на все регулярно хожу, слушаю лекции. Еще местные IT-компании иногда проводят хакатоны, куда можно прийти со своей командой, выступить и, возможно, что-то выиграть. Отношусь я ко всему этому, конечно же, хорошо, но мне немного жаль, что IT-движухи у нас проходят не так часто, как в других крупных городах.
*Хакатон – форум разработчиков, во время которого специалисты из разных областей разработки программного обеспечения (программисты, дизайнеры, менеджеры) сообща решают какую-либо проблему на время.
Что нравится в программировании
В программировании мне в первую очередь нравятся красота и творческая составляющая, а также возможность одни и те же проблемы решать по-разному. Мне очень важна эта красота, не знаю, это сложно передать. Есть такая штука, как красота идей, и я многие вещи делаю, исходя из внутренних тонких ощущений, связанных с восприятием этой красоты. Но, конечно, при этом нельзя забывать о работоспособности написанного кода.
О свободном времени и увлечениях
Больше всего я люблю играть в настольные игры и кататься на велосипеде на большие дистанции, например, проезжать весь город от Красноармейского до Тракторного и потом обратно. А еще, помимо настольных игр, мне нравятся ролевые настольные игры типа Dungeons & Dragons.
Текст: Алина Кожухова
Иллюстрации: Юлия Чудеса