Дослідження функціонально-орієнтованих розширень фреймворків для створення Android застосувань
Виконав студент групи ДА-22
Сутула Олександр
Науковий керівник: І.А. Голубова
Мета: підвищення ефективності створення Android застосувань.
Предмет дослідженя: застосування фреймворків та мов програмування для створення мобільних додатків операційної системи Android.
Об'єкт: технології розробки мобільних додатків для операційної системи Android.
Недоліки Java
- Багатослівність та об’ємність коду
- Вимушена зворотня підтримка помилок
- Складність обробки потоків
- Відсутність сучасних методів розробки
Функціональне та реактивне програмування
- значно спрощують процес розробки систем що базуються на взаємодії з користувачем
- відсутня потреба у синхронізації потоків
- можливість декларативного стилю
- зменшення об'єму коду
Порівняння підтримки парадигм мовами, що застосовуються для розробки Android застосувань
| Імперативна | ООП | Функціональна | Процедурна | |
|---|---|---|---|---|
| Java | + | + | + | |
| Clojure | + | |||
| Groovy | + | + | + | |
| Scala | + | + | + | + |
Порівнняня Groovy та Scala
| Groovy | Scala |
|---|---|
| Динамічно типізована мова | Статично типізована мова |
| Час компіляції базового проекту: 60-90 секунд | Час компіляції базового проекту: 20-40 секунд |
Фреймворки



Functional Java
RxJava
Retrolamda
Контрольні додатки
- Клієнт-серверні додатки (А);
- Додатки, що виконують контрольні задачі (В):
- N-body проблеми,
- заповнення, обхід і видалення трьох бінарних дерев.
Реалізовані мовами Java та Scala з використанням RxJava фреймворку
Критерії порівняння
| Клієнт-серверний додаток | N-body | Бінарні дерева | |
|---|---|---|---|
| об'єм коду | A | ||
| продуктивність | A | ||
| час виконання | B | B | |
| споживання енергії | B | B | |
| використання оперативної пам'яті | B | B | |
| розмір додатку | A | B | B |
| час запуску додатку | A | B | B |
Об'єм та структура коду


Кількість рядків
Кількість файлів
додатки А
Продуктивність
додатки А

∑ = 21
тиждень
задачі
Розмір додатку, час запуску та встановлення
| Мова | Розмір додатку проекту A | Розмір додатку для вимірів B |
|---|---|---|
| Java | 4 106 KB | 180 KB |
| Scala | 7 367 KB | 4 041 KB |
| Java + Proguard | 3 506 KB | 180 KB |
| Scala + Proguard | 4 028 KB | 568 KB |
Час виконання
додатки B

∆ =1,73 c
∆ =0,4 c
Споживання енергії

∆ = 1,7
∆ = 0,6
додатки B
Дж
Використання оперативної пам'яті

додатки B
Висновок
У роботі були визначені критерії оцінки застосування функціонально-орієнтованих розширень для розробки мобільних додатків.
Проведено ряд експериментів, що показав доцільність розширення функціоналу Java за допомогою Scala з використанням RxJava.
Апробація роботи
- Сутула О.В. Functional reactive paradigm advantages developmaent / Сутула О.В. // International Scientific Journal. – 2015. – #9. – C. 59-61.
- Сутула О.В Порiвняння методiв розробки для мобiльної платформи Android. / Сутула О.В.// Системний аналіз та інформаційні технології : «САІТ-2016», 30 травня –2 червня 2016, Київ, Україна : матеріали. – К. : НТУУ «КПІ», 2016. – С. 113
- Сутула О.В. Переваги використання реактивної парадигми програмування для створення Android додатків Збірник матеріалів VI Міжнародної науково-практичної конференції молодих вчених "ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ: ЕКОНОМІКА, ТЕХНІКА, ОСВІТА '2015", 19-20 листопада 2015 року, Київ, НУБіП України. – К.: НУБіП України, 2015. – 323 с.
Дякую за увагу!
Diploma
By Sania Sutula
Diploma
- 405