Programming language: Swift 5
Technologies: UIKit, ARKit, SceneKit
Platform: iOS 13 and latter
- Часть 1
1.1 Тип приложения
1.2 Выбор стратегии развертывания
1.3 Выбор технологии
1.4 Показатели качества
1.4.1 Графический дизайн и взаимодействие с пользователем
1.4.1.1 Стандартный дизайн
1.4.1.2 Навигация
1.4.2 Функциональность
1.4.2.1 Права доступа
1.4.2.2 Звук
1.4.2.3 Графика и интерфейс пользователя
1.4.3 Производительность и стабильнотсть
1.4.3.1 Стабильность
1.4.3.3 Качество визуализации
1.5 Сквозная функциональность - Часть 2
2.1 "To Be Архитектура"
2.2 "As Is" архитектура - Часть 3
3.1 Сравнение и анализ
3.2 Пути улучшения архитектуры
Проект предпологает проектирование и создание мобильного приложения для создания простых 3D сцен в дополненной реальности. Проект предпологает реализацию на языке Swift с использованием фреймворков ARKit, SceneKit, UIKit.
Нераспределенное развертывание приложения предпологается посредством установки приложения из AppStore на мобильное устройство под управлением iOS 13 и старше
Язык Swift выбран как наиболее популярный для разработки мобильных приложения для платформы iOS. Технологии UIKit, ARKit, SceneKit имеют хорошую документацию поскольку являются фреймфорками поставляемыми компанией Apple, что позволяет нам быть уверенными в результате. Технология ARKit предоставляет весь необходимый функционал для работы с дополненной реальностью и имеет невысокий порог входа. Технология SceneKit выбрана поскольку имеет расширенные возможности для отрисовки сцены в дополненной реальности.
- Дизайн разрабатывался в соответствии с Human Interface Guidelines, которые предоставляет Apple.
- В приложении используются системные цвета, что способствует поддержке светлой и темной темы, а тажке режима высокой контрастности.
- Все бизнес-методы являются вызываемыми, т.е. созданы не потому, что может понадобиться в будущем.
- В приложении поддерживается стандартная системная навигация с помощью контроллера навигации.
- Основной экран имеет минимально необходимое количество элементов навигации, что позволяет пользователю сосредаточится на работе с приложением.
- Навигации приложения свойственна простота, интуитивность и минимальные затраты времени для перемещения между экрнами.
Приложение запрашивает минимум прав доступа:
- Доступ к камере
- В приложении не предполагается использование звуковых эффектов.
- Приложение поддерживает вертикальную ориентацию экрана, а так же адаптируется под разные размеры экранов мобильных устройств.
- Все виджеты и методы разметки экранов определены набором инструментов UIKit.
- При работе приложения не должно происходить аварийных или вынужденных закрытий приложения, зависаний или других аномалий в его работе на любых поддерживаемых устройствах.
- Отображение текста, виджетов и других элементов интерфейса без заметных искажений, смазываний или эффектов пикселизации на всех поддерживаемых устройствах.
- Обеспечение правильной и читабельной компоновки блоков меню, текста и виждетов.
- Отсутствие обрезанных букв или слов.
- Анимация некоторых изображений.
- В приложении все модули выделены, соответственно сквозная функциональность отсутствует.
Архитектурное решение команды по реализации идеи можно увидеть на Структурной схеме
Наглядный пример желаемого GUI приведен с помощью мокапов
1. Сравнение и анализ На данный момент архитектура AS-IS не имеет отличительных особенностей от архитектуры TO-BE, поскольку она является довольно простой и не имеет сложных связей и решений реализации. Также команда старается жестко придерживаться изначального решения в виде схем, мокапов и диаграмм для воплощении идеи.
2. Пути улучшения архитектуры Возможно внедрение паттерна MVP для уменьшения ответствености контроллера