Кар'єра, Новини, Розробникам

Як стати Android-розробником: з нуля до публікації додатка Android у Google Play

13 Серпня, 2020

15 кроків, і ви Android-розробник! Розповідаємо, яку мову вибрати, як навчитися писати програми і на що звернути увагу при розробці програм під мобільні пристрої.

Android-розробник – професія майбутнього. Основні тенденції в розвитку мобільних технологій в найближчі роки будуть пов’язані з наступними напрямками:

  • Доповнена і віртуальна реальність. AR і VR вже застосовуються в мобільних іграх і при відвідуванні інтерактивних музеїв. Особливий шик надає спільне використання з сервісами геолокації. Мобільні пристрої – найдоступніший варіант, щоб скористатися цими технологіями.
  • Алгоритми машинного навчання (ML). Ми і не помічаємо, скільки різних ML-рішень ми вже використовуємо в наших смартфонах: розпізнавання тексту, детектування осіб, читання штрих-кодів, розпізнавання пам’яток, перетворення аудіозаписів в мову, консультації з чат-ботами тощо. Всі ці технології роблять наше життя простішим. У міру зростання продуктивності пристроїв і більшої доступності хмарних обчислень будуть «входити в моду» все ресурсомісткіші алгоритми.
  • Хмарні обчислення. Частка мобільного трафіку зростає, все більше користувачів за допомогою мобільних пристроїв отримують доступ до різних програм і ресурсів. Інформаційний бум вимагає продуктивних потужностей, і хмарні обчислення – ефективний спосіб задовольнити ці потреби.
  • Електронні платежі. Купувати товари за допомогою смартфонів стає все простіше: і за допомогою NFC, і онлайн. А нові технології, такі, як блокчейн, забезпечують кращу безпеку платежів.
  • Кібербезпека. Істотна частина нашого життя проходить зі смартфоном в руці, тут зберігається багато важливого. Мобільні пристрої – приваблива мішень для хакерських атак. Більшість вразливостей є наслідком недостатнього опрацювання концепції захисту. Поліпшення якості захисту буде стимулювати розвиток ринку.

Але які навички потрібні, щоб стати успішним Android-розробником? З чого почати?

1. Виберіть мову програмування

Дві основні мови програмування для розробки додатків на Android – Java і Kotlin. За фактом, якщо ви будете займатися розробкою серйозно, то вам не обійтися без обох мов. Однак на конференції Google I/O 2019 було оголошено, що Kotlin найбільш прийнятний і офіційною мовою для Android. Використання Kotlin скорочує число помилок в коді, мова легко інтегрується в існуючі програми.

2. Виберіть інтерактивне середовище для Android-розробки

Як стати Android-розробником: з нуля до публікації додатка Android у Google Play - developers, news, career

Вибір середовища розробки – справа смаку. Однак на першому етапі доцільніше використовувати Android Studio. Остання версія IDE 4.0 від травня 2020 року доступна для завантаження на офіційному сайті Android.

3. Вивчіть маніфест і компоненти Android-додатка

Коли ви створите чернетку свого першого проєкту в середовищі проєктування, середовище автоматично створить в папці Android-проєкту файл маніфесту AndroidManifest.xml.

Файл маніфесту містить унікальний ідентифікатор додатка і описує компоненти програми. Пройдіться по цьому списку компонентів, вам стане зрозуміло, що буде потрібно вивчити:

  • Activity – вікно керування з призначеним для користувача інтерфейсом. Особливу увагу слід приділити вивченню життєвого циклу активності (Activity Lifecycle).
  • Служби (Service) – компоненти, що працюють у фоновому режимі. Наприклад, служби можуть обробляти мережеві транзакції, відтворювати музику, виконувати введення-виведення файлу або взаємодіяти з постачальником контенту.
  • Постачальники контенту (Content providers). Часто виникають ситуації, коли необхідно отримати доступ до інформації з іншої програми. Постачальники контенту управляють даними: аудіо, відео, зображеннями та особистою контактною інформацією (контакти, список викликів). Це єдиний спосіб спільного використання даних додатками в Android.
  • Приймач повідомлень (Broadcast receiver) – компонент, що реагує на повідомлення системи Android та інших додатків: повідомлення про низький заряд батареї, недоступності мобільної мережі, появі в зоні дії Wi-Fi-мереж.
  • Intents – об’єкти, що зв’язують окремі компоненти (Activity, Service і Broadcast receiver) під час роботи програми.

4. Вивчіть основні елементи призначеного для користувача інтерфейсу Android-додатка

Основними елементами призначеного для користувача інтерфейсу додатка є:

  • UI Layouts – макети екранів додатка;
  • UI Components – поля введення/виведення, кнопки, тулбари, елементи відображення і роботи з мультимедіа, елементи відображення даних, наприклад, RecyclerView;
  • App Resources – ресурси програми: рядки, шрифти, стилі, растрова і векторна графіка, іконки та анімація;
  • Fragment – модуль для користувача інтерфейсу Activity. Особливу увагу при розробці користувацького Fragment слід приділити вивченню його життєвого циклу (Fragment Lifecycle);
  • Інші елементи призначеного для користувача інтерфейсу (пошуковий інтерфейс, діалогові вікна, ProgressBar, Toast/SnackBar).

Макети екранів додатка (UI Layouts) мають різну структуру:

  • Linear Layout – макет, в якому дочірні елементи представлені в горизонтальних або вертикальних шпальтах;
  • Relative Layout – макет, в якому можна задавати розташування дочірніх об’єктів відносно один одного або щодо батьківського об’єкта;
  • Constraint Layout – найбільш універсальний і затребуваний макет, який дозволяє створювати складні композиції.

5. Вивчіть сховища даних Android

Дізнайтеся, як зберігати дані програми і користувача на пристрої: в парах ключ-значення, базі даних або інших типах даних.

Важливо також навчитися обмінюватися даними між додатками і пристроями. Корисно освоїти роботу зі службами резервного копіювання, щоб користувачі могли зберігати інформацію в хмарі, синхронізувати її між пристроями і відновлювати при придбанні нового пристрою.

Система надає кілька варіантів зберігання даних:

  • Сховище додатка (app-specific storage) зберігає файли, призначені тільки для вашого застосування. Або в виділених каталогах на внутрішньому накопичувачі, або в каталогах зовнішнього сховища. Якщо інформація є конфіденційною, краще зберігати її у внутрішньому сховищі.
  • Загальне сховище (shared storage) зберігає файли, які додаток має намір надати іншим програмам: мультимедіа, документи та інші файли.
  • Налаштування (preferences) використовуються для зберігання примітивних даних в парах ключ-значення.
  • Бази даних (databases) застосовуються для зберігання структурованих даних в приватній базі даних за допомогою бібліотеки Room.

6. Вивчіть, як працює збірка Android-додатків і плагін Gradle

Система збирання Android збирає ресурси програми і вихідний код, упаковує їх в APK-файли. Їх можна тестувати і поширювати. Android Studio використовує Gradle – просунутий інструмент автоматизації і управління процесом складання. Це дозволяє визначити різні налаштування конфігурації для різних проектів.

7. Навчіться створювати багатопотокові Android-додатки

Кожен Android-розробник стикається з необхідністю використання потоків. Коли додаток запускається, він створює основний потік виконання. Щоб додаток зберігав чуйність, необхідно уникати використання основного потоку для виконання операцій, які призводять до його блокування: мережеві операції, звернення до бази даних, завантаження компонентів. Такі процеси виконуються в окремих потоках. Android надає безліч способів створення і управління потоками. При використанні мови Kotlin для цих завдань можна використовувати Coroutines.

8. Вивчіть методи налагодження Android-додатка

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

Як стати Android-розробником: з нуля до публікації додатка Android у Google Play - developers, news, career

Налагодження програми здійснюється стандартними засобами, наданими середовищем розробки Android Studio.

9. Навчіться працювати зі сторонніми бібліотеками

Далеко не будь-яке завдання можна вирішити за допомогою стандартних засобів Android. Для багатьох задач вже розроблені власні рішення, якими гріх не скористатися. Для обробки і завантаження зображень це Glide і Picasso, для впровадження залежностей (Dependency Injection) – Dagger, Koin, Kodein і Hilt, для мережевих взаємодій – Retrofit, для багатопотокового програмування – RxJava. Не полінуйтеся також вивчити бібліотеки Google: Firebase, Google Play Services, Google Maps. Знайомство з пристроєм сторонніх бібліотек також навчить вас писати якісніший код у власних проектах.

10. Вивчіть Android Jetpack – набір бібліотек та інструментів, що прискорюють роботу Android-розробника

Як стати Android-розробником: з нуля до публікації додатка Android у Google Play - developers, news, career

Android Jetpack – це набір бібліотек та інструментів, створений командою Google для спрощення розробки під Android. Бібліотеки, що входять в Jetpack, розділені на чотири види:

  • Foundation – базові бібліотеки, які допомагають скоротити шаблонний код.
  • Architecture Components – бібліотеки, які використовуються для побудови архітектури додатку.
  • Behavior – бібліотеки-обгортки для функціональності, що надається Android SDK. Створені для поліпшення стандартного Android API: Permissions, Notifications, CameraX і інші.
  • UI – компоненти для роботи з фрагментами, елементами призначеного для користувача інтерфейсу і анімацією.

11. Вивчіть архітектурні шаблони проєктування

У міру зростання програми ви неминуче зіткнетеся з питаннями проєктування, використання напрацьованих практик і досвіду інших розробників. Замість того щоб винаходити велосипед, швидко і елегантно катайтеся на перевірених моделях. Якомога раніше почніть розбирати шаблони проєктування – вони описують типові способи вирішення поширених проблем при проєктуванні Android-додатків.

За замовчуванням, корпорацією Google задокументована архітектура MVVM, але потрібно використовувати ту, яка краще відповідає нашим потребам.

Поширені три шаблони проєктування:

  • MVVM (Model-View-ViewModel) – використовується для поділу моделі та її уявлення. Розробник задає логіку роботи з даними, а дизайнер працює з призначеним для користувача інтерфейсом.
  • MVP (Model-View-Presenter) – шаблон, який полегшує автоматичне модульне тестування.
  • MVI (Model-View-Intent) – архітектурний шаблон, що дозволяє поліпшити масштабованість додатка.

12. Вивчіть методи тестування Android-додатків

Тестування програми є невід’ємною частиною процесу розробки. Постійно виконуючи тести, ви можете перевірити правильність, функціональність і зручність використання програми до його публікації.

  • Тестування дає наступні переваги:
  • Швидка реакція в разі збою програми.
  • Раннє виявлення несправностей.
  • Більш безпечний рефакторинг коду.
  • Стабільна швидкість розробки.

13. Вивчіть питання забезпечення безпеки Android-додатка

Android серйозно займається питаннями забезпечення безпеки платформи і екосистеми Android. Для забезпечення безпеки Android-додатка використовуються такі засоби і механізми: Encrypt/Decrypt, Proguard і R8.

14. Вивчіть роботу з сенсорами

Програмування – це круто, але ще більш класно використовувати фізичні компоненти телефону: GPS, камеру, NFC, акселерометр. Робота з цими датчиками по захопливості близька до високорівневого програмування мікроконтролерів – приємно бачити, як написаний тобою абстрактний алгоритм взаємодіє із зовнішнім світом.

15. Опублікуйте додаток Android у Google Play. Вітаємо, ви Android-розробник!

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

З описаним багажем знань ви сміливо можете рухатися вперед! Питання, розглянуті в даній статті, допоможуть у створенні портфоліо і працевлаштуванні.

Читайте «Український Спектр» у Facebook.

Український Спектр Читайте «Український Спектр» у Telegram
«Український Спектр» в Telegram – коротко про головне один раз на день
Підписатись на канал

Ми у соцмережах:

Слідкуйте за UAspectr у Facebook або ж читайте усе найцікавіше у нашому каналі в Telegram