Хто такий Android-розробник. Огляд зсередини від Артема Шабана

Про Android-розробки розповідає Артем Шабан, Development Director в Onde. Продовжуємо цикл матеріалів про IT-спеціальності. Кожну з них описує «типовий представник» — досвідчений фахівець. Сподіваємося, ці матеріали допоможуть школярам, ​​студентам, перекваліфікантам, джуніорам і співчуваючим вибрати спеціальність в IT, оцінити перспективи або просто звірити годинники з авторитетним колегою. Обговорюйте і доповнюйте матеріал в коментарях, щоб зробити його ще кориснішим.

Хто такий Android-розробник. Огляд зсередини від Артема Шабана

Про Android-розробки розповідає Артем Шабан, Development Director в Onde. Продовжуємо цикл матеріалів про IT-спеціальності. Кожну з них описує «типовий представник» — досвідчений фахівець. Сподіваємося, ці матеріали допоможуть школярам, ​​студентам, перекваліфікантам, джуніорам і співчуваючим вибрати спеціальність в IT, оцінити перспективи або просто звірити годинники з авторитетним колегою. Обговорюйте і доповнюйте матеріал в коментарях, щоб зробити його ще кориснішим.

Коротко про мене:

— 7 років в розробці;

— досвід в Android-розробці близько 5 років;

— прийшов в Onde джуном і подолав весь шлях до сеньйора і тімліда;

— зараз моя роль в Onde — Development Director.

У загальному вигляді мета роботи представника цієї професії — розробити мобільний додаток так, щоб користувач відкрив його і сказав: «Вау! Він розв’язує мою проблему». Вся робота розробника спрямована на виконання даної мети.

Мобільний розробник намагається максимально полегшити життя користувачеві: додаток не повинен «вилітати»; він не повинен гальмувати навіть на старих або дешевих пристроях (адже Android-смартфонів дуже і дуже багато!); інтерфейс, який створюють дизайнери і реалізують програмісти, має бути зручний і зрозумілий. Такі завдання розробник вирішує щодня.

Onde

Компанія постачає інноваційне програмне забезпечення для on-demand-підприємств з 2011 року. У компанії 70+ ентузіастів і ентузіасток, які прагнуть поліпшити транспортне сполучення в усіх куточках планети.

Головна спеціалізація Onde — розробка софта, необхідного компаніям для on-demand доставки, замовлення таксі та послуг. Клієнти компанії знаходяться в 60+ країнах і становлять активну й унікальну групу підприємців у сфері on-demand мобільності.

Чим Android-розробка відрізняється від інших видів розробки (і, по-моєму, чому крутіша від їх усіх)?

Насправді всі види розробки важливі. Важливий бекенд, який забезпечує правильну роботу додатків на серверах. Спасибі «бекендерам» за це! З «фронтендом» користувач стикається в першу чергу, тому що саме фронтендери розробляють інтерфейс (UX / UI) додатки. Як відомо, зустрічають по одягу. Тому чим крутіше UX / UI, тим більше шансів у додатки стати популярним.

Але найкрутіші хлопці — «мобільщики» — розробники, які створюють самі додатки. Бути мобільником круто хоча б тому, що ти завжди можеш побачити й показати іншим результати своєї праці. Бекенд-розробник не може відкрити свій додаток перед мамою, дружиною або кимось іншим і сказати: «Дивись, як круто я зробив!» Якщо ти працюєш мобільним розробником у великій компанії, то твоїми додатками будуть користуватися сотні тисяч або навіть мільйони людей. Це надихає.

Чому Android, а не iOS?

Мобільна розробка ведеться на двох найпопулярніших платформах: Android і iOS. І тут починається справжній холівар. Поясню, чому я колись зробив вибір на користь Android.

  1. Поріг входу на Android нижче, ніж на iOS — як для користувача, так і для розробника. Телефон на Android можна купити за $50 або навіть дешевше. Скільки там коштує новий айфон? Розробник може навіть не купувати девайс, щоб працювати над додатком. Можна обійтися Android-емуляторами на комп’ютері. Колись я так і починав.
  2. Android широко використовують не тільки на смартфонах, але і в «розумних» речах (IoT): від автомобілів до «розумних» прасок та пральних машин.
  3. Світ Android дуже складний і різноманітний. У айфона всього пару десятків моделей, Android-девайсів — тисячі. Цікаво знати, що твоїм додатком будуть користуватися на тисячах різних пристроїв! Слова «оптимізація» і «перформанс» все ще не забуті в Android-розробці. Мільйони людей в Африці та Азії використовують супердешеві девайси, і твій додаток повинен стабільно працювати на будь-якому «китайфоні». Світ Android-девайсів постійно підкидає тобі нові виклики й нові завдання. Звичайно, це не тільки цікаво, а й складно: треба бути завжди готовим, що додаток перестане працювати на черговій нетиповій моделі смартфона.
  4. Android — це open-source платформа. Код, на якому вона написана, доступний кожному. Завжди можна зазирнути глибше і дізнатися, яким чином розроблена і функціонує сама система.

Як Android-розробник працює над додатком

Основні етапи розробки мають приблизно такий вигляд.

  • По-перше, Android-розробник повинен розуміти контекст завдання: для кого і для чого призначений додаток, який вигляд він матиме і як працюватиме. Зазвичай на початку роботи є готовий макет UX / UI додатку і його загальний опис. Основа програми — UX (User Experience — проєкт взаємодії користувача з інтерфейсом). Він має вигляд розкадрування екрану майбутньої програми, начерк того, як користувач працюватиме з нею. Потім на проєкт накладається початковий UI-інтерфейс, а вже готовий дизайн віддають розробнику. Досвідчені розробники беруть участь у створенні додатку вже на першому етапі — проєктування макета UX. Адже завжди є технічні обмеження, і про них краще знати вже на стадії проєктування.
  • Розробники (часто за допомогою бізнес-аналітиків) розписують кейси (use cases) — основні послідовності дій в додатку. Натиснув одну кнопку в інтерфейсі — відкрилося основне вікно. Натиснув іншу кнопку — вискочив список налаштувань. І так далі. У невеликих стартапах початкова робота над додатком може обмежуватися роботою над UX / UI.
  • Основна розробка ведеться поекранно. Екрани — це важливі ділянки додатку, які створюються окремо. Наприклад, три екрани поділяються між командою, потім з'єднуються. Якщо розробник не знає, як написати ту чи іншу ділянку коду або додати якийсь компонент програми, він гуглить. Або просить консультації у колег. У цій роботі завжди треба вчитися.
  • Екрани готові, додаток готовий. Тестувальники повинні перевірити, щоб все відповідало вимогам. Але починає тестування сам розробник — треба ж поклікати і переконатися, що додаток працює нормально. Іноді розробник пише для тестувальників автоматизовані тести.
  • Фінальний етап — вихід додатка в Google Play. У невеликих компаніях заливає додаток в стор сам розробник. Зробити це нескладно — треба всього-то натиснути пару кнопок. Але у великих компаніях, як Onde, в стори завантажують десятки й сотні додатків, так що цим займаються окремі люди.

Коли додаток готовий і вийшов у Google Play, робота розробника не закінчується. Йому належить підтримувати, змінювати та покращувати програму.

Наведу приклад типової задачі. UI-дизайнери перенесли кнопку в інше місце інтерфейсу і змінили її колір. Розробнику слід поміняти розмітку (layout) додатка. І далі — перевірити, що кнопка правильно розташована на різних орієнтаціях екрану, а при натисканні вона правильно змінює колір, тінь, положення. Ви ж пам’ятаєте, що Android-девайсів безліч? Так ось треба ще переконатися, що кнопка буде правильно розташовуватися і відображатися на екранах різного розміру і дозволу.

Які інструменти використовує Android-розробник

  1. Android Studio. Це офіційна IDE (інтегроване середовище розробки) для Android, створена JetBrains і Google. Тут пишеться код.
  2. Git. Сюди складається написаний код і тут зберігається.
  3. Смартфон або Android-емулятор на комп’ютері. На них під час запуску програми і тестуються.

Зараз більшість Android-розробників пише код на Kotlin, але ще пару років тому все писали на Java. Ці дві мови схожі (обидві належать до групи JVM-мов), тому переходити з одної на іншу нескладно. Якщо зовсім просто, то Kotlin — та ж Java, тільки трохи красивіша і приємніша. Сьогодні Kotlin — один з офіційних мов для Android.

Що повинен знати і вміти Android-розробник

Скіли розробника суттєво залежать від його рівня. Поділи на такі рівні завжди умовні, абсолютної градації немає. Для простоти виділю для розробника три ролі: джун, міддл і всі інші (сеньйор, тімлід, технічний директор та ін.).

Для себе я визначив дуже простий спосіб їх розрізняти — за рівнем завдань. Джун завжди вирішує елементарні та зрозумілі завдання. Міддл вже впорається з будь-яким завданням. Він зробить його правильно, але, швидше за все, не з першого разу — йому доведеться зробити кілька ітерацій. А ось сеньйор або рівний йому фахівець відразу впорається з будь-яким, навіть найскладнішим завданням.

Можна порівняти розробку програм зі збиранням автомобіля. Джуну для збирання знадобляться деталі та інструкція. Доведеться добряче постаратися, але рано чи пізно машину він збере. Міддлу дай запчастини — і авто буде готове. А ось сеньйор — та людина, яка може спроєктувати машину з нуля. Досить поставити перед ним спільне завдання: «машина повинна бути швидка» або «це повинен бути позашляховик».

Джуну дають типові завдання початкового рівня. Зазвичай вони пов’язані з UX / UI: додати в інтерфейс кнопочку, змінити параметри того чи іншого елемента. Іншими словами, в добре відомих місцях додатка він змінює зрозумілі шматочки коду. Основний скіл джуна — вміння вчитися. На мою думку, для джуна в принципі не дуже важливі знання конкретних технологій (мови програмування або фреймворка). Знання дуже швидко застарівають. Єдине, що не старіє, це здатність думати і вчитися.

Міддлу не страшно дати будь-яке завдання, і він точно з ним впорається. Більшість програмістів (незалежно від того, як їх ролі називаються в конкретній компанії) — міддли. У Білорусі, наприклад, ця роль починається після двох років хорошого досвіду. Міддл працює з уже готовою архітектурою. Знає, як вона працює, знайомий з її базовими компонентами. Він уже добре володіє мовами програмування і фреймворком Android.

Сеньйор не тільки знає і розуміє архітектуру програми, але може і сам її спроєктувати. Він вирішує концептуальні завдання. Сеньйору, на додаток до всіх перерахованих навичок міддла, необхідне дуже добре розвинене абстрактне мислення. На цьому рівні програмування перетворюється на справжню творчість.

Чи є життя після сеньйора?

Майже будь-який розробник йде по цих сходах — джун-міддл-сеньйор. Далі перед ним відкриваються два концептуально різних шляхи.

Він може розвиватися в хард-скілах — вирости в дуже крутого технічного фахівця. Це може бути Principal Developer або Solution Architect. Вони вирішують технічні завдання вищого порядку: концептуальні проблеми з перформансом або крос-платформеністю, самі проєктують програми.

Другий шлях — менеджерський. Сеньйор може стати тімлідом, а з тімліда вирости в технічного директора — СТО. Це вершина розвитку технічного менеджера.

І, звичайно, завжди можна відкрити свою компанію і розвивати власні ідеї та продукти.

Що читати й де вчитися

Не буду рекомендувати багато книг. Зізнаюся чесно: сам я до кінця не прочитав жодної книжки з програмування. Хоча напевно комусь книжки подобаються і допомагають.

Дуже рекомендую всім новачкам писати свої додатки. Це звучить складно, але насправді це не так.

Як би я зараз навчався програмувати під Android? По-перше, знайшов би безкоштовний курс з програмування. По-друге, подивився б відео-гайд зі створення свого додатка. Паралельно створював би простенький додаток. Таким чином можна вивчити основи мови й застосувати їх відразу на практиці. В кінці такого курсу навчання на руках у джуна буде готовий додаток, і з ним можна йти влаштовуватися на роботу.

І в кінці — невелика історія

Одного разу на співбесіду в Onde прийшов чоловік. Він не знав ні Java, ні Kotlin. Зате написав власний додаток на Delphi — найпростішу гру на кшталт змійки. Ми навіть не знали, як з ним проводити співбесіду, адже людина нічого не знала з потрібних нам технологій! Але він створив свій додаток і чудово розумів базові принципи програмування. Зараз ця людина — одна з ключових Android-розробників в компанії.

Список ресурсів

Kotlin

Для тих, хто не знає мов програмування: «Head First. Kotlin».

Для тих, хто вміє трохи програмувати: короткий гайд на офіційному сайті Kotlin.

«Head First. Патерни проєктування» — одна з небагатьох книг, яку я прочитав, тому що там картинок більше ніж тексту =). Вона для тих, хто вже вміє програмувати й хоче розвиватися далі. Патерни проєктування — це обов’язкові знання, щоб трансформуватися з джуна в міддла. Тому для початку її можна не читати, але варто запам’ятати й прочитати в майбутньому.

Android

  • Базовий сайт, який варто додати в закладки: developer.android.com.
  • Безкоштовні поетапні уроки російською (щось на Kotlin, щось на Java, але не варто цього боятися, синтаксис дуже схожий): developer.alexanderklimov.ru.

Безкоштовні курси, рекомендовані Kotlin і Google:

Корисний російськомовний підкаст: AppTractor — Android Dev Podcast.  

Технічні новини (раджу читати, щоб бути в темі): Android-розробка на Хабрахабр. 

Хто такий Project Manager в геймдеві. Огляд зсередини Ольги Савельєвої
Хто такий Project Manager в геймдеві. Огляд зсередини Ольги Савельєвої
По темi
Хто такий Project Manager в геймдеві. Огляд зсередини Ольги Савельєвої
Хто такий 3D-художник в геймдеві. Огляд зсередини Олени Барабанщикової
Хто такий 3D-художник в геймдеві. Огляд зсередини Олени Барабанщикової
По темi
Хто такий 3D-художник в геймдеві. Огляд зсередини Олени Барабанщикової

Хочете повідомити важливу новину? Пишіть у Telegram-bot.

А також підписуйтесь на наш Telegram-канал.