Карпенко А.О., Глоба
В.С., Куліченко Д.В.
Державний університет
телекомунікацій, Україна
Розробка клієнт-серверних
додатків для ОС Android
Швидкий розвиток мобільної індустрії протягом останніх шести років приніс безліч можливостей для звичайного користувача, таких як: легкість і доступність спілкування, перегляд і редагування мультимедійного контенту високої якості в один дотик, здатність на ходу вирішувати різні завдання маючи широкий спектр додатків. Мобільні пристрої на даний час мають потужність і технічні характеристики схожі в порівнянні з настільними персональними комп'ютерами. Завдяки зростанню продуктивності і мобільності такі пристрою набули широкого поширення.
На сьогоднішній день мобільні пристрої стають по-справжньому масовими, в той час як продажі персональних комп'ютерів продовжують падати. Майже кожен, хто має на руках мобільний пристрій (смартфон, комунікатор або планшет) користується додатками: браузером, клієнтом електронної пошти чи миттєвих повідомлень, грає в ігри. Число завантажень популярних додатків в Google Play і Apple AppStore вже вимірюється сотнями мільйонів. Відповідно до цього актуальною стає задача розробки програм для мобільних платформ.
Особливу популярність здобули пристрої, що працюють під операційною системою Android. Відкритий вихідний код, наявність різноманітних інструментів для розробників, підтримка з боку великих організацій, велика спільнота розробників - це основні переваги даної платформи.
Значна частина сучасних додатків для мобільних платформ (iOS, Android) працює в парі з сервером. Поділ мобільного додатку на клієнтську (представлення даних) і серверну (прикладна логіка) частини обумовлено рядом наступних причин:
1) можна створити єдину систему управління контентом додатку, а для підтримки нових пристроїв адаптувати тільки фронт-енд, не зачіпаючи прикладну логіку;
2) мережевий додаток може забезпечити постійне оновлення даних з сервера на пристрій, надаючи актуальний контент користувачеві;
3) мережевий додаток дозволяє забезпечити взаємодію користувачів один з одним, обмін інформацією, різні види соціальної активності.
Клієнт-серверні додатки є найпоширенішими і в той же час найскладнішими в розробці. Архітектура «клієнт-сервер» визначає загальні принципи організації взаємодії в мережі, де є сервери, вузли-постачальники деяких специфічних функцій (сервісів) і клієнти, споживачі цих функцій.
Для розробки додатків під платформу Android, потрібно розуміти, як влаштована система в цілому і знати можливості Android Application Framework[1]. Android систему можна розділити на 5 умовних рівнів:
-
Рівень додатків
- Рівень Android Application Framework
- Рівень бібліотек, написаних на C/C++
- Рівень HAL
-
Рівень ядра Linux
Додатки для Android складаються з компонентів, які система може запускати і керувати ними так, як їй необхідно. Головна особливість платформи Android полягає в тому, що один додаток може використовувати елементи інших додатків (за умови, що ці програми дозволяють їх використовувати). При цьому ваш додаток не включає код іншого додатка або посилання на нього, а просто запускає потрібний елемент іншої програми.
Для реалізації такого використання компонентів інших додатків система повинна бути в змозі запустити процес для додатка, в якому знаходиться необхідний компонент, і змінювати потрібні їй об'єкти. Тому, на відміну від більшості інших систем, у додатків Android немає єдиної точки входу для запуску всієї програми, аналогічної, наприклад, функції main () в подібних мовах програмування. Android-додатки складаються з компонентів, які система може ініціювати і запустити при необхідності.
Всі додатки Android мають строго визначений системою життєвий цикл. При запуску користувачем додатку система надає йому високий пріоритет. Кожна програма запускається у вигляді окремого процесу, що дозволяє системі надавати одним процесам вищий пріоритет, чим іншим. Після припинення роботи з додатком, система звільняє всі пов'язані ресурси і переводить додаток у розряд низькопріоритетних і закриває його.
Для того, щоб створювати гнучкі і підтримувані додатки, розробники повинні планувати і моделювати архітектуру ще задовго до реалізації. Сам додаток і його код повинні вміти швидко адаптуватися і дотримуватися до швидко змінюваних вимог. Без наявності стабільної архітектури це практично неможливо.
Більшість Android
додатків спирається на шаблон проектування Model-ViewController (MVC)[2], який дозволяє розбивати складні об'єкти на три компоненти: модель,
представлення і контролер. Компонент модель містить деякі дані, і його єдине
завдання полягає в тому, щоб зберігати ці дані. Компонент представлення
визначає яким чином відобразити модель (дані) і здійснює взаємодію з
користувачем. Компонент контролер виступає в якості посередника між представленням і моделлю.
Контролер може виконувати
будь-яку бізнес-логіку, а також відправляти повідомлення для представлення та моделі.
В наш час набуває популярності шаблон проектування MVP (Model View Presenter)[3] який є похідним від MVC. Шаблон MVP дозволяє відокремити рівень представлення від рівня логіки, для того, щоб поведінка програми не залежала від її конкретного зовнішнього вигляду. Використовуючи MVP одна і та ж логіка може мати зовсім різні, а головне взаємозамінні UI представлення.
Література:
1. Android Application
Framework [Електронний ресурс]. / URL-посилання:
https://developer.android.com/guide/index.html.
2. Phillips B. Android
Programming: The Big Nerd Ranch
Guide, 2nd ed. / Phillips B. – Atlanta, CA, USA: Big
Nerd Ranch Guides, 2015. – C. 33-56.
3. Phillips B. Android
Programming: The Big Nerd Ranch
Guide, 2nd ed. / Phillips B. – Atlanta, CA, USA: Big
Nerd Ranch Guides, 2015. – C. 38.