Тип работы:
Предмет:
Язык работы:


РЕАЛИЗАЦИЯ ПРОГРАММНОГО ИНСТРУМЕНТАРИЯ ДЛЯ АВТОМАТИЗАЦИИ ПРОЦЕССА РАЗРАБОТКИ ВИЗУАЛЬНЫХ ИНТЕРФЕЙСОВ И АРХИТЕКТУРЫ ANDROID-ПРИЛОЖЕНИЙ

Работа №38680

Тип работы

Дипломные работы, ВКР

Предмет

информационные системы

Объем работы65
Год сдачи2019
Стоимость6500 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
344
Не подходит работа?

Узнай цену на написание


Введение 3
1 Обзор смежных решений 5
2 Общая схема работы программного решения 7
2.1 Принцип работы 7
2.2 Внешний вид плагина 9
3 Генерация элементов интерфейса 12
3.1 Контейнер LinearLayout 12
3.2 Контейнер RelativeLayout 13
3.3 КомпонентNestedScrollView 14
3.4 Элемент Toolbar 14
3.5 Элемент Text View 15
3.6 Элемент EditText 16
3.7 Элемент RadioButton 17
3.8 Элемент Checkbox 17
3.9 Элемент RecyclerView 17
3.10 Элемент CardView 19
3.11 Элемент Web View 19
3.12 Элемент Button 19
3.13 Элемент ImageView 20
4 Генерация архитектуры Android-приложения 22
4.1 Clean architecture 22
4.2 Предсказывание шаблона проектирования 27
5 Пример использования инструментария 31
Заключение 40
Список использованных источников 42
Приложение А. Исходный код основных модулей программы


В 2018 году каждый день было выпущено примерно 6140 Android-приложений, и в большинстве случаев внешний вид макетов страниц был продуман заранее специальными специалистами - дизайнерами [1]. От того, как будут прорисованы страницы приложений, зависит, будет ли оно удобным, комфортным для обычных пользователей. В данный момент, большинство макетов страниц для мобильных приложений продумываются по сводам правил Material Design, что с одной стороны облегчает процесс создания их, но с другой стороны, требует тщательного изучения со стороны дизайнера [2].
Процесс разработки Android-приложений - долгий и сложный процесс, только на продумывание архитектуры уходит, по нашему опыту, от 10% всего выделенного времени, а на перевод макетов дизайна страниц приложений около 5%. Одной из первых стадий создания мобильного приложения является отрисовка всех сценариев работы в графическом редакторе, например, в таком как Sketch [3]. По внешнему виду страниц можно определить примерную архитектуру всего приложения, какие таблицы базы данных могут использоваться, поэтому макеты нечто большее, чем просто верстка для разработчика. При этом во время их создания дизайнеру приходится рисовать с нуля большинство элементов верстки, контекстуально понятные квалифицированному разработчику, но не всегда корректно определяемые нейронной сетью. После того, как разработчик получает изображение макетов, ему нужно перевести их в программный код. Таким образом, работа с внешним видом приложения дублируется, из-за чего увеличиваются затраты на разработку по времени и деньгам.
В связи с вышесказанным была поставлена цель - реализовать плагин для среды разработки Android Studio, который позволил бы генерировать программный код XML-файлов и Java-классов, а также строить архитектуру
приложения и составлять таблицы для работы с базой данных на основании Sketch-файлов.
Были определены следующие задачи, выполнение которых необходимо для достижения поставленной цели:
1) разработка модуля генерации XML-кода на основе данных, полученных в результате обработки Sketch-файла;
2) формирование кастомных моделей на основании изображений, которые не были опознаны в результате распознавания нейронной сетью;
3) разработка модуля генерации Java-классов согласно паттернам MVP и MVVM в связке с Clean Architecture по полученной Sketch-странице;
4) реализация функциональной возможности генерации таблиц базы данных и CRUD-методов на основании библиотеки Android Room.


Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


В результате выполнения данной дипломной работы был реализован плагин для среды разработки Android Studio, который позволит генерировать программный код XML-файлов и Java-классов, а также строить архитектуру приложения и составлять таблицы для работы с базой данных на основании Sketch-файлов.
Для достижения поставленной цели были выполнены следующие задачи:
1) разработан модуль генерации XML-кода на основе данных, полученных в результате обработки Sketch-файла;
2) сформированы кастомные модели на основании изображений, которые не были опознаны в результате распознавания нейронной сетью;
3) разработан модуль генерации Java-классов согласно паттернам MVP и MVVM в связке с Clean Architecture по полученной Sketch-странице;
4) реализована функциональная возможность генерации таблиц базы данных и CRUD-методов на основании библиотеки Android Room.
Разработанный инструментарий автоматически генерирует:
1) XML-файлы с типами layout, menu, item. В layout могут быть реализованы такие модели верстки как: LinearLayout, RelativeLayout, Image View, Toolbar, Button, RecyclerView, TextView, CardView, EditText, Web View, RadioButton, Checkbox, NestedScrollView. Все они инициализируются в родительском activity-классе с учетом своих особенностей. Menu-файлы создаются при обнаружении специальных иконок внутри элемента Toolbar, a item при наличии RecyclerView в layout.
2) PNG и VectorDrawable, которые выводятся из Sketch с помощью специально написанных скриптов на Javascript.
3) Java-классы для построения Clean Architecture. Для эффективного распределения ресурсов для работы с UI для модуля presentation определяется паттерн MVP или MVVM с помощью составления контекста страниц, где каждому элементу присваивается коэффициент использования, а также с помощью сортировки страниц, являющихся состоянием одного экрана.
Данные файлы и классы предназначены для упрощения и ускорения работы разработчика Android-приложений, все они открыты для расширения и закрыты для модификации, в соответствии с правилами SOLID.



1. Average number of new Android app releases per day from 3rd quarter 2016 to 1st quarter 2018 [Электронный ресурс]. - URL: https://www.statista.com/statistics/276703/android-app-releases-worldwide (дата обращения 16.06.2019).
2. Описание понятия Material Design [Электронный ресурс]. - URL: http://www.engadget.com/2014/06/25/googles-new-design-language-is-calle d-material-design/ (дата обращения 16.06.2019).
3. Графический редактор Sketch [Электронный ресурс]. - URL: https://www.sketch.com/ (дата обращения 16.06.2019).
4. Android Studio Plugins [Электронный ресурс]. - URL: https://plugins.jetbrains.com/androidstudio (дата обращения 16.06.2019).
5. Intellij IDEA Plugins Repository [Электронный ресурс]. - URL: https://plugins.jetbrains.com/ (дата обращения 16.06.2019).
6. Sketch2code [Электронный ресурс]. - URL:
https://sketch2code.azurewebsites.net/ (дата обращения 16.06.2019).
7. pix2code: Generating Code from a Graphical User Interface Screenshot [Text]/Tony Beltramelli//EICS Proceedings of the ACM SIGCHI Symposium on Engineering Interactive Computing Systems .-2018 .-Article No. 3 ,-P. 221-244.
8. Supernova studio [Электронный ресурс]. - URL: https://supernova.io/ (дата обращения 16.06.2019).
9. LinearLayout [Электронный ресурс]. - URL:
http: //developer. alexanderklimov.ru/android/layout/linearlayout.php (дата
обращения 16.06.2019).
10. RelativeLayout [Электронный ресурс]. - URL:
http://developer.alexanderklimov.ru/android/layout/relativelayout.php (дата обращения 16.06.2019).
11. Supporting Different Densities [Электронный ресурс]. - URL: https://developer.android.com/training/multiscreen/screendensities (дата обращения 16.06.2019).
12. NestedScrollView [Электронный ресурс]. - URL: http://developer.alexanderklimov.ru/android/views/nestedscrollview.php (дата обращения 16.06.2019).
13. Toolbar [Электронный ресурс]. - URL:
https ://medium. сот/@101/ android-toolbar-for-appcompatactivity-67 lbldlO f354 (дата обращения 16.06.2019).
14. TextView [Электронный ресурс]. - URL:
http: //developer. alexanderklimov.ru/android/views/textview.php (дата
обращения 16.06.2019).
15. EditText [Электронный ресурс]. - URL:
http: //developer. alexanderklimov.ru/android/views/edittext.php (дата
обращения 16.06.2019).
16. RadioButton [Электронный ресурс]. - URL:
http: //developer. alexanderklimov.ru/android/views/radiobutton.php (дата
обращения 16.06.2019).
17. Checkbox [Электронный ресурс]. - URL:
http: //developer. alexanderklimov.ru/android/views/checkbox .php (дата
обращения 16.06.2019).
18. RecyclerView [Электронный ресурс]. - URL: https://developer.android.com/reference/android/support/v7/widget/Recycler View (дата обращения 16.06.2019).
19. CardView [Электронный ресурс]. - URL:
http: //developer. alexanderklimov.ru/android/views/cardview.php (дата
обращения 16.06.2019).
20. WebView [Электронный ресурс]. - URL:
http: //developer. alexanderklimov.ru/android/mybrowser .php (дата
обращения 16.06.2019).
21. Button [Электронный ресурс]. - URL:
http: //developer. alexanderklimov.ru/android/views/button.php (дата
обращения 16.06.2019).
22. Image View [Электронный ресурс]. - URL:
http://developer.alexanderklimov.ru/android/views/imageview.php (дата
обращения 16.06.2019).
23. Clean Architecture [Электронный ресурс]. - URL:
https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.ht ml (дата обращения 16.06.2019).
24. Dependency Injection [Электронный ресурс]. - URL: https://medium.com/default-to-open/android-pie-and-the-future-of-dependen cy-injection-2fdbc65cb79b (дата обращения 16.06.2019).
25. Architecture patterns in Android [Электронный ресурс]. - URL: https://android.jlelse.eu/architecture-pattems-in-android-abf99f2b6f70 (дата обращения 16.06.2019).
26. MVP [Электронный ресурс]. - URL:
https://medium.com/cr8resume/make-you-hand-dirty-with-mvp-model-view -presenter-eab5b5cl6e42 (дата обращения 16.06.2019).
27. MVVM [Электронный ресурс]. - URL:
https://medium.eom/@husayn.hakeem/android-by-example-mwm-data-bind ing-introduction-part-l-6a7a5f388bf7 (дата обращения 16.06.2019)
28. MVC vs. MVP vs. MVVM on Android [Электронный ресурс]. - URL: https://academy.realm.io/posts/eric-maxwell-mvc-mvp-and-mwm-on-androi d/ (дата обращения 16.06.2019).


Работу высылаем на протяжении 30 минут после оплаты.




©2024 Cервис помощи студентам в выполнении работ