Файл: Разработка службы курьерской доставки в мобильном приложении.docx
Добавлен: 12.12.2023
Просмотров: 157
Скачиваний: 2
СОДЕРЖАНИЕ
Раздел 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Общая характеристика организации
1.3 Анализ существующих решений
Раздел 2. РАЗРАБОТКА СЦЕНАРИЕВ ПОВЕДЕНИЯ ПРИЛОЖЕНИЙ НА ЭТАПАХ ВЫПОЛНЕНИЯ КУРЬЕРСКОГО ЗАКАЗА
2.1 Алгоритм формирования заказа и поиска курьера
2.2 Алгоритм выполнения курьерского заказа
Раздел 3. ПРОЕКТИРОВАНИЕ АРХИТЕКТУРЫ СЕРВЕРНОЙ ЧАСТИ СИСТЕМЫ И МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
3.1 Архитектура серверной части системы
3.2 Выбор оптимальной базы данных для разрабатываемой системы
3.3 Архитектура мобильных приложений
3.4 Средства разработки мобильных приложений
Раздел 4. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ СЕРВЕРНОЙ ЧАСТИ СИСТЕМЫ И МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
4.1 Разработка структуры базы данных
4.2 API для работы с мобильными приложениями
4.3 Структура Android приложения
4.4 Проверка выполнения разработанных сценариев для реализованной системы
Хотя PostgreSQL и не может похвастаться большой популярностью в отличии от MySQL, существует довольно большое число приложений облегчающих работу с PostgreSQL, несмотря на всю мощность функционала. Сейчас довольно легко установить эту СУБД используя стандартные менеджеры пакетов операционных систем.
Достоинства PostgreSQL
-
Открытое ПО соответствующее стандарту SQL - PostgreSQL - бесплатное ПО с открытым исходным кодом. Эта СУБД является очень мощной системой. -
Большое сообщество - существует довольно большое сообщество в котором вы запросто найдёте ответы на свои вопросы -
Большое количество дополнений - несмотря на огромное количество встроенных функций, существует очень много дополнений, позволяющих разрабатывать данные для этой СУБД и управлять ими. -
Расширения - существует возможность расширения функционала за счет сохранения своих процедур. -
Объектность - PostgreSQL это не только реляционная СУБД, но также и объектно-ориентированная с поддержкой наследования и много другого.
Недостатки PostgreSQL
-
Производительность - при простых операциях чтения PostgreSQL может значительно замедлить сервер и быть медленнее своих конкурентов, таких как MySQL -
Популярность - по своей природе, популярностью эта СУБД похвастаться не может, хотя и присутствует довольно большое сообщество. -
Хостинг - в силу вышеперечисленных факторов иногда довольно сложно найти хостинг с поддержкой этой СУБД.
Результаты анализа показывают, что по заявленным возможностям явным фаворитом является PostgreSQL.
Таким образом, в качестве системы управления базами данных в разрабатываемой системе оптимальным выбором будет именно эта СУБД.
3.3 Архитектура мобильных приложений
При проектировании архитектуры будем придерживаться паттерна MVP.
MVP (Model View Presenter) паттерн, являющийся производным от известного паттерна MVC (Model View Controller), становится все более значимым при разработке Android приложений.
В Android мы имеем проблемы, вытекающие из-за тесной связи компонентов, Android (activity, fragment) с графическим интерфейсом и механизмами доступа к данным. Можно привести такие яркие примеры, как CursorAdapter, в котором смешаны адаптеры, которые являются часть графического представления с курсорами, которым отводитсяроль на уровне доступа к данным.
Для создания расширяемых и поддерживаемых приложений необходимо уметь хорошо разделять эти уровни. Данная архитектура хорошо себя зарекомендовала в случаях, когда, например, приходится брать данные не из базы (или не только из базы), а из web-сервиса? Для того чтобы не «кописастить» весь код (Activity иди Fragment), меняя лишь участки кода который обращается к данным.
MVP делает графическое представление независимым от источника данных. Разделим приложение, по крайней мере, на три уровня, позволяя тестировать каждый из них по отдельности. С MVP мы сможем протестировать большинство логики из Activity или Fragment не применяя инструментальные тесты.
Presenter (предъявитель)
Presenter является посредником между графическим представлением и моделью. Он извлекает данные из модели и возвращает их в удобной форме представлению. В отличии от типичного MVC он так же решает, что произойдет, при взаимодействии с представлением.
View (представление)
Как правило это Activity, Fragment или View, в зависимости от структуры приложения, содержащее ссылку на presenter. В идеале, добавление presenter-а осуществляется с помощью механизма внедрения зависимостей, таких как Dagger, в противном случаи в view должен быть создан объект presenter-а. Единственное, что view будет делать это вызывать методы presenter-а, каждый раз когда происходит взаимодействие с графическим интерфейсом (нажатие кнопок, свайпы и т.д).
Model (модель)
В приложении с хорошей многоуровневой архитектурой, model является точкой доступа к данным или бизнес логики. В «стерильной» архитектуре, model вероятно будет Interactor, который реализует какое-то действие.
Рисунок 5 – Наглядная разница двух паттерновMVC иMVP
3.4 Средства разработки мобильных приложений
Приложения для Android пишутся на языке программирования Java. Инструменты Android SDK (SoftwareDevelopmentKit – комплект разработки программного обеспечения) компилируют написанный вами код – и все требуемые файлы данных и ресурсов – в файл APK – программный пакет Android, который представляет собой файл архива с расширением.apk. В файле APK находится все, что требуется для работы Android-приложения, и он позволяет установить приложение на любом устройстве под управлением системы Android.
Каждое приложение Android, установленное на устройстве, работает в собственной «песочнице» (изолированной программной среде):
-
операционная система Android представляет собой многопользовательскую систему Linux, в которой каждое приложение является отдельным пользователем; -
по умолчанию система назначает каждому приложению уникальный идентификатор пользователя Linux (этот идентификатор используется только системой и неизвестен приложению); система устанавливает полномочия для всех файлов в приложении, с тем чтобы доступ к ним был разрешен только пользователю с идентификатором, назначенным этому приложению; -
у каждого процесса имеется собственная виртуальная машина (ВМ), так что код приложения выполняется изолированно от других приложений; -
по умолчанию каждое приложение выполняется в собственном процессе Linux. Android запускает процесс, когда требуется выполнить какой-либо компонент приложения, а затем завершает процесс, когда он больше не нужен либо когда системе требуется освободить память для других приложений.
Таким образом система Android реализует принцип предоставления минимальных прав. То есть каждое приложение по умолчанию имеет доступ только к тем компонентам, которые ему необходимы для работы, и ни к каким другим. Благодаря этому формируется исключительно безопасная среда, в которой приложение не имеет доступа к недозволенным областям системы.
Однако у приложения есть варианты предоставления своих данных другим приложениям и доступа к системным службам:
-
двум приложениям можно назначить один идентификатор пользователя Linux. В этом случае каждый из них сможет обращаться к файлам другого приложения. Для экономии ресурсов системы также можно сделать так, чтобы приложения с одинаковым идентификатором пользователя выполнялись в одном процессе Linux и использовали одну ВМ ( приложения также должны быть подписаны одним сертификатом); -
приложение может запросить разрешение на доступ к данным устройства, например к контактам пользователя, SMS-сообщениям, подключаемой карте памяти (SD-карте), камере, Bluetooth и др. Все разрешения должны предоставляться приложению при его установке.
Официальной средой разработки под операционную систему Android является AndroidStudio.
AndroidStudio – это интегрированная среда разработки (IDE) для работы с платформой Android, анонсированная 16 мая 2013 года на конференции Google I/O.
IDE находилась в свободном доступе начиная с версии 0.1, опубликованной в мае 2013, а затем перешла в стадию бета-тестирования, начиная с версии 0.8, которая была выпущена в июне 2014 года. Первая стабильная версия 1.0 была выпущена в декабре 2014 года, тогда же прекратилась поддержка плагина AndroidDevelopmentTools (ADT) для Eclipse.
AndroidStudio, основана на программном обеспечении IntelliJ IDEA от компании JetBrains, официальное средство разработки Android приложений.
Основные функции AndroidStudio:
-
способность работать с UI компонентами при помощи Drag-and-Drop, функция предпросмотра макета на нескольких конфигурациях экрана; -
сборка приложений, основанная на Gradle; -
различные виды сборок и генерация нескольких.apk файлов; -
рефакторинг кода; -
статический анализатор кода (Lint), позволяющий находить проблемы производительности, несовместимости версий и другое; -
встроенный ProGuard и утилита для подписывания приложений; -
шаблоны основных макетов и компонентов Android; -
поддержка разработки приложений для AndroidWear и Android TV; -
встроенная поддержка GoogleCloudPlatform, которая включает в себя интеграцию с сервисами GoogleCloudMessaging и AppEngine; -
способность работать с обновленным компилятором Jack, а также получила улучшенную поддержку Java 8 и усовершенствованную функцию InstantRun; -
В AndroidStudio 3.0 будут по стандарту включены инструменты языка Kotlin основанные на JetBrains IDE.