Выпуск №10 (Июль)
XLIV Международная научно-практическая конференция «Актуальные проблемы современной науки», 30.10.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XLIІI Международная научно-практическая конференция «Актуальные проблемы современной науки», 29.08.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XLIІI Международная научно-практическая конференция «Актуальные проблемы современной науки», 30.07.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XLII Международная научно-практическая конференция «Актуальные проблемы современной науки», 27.06.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XLI Международная научно-практическая конференция «Актуальные проблемы современной науки», 30.05.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XL Международная научно-практическая конференция «Актуальные проблемы современной науки», 28.03.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

МНПК "Цифровая трансформация и инновации в экономике, праве, государственном управлении, науке и образовательных процессах", 18-21.03.2019

XXXIX Международная научно-практическая конференция «Актуальные проблемы современной науки», 27.02.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XIII Международная научно-практическая конференция «Научный диспут: вопросы экономики и финансов», 31.01.2019 (Совместная конференция с Финансово-экономическим научным советом)

XXXVIII Международная научно-практическая конференция «Актуальные проблемы современной науки», 30.01.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XXXVІI Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.12.2018 (Совместная конференция с Международным научным центром)

XXXVI Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.11.2018 (Совместная конференция с Международным научным центром)

XIII Международная научно-практическая конференция «Актуальные проблемы экономики и финансов», 31.10.2018 (Совместная конференция с Финансово-экономическим научным советом)

XXXV Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.10.2018 (Совместная конференция с Международным научным центром)

XXXIV Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.09.2018 (Совместная конференция с Международным научным центром)

ХXXIII Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.08.2018 (Совместная конференция с Международным научным центром)

ХXXII Международная научно-практическая конференция: "Актуальные проблемы современной науки", 31.07.2018 (Совместная конференция с Международным научным центром)

XII Международная научно-практическая конференция «Актуальные проблемы экономики и финансов», 31.07.2018 (Совместная конференция с Финансово-экономическим научным советом)

ХXXI Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.06.2018 (Совместная конференция с Международным научным центром)

ХІ Международная научно-практическая конференция «Глобальные проблемы экономики и финансов», 31.05.2018 (Совместная конференция с Финансово-экономическим научным советом)

XXХ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.05.2018 (Совместная конференция с Международным научным центром)

XXIХ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.04.2018 (Совместная конференция с Международным научным центром)

ХХVIІІ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.03.2018 (Совместная конференция с Международным научным центром)

ІІІ МНПК "Экономика, финансы и управление в XXI веке: анализ тенденций и перспективы развития", 19-22.03.2018 (Совместная конференция с Финансово-экономическим научным советом)

X Международная научно-практическая конференция «Глобальные проблемы экономики и финансов», 28.02.2018 (Совместная конференция с Финансово-экономическим научным советом)

ХХVІІ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 27.02.2018 (Совместная конференция с Международным научным центром)

ХХVІ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.01.2018 (Совместная конференция с Международным научным центром)

XІІ Международная научно-практическая конференция «Научный диспут: вопросы экономики и финансов», 29.12.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХХV Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.12.2017 (Совместная конференция с Международным научным центром)

ХХІV Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.11.2017 (Совместная конференция с Международным научным центром)

XI Международная научно-практическая конференция «Актуальные проблемы экономики и финансов», 31.10.2017 (Совместная конференция с Финансово-экономическим научным советом)

XІ Международная научно-практическая конференция «Научный диспут: вопросы экономики и финансов», 29.09.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХХIІІ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.09.2017 (Совместная конференция с Международным научным центром)

X Международная научно-практическая конференция «Актуальные проблемы экономики и финансов», 31.07.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХXII Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.07.2017 (Совместная конференция с Международным научным центром)

ХXI Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.06.2017 (Совместная конференция с Международным научным центром)

IX Международная научно-практическая конференция «Глобальные проблемы экономики и финансов», 31.05.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХX Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.05.2017 (Совместная конференция с Международным научным центром)

"Тенденции развития национальных экономик: экономическое и правовое измерение" 18-19.05.2017 (Совместная конференция с Финансово-экономическим научным советом и ККИБиП)

ХIX Международная научно-практическая конференция: "Актуальные проблемы современной науки", 27.04.2017 (Совместная конференция с Международным научным центром)

IX Международная научно-практическая конференция "Научный диспут: вопросы экономики и финансов", 31.03.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХVIII Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.03.2017 (Совместная конференция с Международным научным центром)

МНПК "Экономика, финансы и управление в XXI веке: анализ тенденций и перспективы развития", 20–23.03.2017 (Совместная конференция с Финансово-экономическим научным советом)

VIII Международная научно-практическая конференция "Глобальные проблемы экономики и финансов", 28.02.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХVII Международная научно-практическая конференция: "Актуальные проблемы современной науки", 27.02.2017 (Совместная конференция с Международным научным центром)

VIII Международная научно-практическая конференция "Актуальные проблемы экономики и финансов", 31.01.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХVI Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.01.2017 (Совместная конференция с Международным научным центром)

ХV Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.12.2016 (Совместная конференция с Международным научным центром)

VIII Международная научно-практическая конференция "Научный диспут: вопросы экономики и финансов", 28.12.2016 (Совместная конференция с Финансово-экономическим научным советом)

VII Международная научно-практическая конференция "Глобальные проблемы экономики и финансов", 30.11.2016 (Совместная конференция с Финансово-экономическим научным советом)

ХІV Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.11.2016 (Совместная конференция с Международным научным центром)

VII Международная научно-практическая конференция "Актуальные проблемы экономики и финансов", 31.10.2016 (Совместная конференция с Финансово-экономическим научным советом)

ХІІІ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.10.2016 (Совместная конференция с Международным научным центром)

VII Международная научно-практическая конф. «Научный диспут: вопросы экономики и финансов», 30.09.2016 (Совместная конференция с Финансово-экономическим научным советом)

ХІІ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.09.2016 (Совместная конференция с Международным научным центром)

XI Международная научно-практическая конференция «Актуальные проблемы современной науки», 30.08.2016 (Совместная конференция с Международным научным центром)

ІV Международная научно-практическая конф. "Экономика и управление в XXI веке: анализ тенденций и перспектив развития", 29.07.2016 (Совместная конференция с Финансово-экономическим научным советом)

X Международная научно-практическая конференция "Актуальные проблемы современной науки", 28.07.2016 (Совместная конференция с Международным научным центром)

VІ Международная научно-практическая конференция "Актуальные проблемы экономики и финансов", 30.06.2016 (Совместная конференция с Финансово-экономическим научным советом)

ІX Международная научно-практическая конференция "Актуальные проблемы современной науки", 29.06.2016 (Совместная конференция с Международным научным центром)

VI Международная научно-практическая конференция "Научный диспут: вопросы экономики и финансов", 31.05.2016 (Совместная конференция с Финансово-экономическим научным советом)

VIIІ Международная научно-практическая конференция "Актуальные проблемы современной науки", 30.05.2016 (Совместная конференция с Международным научным центром)

V Международная научно-практическая конференция "Глобальные проблемы экономики и финансов", 29.04.2016 (Совместная конференция с Финансово-экономическим научным советом)

VIІ Международная научно-практическая конференция "Актуальные проблемы современной науки", 28.04.2016 (Совместная конференция с Международным научным центром)

VІ Международная научно-практическая конференция "Актуальные проблемы современной науки", 31.03.2016 (Совместная конференция с Международным научным центром)

ІI Международная научно-практическая конф. "Экономика и управление в XXI веке: анализ тенденций и перспектив развития", 30.03.2016 (Совместная конференция с Финансово-экономическим научным советом)

V Международная научно-практическая конференция "Актуальные проблемы экономики и финансов", 21-24.03.2016 (Совместная конференция с Финансово-экономическим научным советом)

V Международная научно-практическая конференция "Научный диспут: вопросы экономики и финансов", 26.02.2016 (Совместная конференция с Финансово-экономическим научным советом)

II Международная научно-практическая конференция: "Научный диспут: актуальные вопросы медицины" 20.02.2016 (Совместная конференция с Международным научным центром)

ІV Международная научно-практическая конференция "Актуальные проблемы современной науки", 29.12.2015 (Совместная конференция с Международным научным центром)

IV Международная научно-практическая конференция "Глобальные проблемы экономики и финансов", 28.12.2015 (Совместная конференция с Финансово-экономическим научным советом)

IV Международная научно-практическая конференция "Актуальные проблемы экономики и финансов", 30.11.2015 (Совместная конференция с Финансово-экономическим научным советом)

IV Международная научно-практическая конференция "Научный диспут: вопросы экономики и финансов", 29.10.2015 (Совместная конференция с Финансово-экономическим научным советом)

Международная научно-практическая конференция: "Научный диспут: актуальные вопросы медицины" 28.10.2015 (Совместная конференция с Международным научным центром)

III Международная научно-практическая конференция "Глобальные проблемы экономики и финансов", 30.09.2015 (Совместная конференция с Финансово-экономическим научным советом)

III Международная научно-практическая конференция "Актуальные проблемы экономики и финансов", 31.08.2015 (Совместная конференция с Финансово-экономическим научным советом)

ІІІ Международная научно-практическая конференция "Научный диспут: вопросы экономики и финансов", 30.06.2015 (Совместная конференция с Финансово-экономическим научным советом)

ІІ Международная научно-практическая конференция "Актуальные проблемы современной науки", 29.06.2015 (Совместная конференция с Международным научным центром)

II Международная научно-практическая конференция "Глобальные проблемы экономики и финансов", 28.05.2015 (Совместная конференция с Финансово-экономическим научным советом)

Актуальные проблемы экономики и финансов, 29.04.2015 (Совместная конференция с Финансово-экономическим научным советом)

Научный диспут: вопросы экономики и финансов, 31.03.2015 (Совместная конференция с Финансово-экономическим научным советом)

Актуальные проблемы современной науки, 27.03.2015 (Совместная конференция с Международным научным центром)

Глобальные проблемы экономики и финансов, 27.02.2015 (Совместная конференция с финансово-экономическим научным советом)



Кутовий О. О. Застосування чистої архітектури  в мобільній розробці // Міжнародний науковий журнал "Інтернаука". — 2017. — №10.


Отрасль науки: Технические науки
Скачать статью (pdf)

Інформаційні технології

УДК 004.852

Кутовий Олександр Олександрович

бакалавр комп’ютерних наук

Національного технічного університету України

«Київський політехнічний інститут»

Кутовой Александр Александрович

бакалавр компьютерных наук

Национального технического университета Украины

«Киевский политехнический институт»

Kutoviy O.

Bachelor of computer science

The National Technical University of Ukraine

«Kyiv Polytechnic Institute»

ЗАСТОСУВАННЯ ЧИСТОЇ АРХІТЕКТУРИ  В МОБІЛЬНІЙ РОЗРОБЦІ

ПРИМЕНЕНИЕ ЧИСТОЙ АРХИТЕКТУРЫ В МОБИЛЬНОЙ РАЗРАБОТКЕ

CLEAN ARCHITECTURE ADAPTATION IN MOBILE DEVELOPMENT

Анотація: Розглянуто інтерпретацію чистої архітектури в розробці мобільних додатків.

Ключові слова: Архітектура, VIPER, Android, клас.

Аннотация: Рассмотрено интерпретацию чистой архитектуры в разработке мобильных приложений.

Ключевые слова: Aрхитектура, VIPER, Android, класс.

Abstract: Review of clean architecture adaptation in mobile development

Keywords: Architecture, VIPER, Android, class.

У пошуку кращого способу спроектувати Android додаток я натрапив на Clean Architecture, як описав Uncle Bob. Clean Architecture ділить логічну структуру програми на різні рівні обов'язків. Це спрощує ізолювання залежності (наприклад, ваша база даних) і тестування взаємодії на кордонах між рівнями.

VIPER є нашою реалізацією Clean Architecture для Android додатків.

Слово VIPER - бекронім для View, Interactor, Presenter, Entity і Routing.

Interactor, який містить бізнес-логіку, передбачену сценарієм.

Presenter, який містить логіку підготовки вмісту для відображення (отриманого з Interactor) і для реакції на введення даних користувачем (запитуючи нові дані від Interactor).

View, яке відображає, що повідомив Presenter і передає введення даних користувачем назад Presenter'у.

Спочатку мої колеги називали цю архітектуру як VIP архітектуру. У певному сенсі це порушення прав, адже це можна інтерпретувати і як "Very Important Architecture". Так як я не хочу, щоб люди думали, що інші архітектурні рішення не важливі, я вирішив назвати її VIPER і пізніше придумав, що E і R означатимуть.

Це поділ також відповідає принципу Single Responsibility. Interactor відповідальний за бізнес-аналітику, Presenter відповідальний за відображення, і View відповідальний за візуальне представлений.

Нижче наведена схема різних компонентів і як вони пов'язані між  собою: 

Interactor

Interactor є простим юз кейсом в додатку. Він містить бізнес-логіку для управління об'єктами (Entity), щоб виконати певне завдання. Завдання виконується в Interactor'е, незалежно від будь-якого UI. Той же Interactor можна використовувати в Android додатках або консольних додатках для Mac OS.

Оскільки Interactor є PONSO (Звичайний NSObject), який перш за все містить логіку, і його легко розробити за допомогою TDD (Розробка через тестування).

Entity

Entity - це об'єкти, якими управляє Interactor. Entity тільки управляє Interactor. Він ніколи не передає суті рівнем подання (тобто Presenter'у).

Data Store

Data Store (наприклад, веб-сервіс, база даних) відповідає за надання Entity в Interactor. Оскільки Interactor застосовує свою бізнес-логіку, він буде здійснювати вибірку Entity зі сховища даних, управляти Entity і потім повертати оновлені Entity назад в сховище даних. Сховище даних управляє персистентного Entity. Entity не знають про сховище даних, таким чином, вони не знають, як зберігатися.

При використанні TDD (Розробка через тестування) для розробки Interactor'a, можливо відключити виробниче сховище даних за допомогою double / mock тестів. Чи не звертаючись до віддаленого сервера (для веб-сервісу) або диска (для бази даних) дозволяє вашим тестів бути повторюваними і швидкими.

Presenter

Presenter - це PONSO, який в основному складається з логіки, щоб управляти UI. Він збирає вхідні дані від взаємодії з користувачем, таким чином, він може відправляти запити Interactor'у. Presenter також отримує результати Interactor'а і перетворювати результати в стан, який є найбільш ефективним для відображення на View.

Entity ніколи не передаються з Interactor'а до Presenter'у. Замість цього прості структури даних, у яких немає поведінки, передаються з Interactor'а до Presenter'у. Це перешкоджає будь 'реальній роботі' в Presenter'е. Presenter може тільки підготувати дані для відображення на View.

View / Вид

View є пасивною. Воно чекає Presenter'а, щоб передати змісту для виведення на екран; вона ніколи не запитує дані у Presenter'а. Методи, визначені для подання (наприклад, LoginView для екрану входу в систему), повинні дозволити Presenter'у спілкуватися на більш високому рівні абстракції, вираженої з точки зору його вмісту, а не те, як це вміст буде відображатися. Presenter не знає про існування UILabel, UIButton, і т.д. Presenter тільки знає про зміст, яке він підтримує і коли його потрібно вивести на екран. Presenter потрібно визначати, як зміст виводитися на екран.

View - це абстрактний інтерфейс, визначений в Objective-C за допомогою протоколу. UIViewController або один з його підкласів реалізують протокол View. Наприклад, це може бути екран входу в систему:

Маршрутизація обробляє навігацію від одного екрана до іншого, як визначено в wireframes, створених проектувальником взаємодії. Wireframe об'єкт несе відповідальність за маршрутизацію. Wireframe об'єкт володіє об'єктами UIWindow, UINavigationController, і т.д. Він відповідальний за створення Interactor, Presenter і View / ViewController і за налаштування ViewController. Так як Presenter містить логіку, щоб реагувати на введення даних користувачем, Presenter знає, коли перейти на інший екран. Wireframe знає, як це зробити. Отже, Presenter - це користувач Wireframa.

Ви можете знайти додаток Counter, це просто додаток, який демонструє використання Interactor, Presenter і View. У наступній статті буде більш докладно розказано про те, як це додаток було розроблено. Додаткові статті проілюструють використання сховища даних і Wireframe.

Література

  1. CleanArchitecture. – Режим доступу: https://martinfowler.com/. – Дата доступу: 14.05.2017 microservicesbook.io. / Дата доступу: 04.05.2017.