Таким образом, стал актуальным вопрос создания программы, помогающей поддерживать здоровый образ жизни. Важным условием для достижения данной цели была портативность устройства, для которого будет реализовано программное обеспечение, вследствие чего было принято решение о разработке мобильного приложения. Другим немаловажным условием разработки программного обеспечения была доступность будущего продукта для широкой аудитории пользователей. Согласно статистике StatCounter [2] по состоянию на апрель 2020 года, операционные системы iOS и Android охватывают 99.47% веб-трафика. Проанализировав все особенности создания мобильных приложений для различных операционных систем, для разработки данного приложения была выбрана операционная система iOS.
Целью выпускной квалификационной работы стало – разработать клиент-серверное мобильное iOS-приложение, призванное помочь пользователю в гармонизации жизни, визуально предоставляя диаграмму личностного развития, предоставив возможность создания целей, а также просмотр статистики по внедрению полезных привычек.
Для выполнения поставленной цели необходимо выполнить ряд задач:
- обзор предметной области;
- изучение особенностей разработки клиент-серверных мобильных приложений;
- разработка дизайна мобильного приложения;
- проектирование и разработка архитектуры серверной части приложения;
- разработка iOS приложения;
- проведение тестирования.
ВВЕДЕНИЕ..................................................................................................... 3
1. Постановка задачи и разработки............................................................. 5
1.1. Требования к информационной системе........................................... 5
1.2. Требования к среде разработки........................................................ 5
1.3. Анализ аналогичных приложений.................................................... 5
2. Разработка архитектуры базы данных.................................................... 7
3. Разработка клиент-серверной архитектуры.......................................... 13
3.1. Клиент-серверная архитектура........................................................ 13
3.2. Сетевые протоколы.......................................................................... 13
3.3. Язык программирования Python..................................................... 15
3.4. Фреймворк Django........................................................................... 15
3.5. Система авторизации....................................................................... 16
4. Разработка архитектуры приложения................................................... 18
4.1. Язык программирования Swift........................................................ 18
4.2. Реактивное программирование с RxSwift....................................... 18
4.3. Концепция Model-View-ViewModel................................................. 19
5. Функционал приложения....................................................................... 21
5.1. Функционал для неавторизованного пользователя........................ 21
5.2. Функционал для авторизованного пользователя........................... 23
6. Тестирование приложения..................................................................... 32
ЗАКЛЮЧЕНИЕ............................................................................................. 34
СПИСОК ЛИТЕРАТУРЫ............................................................................. 35
ПРИЛОЖЕНИЕ............................................................................................. 36
1. Marketdata Enterprises [Электронный ресурс] – 2020 – URL: https://www.marketdataenterprises.com/11-billion-self-improvement- market-is-growing-by-john-larosa/ (дата обращения: 14.05.2020).
2. StatCounter [Электронный ресурс]. – 2020 – URL: https://gs.statcounter.com/os-market-share/mobile/worldwide (дата обращения: 11.05.2020).
3. Xcode 11 [Электронный ресурс]. - 2020 - URL: https://developer.apple.com/xcode/ (дата обращения: 05.05.2020).
4. PyCharm [Электронный ресурс] – 2020 – URL: https://www.jetbrains.com/ru-ru/pycharm/ (дата обращения: 04.06.2020)
5. Любанович Б. Простой Python: Современный стиль программирования [Текст] / Б. Любанович; под общ.ред. Н.Гринчик / М.: Питер, 2019 - 480 с.
6. Грант А. The Definitive Guide to SQLite [Текст] / А. Грант, М. Оэун / М.: Apress, 2010 – 368 с.
7. The Swift Programming Language (Swift 5.1) [Электронный ресурс]. - 2020 - URL: https://books.apple.com/ru/book/the-swift-programming- language-swift-5-1/id881256329 (дата обращения: 05.05.2020)
8. MVVM [Электронный ресурс]. - 2020 URL: https://ru.wikipedia.org/wiki/Model-View-ViewModel (дата обращения: 06.05.2020).
9. Charts [Электронный ресурс]. – 2020 – URL: https://github.com/danielgindi/Charts (дата обращения: 13.05.2020).