Android
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 — це не тільки операційна система для телефону. Це ціла платформа для мобільного бізнесу, сервісів, пристроїв і цифрової інфраструктури.
Джерела
- Android Developers: https://developer.android.com/
- Android 16: https://developer.android.com/about/versions/16
- Get Android 16: https://developer.android.com/about/versions/16/get
- Android Studio: https://developer.android.com/studio
- Android Studio releases: https://developer.android.com/studio/releases
- Android Open Source Project: https://source.android.com/
- AOSP overview: https://source.android.com/docs/setup/about
- Android Enterprise: https://www.android.com/enterprise/
- Material Design: https://m3.material.io/
- Firebase: https://firebase.google.com/