Помощь студентам в учебе
РАЗРАБОТКА ANDROID-ПРИЛОЖЕНИЯ ДЛЯ ОБСЛЕДОВАНИЯ ВОДОПРОПУСКНЫХ ТРУБ
|
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ 4
ВВЕДЕНИЕ 5
1 Анализ требований 6
1.1 Варианты использования системы 6
1.2 Основные сценарии 15
1.3 Модель предметной области 17
2 Анализ инструментов и выбор архитектуры приложения 19
2.1 Выбор инструментов разработки 19
2.2 Архитектурный подход MVI 19
2.3 Чистая архитектура 20
2.4 Паттерн «Репозиторий» 22
2.5 Внедрение зависимостей (Dependency injection) 23
3 Реализация 25
3.1 Используемые технологии 25
3.2 Сетевой слой 26
3.2.1 Импорт данных из IndorRoad 28
3.2.2 Импорт файлов из IndorRoad 31
3.2.3 Экспорт данных в IndorRoad 34
3.3 Хранение данных 34
3.4 Навигация 38
3.5 Реализация экрана карточки трубы 40
3.6 Создание водопропускной трубы 42
3.7 Получение местоположения дорожного объекта 44
4 Тестирование 46
4.1 Тестирование бизнес-логики приложения 46
4.2 Тестирование миграций базы данных 48
4.3 Тестирование навигации 49
ЗАКЛЮЧЕНИЕ 51
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 52
ПРИЛОЖЕНИЕ А 55
ПРИЛОЖЕНИЕ Б 56
ВВЕДЕНИЕ 5
1 Анализ требований 6
1.1 Варианты использования системы 6
1.2 Основные сценарии 15
1.3 Модель предметной области 17
2 Анализ инструментов и выбор архитектуры приложения 19
2.1 Выбор инструментов разработки 19
2.2 Архитектурный подход MVI 19
2.3 Чистая архитектура 20
2.4 Паттерн «Репозиторий» 22
2.5 Внедрение зависимостей (Dependency injection) 23
3 Реализация 25
3.1 Используемые технологии 25
3.2 Сетевой слой 26
3.2.1 Импорт данных из IndorRoad 28
3.2.2 Импорт файлов из IndorRoad 31
3.2.3 Экспорт данных в IndorRoad 34
3.3 Хранение данных 34
3.4 Навигация 38
3.5 Реализация экрана карточки трубы 40
3.6 Создание водопропускной трубы 42
3.7 Получение местоположения дорожного объекта 44
4 Тестирование 46
4.1 Тестирование бизнес-логики приложения 46
4.2 Тестирование миграций базы данных 48
4.3 Тестирование навигации 49
ЗАКЛЮЧЕНИЕ 51
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 52
ПРИЛОЖЕНИЕ А 55
ПРИЛОЖЕНИЕ Б 56
В современном мире сложно представить жизнь без использования мобильных устройств. По этой причине многие компании активно ведут разработку мобильных приложений, предназначенных для личного использования или повышения рабочей производительности.
ИндорСофт — российская компания-разработчик программного обеспечения для проектирования и эксплуатации автомобильных дорог. Мобильное приложение IndorField, продукт компании Индорсофт, предназначено для выполнения полевых работ при проведении диагностики и паспортизации водопропускных труб на автомобильных дорогах и является электронным полевым журналом, который позволяет автоматизировать сбор информации на объекте.
Процесс обследования водопропускной трубы включает в себя следующие этапы:
1. Заполнение информации о водопропускной трубе, ее оголовках и участках.
2. Замер численных характеристик с помощью специальных приборов.
3. Фотофиксация водопропускной трубы.
4. Координирование характерных точек трубы (ось трубы, бровка, укрепление откоса и тд.) с помощью приемника ГНСС.
5. Обнаружение дефектов.
После этого необходимо передать все полученные данные в одну общую базу для дальнейшей работы. Без автоматизации процесс обследования водопропускной трубы становится трудоемким и требует много времени на сбор и обработку данных. Мобильное приложение IndorField позволяет значительно уменьшить время, затраченное на обследование дорожного объекта, и предоставляет возможность отправить собранные сведения в базу данных IndorRoad.
Таким образом, цель данной работы: разработать Android-приложение для обследования водопропускных труб. Для достижения выбранной цели были поставлены следующие задачи:
1. Анализ требований.
2. Проектирование архитектуры.
3. Разработка приложения.
4. Тестирование.
ИндорСофт — российская компания-разработчик программного обеспечения для проектирования и эксплуатации автомобильных дорог. Мобильное приложение IndorField, продукт компании Индорсофт, предназначено для выполнения полевых работ при проведении диагностики и паспортизации водопропускных труб на автомобильных дорогах и является электронным полевым журналом, который позволяет автоматизировать сбор информации на объекте.
Процесс обследования водопропускной трубы включает в себя следующие этапы:
1. Заполнение информации о водопропускной трубе, ее оголовках и участках.
2. Замер численных характеристик с помощью специальных приборов.
3. Фотофиксация водопропускной трубы.
4. Координирование характерных точек трубы (ось трубы, бровка, укрепление откоса и тд.) с помощью приемника ГНСС.
5. Обнаружение дефектов.
После этого необходимо передать все полученные данные в одну общую базу для дальнейшей работы. Без автоматизации процесс обследования водопропускной трубы становится трудоемким и требует много времени на сбор и обработку данных. Мобильное приложение IndorField позволяет значительно уменьшить время, затраченное на обследование дорожного объекта, и предоставляет возможность отправить собранные сведения в базу данных IndorRoad.
Таким образом, цель данной работы: разработать Android-приложение для обследования водопропускных труб. Для достижения выбранной цели были поставлены следующие задачи:
1. Анализ требований.
2. Проектирование архитектуры.
3. Разработка приложения.
4. Тестирование.
Возникли сложности?
Нужна помощь преподавателя?
Помощь в написании работ!
В процессе работы над проектом было спроектировано и реализовано мобильное приложение для обследования водопропускных труб, которое позволяет пользователям автоматизировать процесс сбора информации на объекте путем ведения электронного журнала и синхронизировать данные с IndorRoad для обмена информацией. Цель достигнута, выполнены все поставленные задачи:
1. Проведен анализ требований.
2. Спроектирована архитектура.
3. Разработано приложение.
4. Проведено тестирование.
Продукт внедрен на рынок. В данный момент продолжается активная работа над приложением.
В процессе работы были получены навыки анализа функциональных и нефункциональных требований, проектирования архитектуры приложения, организации работы с сетью.
1. Проведен анализ требований.
2. Спроектирована архитектура.
3. Разработано приложение.
4. Проведено тестирование.
Продукт внедрен на рынок. В данный момент продолжается активная работа над приложением.
В процессе работы были получены навыки анализа функциональных и нефункциональных требований, проектирования архитектуры приложения, организации работы с сетью.
1. Android Studio // Википедия. Свободная энциклопедия. [Б. м.], 2022. URL: https://ru.wikipedia.org/wiki/Android Studio(дата обращения: 23.10.2023).
2. Kotlin // Википедия. Свободная энциклопедия. [Б. м.], 2022. URL: v
https://ru.wikipedia.org/wiki/Kotlin(дата обращения: 23.10.2023).
3. Mobile Operating System Market Share Worldwide // StatCounter. [Б. м.], 2022. URL: https://gs.statcounter.com/os-market-share/mobile/worldwide(дата обращения: 05.11.2023).
4. SQLite // METANIT. [Б. м.], 2022. URL:https://metanit.Com/sql/sqlite/1.1.php(дата обращения: 08.11.2023).
5. Room // Developers Android. [Б. м.], 2022. URL:
https://developer.android.com/training/data-storage/room(дата обращения: 10.11.2023).
6. Room // Russians Blogs. [Б м.], 2022. URL:
https://russianblogs.com/article/896077258/(дата обращения: 10.11.2023).
7. Сравниваем готовые решения для реализации MVI-архитектуры на Android //
Хабр. [Б. м.], 2022. URL:https://habr.com/ru/companies/simbirsoft/articles/661185/(дата
обращения: 13.10.2023).
8. SQLite // METANIT. [Б. м.], 2022. URL:https://metanit.com/sql/sqlite/1.1.php(дата обращения: 13.10.2023).
9. Нативный // Википедия. Свободная энциклопедия. [Б. м.], 2022. URL:
https://ru.wiktionary.org/wiki/нативный(дата обращения: 20.11.2023).
10. Neil Smyth. Android Studio 4.0 Development Essentials. Payload Media, 2020.С.818
11. TypeConverters // Android Developers. [Б. м.], 2023. URL:
https://developer.android.com/reference/kotlin/androidx/room/TypeConverters(дата обращения 25.12.2023)
12. Сравниваем готовые решения для реализации MVI-архитектуры на Android //
Хабр. [Б. м.], 2022. URL:https://habr.com/ru/companies/simbirsoft/articles/661185/(дата
обращения 25.12.2023)
13. Чистая архитектура // PVSM. [Б. м.], 2018. URL:
https://www.pvsm.ru/android/278205(дата обращения 25.12.2023)
14. Mark L. Murphy. Elements of Kotlin Coroutines. / Mark L. Murphy - USA:. CommonsWare, 2021. - 233 с.
15. Роберт Мартин. Чистая архитектура. Искусство разработки программного обеспечения. / Робер Мартин — СПб.: Питер, 2021. - 352 с.
16. Основы языка UML: учеб. пособие. / сост.: Моисеев А.Н., Литовченко М.И. - Томск: Издательство Томского Государственного университета, 2023. - 96 с.
17. Разбираемся с SOLID: Инверсия зависимостей // Хабр. [Б. м.], 2016. URL: https://habr.com/ru/articles/313796/(дата обращения 25.02.2024)
18. DataStore // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/topic/libraries/architecture/datastore (Дата обращения
26.02.2024)
19. Accessing data using Room DAOs // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/training/data-storage/room/accessing-data (Дата обращения
01.03.2024)
20. Koin - библиотека для внедрения зависимостей, написанная на чистом Kotlin // Хабр. [Б. м.], 2020. URL:https://habr.com/ru/companies/otus/articles/530024/(Дата обращения 05.03.2024)
21. Используем Retrofit 2 в Android приложении // Хабр. [Б. м.], 2018. URL: https://habr.com/ru/articles/429058/(Дата обращения 05.03.2024)
22. Kotlin Coroutines // Kotlinlang. [Б. м.], 2022. URL:
https://kotlinlang.org/docs/coroutines-overview.html(Дата обращения 10.03.2024)
23. Kotlin Serialization // Kotlinlang. [Б. м.], 2023. URL:
https://kotlinlang.org/docs/serialization.html(Дата обращения 10.03.2024)
24. Media3 // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/media/media3(Дата обращения 10.03.2024)
25. Accompanist - первый аккорд. Обзор библиотеки для Jetpack Compose. [Б. м.], 2021. URL:https://habr.com/ru/companies/surfstudio/articles/570994/(Дата обращения 10.03.2024)
26. Navigation with Compose // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/develop/ui/compose/navigation(Дата обращения 10.03.2024)
27. AndroidJunit4 // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/reference/kotlin/androidx/test/runner/AndroidJUnit4 (Дата
обращения 10.03.2024)
28. Espresso // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/training/testing/espresso(Дата обращения 10.03.2024)
29. Полное руководство по тестовым дублерам в Android - Часть 1: Теория // Хабр.
[Б. м.], 2022. URL:https://habr.com/ru/companies/otus/articles/673152/(Дата обращения
10.03.2024)
30. CoroutineWorker // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/reference/kotlin/androidx/work/CoroutineWorker (Дата
обращения 05.04.2024)
31. Coroutine // SkillFactory. [Б. м.], 2023. URL:
https://blog.skillfactory.ru/glossary/coroutine/(Дата обращения 06.04.2024)
32. WorkManager. Введение // StartAndroid. [Б. м.], 2018. URL:
https://startandroid.ru/ru/courses/architecture-components/27-course/architecture-components/562-urok-29-workmanager-vvedenie.html(Дата обращения 10.04.2024)
33. Контекст корутины и диспетчеры // Kotlinlang. [Б. м.], 2024. URL:
https://kotlinlang.ru/docs/coroutine-context-and-dispatchers.html(Дата обращения 13.04.2024)
34. IO // Kotlinlang. [Б. м.], 2024. URL:
https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-dispatchers/-i-o.html(Дата обращения 14.04.2024)
35. Callback // Wikipedia. [Б м.], 2024. URL:
https://ru.wikipedia.org/wiki/Callback (программирование)(Дата обращения 16.04.2024)
36. ZonedDateTime // Android Developers. [Б. м.], 2022. URL:
https://developer.android.com/reference/kotlin/java/time/ZonedDateTime(Дата обращения 20.04.2024)
37. Jetpack Compose Navigation в многомодульном проекте // Хабр. [Б. м.], 2021. URL:https://habr.com/ru/companies/moex/articles/586192/(Дата обращения 23.04.2024)
38. StateFlow // Kotlinlang. [Б м.], 2021. URL:
https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-state-flow/(Дата обращения 08.05.2024)
39. Принцип единственной ответственности // Wikipedia. [Б. м], 2022. URL:
https://ru.wikipedia.org/wiki/Принцип единственной ответственности(Дата обращения 08.05.2024)
40. Companion-объекты // Metanit. [Б м.], 2024. URL:
https://metanit.com/kotlin/tutorial/4.15.php(Дата обращения 08.05.2024)
41. MigrationTestHelper // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/reference/kotlin/androidx/room/testing/MigrationTestHelper(Дата обращения 09.05.2024)
2. Kotlin // Википедия. Свободная энциклопедия. [Б. м.], 2022. URL: v
https://ru.wikipedia.org/wiki/Kotlin(дата обращения: 23.10.2023).
3. Mobile Operating System Market Share Worldwide // StatCounter. [Б. м.], 2022. URL: https://gs.statcounter.com/os-market-share/mobile/worldwide(дата обращения: 05.11.2023).
4. SQLite // METANIT. [Б. м.], 2022. URL:https://metanit.Com/sql/sqlite/1.1.php(дата обращения: 08.11.2023).
5. Room // Developers Android. [Б. м.], 2022. URL:
https://developer.android.com/training/data-storage/room(дата обращения: 10.11.2023).
6. Room // Russians Blogs. [Б м.], 2022. URL:
https://russianblogs.com/article/896077258/(дата обращения: 10.11.2023).
7. Сравниваем готовые решения для реализации MVI-архитектуры на Android //
Хабр. [Б. м.], 2022. URL:https://habr.com/ru/companies/simbirsoft/articles/661185/(дата
обращения: 13.10.2023).
8. SQLite // METANIT. [Б. м.], 2022. URL:https://metanit.com/sql/sqlite/1.1.php(дата обращения: 13.10.2023).
9. Нативный // Википедия. Свободная энциклопедия. [Б. м.], 2022. URL:
https://ru.wiktionary.org/wiki/нативный(дата обращения: 20.11.2023).
10. Neil Smyth. Android Studio 4.0 Development Essentials. Payload Media, 2020.С.818
11. TypeConverters // Android Developers. [Б. м.], 2023. URL:
https://developer.android.com/reference/kotlin/androidx/room/TypeConverters(дата обращения 25.12.2023)
12. Сравниваем готовые решения для реализации MVI-архитектуры на Android //
Хабр. [Б. м.], 2022. URL:https://habr.com/ru/companies/simbirsoft/articles/661185/(дата
обращения 25.12.2023)
13. Чистая архитектура // PVSM. [Б. м.], 2018. URL:
https://www.pvsm.ru/android/278205(дата обращения 25.12.2023)
14. Mark L. Murphy. Elements of Kotlin Coroutines. / Mark L. Murphy - USA:. CommonsWare, 2021. - 233 с.
15. Роберт Мартин. Чистая архитектура. Искусство разработки программного обеспечения. / Робер Мартин — СПб.: Питер, 2021. - 352 с.
16. Основы языка UML: учеб. пособие. / сост.: Моисеев А.Н., Литовченко М.И. - Томск: Издательство Томского Государственного университета, 2023. - 96 с.
17. Разбираемся с SOLID: Инверсия зависимостей // Хабр. [Б. м.], 2016. URL: https://habr.com/ru/articles/313796/(дата обращения 25.02.2024)
18. DataStore // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/topic/libraries/architecture/datastore (Дата обращения
26.02.2024)
19. Accessing data using Room DAOs // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/training/data-storage/room/accessing-data (Дата обращения
01.03.2024)
20. Koin - библиотека для внедрения зависимостей, написанная на чистом Kotlin // Хабр. [Б. м.], 2020. URL:https://habr.com/ru/companies/otus/articles/530024/(Дата обращения 05.03.2024)
21. Используем Retrofit 2 в Android приложении // Хабр. [Б. м.], 2018. URL: https://habr.com/ru/articles/429058/(Дата обращения 05.03.2024)
22. Kotlin Coroutines // Kotlinlang. [Б. м.], 2022. URL:
https://kotlinlang.org/docs/coroutines-overview.html(Дата обращения 10.03.2024)
23. Kotlin Serialization // Kotlinlang. [Б. м.], 2023. URL:
https://kotlinlang.org/docs/serialization.html(Дата обращения 10.03.2024)
24. Media3 // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/media/media3(Дата обращения 10.03.2024)
25. Accompanist - первый аккорд. Обзор библиотеки для Jetpack Compose. [Б. м.], 2021. URL:https://habr.com/ru/companies/surfstudio/articles/570994/(Дата обращения 10.03.2024)
26. Navigation with Compose // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/develop/ui/compose/navigation(Дата обращения 10.03.2024)
27. AndroidJunit4 // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/reference/kotlin/androidx/test/runner/AndroidJUnit4 (Дата
обращения 10.03.2024)
28. Espresso // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/training/testing/espresso(Дата обращения 10.03.2024)
29. Полное руководство по тестовым дублерам в Android - Часть 1: Теория // Хабр.
[Б. м.], 2022. URL:https://habr.com/ru/companies/otus/articles/673152/(Дата обращения
10.03.2024)
30. CoroutineWorker // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/reference/kotlin/androidx/work/CoroutineWorker (Дата
обращения 05.04.2024)
31. Coroutine // SkillFactory. [Б. м.], 2023. URL:
https://blog.skillfactory.ru/glossary/coroutine/(Дата обращения 06.04.2024)
32. WorkManager. Введение // StartAndroid. [Б. м.], 2018. URL:
https://startandroid.ru/ru/courses/architecture-components/27-course/architecture-components/562-urok-29-workmanager-vvedenie.html(Дата обращения 10.04.2024)
33. Контекст корутины и диспетчеры // Kotlinlang. [Б. м.], 2024. URL:
https://kotlinlang.ru/docs/coroutine-context-and-dispatchers.html(Дата обращения 13.04.2024)
34. IO // Kotlinlang. [Б. м.], 2024. URL:
https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-dispatchers/-i-o.html(Дата обращения 14.04.2024)
35. Callback // Wikipedia. [Б м.], 2024. URL:
https://ru.wikipedia.org/wiki/Callback (программирование)(Дата обращения 16.04.2024)
36. ZonedDateTime // Android Developers. [Б. м.], 2022. URL:
https://developer.android.com/reference/kotlin/java/time/ZonedDateTime(Дата обращения 20.04.2024)
37. Jetpack Compose Navigation в многомодульном проекте // Хабр. [Б. м.], 2021. URL:https://habr.com/ru/companies/moex/articles/586192/(Дата обращения 23.04.2024)
38. StateFlow // Kotlinlang. [Б м.], 2021. URL:
https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-state-flow/(Дата обращения 08.05.2024)
39. Принцип единственной ответственности // Wikipedia. [Б. м], 2022. URL:
https://ru.wikipedia.org/wiki/Принцип единственной ответственности(Дата обращения 08.05.2024)
40. Companion-объекты // Metanit. [Б м.], 2024. URL:
https://metanit.com/kotlin/tutorial/4.15.php(Дата обращения 08.05.2024)
41. MigrationTestHelper // Android Developers. [Б. м.], 2024. URL:
https://developer.android.com/reference/kotlin/androidx/room/testing/MigrationTestHelper(Дата обращения 09.05.2024)
Работу высылаем на протяжении 30 минут после оплаты.