Перейти до вмісту

Android

Матеріал з K2 ERP Wiki Ukraine — База знань з автоматизації та санкцій в Україні

Android — це операційна система, програмна платформа й екосистема для мобільних пристроїв, планшетів, телевізорів, автомобілів, годинників, embedded-пристроїв та інших smart-пристроїв. Android базується на ядрі Linux, розвивається навколо Android Open Source Project або AOSP і підтримується екосистемою Google, Open Handset Alliance, виробників пристроїв, розробників застосунків і сервісів.

Android є однією з найпоширеніших операційних систем у світі. Його використовують смартфони Samsung, Xiaomi, Google Pixel, OnePlus, Motorola, Oppo, Vivo, Sony, Nokia, планшети, Smart TV, автомобільні системи, POS-пристрої, термінали збору даних, промислові handheld-пристрої та багато інших класів обладнання.

Android — це не просто операційна система для смартфона. Це велика платформа, на якій живуть мобільні застосунки, сервіси, пристрої, магазини, API, бізнес-рішення й ціла індустрія.

Коротко

Параметр Значення
Назва Android
Тип Операційна система, мобільна платформа, екосистема
Основна база Linux kernel
Відкритий проєкт Android Open Source Project / AOSP
Розвиток Open Handset Alliance під лідерством Google
Перший комерційний реліз Android 1.0, 2008 рік
Актуальна стабільна версія станом на 2026 рік Android 16
Основна мова застосунків Kotlin
Також використовується Java, C++, Rust, XML, Gradle
Офіційна IDE Android Studio
Формати застосунків APK, AAB
Магазин застосунків Google Google Play
Основні напрями Smartphones, tablets, TV, automotive, wearables, enterprise, embedded

Головна ідея Android

Головна ідея Android — дати виробникам пристроїв і розробникам відкриту, гнучку й масштабовану платформу для мобільних і smart-пристроїв.

Android складається з кількох рівнів:

Hardware
→ Linux Kernel
→ Hardware Abstraction Layer
→ Android Runtime
→ Native Libraries
→ Android Framework
→ Applications

Застосунок Android не працює напряму з “залізом”. Він використовує API платформи, системні сервіси, runtime, permissions, lifecycle і компоненти Android.

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

Важливі акценти

Статус Теза Пояснення
Ключове Android базується на Linux В основі Android лежить модифіковане ядро Linux, але Android не є звичайним Linux-дистрибутивом.
Ключове Android має відкриту основу AOSP Android Open Source Project дозволяє виробникам і розробникам працювати з відкритою частиною платформи.
Ключове Комерційний Android часто включає сервіси Google На більшості масових пристроїв є Google Play, Google Play Services та інші компоненти Google.
Ключове Kotlin є основною сучасною мовою Android-розробки Kotlin офіційно підтримується Google і широко використовується для нових Android-застосунків.
Важливо Android на різних пристроях може відрізнятися Виробники додають власні оболонки, сервіси, налаштування, обмеження й оновлення.
Увага Не всі Android-пристрої отримують оновлення однаково швидко Версія Android, патчі безпеки й підтримка залежать від виробника, моделі, регіону й політики оновлень.

Історія

Android починався як мобільна операційна система для телефонів. Пізніше проєкт був придбаний Google і став основою відкритої мобільної платформи, яку підтримує Open Handset Alliance.

Перший комерційний реліз Android 1.0 зʼявився у 2008 році. З того часу Android перетворився з системи для смартфонів на широку платформу для різних класів пристроїв.

Android розвивався через багато версій:

  • Android 1.x;
  • Android 2.x;
  • Android 4.x;
  • Android 5 Lollipop;
  • Android 6 Marshmallow;
  • Android 7 Nougat;
  • Android 8 Oreo;
  • Android 9 Pie;
  • Android 10;
  • Android 11;
  • Android 12;
  • Android 13;
  • Android 14;
  • Android 15;
  • Android 16.

Android Open Source Project

Android Open Source Project або AOSP — це відкритий проєкт, у якому публікується основна частина Android-платформи.

AOSP містить:

  • код операційної системи;
  • системні бібліотеки;
  • framework;
  • Android Runtime;
  • системні сервіси;
  • базові застосунки;
  • документацію для збірки;
  • інструменти для розробки платформи;
  • код для виробників пристроїв.

AOSP — це відкрита основа Android. Але комерційний Android на більшості смартфонів часто включає також закриті сервіси Google і компоненти виробника.

Android і Google Mobile Services

Google Mobile Services або GMS — це набір сервісів і застосунків Google, які часто встановлюються на комерційні Android-пристрої.

До них можуть належати:

  • Google Play;
  • Google Play Services;
  • Google Maps;
  • Gmail;
  • Google Chrome;
  • YouTube;
  • Google Drive;
  • Firebase Cloud Messaging;
  • Google Sign-In;
  • SafetyNet / Play Integrity API;
  • інші сервіси Google.
AOSP GMS
Відкрита основа Android Комерційні сервіси Google
Може бути використаний виробниками Потребує сертифікації й ліцензійних умов
Не обовʼязково містить Google Play Зазвичай містить Google Play і Play Services
Підходить для кастомних прошивок і embedded Підходить для масового споживчого Android-ринку

Архітектура Android

Android має багаторівневу архітектуру.

Рівень Пояснення
Applications Застосунки користувача й системні застосунки
Android Framework API для Activity, Service, View, permissions, notifications, storage
Android Runtime Runtime для виконання застосунків
Native Libraries C/C++ бібліотеки, графіка, media, SQLite, SSL
Hardware Abstraction Layer Шар доступу до обладнання
Linux Kernel Драйвери, процеси, памʼять, безпека, мережа

Linux Kernel в Android

Android використовує ядро Linux, але Android не є типовим Linux-дистрибутивом.

Ядро відповідає за:

  • процеси;
  • памʼять;
  • файлову систему;
  • драйвери;
  • мережу;
  • енергоспоживання;
  • безпеку;
  • ізоляцію;
  • апаратні ресурси.

Android додає над ядром власний runtime, framework, permissions, lifecycle і модель застосунків.

Android Runtime

Android Runtime або ART — це середовище виконання Android-застосунків.

ART відповідає за:

  • виконання коду застосунків;
  • керування памʼяттю;
  • garbage collection;
  • оптимізацію виконання;
  • роботу з bytecode;
  • запуск застосунків.

Android Framework

Android Framework надає розробникам API для роботи з системою.

Типові можливості:

  • Activity;
  • Fragment;
  • Service;
  • Broadcast Receiver;
  • Content Provider;
  • View;
  • Resources;
  • Notifications;
  • Permissions;
  • Location;
  • Camera;
  • Storage;
  • Contacts;
  • Sensors;
  • Bluetooth;
  • Network;
  • WorkManager.

Основні компоненти Android-застосунку

Компонент Призначення
Activity Екран застосунку або точка взаємодії з користувачем
Fragment Частина інтерфейсу або логіки всередині Activity
Service Фоновий компонент без власного UI
BroadcastReceiver Отримує системні або застосункові події
ContentProvider Надає доступ до структурованих даних
Application Глобальний клас застосунку

Activity

Activity — один із головних компонентів Android. Зазвичай Activity відповідає за один екран або одну велику взаємодію з користувачем.

Приклад простого Activity на Kotlin:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_main)
    }
}

Lifecycle

Android-застосунки мають lifecycle — життєвий цикл.

Для Activity важливі методи:

  • onCreate;
  • onStart;
  • onResume;
  • onPause;
  • onStop;
  • onDestroy;
  • onRestart.

Схема:

onCreate
→ onStart
→ onResume
→ користувач працює з екраном
→ onPause
→ onStop
→ onDestroy

Android може зупинити або знищити Activity, тому застосунок має правильно зберігати стан і працювати з lifecycle.

Fragment

Fragment — це частина UI й логіки, яку можна використовувати всередині Activity.

Fragment корисний для:

  • tablet layout;
  • master-detail інтерфейсів;
  • reusable UI-блоків;
  • навігації;
  • розділення великого екрана;
  • підтримки різних розмірів пристроїв.

Service

Service — компонент для фонової роботи.

Приклади:

  • відтворення музики;
  • синхронізація;
  • завантаження файлів;
  • обробка задач;
  • робота з Bluetooth;
  • long-running operation.

Сучасний Android має багато обмежень на фонову роботу, тому часто використовують:

  • WorkManager;
  • Foreground Service;
  • JobScheduler;
  • AlarmManager.

WorkManager

WorkManager — рекомендований інструмент для надійного виконання відкладених або фонових задач.

Підходить для:

  • синхронізації;
  • відправки логів;
  • backup;
  • періодичних задач;
  • задач, які мають виконатися навіть після перезапуску застосунку.

Android Studio

Android Studio — офіційне IDE для Android-розробки.

Android Studio використовується для:

  • створення Android-застосунків;
  • написання Kotlin і Java-коду;
  • роботи з Gradle;
  • дизайну UI;
  • запуску емулятора;
  • профілювання;
  • debug;
  • тестування;
  • складання APK/AAB;
  • публікації в Google Play.

Android Studio — головний робочий інструмент Android-розробника.

Мови розробки Android

Мова Для чого використовується
Kotlin Основна сучасна мова Android-застосунків
Java Історично головна мова Android, досі широко використовується
C++ Native code, NDK, високопродуктивні частини, ігри, бібліотеки
Rust Системні компоненти Android і безпечніші низькорівневі частини
XML Опис layout, resources, manifest у класичному Android UI
Gradle Kotlin DSL / Groovy Налаштування збірки

Kotlin

Kotlin — основна сучасна мова Android-розробки.

Переваги Kotlin:

  • коротший код;
  • null safety;
  • coroutines;
  • extension functions;
  • data classes;
  • сумісність із Java;
  • офіційна підтримка Android;
  • зручність для Jetpack Compose.

Приклад:

fun greet(name: String): String {
    return "Привіт, $name"
}

Java

Java довго була головною мовою Android.

Java досі використовується в:

  • старих проєктах;
  • бібліотеках;
  • enterprise Android;
  • SDK;
  • навчальних матеріалах;
  • великих legacy-застосунках.

Приклад:

public String greet(String name) {
    return "Привіт, " + name;
}

XML в Android

XML використовується для опису layout і ресурсів у класичному Android UI.

Приклад layout:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/titleText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello Android" />

</LinearLayout>

Jetpack Compose

Jetpack Compose — сучасний declarative UI toolkit для Android.

У Compose інтерфейс описується Kotlin-кодом.

Приклад:

@Composable
fun Greeting(name: String) {
    Text(text = "Привіт, $name")
}

Compose змінює підхід:

Класичний Android UI Jetpack Compose
XML layout Kotlin UI-код
View hierarchy Composable functions
Imperative updates Declarative UI
FindViewById / ViewBinding State-driven UI

Android Jetpack

Android Jetpack — набір бібліотек, інструментів і рекомендацій для Android-розробки.

Типові компоненти Jetpack:

  • ViewModel;
  • LiveData;
  • Room;
  • Navigation;
  • WorkManager;
  • DataStore;
  • Paging;
  • Lifecycle;
  • Compose;
  • CameraX;
  • Security;
  • Hilt.

Gradle

Android-проєкти збираються через Gradle.

Файл модуля може містити:

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
}

android {
    namespace = "com.example.app"
    compileSdk = 36

    defaultConfig {
        applicationId = "com.example.app"
        minSdk = 24
        targetSdk = 36
        versionCode = 1
        versionName = "1.0"
    }
}

AndroidManifest.xml

AndroidManifest.xml описує застосунок.

У ньому вказують:

  • package / namespace;
  • Activity;
  • Services;
  • permissions;
  • intent filters;
  • app metadata;
  • minimum requirements.

Приклад:

<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:theme="@style/AppTheme"
        android:label="My App">

        <activity android:name=".MainActivity" />

    </application>

</manifest>

Permissions

Android має систему дозволів.

Приклади permissions:

  • INTERNET;
  • CAMERA;
  • ACCESS_FINE_LOCATION;
  • ACCESS_COARSE_LOCATION;
  • RECORD_AUDIO;
  • READ_CONTACTS;
  • BLUETOOTH_CONNECT;
  • POST_NOTIFICATIONS.

Деякі permissions достатньо вказати в manifest, інші потрібно запитувати під час виконання.

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

Storage

Android має різні підходи до зберігання даних.

Тип Для чого
SharedPreferences Прості key-value налаштування
DataStore Сучасніше key-value або typed storage
Room Локальна SQLite-база з ORM-шаром
Files Локальні файли застосунку
MediaStore Доступ до медіафайлів
Cloud storage Хмарне збереження через API

Room

Room — бібліотека Jetpack для роботи з SQLite через зручний ORM-подібний шар.

Приклад entity:

@Entity(tableName = "customers")
data class CustomerEntity(
    @PrimaryKey val id: Long,
    val name: String,
    val email: String
)

DAO:

@Dao
interface CustomerDao {
    @Query("SELECT * FROM customers ORDER BY name")
    suspend fun getCustomers(): List<CustomerEntity>

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun save(customer: CustomerEntity)
}

Networking

Android-застосунки часто працюють із API.

Типові бібліотеки:

  • Retrofit;
  • OkHttp;
  • Ktor Client;
  • Gson;
  • Moshi;
  • Kotlinx Serialization.

Приклад Retrofit API:

interface CustomerApi {
    @GET("customers")
    suspend fun getCustomers(): List<CustomerDto>
}

Offline-first

Для бізнес-застосунків Android часто важливий offline-first підхід.

Схема:

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

Offline-first корисний для:

  • складу;
  • торгівлі;
  • доставки;
  • інвентаризації;
  • польових менеджерів;
  • сервісних інженерів;
  • мобільного ERP;
  • мобільного CRM.

Android у бізнесі

Android широко використовується в бізнесі.

Приклади:

  • мобільні застосунки для клієнтів;
  • мобільні кабінети;
  • доставка;
  • складські термінали;
  • торгові агенти;
  • POS;
  • інвентаризація;
  • польові сервісні заявки;
  • документообіг;
  • CRM;
  • ERP-клієнти;
  • BI dashboards.

Android у ERP

Android може бути мобільним інтерфейсом до ERP-системи.

Типові ERP-сценарії:

Сценарій Як використовується Android
Склад Сканування штрихкодів, приймання, переміщення, інвентаризація
Продажі Мобільні замовлення, прайс-листи, залишки
Доставка Маршрути, статуси, підписи, фото
Виробництво Операції, завдання, контроль виконання
CRM Картка клієнта, задачі, історія, дзвінки
Документообіг Погодження документів, push-повідомлення
Керівник Dashboard, KPI, звіти, аналітика

Android Enterprise

Android Enterprise — набір можливостей для корпоративного керування Android-пристроями.

Використовується для:

  • керування робочими пристроями;
  • обмеження застосунків;
  • політик безпеки;
  • work profile;
  • kiosk mode;
  • масового розгортання;
  • MDM/EMM;
  • корпоративних застосунків.

Android TV

Android TV — варіант Android для телевізорів і медіапристроїв.

Використовується для:

  • Smart TV;
  • media boxes;
  • streaming apps;
  • відеосервісів;
  • інтерактивних екранів;
  • digital signage.

Android Automotive

Android Automotive — Android-платформа для автомобілів, яка може бути інтегрована безпосередньо в infotainment-систему автомобіля.

Не треба плутати:

Android Auto Android Automotive
Працює як проєкція зі смартфона на екран авто Є операційною системою автомобільної infotainment-системи
Потрібен телефон Може працювати в автомобілі самостійно
Залежить від застосунків на смартфоні Інтегрується з системами авто

Wear OS

Wear OS — платформа Google для smartwatches, повʼязана з Android-екосистемою.

Використовується для:

  • годинників;
  • фітнесу;
  • повідомлень;
  • швидких дій;
  • платежів;
  • health apps;
  • companion apps.

APK і AAB

Android-застосунки поширюються у форматах APK або AAB.

Формат Значення
APK Android Package, файл встановлення застосунку
AAB Android App Bundle, формат публікації в Google Play

AAB дозволяє Google Play генерувати оптимізовані APK для конкретного пристрою.

Google Play

Google Play — основний магазин застосунків для комерційних Android-пристроїв із сервісами Google.

Google Play використовується для:

  • публікації застосунків;
  • оновлень;
  • підписок;
  • in-app purchases;
  • рейтингів;
  • відгуків;
  • staged rollout;
  • internal testing;
  • closed testing;
  • production releases.

Firebase

Firebase — платформа Google, яка часто використовується в Android-застосунках.

Можливості:

  • Firebase Authentication;
  • Firebase Cloud Messaging;
  • Crashlytics;
  • Analytics;
  • Remote Config;
  • Firestore;
  • Realtime Database;
  • Cloud Functions;
  • App Distribution.

Push-повідомлення

Для push-повідомлень в Android часто використовується Firebase Cloud Messaging.

Типові сценарії:

  • нове повідомлення;
  • зміна статусу замовлення;
  • погодження документа;
  • нагадування;
  • доставка;
  • CRM-задача;
  • ERP-подія;
  • security alert.

Material Design

Material Design — дизайн-система Google для інтерфейсів.

В Android вона використовується для:

  • кольорів;
  • typography;
  • buttons;
  • cards;
  • dialogs;
  • navigation;
  • lists;
  • elevation;
  • motion;
  • accessibility.

Accessibility

Android-застосунки мають враховувати доступність.

Важливо:

  • content descriptions;
  • достатній contrast;
  • підтримка screen readers;
  • великі touch targets;
  • зрозумілі помилки;
  • підтримка різних розмірів шрифтів;
  • keyboard navigation;
  • простий UX.

Android Security

Android має багаторівневу модель безпеки.

Основні елементи:

  • sandbox для застосунків;
  • permissions;
  • Google Play Protect;
  • verified boot;
  • app signing;
  • encrypted storage;
  • SELinux;
  • security updates;
  • Play Integrity API;
  • isolation між застосунками.

App Sandbox

Кожен Android-застосунок працює в окремому sandbox.

Це означає:

  • застосунки ізольовані один від одного;
  • застосунок не має доступу до чужих даних без дозволу;
  • permissions контролюють доступ до ресурсів;
  • система обмежує небезпечні дії.

Android Debug Bridge

ADB або Android Debug Bridge — інструмент командного рядка для роботи з Android-пристроями й емуляторами.

Приклади:

adb devices

Встановити APK:

adb install app-debug.apk

Подивитися logs:

adb logcat

Android Emulator

Android Emulator дозволяє запускати віртуальні Android-пристрої на компʼютері.

Використовується для:

  • тестування;
  • різних версій Android;
  • різних розмірів екрана;
  • tablets;
  • foldables;
  • Wear OS;
  • Android TV;
  • перевірки застосунку без фізичного пристрою.

Тестування Android-застосунків

Типи тестів:

Тип Для чого
Unit tests Перевірка окремих класів і функцій
Instrumented tests Тести на Android-пристрої або емуляторі
UI tests Перевірка інтерфейсу
Integration tests Перевірка взаємодії модулів
Manual testing Ручна перевірка сценаріїв

Популярні інструменти:

  • JUnit;
  • Espresso;
  • UI Automator;
  • Robolectric;
  • MockK;
  • Turbine;
  • Compose UI Testing.

Android і CI/CD

Android-проєкти часто збираються в CI/CD.

Типові кроки:

./gradlew test
./gradlew connectedAndroidTest
./gradlew assembleDebug
./gradlew bundleRelease

CI/CD може виконувати:

  • lint;
  • unit tests;
  • UI tests;
  • build APK;
  • build AAB;
  • signing;
  • release notes;
  • deploy to internal testing;
  • publish to Google Play.

Android і K2 ERP

Для K2 ERP Android може бути важливим як мобільний клієнт до ERP-системи.

Можливі сценарії:

  • мобільний склад;
  • мобільна інвентаризація;
  • сканування штрихкодів;
  • мобільні замовлення;
  • робота торгового агента;
  • курʼєрський модуль;
  • мобільне погодження документів;
  • push-повідомлення про задачі;
  • мобільний CRM;
  • offline-first робота з подальшою синхронізацією;
  • Android POS або handheld-пристрої.

Приклад архітектури:

Android app
→ REST API / GraphQL API
→ K2 ERP backend
→ Database
→ Business processes

Android і REST API

Типова Android-інтеграція з backend:

Android UI
→ ViewModel
→ Repository
→ API Client
→ REST API
→ Backend
→ Database

Приклад DTO:

data class CustomerDto(
    val id: Long,
    val name: String,
    val email: String
)

Android і штрихкоди

Android часто використовується для роботи зі штрихкодами.

Сценарії:

  • склад;
  • інвентаризація;
  • приймання товару;
  • відвантаження;
  • перевірка ціни;
  • POS;
  • виробництво;
  • доставка.

Можна використовувати:

  • камеру смартфона;
  • вбудований сканер у промисловому Android-терміналі;
  • Bluetooth-сканер;
  • USB-сканер;
  • SDK виробника пристрою.

Android і POS

Android-пристрої часто використовуються як POS або частина торгової інфраструктури.

Можливості:

  • продажі;
  • чек;
  • оплата;
  • сканування товарів;
  • синхронізація з ERP;
  • робота з фіскальними сервісами;
  • друк;
  • касові зміни;
  • offline mode.

Android і фрагментація

Фрагментація — це різноманітність Android-пристроїв, версій, екранів, виробників і оболонок.

Фрагментація включає:

  • різні версії Android;
  • різні розміри екранів;
  • різні DPI;
  • різні оболонки виробників;
  • різні камери;
  • різні сенсори;
  • різні політики енергозбереження;
  • різні оновлення безпеки;
  • різну продуктивність.

Android-розробник має тестувати не “Android взагалі”, а реальні пристрої, версії, екрани й сценарії користувачів.

Переваги Android

Перевага Пояснення
Масовість Android працює на величезній кількості пристроїв
Відкрита основа AOSP дозволяє виробникам і розробникам працювати з відкритою платформою
Гнучкість Підходить для смартфонів, планшетів, TV, авто, embedded
Велика екосистема Google Play, Firebase, Android Studio, Jetpack
Kotlin Сучасна мова для Android-розробки
Enterprise-сценарії Android добре підходить для мобільного бізнесу, складу, доставки, CRM, ERP
Різні форм-фактори Phones, tablets, foldables, watches, TV, car systems

Недоліки Android

Недолік Пояснення
Фрагментація Багато пристроїв, версій, екранів і оболонок
Нерівномірні оновлення Патчі й нові версії залежать від виробника
Складність тестування Потрібно перевіряти різні пристрої й версії
Обмеження фонової роботи Сучасний Android суворо контролює background tasks
Permissions Потрібно правильно пояснювати й запитувати дозволи
Battery optimization Виробники можуть агресивно обмежувати фонові процеси
Публікація в Google Play має правила Потрібно дотримуватись policy, target SDK і вимог безпеки

Типові помилки новачків в Android

Помилка Чому це проблема
Писати всю логіку в Activity Код стає важким для підтримки
Ігнорувати lifecycle Застосунок може втрачати стан або падати
Не тестувати на реальних пристроях Емулятор не показує всі проблеми
Ігнорувати permissions Функції можуть не працювати або лякати користувача
Виконувати мережеві запити в UI-потоці Інтерфейс зависає
Не обробляти offline Бізнес-застосунок стає ненадійним без інтернету
Зберігати токени небезпечно Можливий витік доступу

Хороша архітектура Android-застосунку

Для сучасних Android-застосунків часто використовують layered architecture.

Приклад:

App/
├── ui/
│   ├── screens/
│   ├── components/
│   └── viewmodels/
├── domain/
│   ├── models/
│   └── usecases/
├── data/
│   ├── repositories/
│   ├── api/
│   ├── database/
│   └── mappers/
├── di/
└── utils/

Ролі шарів:

Шар Призначення
UI Екрани, компоненти, ViewModel
Domain Бізнес-логіка, use cases, domain models
Data API, база, repositories, mapping
DI Dependency Injection
Utils Допоміжні інструменти

MVVM

MVVM — популярний архітектурний підхід в Android.

Частина Призначення
Model Дані й бізнес-сутності
View UI, екран, composable або layout
ViewModel Стан екрана й логіка представлення

Приклад ViewModel:

class CustomerViewModel(
    private val repository: CustomerRepository
) : ViewModel() {

    val customers = MutableStateFlow<List<Customer>>(emptyList())

    fun loadCustomers() {
        viewModelScope.launch {
            customers.value = repository.getCustomers()
        }
    }
}

Dependency Injection

Для Android часто використовують dependency injection.

Популярні інструменти:

  • Hilt;
  • Dagger;
  • Koin.

DI допомагає:

  • розділяти залежності;
  • тестувати код;
  • не створювати все вручну;
  • замінювати реалізації;
  • будувати чистішу архітектуру.

Android у порівнянні з iOS

Android iOS
Розвивається Google і Open Handset Alliance Розвивається Apple
Багато виробників пристроїв Пристрої виробляє Apple
Більша різноманітність моделей Менша кількість контрольованих моделей
Основна мова Kotlin Основна мова Swift
Google Play App Store
Більше фрагментації Більше контролю з боку Apple

Android у порівнянні з іншими платформами

Платформа Порівняння
iOS iOS контрольованіша, Android гнучкіший і має більше виробників
Windows Windows сильна для desktop, Android — для mobile і smart devices
Linux Android базується на Linux kernel, але має власний framework і модель застосунків
Flutter Flutter — framework для застосунків, Android — операційна система й платформа
React Native React Native — framework для mobile apps, Android — цільова платформа

Коли Android — хороший вибір

Задача Чи підходить Android?
Мобільний застосунок для клієнтів Дуже добре
Мобільний ERP/CRM-клієнт Добре
Складський термінал Дуже добре
Доставка й польові працівники Дуже добре
POS або handheld-пристрій Добре
Smart TV застосунок Добре через Android TV
Desktop ERP Можливо, але не основний вибір
High-load backend Не підходить як серверна платформа

Рекомендований шлях навчання Android

Етап Що вивчати
1 Основи Kotlin
2 Android Studio
3 Структура Android-проєкту
4 Activity і lifecycle
5 XML layout або Jetpack Compose
6 Resources, strings, themes
7 ViewModel і state
8 Navigation
9 Permissions
10 Retrofit / OkHttp і REST API
11 Room / DataStore
12 Coroutines і Flow
13 WorkManager
14 Testing
15 Build, signing, Google Play

Мінімальний набір для першого Android-проєкту

Компонент Рекомендація
IDE Android Studio
Мова Kotlin
UI Jetpack Compose або XML layout
Build system Gradle
API Retrofit або Ktor Client
Локальна база Room або DataStore
Асинхронність Coroutines, Flow
Архітектура MVVM, Repository pattern
Тестування JUnit, Espresso або Compose UI Testing

Приклад простого Compose-екрана

@Composable
fun HelloScreen() {
    var name by remember { mutableStateOf("") }

    Column(
        modifier = Modifier.padding(16.dp)
    ) {
        TextField(
            value = name,
            onValueChange = { name = it },
            label = { Text("Імʼя") }
        )

        Spacer(modifier = Modifier.height(16.dp))

        Text(text = "Привіт, $name")
    }
}

Приклад Android API-клієнта

interface ProductApi {
    @GET("products")
    suspend fun getProducts(): List<ProductDto>
}

data class ProductDto(
    val id: Long,
    val name: String,
    val price: Double
)

Простими словами

Android — це платформа, на якій працює більшість смартфонів і багато smart-пристроїв.

Якщо смартфон — це кишеньковий компʼютер, то Android — одна з головних операційних систем, яка робить його корисним для людей, бізнесу, сервісів і розробників.

Висновок

Android — одна з найважливіших платформ сучасного IT.

Він важливий для:

  • смартфонів;
  • планшетів;
  • мобільних застосунків;
  • Android TV;
  • Wear OS;
  • Android Automotive;
  • складських терміналів;
  • POS;
  • ERP/CRM mobile;
  • доставки;
  • польових працівників;
  • enterprise mobility;
  • IoT і embedded-сценаріїв.

Android поєднує відкриту основу AOSP, комерційну екосистему Google, велику кількість виробників, сучасну Kotlin-розробку, Android Studio, Jetpack і величезний ринок пристроїв.

Android — це не тільки операційна система для телефону. Це ціла платформа для мобільного бізнесу, сервісів, пристроїв і цифрової інфраструктури.

Джерела