close

Вход

Забыли?

вход по аккаунту

Досов Олег Евгеньевич. Создание мобильного приложения для составления индивидуальных тренировок

код для вставки
АННОТАЦИЯ
ВКР 71 с., 40 рис., 1 табл., 10 источников, 1 прил.
МОБИЛЬНОЕ
ПРИЛОЖЕНИЕ,
ИНДИВИДУАЛЬНЫЕ
ТРЕНИРОВКИ,
ПЕРСОНАЛЬНЫЕ ДАННЫЕ, РАЗРАБОТКА ПРИЛОЖЕНИЯ.
Выпускная квалификационная работа посвящена разработкемобильного
приложения для составления индивидуальных тренировок.
В первой главе была описана предметная область и поставлена задача
разработки android-приложения для составления индивидуальных тренировок.
Далее был выполнен обзор аналогов, а так же средств реализации. После были
поставлены задачи исследования и выявлены требования к разрабатываемому
мобильному приложению.
Во второй главе были спроектированы схемы базы данных, обобщенный и
частные алгоритмы функционирования мобильного приложения, а также логика
диалога с пользователем
В третьей главе были представлены экранные формы, а также демонстрация
работымобильного приложения для составления индивидуальных тренировок.
4
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
5
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ПОСТАНОВКА ЗАДАЧИ
РАЗРАБОТКИ
ANDROID-ПРИЛОЖЕНИЯ
ДЛЯ
СОСТАВЛЕНИЯ
ИНДИВИДУАЛЬНЫХ ТРЕНИРОВОК
7
1.1 Описание предметной области
7
1.2 Постановка задачи
9
1.3 Описание бизнес процессов, происходящих при работе приложения
12
1.4 Формирование требований
22
1.5 Обзор аналогов, разрабатываемого мобильного приложения
22
1.6 Выбор платформы и средств реализации
30
2 РАЗРАБОТКА МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ
СОСТАВЛЕНИЯ
ИНДИВИДУАЛЬНЫХ ТРЕНИРОВОК
35
2.1 Разработка архитектуры
35
2.2 Проектирование базы данных
36
2.3 Алгоритмы функционирования мобильного приложения
40
2.4 Логика диалога с пользователем
45
3 РЕАЛИЗАЦИЯ МОБИЛЬНОГО ПРИЛОЖЕНИЯ
47
3.1 Прототип интерфейса и диалог пользователя с ним
47
3.2 Создание интерфейса в AndroidStudio
51
ЗАКЛЮЧЕНИЕ
61
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
63
ПРИЛОЖЕНИЕ А
64
УДОСТОВЕРЯЮЩИЙ ЛИСТ № 140178/п
ИНФОРМАЦИОННО-ПОИСКОВАЯ
НА ИНФОРМАЦИОННОМ НОСИТЕЛЕ
Error! Bookmark not defined.
ХАРАКТЕРИСТИКАДОКУМЕНТА
72
5
ВВЕДЕНИЕ
Современный человек стремится достичь максимального комфорта
вкаждой из сфер жизни. В современных условиях трудно представить себе
жизнь без мобильного телефона, смартфона, планшетного компьютера,
другого мультимедийного устройства. Эти устройства всегда с нами, ими
удобно пользоваться, и они являются не только средством общения, но
имеют и много полезных функций, таких как калькулятор, органайзер,
конвертер, календарь, часы. Мобильные устройства стали выполнять
широкий
спектр
вычислительных
функциональностьих доведена
задач.
Эффективность
до столь высокого
уровня
и
благодаря
установленным специализированным приложениям, которые разнообразны
по своему назначению. Все основные приложения делятся на те, которые
необходимы
для
приятного
времяпрепровождения,
и
те,
которые
используются исключительно в рабочих целях. Первая группа включает игры
и развлекательные программы, софт для воспроизведения видео, аудио
материалов, средства для коммуникации. Второе направление рассчитано на
комплексное решение определенного задания. Особое место занимают
приложения, помогающие человеку сохранять здоровье.
В настоящее
время,
в век технического прогресса,
важным
условиемсохранения и укрепления здоровья является соблюдение здорового
образажизни, и важная его часть - правильное сбалансированное питание и
персонализированные подобранные программы тренировок.
Правильное питание - это четко сбалансированный, правильно
распределенный по времени и количеству прием пищи, которая содержит
необходимое организму количество калорий, питательных веществ и
витаминов.
Программа тренировок - это набор методов и средств, которые
направлены на решение конкретных спортивных задач. Такая программа
6
нужна, чтобы помочь человеку достичь поставленных целей. Программа
тренировок может решить любую проблему. Например, набрать мышечную
массу или похудеть.
На
сегодняшний
день
существует
множество
различных
приложенийпо подсчету калорий, ведения дневника питания, составления
программ тренировок для разных групп мышц, как для мобильного телефона,
так и для персонального компьютера. Каждое имеет свои плюсы и минусы,
пользователи в зависимости от своих предпочтений выбирают наиболее
удобный для них вариант.
Целью данной работы является выбор необходимых упражнений на
разные группы мышц на основе мобильного приложения для составления
индивидуальных тренировок. Для достижения указанной цели необходимо
решить следующие задачи:
1. Описать
предметную
область
мобильного
приложения
для
составления индивидуальных тренировок.
2. Обзор аналогов разрабатываемогомобильного приложения для
составления индивидуальных тренировок.
3. Моделирование процессов предметной области.
4. Разработать алгоритмы работы с данными и пользовательский
интерфейс программной системы.
5. Разработка и тестирование мобильного приложения для составления
индивидуальных тренировок.
7
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ПОСТАНОВКА ЗАДАЧИ
РАЗРАБОТКИ ANDROID-ПРИЛОЖЕНИЯ ДЛЯ СОСТАВЛЕНИЯ
ИНДИВИДУАЛЬНЫХ ТРЕНИРОВОК
1.1 Описание предметной области
Программа
тренировок,
является
неотъемлемой
частью
профессиональной физической подготовки людей, занимающихся спортом.
Программы тренировок создаются для того чтобы человек достиг своей
поставленной цели, будь то снижение веса или набор мышечной массы. Они
могут быть как для новичка,так и для продвинутого спортсмена, конечно,
отличаться они будут по многим пунктам. В программе для начинающего
должен быть упор на технику выполнения и базовые упражнения.
Изначально у каждого упражнения есть своя база, основа. Потом упражнения
модифицируются, усложняются. Так будет и у начинающего: на первых
занятиях он будет делать базовые упражнения, а по мере накопления опыта
тренировки будут меняться. Для более продвинутого уровня - то есть мы
полагаем, что человек уже прошёл стадию новичка, у него уже развита
правильная техника выполнения упражнений - тренер будет давать более
сложные упражнения, которые требуют хорошей физической и технической
подготовки.
Существуют и общие, так сказать, усреднённые программы, которые
используются на групповых тренировках. Тренер составляет программу из
конкретных упражнений, чтобы, например, проработать ноги. Только для
этой цели. Вне зависимости от того, кто придёт, какого роста, возраста, веса программа одна для всех. Просто новичок будет делать меньшее количество
повторений, нежели опытный спортсмен. Или новичок будет делать обычные
выпады, а продвинутый спортсмен - выпады с прыжками. В этом вся разница
и главное отличие групповых программ от персональных тренировок.
Личный тренер разрабатывает программу под конкретного человека, его
8
цели, особенности и возможности.
Пользоваться программами тренировок, которые вы нашли на какихто сайтах, нежелательно - они обобщённые. Кроме того, если будете
тренироваться самостоятельно, не будете видеть себя со стороны, понимать,
правильно ли всё делаете, не сможете откорректировать свою технику - вы не
знаете, какие ощущения должны быть во время выполнения каждого
упражнения, куда направить, например, большой палец, как поставить ногу,
чтобы ваши действия были эффективными, и вы чувствовали ваше
тело.Дажепрофессиональные спортсмены, любят тренироваться с тренером он видит со стороны, как, где и что надо исправить. И когда он исправляет,
спортсмен понимает свою ошибку и чувствует изменения. Тем более, если
работа идёт на повторения, в конце тренировки человек теряет контроль над
техникой выполнения, что может не только не привести к результатам, но и
обернуться травмой. Травмы -достаточно частое явление во время занятий
спортом. Конечно, всё это является результатом неправильного выполнения
упражнений,
невнимательности
при
выполнении
упражнения,
недостаточность или отсутствие разминки перед тренировкой, неправильная
техника
выполнения,
использования
тренажеров не
по назначению,
чрезмерная нагрузка, халатность при появлении первых болевых ощущений,
отсутствие специальной экипировки на занятиях, игнорирование тренера,
выполнение
упражнений
при
плохом
самочувствии.
Самые
распространенные травмы на тренировках в тренажерном зале следующие:
1. Растяжение мышц или связок с частичным или полным разрывом
волокон.
2. Полный разрыв волокон сухожилия с очень большим периодом
восстановления без двигательной активности.
3. Вывих сустава.
4. Ушибы конечностей и суставов.
5. Травмы позвоночника.
9
Конечно, все вышеперечисленные травмы сопровождаются острой
болью и дают о себе знать. Но в спорте есть также постепенные травмы, на
которые человек часто закрывает глаза, это всё со временем накапливается и
приводит к большим нежелательным последствиям. Многие люди халатно
относятся ко всему этому и это большая проблема, ведь любой
профессионал, который занимается десятки лет, соблюдает осторожность в
зале дважды, дабы избежать нежелательных результатов.
1.2Постановка задачи
Для
разработки
взаимодействие
приложение
мобильного
пользователя
представляет
с
собой
приложения
этим
необходимо
приложением.
множество
описать
Предлагаемое
программ
тренировок,
выдаваемых в зависимости от параметров в ленте пользователя.
Для описания основных возможностей системы используем нотацию
UML. UML является языком широкого профиля - это открытый стандарт,
использующий
графические
обозначения
для
создания абстрактной
модели системы, называемой UML-моделью. В UML используется набор
графических нотаций - диаграмм. Одной из них является диаграмма
вариантов использования (диаграмма прецедентов).
Диаграмма прецедентов в UML - это диаграмма, которая отражает
отношения между акторами и прецедентами и является составной частью
модели прецедентов, позволяющей описать систему на концептуальном
уровне.
Прецедент - это такая возможность моделируемой системы, с помощью
которой пользователь может получить конкретный и нужный ему результат.
Прецедент соответствует отдельному сервису системы, определяет один из
вариантов её использования и описывает типичный способ взаимодействия
пользователя с системой. Варианты использования обычно применяются для
спецификации внешних требований к системе. Они отображают внешний
10
интерфейс системы и указывают форму того, что система должна сделать.
Выделим
начальном
Актора
этапе
после
-
«Пользователь».
запуска
Актор
приложения
«Пользователь»
должен
пройти
на
окно
авторизации, в котором ему необходимо ввести свою электронную почту и
пароль, если у него нет акаунта, ему необходимо пройти регистрацию. В окне
регистрации пользователь вводит все необходимые данные: электронную
почту, пароль, имя, номер телефона, дату рождения. После этого он может
зайти в основное меню, где он может войти в одну из трёх вкладок:
1. Тренировка.
2. Данные о себе.
3. Избранное.
Заходя во вкладку «Данные о себе», пользователь имеет возможность
ввести свой рост, ввести свой вес, выбрать пол и выбрать имеющуюся в
данный момент травму. Также есть возможность ввести значения по
умолчанию, если он по каким либо причинам не желает заполнять их. В
зависимости от временных изменений пользователь имеет возможность
изменить их в любой момент. Выбирая вкладку «Тренировка»онзаходит в
окно тренировки, где может запустить видео с упражнениями и остановить
их в любой момент. Если пользователю понравилась, какая либо тренировка
он может добавить её во вкладку «Избранное», нажав на кнопку в правом
верхнем углу, после нажатия выпадает сообщение подтверждения.После
подтверждения
добавления
понравившейся
тренировки
во
вкладку«Избранное», пользователь, заходя во вкладку «Избранное» будет
иметь список понравившихся ему тренировок.Если пользователь не
подтвердил добавление тренировки, она не будет добавлена во вкладку
«Избранное»Диаграмма вариантов использования модели представлена на
рисунке 1.
11
Рисунок 1 – Диаграмма вариантов использования приложения
12
1.3 Описание бизнес процессов, происходящих при работе
приложения
Для полного представления протекающих процессов в системе была
составлена диаграмма IDEF0. Модель «asis» показывает всё как есть, то есть
это модель, которая описывает конкретные функции или процессы. Описание
процессов является важной частью
развития
системы.
возможность
описать
Построение
при создании любого проекта или
функциональной
информационные
модели
«asis»даёт
объекты,использующиеся
при
выполнении процессов. Анализируя текущие информационной системы,
была создана следующая «asis» модель, которая даёт возможность описать и
систематизировать процессы, протекающие в данной системе.
На нашей диаграмме видно, человеку, которому хотелось бы получить
персональную программу тренировок, придется немало потрудиться. Для
начала ему необходимо найти тренера, который бы смог ему помочь в этом
вопросе. Далее предоставить достоверную информацию о своём физическом
состоянии и состоянии здоровья, перед этим желательно посоветовавшись с
доктором. После этого тренер оценивает показатели человека и составляет
для него индивидуальную программу тренировок.
Весь этот процесс занимает достаточно много времени, к тому же
если у человека нет знакомых людей разбирающихся в данной сфере, велика
вероятность того, что спортсмен может наткнуться на некомпетентного
тренера, результат, в конце концов, будет неудовлетворительным.
На рисунке 2 мы можем заметить IDEF0 диаграмму, показывающую,
что мы имеем на текущей момент, то есть так называемое «asis».
13
Рисунок 2 – ДиаграммаIDEF0 asis
14
Теперь рассмотрим модель «tobe».Для подбора индивидуальных
тренировок пользователю необходимо будет в мобильном приложении
заполнить форму со своими персональными данными:
- пол;
- рост;
- вес;
- имеющиеся травмы.
После этого начнется обработка персональных данных пользователя,
данные будут сравниваться с диапазоном значений.После этого заходя в
главное меню мобильного приложения, пользователь сможет увидеть список
подходящих ему тренировок.
Данный процесс занимает гораздо меньше времени, становится проще,
пользователю необходимо только ввести свои персональные данные и
тренировки появятся на экране. Процесс стал:
- удобный;
- простой;
- мало затратный по времени;
- менее рискованный;
- результативный.
На рисунке 3 мы предлагаем так называемое «tobe», которое состоит из
таких процессов:
- занесение персональных данных;
- обработка данных;
- подбор персональных тренировок.
15
Рисунок 3 – ДиаграммаIDEF0 tobe
16
На рисунках 4-8 можно увидеть детально сделанную модель работы
мобильного приложения для составления индивидуальных тренировок.
Описание модели начинается с контекстной диаграммы. Далее
показан нулевой уровень с тремя блоками:
1. Авторизация пользователя.
2. Редактирование персональных данных.
3. Подбор персональных тренировок.
Далее детализирована, показана авторизация пользователя:
1. Ввод электронной почты.
2. Ввод пароля.
3. Проверка введенных данных в базе данных.
Если пользователь ввел неверные данные, то выведет ошибку.
Детализированное редактирование персональных данных:
1. Выбор пола.
2. Ввод веса.
3. Ввод роста.
4. Выбор травмы.
5. Занесение данных в базу данных.
Детализированный подбор тренировок и вывод на экран:
1. Подбор тренировок на основе персональных данных.
2. Вывод на экран.
17
Рисунок 4 – Контекстная диаграмма
18
Рисунок 5 – Диаграмма IDEF0
19
Рисунок 6 – Детализация авторизации пользователя
20
Рисунок 7 – Детализация редактирование персональных данных
21
Рисунок 8 – Детализация подбора персональных тренировок
22
1.4 Формирование требований
Разрабатываемое
приложение
предназначено
для
составления
индивидуальной программы тренировок, на основе индивидуальных данных
пользователя.
Чтобы
осуществить
поставленные
цели,
приложению
необходимо поставить ряд требований:
1. Возможность заполнять поля индивидуальных данных.
2. Возможность сохранить списком пользовательские отмеченные
тренировки в отдельной вкладке, редактировать или удалить данные из этой
вкладки.
3. Возможность отметить уже пройденные тренировки.
4. Возможность в любой момент запустить тренировку.
5. Возможность в любой момент остановить тренировку.
6. Возможность просмотра советов по программам тренировок.
7. Возможность связаться с разработчиками приложения, для решения
возникших проблем или предложения идей.
Нефункциональные (эксплуатационные) требования:
1. Для функционирования продукта необходимо устройство на
платформе Android с доступом к сети Internet.
2. Для корректной работы приложения необходима версия Android не
ниже 4.4 (KitKat) и подключение к Internet с минимальной скоростью 10
Кбит/c.
3. ПО должно иметь справочную систему, в которой описано
назначение ПО и порядок работы.
4. Приложение должно иметь интуитивно понятный пользователю
интерфейс.
1.5 Обзор аналогов, разрабатываемого мобильного приложения
«Sworkit»
В
Sworkit
имеется
функция
настройки
и
воспроизведения
23
персональных видео тренировок:
1. Пользователь выбирает либо силовую, либо кардио тренировку,
йогу или растяжку.
2. Имеется функция выставления времени от 5 до 60 минут.
3. Пользователю необходимо выполнять упражнения видео тренера,
чтобы всё прошло правильно.
Рисунок 9 – Внешний вид Sworkit
Особенности:
1. Отсутствие рекламы.
2. В наличие имеются упражнения с пониженной интенсивностью для
людей в возрасте и новичков.
3. Есть возможность установки собственных интервалов тренировок.
4. Имеется возможность сохранения тренировок.
5. Специальные готовые тренировки.
6. Функция «Спросите у тренера».
7. У Sworkit имеется доступ на все поддерживаемые устройства,
включая веб-приложение и Apple TV.
«Ежедневные Тренировки - Фитнес-упражнения»
24
В Ежедневные Тренировки - Фитнес-упражнениявходятнеобходимые
и эффективные видео с упражнениями для мужчин и женщин. Пользователю
необходимо
выполнить
запуск
видео
и
тренировка
начнётся.
Упражненияпроводятся с сертифицированным тренером.
Рисунок 10 – Внешний вид «Ежедневные Тренировки - Фитнесупражнения»
Самый главный минус – полная версия платная, в неполной версии:
1. Количество тренировок меньше.
2. Нет выбора случайных ежедневных тренировок.
3. Нет режима горизонтального изображения.
4. Имеются рекламные вкладки.
«Фитнес-план 30 Дней - Тренировки Дома»
Фитнес-план 30 дней дает возможность пользователю постепенное
наращивание интенсивности тренировок, учитывая различные особенности
организма человека, достаточно будет просто придерживаться этого плана.
Вместе с фитнес-план 30 дней, вы сможете улучшить состояние организма и
добиться поставленной цели.
25
Рисунок 11 – Внешний вид «Фитнес-план 30 Дней - Тренировки
Дома»
Особенности:
1. Обновление прогресса после тренировок.
2. Напоминание о тренировках.
3. Просто руководство с видео.
4. Постепенное повышение интенсивности.
5. 30-дневное улучшение пресса.
6. 30-дневноеулучшение тела.
7. 30-дневноеулучшение ягодиц.
8. Можно поделиться прогрессом друзья в социальных сетях.
«Программа тренировок!»
Программа тренировок! Достаточно простое приложение, которое
содержит уже составленные заранее тренировки, рассчитано на людей,
которые хотели бы начать заниматься, в тренировках содержатся названия
упражнений с количеством повторений. У данного приложения какие-либо
отличительные особенности отсутствуют.
26
Рисунок 12 – Внешний вид «Программа тренировок!»
«Моя тренировка»
Приложение для занятий в тренажерном зале, для пользователей,
которые хотели бы улучшить своё тело, силовые показатели. Изначально
автор делал его для своего знакомого. Есть возможность создавать
упражнение, изменять его, выбирать из готовых, с информацией и картинкой.
Рисунок 13 – Внешний вид «Моя тренировка»
Программа
позволяет
составлять
пользователю
недельную
27
тренировку,
есть возможность корректировки,
достаточно подробное
описание упражнений на ту или иную группу мышц.
«Тренировки для Дома – Никакого Оборудования»
Тренировки для дома – это упражнения на каждый день на базовые
группы мышц. Уделив немного времени, вы постепенно можете улучшить
свое телосложение
в домашних условиях. В приложении имеются
тренировки на все группы мышц. Все программы созданы специалистами.
Отсутствует необходимость в оборудовании. Упражнения занимают немного
времени, но они приведут пользователя в форму.
Рисунок 14 – Внешний вид «Тренировки для Дома – Никакого
Оборудования»
Особенности:
1. Разминочные упражнения.
2. Запись данных о тренировках.
3. Простой и удобных график изменения веса.
4. Имеются напоминания о тренировках.
5. Просматривайте подробные видео тренировки.
«Ваш личный тренер»
28
Ваш личный тренер – многофункциональная система, этот сервис
составляет распорядок дня, формирует программу питания, составляет
тренировочный комплекс на основе физиологических особенностей человека.
Пользователю предоставляются подсказки, советы по тренировкам и
питанию. Ваш личный тренер имеет несколько подсистем, подсистема
выполнения тренировок, подсистема автоматизации составления программ
тренировок с учетом физиологических особенностей человека.
Рисунок 15 – Внешний вид «Ваш личный тренер»
Для удобства сравнения приведена таблица 1, в которой выделены
основные характеристики приложения по составлению тренировок.
Таблица 1 – Сравнение характеристик приложений составляющих программы тренировок
Ежедневные
тренировки
Фитнес- Программа Моя
план 30 тренировок! тренировка
дней
+
-
-
-
-
Тренировки
для
дома
-
-
+
+
-
-
+
-
-
-
-
-
+
-
-
+
+
Ваш
личный
тренер
Разрабатываемый
прототип
+
+
-
+
+
+
+
+
+
-
-
+
+
+
-
-
-
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
29
Регистрация/
авторизация
пользователя
Управление
персональными
данными
Сохранение
понравив-шихся
тренировок
Подбор тренировок
в зависимости от
персональных
данных
Подбор тренировок
в зависимости от
имеющихся травм
Остановка
тренировки в любой
момент
Связь
с
разработчиком
Sworkit
30
На основании таблицы 1 можно сделать выводы, что многие
разработчики делают упор на то, чтобы люди начали заниматься, несмотря на
их состояние, ведь многие приложения не учитывают параметры человека,
они просто советуют ту или иную программу. В трёх приложениях
присутствует сохранение той или иной программы для дальнейшего
использования. Всего лишь в одной есть регистрация и авторизация.
Таким образом, единственный вариант, который учитывает все
необходимые
параметры
и
функции
приложения,
присутствуют
в
разрабатываемом прототипе.
1.6 Выбор платформы и средств реализации
В настоящее время значительная часть мобильных приложений
создается более чем для одной платформы. Существует два основных
подхода
к
разработке
мобильных
приложений
-
нативный
и
кроссплатформенный. При нативной разработке программисты используют
оригинальныеязыки
программирования
и
инструменты
мобильной
операционной системы. В кроссплатформенной разработке используются
специальные инструменты, которые позволяют создавать приложения сразу
для нескольких мобильных операционных систем.Мир мобильных платформ
сильно фрагментирован, здесь выделяются две основные операционные
системы -Android и iOS, а также WindowsPhone, Windows 10 Mobile. Для
каждой платформы существуют свои средства разработки. Например, чтобы
создавать приложения для iOS, необходима соответствующая среда – Mac OS
X и ряд специальных инструментов, типа XCode, а в качестве языка
программирования выбирается Objective-Cили Swift. Для Android мы можем
использовать самый разный набор средств - AndroidStudio, Eclipse и т.д. Для
подавляющего числа приложений применяется Java. Чтобы создавать
приложения под WindowsPhone используется VisualStudio, а в качестве
языков – C#, VB.NET, C++ .
31
Преимущества нативной разработки:
1. Скорость
оптимален
для
работы
родной
приложения
платформы.
скомпилированный
-
Приложение
получает
проект
полную
аппаратнуюподдержку устройства и использует многопоточность для
сложных задач.
2. Гибкость в реализации – нативная разработка использует все
возможности операционной системы.
3. Простота тестирования.
На сегодня девайсы, использующие Android, занимают в среднем 7075% мобильного рынка. Подавляющее большинство всех людей на планете
предпочитают эту систему.
Географически
Android
преобладает
в
России,
странах СНГ,
Восточной и некоторых странах Западной Европы, а также в Китае, и других
странах востока и Африки.
Всего примерно 20% доли мобильного рынка остается за iOS.
Большинство
из
этих
20%
живут
в
США,
Канаде,
Австралии,
Великобритании, Франции и скандинавских странах.
Обладатели Androidобычно имеют средний доход, так как ценовая
политика на девайсы с этой ОС средняя. Точная такая же зависимость
распространяется на множество развивающихся стран из-за невысокого
дохода.
Сторонникам
Apple
приписывается
высокая
покупательская
способность. Но что более важно при разработке нового мобильного
приложения, это тот факт, что приверженцы Apple в большинстве своем
возводят мир digital в религию. Они интересуются новинками, имеют
взыскательный вкус и, говоря образно, избалованны. А это значит, что,
создавая приложения для iOS, нужно очень тщательно продумать концепцию
приложения, проработать крутой дизайн, предложить что-то уникальное и
инновационное.
32
Таким образом, разработка приложения будет осуществляться для
устройств под управлением Android по ряду причин:
1. Количество пользователей Android-устройств в России больше, чем
пользователей iOS-устройств.
2. Разрабатываемое приложение будет бесплатным.
3. Приложение ориентировано на любые возрастные категории, но
наибольший интерес может вызвать у людей от 20 до 35 лет.
AndroidStudio - новая и полностью интегрированная среда разработки
приложений, не так давно выпущенная компанией Google для операционной
системы Android. Данный продукт призван снабдить разработчиков новыми
инструментами
для
создания
приложений,
а
также
предоставить
альтернативу Eclipse, являющейся в настоящее время наиболее популярной
средой разработки.
При создании нового проекта в AndroidStudio, будет показана
структура проекта со всеми файлами, содержащимися в каталоге SDK. Этот
переход к системе системе управления Gradle придает процессу разработки
еще большую гибкость.
AndroidStudio позволяет вам увидеть любые визуальные изменения,
которые вы производите в реальном времени в приложении. Вы также
можете увидеть, как ваше приложение будет одновременно смотреться на
различных устройствах под управлением Android, с различными настройками
и разрешением экрана.
Продукт также обладает новыми инструментами для упаковки и
маркировки кода. Это позволит вам не потеряться в проекте, когда вы имеете
дело с большим количеством кода. В программе также задействована
функция перетаскивания, благодаря которой можно перемещать компоненты
посредством пользовательского интерфейса.
Вдобавок ко всему, новая среда разработки обладает функцией
GoogleCloudMessaging, которая позволяет вам посылать данные с сервера на
33
Android-устройства через облако. Это отличный способ посылать pushуведомления вашим приложениям.
Вы также сможете с помощью программы локализовать приложения.
Это позволит вам программировать, и при этом сохранять контроль над
приложением.
Достоинства AndroidStudio:
1. Удобный дизайн.
2. Удобный конструктор интерфейсов, позволяющий просматривать
отображение экрана на любом устройстве, вплоть до телевизоров и часов.
Элементы интерфейса отображаются прямо так, как они будут выглядеть на
определенной версии операционной системы.
3. Встроенный
комплекс
средств
разработки
SDK
(softwaredevelopmentkit), выдает уведомление с установкой необходимого
API для запуска старого проекта.
4. Удобная структура проекта.
5. Наличие логов для отслеживания ошибок, процессов и потоков.
Наличие достаточно большого количества литературы на русском
языке.
Для серверной части приложения мною была выбрана MySQL. Это
самая распространенная полноценная серверная СУБД. MySQL очень
функциональная, свободно распространяемая СУБД, которая отлично
работает
с
различными
сайтами
и
веб
приложениями.
Обучиться
использованию этой СУБД довольно просто, так как на просторах интернета
вы легко найдете большее количество информации.
Для комфортно работы с базой данных мною был выбран фреймворк
Yii2.Yii -объектно-ориентированный компонентный фреймворк, написанный
на PHP и реализующий парадигму MVC. Model-View-Controller (MVC) схема разделения данных приложения, пользовательского интерфейса и
управляющей логики на три отдельных компонента: модель, представление и
34
контроллер - таким образом, что модификация каждого компонента может
осуществляться независимо.
К преимуществам Yii2 стоит отнести:
1. Простая установка
2. Использование современных технологий. Yii является полностью
объектно-ориентированным фреймворком и использует все преимущества
продвинутых PHP функций.
Гибкость и расширяемость. Yii framework можно легко настроить под
свои
нужды.
расширяемым.
Практически
каждый
компонент
фреймворка
является
35
2 РАЗРАБОТКА МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ
СОСТАВЛЕНИЯ ИНДИВИДУАЛЬНЫХ ТРЕНИРОВОК
2.1 Разработка архитектуры
Под
архитектурной
подразумевается
модель,
схемой
структура
с
информационной
выполняемыми
системы
функциями
и
взаимосвязью компонентов этой системы. Архитектура информационной
системы охватывает не только структурные аспекты, но и правила ее
использования и интеграции с другими системами, функциональность,
производительность,
гибкость,
надежность,
возможность
повторного
применения, полноту, экономические и технологические ограничения, а
также вопрос пользовательского интерфейса. Выделяют множество видов
архитектур:
1. Централизованная архитектура.
2. Архитектура "файл-сервер".
3. Двухзвенная архитектура "клиент-сервер".
4. Многозвенная архитектура "клиент-сервер".
5. Архитектура распределенных систем.
6. Архитектура Веб-приложений.
7. Сервис-ориентированная архитектура.
В
разрабатываемой
архитектура,
где
системе
клиентами
будут
была
выбрана
выступать
клиент-серверная
пользователи
android
приложения, а в качестве сервера будет выступать сервер базы данных.
Данная архитектура представлена на рисунке 16.
Клиентская часть состоит из androidприложения, библиотеки retrofit и
локальной базы данных. Приложение для составления индивидуальных
тренировок хранится в памяти самого мобильного телефона, как и локальная
база данных. Для того чтобы приложение имело удаленный доступ
используется библиотека Retrifit. Retrofit – это популярная библиотека,
36
которая используется, если приложению необходимо работать с сервером.
Рисунок 16 – Архитектура разрабатываемого приложения
Серверная часть состоит из фреймворка Yii2 и базы данных. Yii – это
объектно-ориентированный компонентный фреймворк, написанный на PHP.
2.2 Проектирование базы данных
База данных– совокупность взаимосвязанных, хранящихся вместе
данных, при наличии такой минимальной избыточности, которая допускает
их использование оптимальным образом для одного или нескольких
приложений. Данные запоминаются так, чтобы они были независимы от
программ,
использующих эти
данные.
Для
добавления
новых или
модификации существующих данных, а также поиска данных в БД
применяется СУБД. Данные структурируются таким образом, чтобы была
обеспечена
возможность
дальнейшего
наращивания
приложений.
На
рисунке17представленасхемабазы данных, логический уровень, приложения
по подбору индивидуальных тренировок.
37
Рисунок 17 – Схема базы данных. Логический уровень
38
Таблица «Пользователь» хранит в себе информацию о пользователе,
которую он ввел после регистрации. Поля данной таблицы:
1. Почта – электронная почта пользователя.
2. Номер телефона – номер телефона пользователя.
3. Имя – имя пользователя.
4. Пароль – пароль пользователя.
5. Дата рождения – дата рождения пользователя.
Таблица «Травма пользователя» хранит в себе информацию о травмах
пользователе.
Таблица «Травма» хранит название травмы.
Таблица «Упражнение для травмы» хранит в себе информацию
допустимости упражнений при определенных травмах пользователя.
Таблица
«Упражнение»
хранит
в
себе
информацию
об
упражнении.Поля данной таблицы:
1. Название – название упражнения.
2. Ссылка на видео – ссылка на видео упражнения.
3. Время выполнение – время выполнения упражнения.
Таблица «Параметры для упражнений» хранит в себе информацию о
параметрах упражнения.
Таблица «Параметры пользователей» хранит название параметра.
Таблица «Персональные данные» значение параметров пользователя.
Таблица «Количество действий» хранит в себе порядок выполнения
упражнений в тренировке.
Таблица «Тренировка» хранит в себе название тренировки.
Таблица «Тренировка в программе» хранит в себе информацию о том,
выполнена тренировка или нет, а также информацию о дате и времени
выполнения.
Таблица «Программа тренировок» хранит в себе название.
На рисунке18 представленасхема базы данных, физический уровень.
39
Рисунок 18 – Схема базы данных. Физический уровень
40
2.3 Алгоритмы функционирования мобильного приложения
Алгоритм- набор инструкций, описывающих порядок действий
исполнителя
для
достижения
некоторого
результата.Для
корректной
функциональности реализуемогоandroidприложения необходимо разработать
алгоритмы.
Опишем первый алгоритм, который приведен на рисунке 19. Данный
алгоритм состоит из следующих действий:
1. Выбрать пол.
2. Ввести Рост.
3. Ввести Вес.
4. Выбрать травму.
5. Подбор тренировки.
6. Вывод тренировок на экран.
Действие «Выбрать пол» позволяет пользователям выбрать свой пол.
Действие «Ввести рост» позволяет пользователю ввести рост.
«Ввести вес» позволяет пользователю ввести вес.
Действие
«Выбор
травмы»
позволяет
выбратьпользователюбеспокоящую на данный момент травму.
«Подбор тренировки» в зависимости от персональных данных
пользователя происходит подбор тренировок.
Действие «Вывод» выводит на экран тренировки подходящие
пользователю.
41
Рисунок 19 – Алгоритм подбора тренировок по персональным данным
42
Опишем второй алгоритм, который приведен на рисунке 20. В данном
алгоритме если пользователь вводит e-mail и пароль, которые есть в базе
данных то он проходит авторизацию в системе, иначе будет выдавать
ошибку.
Рисунок 20 – Алгоритм авторизации в приложении
43
Опишем третий алгоритм, который приведен на рисунке 21. Данный
алгоритм основан на том, что пользователь, проходя регистрацию в
приложении, вводит данные: почту, имя телефонный номер, дату рождения,
пароль.
Ему
нельзя
использовать
недопустимые
символы,
и
уже
зарегистрированную почту. Если почта, которую ввел пользователь, уже
зарегистрирована, то выведет ошибку, иначе регистрирует пользователя,
занося данные в базу данных.
Рисунок 21 – Алгоритм регистрации пользователя в приложении
44
Опишем третий алгоритм, который приведен на рисунке 22. Для того,
чтобы начать тренировки пользователь входит во вкладку тренировка и
запускает упражнения, упражнения будут идти друг за другом пока
пользователь не остановит приложение или тренировка не закончится.
Рисунок 22 – Алгоритм выполнения тренировки
45
2.4 Логика диалога с пользователем
Для удобства использования приложения необходимо разработать
логику диалога с пользователем.
На рисунке 23 изображена логика диалога с исполнителем. Здесь
наблюдаются восемь состояний:
1. S0 – стартовое окно приложения.
2. S1 – окно авторизации.
3. S2 – окно регистрации.
4. S3 – основной экран приложения.
5. S4 – окно конкретной тренировки.
6. S5 – окно Данные о себе.
7. S6 – окно Избранное.
8. F – завершение работы программы.
В самом
начале
пользователь находится
на
стартовом
окне
приложения S0, в котором пользователь может перейти дальше, нажав
кнопку «Начать» или же выйти, нажав на крестик. После нажатия кнопки
«Начать» пользователь переходит в состояние S1, в котором пользователю
предлагается авторизация. Из этого состояния он может перейти на форму
регистрации S2, нажав на ссылку регистрации, либо же перейти в основное
меню после ввода корректного e-mail и пароля нажав на кнопку «Войти». В
состоянии S2 пользователю необходимо заполнить корректно все данные и
нажать на кнопку «Зарегистрироваться», после чего произойдет переход
обратно на S1.Попав в состояние S3, мы можем перейти в конкретную
тренировку, состояние S4, во вкладку избранное,S6, и вкладку данные о
себе,S5.Все окна имеют красный крестик в углу с помощью которого можно
выйти из приложения, состояние F.
46
Рисунок 23 – Логика диалога с пользователем
47
3 РЕАЛИЗАЦИЯ МОБИЛЬНОГО ПРИЛОЖЕНИЯ
3.1 Прототип интерфейса и диалог пользователя с ним
Для удобства использования приложения необходимо разработать
логику диалога с пользователем. Для этого был разработан прототип
интерфейса будущего приложения.
Старт приложения начинается с заставки, как показано на рисунке 24.
Рисунок 24 – Часть начального экрана приложения
Пользователь может начать работу с приложением, либо же выйти из
него. Далее после нажатия кнопки «Начать» пользователю предложат пройти
авторизацию, как показано на рисунке 25. Также пользователь имеет
возможность перейти на форму регистрации с помощью не явной кнопки
«Регистрация» и восстановить пароль с помощью не явной кнопки «Забыли
пароль?»
48
Рисунок 25 – Форма авторизации и регистрации пользователя в системе
Для успешной регистрации пользователю необходимо заполнить все
обязательные поля, представленные на картинке. Почта, необходима для
создания и подтверждения аккаунта. Имя, как и телефонный номер
необходимы для коммуникации между людьми, также телефонный номер
необходим для восстановления пароля, если нет возможности зайти на почту.
Следующее поле дата рождения необходимая для того чтобы узнать возраст
пользователя.
После корректной авторизацииили регистрациипользователь попадает
на основной экран приложения, изображенный на рисунках 26.
49
Рисунок 26 – Основной экран приложения
На данном экране в статус баре показано, в каком элементе
программы мы находимся. Пользователь может воспользоваться этим меню
для того чтобы перейти в такие вкладки «Тренировка», «Питание»,
«Избранное», «Данные о себе». Переходя во вкладку «Данные о себе»,
рисунок 27, пользователь заполняет важные данные, от которых будет
зависеть последующие программы тренировок.
50
Рисунок 27 – Вкладка «Данные о себе»
Сначала, пользователю предлагают подробнее ознакомиться с тем, как
данные будут влиять на составление программы. Далее мы выбираем пол
пользователя, заполняем поле рост, вес и выбираем имеющиеся травмы из
списка. Эти данные будут автоматически заменяться на новые после
заполнения в профиле пользователя. Под полями присутствует вариант
выбора значений по умолчанию, если пользователь не желает вписывать свои
данные.
На рисунке 28 показана вкладка конкретно выбранной тренировки и
добавление её во вкладку «Избранное».
51
Рисунок 28 – Конкретно выбранная тренировка
На
этом
экране
пользователь
будет
выполнять
«Базовые
упражнения#1», ему необходимо нажать на кнопку в первом поле для того
чтобы запустить первое упражнение. После нажатия кнопки запустится
таймер (длительность одного упражнения). В любой
момент тренировку
можно прервать и выйти из неё.
3.2 Создание интерфейса в AndroidStudio
Для того, чтобы создать интерфейс в AndroidStudio необходимо
пройти несколько этапов. Первый этап - необходимо подготовить нашу среду
к работе, в моём случае я уже наткнулся на сложности, так как с моим
процессором AMD невозможно воспользоваться эмулятором рисунок 29.
52
Рисунок 29 – Ошибка использования встроенного эмулятора
Эмулятор необходим всем разработчикам приложений на мобильные
устройства, так как он должен иметь понятие, как написанный код
реализовался в android устройстве. Я выбрал альтернативный вариант и
использовал Genymotion. Genymotion – хороший, достаточно быстрый
эмулятор для Android, который включает в себя настроенные образы Android,
он идеально подходит для тестирование приложений. Цель этого продукта
заменить эмулятор на Android. Genymotion доступен для Linux, Windows и
Mac OS X и требует VirtualBox. Код виртуальный машин открыт, но софт,
который работает на хосте, бесплатен для использования, но его исходный
код закрыт.
Возможности Genymotion:
1. Быстрая загрузка и запуск предварительно настроенных образов
Android. Список устройств постоянно расширяется.
2. GPS (с настраиваемыми координатами) и батарея (с настраиваемым
уровнем батареи).
3. Отображение:
аппаратное
ускорение
с
OpenGL,
режим
полноэкранного просмотра.
4. Консоль, которая позволяет вам взаимодействовать с вашей
виртуальной машиной, используя командную строку.
53
5. Поддержка ADB.
6. Эмуляция передней и задней камеры.
7. Функции скринкаста и удаленного управления (в коммерческой
версии).
8. Плагинык Eclipse и Android Studio.
9. Поддерживает Linux, Windows и Mac.
10. В будущих релизах ожидается появление новых сенсоров:
гироскоп, яркость экрана, температура, вектор поворота и многое другое.
11. Работает на порядок быстрее эмуляторов от Google (не только на
процессорах Intel).
12. Общий буфер обмена виртуального устройства и ПК.
13. Возможность
редактирования
IMEI/MEID
виртуального
устройства (в коммерческой версии).
14. PixelPerfect - режим отображения, при котором 1 пиксель экрана
устройства будут отображаться с использованием только одного пикселя на
вашем мониторе (в коммерческой версии).
15. FactoryReset
-
полный
сброс
виртуального
устройства
(в
коммерческой версии).
16. Дублирование
образа
в списке
виртуальных устройств (в
коммерческой версии).
17. Редактирование количества процессоров (CPU) и количества
оперативной памяти (RAM) в настройках виртуального устройства.
18. Контроль датчиков в коде приложения через GenymotionJava API
(в коммерческой версии).
19. Автоматическое обновление образов для новой версии программы
(в коммерческой версии).
20. Генерирование
поддержку.
архива
log файлов
при обращении в тех
54
21. Сохранение настроек GPS виджета до следующего запуска (в
коммерческой версии).
22. Исправления ошибок падения эмулятора, добавлена информация в
логах.
23. Эмуляция работы интернета через GPRS, Edge, 3G, 4G и пр.
24. Из недостатков стоит отменить:
25. Есть в коммерческой версии.
26. Не
на
всех
процессорах поддерживаются
приложения
на
AdobeAirMobile, Unity3D, без поддержки архитектуры х86
В Genymotionмы можем добавлять устройства, с которыми в будущем
будем работать рисунок 30.
Рисунок 30 – Добавление в список устройств
При нажатии на кнопку Add у нас выпадает окно, в котором
перечислено множество девайсов, которые мы можем выбрать, мы можем
выбрать версию android или посмотреть список популярных серий
мобильных телефонов, планшетов, рисунок 31. Это очень удобно, если мы
делаем приложение для определенных моделей устройств.
55
Рисунок 31 – Добавление в список устройств
После настройки самого эмулятора мы можем приступить к
непосредственно самому процессу создания интерфейса в Androidstudio. Для
началанам необходимо создать проект, указав все необходимые данные: имя
проекта, расположение, минимальную версию поддерживаемых приложений,
выбрать Activityиз списка, указать имя Activity и Layoutимя, рисунки32-35.
56
Рисунок 32 – Создание проекта
Рисунок 33 – Создание проекта
57
Рисунок 34 – Создание проекта
Рисунок 35 – Создание проекта
58
После успешного создания проекта, можем увидеть наш первый
незаполненный
экран,
в
AndroidStudio
очень
удобный
интерфейс,
представляющий из себя конструктор, рисунок 36. В нём на выбор есть куча
полезных вспомогательных конструкций и описание атрибутов, которые
используются в текущем выбранном Layout.
Рисунок 36 – Интерфейс конструктора в AndroidStudio
Для начала нам необходимо определиться будет это многооконное
приложение или в нем будет одно окно, в моем случае окон будет несколько,
поэтому в приложение будет иметь несколько Layouts, связанных между
собой. Для этого я создал несколько Activityи связал их через нажатие на
кнопки. На рисунке 37 показано множество созданных Activity и Layouts в
AndroidStudio.
59
Рисунок 37 – Множество Activitysи Layouts
Для примера на рисунках 38-40 показаны созданные формы в
приложение, которые ранее были в разработке в виде прототипа.
60
Рисунок 38 – Созданные формы
Рисунок 39 – Созданные формы
Рисунок 40 – Созданные формы
61
ЗАКЛЮЧЕНИЕ
Результатом
приложения
проделанной работы стала
для
составления
разработка
индивидуальных тренировок
мобильного
с
учетом
персональных данных человека. Сначала был произведен анализ предметной
области и постановка задачи разработки android-приложения для составления
индивидуальных тренировок, где мы описали предметную область. После
этого, с помощью UML нотаций, была построена диаграмма прецедентов
длямоделирование нашей системы.
Описали протекающие процессы в
системес помощью IDEF0. Сформировали необходимые и эксплуатационные
требования
для
нашего
мобильного
приложения
для
составления
индивидуальных тренировок. Сделали необходимый обзор аналогов, путем
изучения рынка приложений и составили таблицу сравнение характеристик
всех перечисленных аналогов с нашим мобильным приложением. Выбрали
нативный подход разработки и Androidstudioв качестве среды разработки.
После этого мы выбрали структуру клиент-сервер, где клиентами будут
выступать пользователи android приложения, а в качестве сервера будет
выступать сервер базы данных. Построили два типа базы данных: логический
и физический. Разработали алгоритмы дляописание последовательности
действий. Далее разработали транзитивную сеть, которая отображает логику
диалога с пользователем.
В заключительной части был построен диалог с пользователем в
приложении и поэтапное создание интерфейса в AndroidStudio среде.
В результате выполнения выпускной квалификационной работы были
решены следующие задачи:
1. Описана
предметная
область
мобильного
приложения
для
составления индивидуальных тренировок.
2. Произведен
обзор
аналогов
разрабатываемогомобильного
приложения для составления индивидуальных тренировок.
62
3. Смоделированы процессы предметной области.
4. Разработаны алгоритмы работы с данными и пользовательский
интерфейс программной системы.
5. Разработано
и
протестировано
составления индивидуальных тренировок.
мобильное
приложение
для
63
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1. Филлипс Б. «Программирование под Android» /Б.Филлипс,
Б.
Харди -изд. Питер, 2014 г.
2.Голощапов А.Л.«GoogleAndroid программирование для мобильных
устройств» /А.Л.Голощапов – изд.BHV-Петербург, 2011 г.
3. Требования
к
выполнению
и
оформлению
Выпускных
Квалификационных работ (ВКР) / В.Н. Волков, Н.А. Загородних, А.Ю.
Ужаринский, В.Ю. Преснецова– Орел: ОГУ, 2017 г.
4. Дэрси Л.«Android за 24 часа. Программирование приложений под
операционную систему Google» / Л. Дэрси, Ш.Кондер – изд.Рид Групп, 2011
г.
А.«Google
5.Голощапов
Android
cоздание
приложений
для
смартфонов и планшетных ПК» /А. Голощапов – изд.BHV-Петербург, 2013 г.
6. Филлипс
Б.
«Программирование
под
Android2-e
Б. Харди -изд. Питер, 2016 г.
/Б.Филлипс,
7. Дейтэл П. «Андроид для разработчиков» /П.Дейтэл,
Э.Уолд-изд.
издание»
Х.Дейтэл,
Питер, 2016 г.
8.Цехнер М. «Программирование игр под Android» /М.Цехнер-изд.
Питер, 2013 г.
9.Филлипс
/Б.Филлипс,
Б.
«Программирование
под
Android
3-e
издание»
Б. Харди -изд. Питер, 2017 г.
10.Аккуратов Е. Е. «Знакомьтесь: Java.Самоучител» /Е.Е.Аккуратовизд. Вильямс, 2006 г.
64
ПРИЛОЖЕНИЕ А
(ОБЯЗАТЕЛЬНОЕ)
ЛИСТИНГ ПРОГРАММЫ
Main.xml
<?xmlversion="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="81dp"
android:text="Начатьтренировки"
android:textSize="38sp" />
<Button
android:id="@+id/button1"
android:layout_width="174dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="108dp"
65
android:text="Начать" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="201dp"
android:layout_centerInParent="true"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srcCompat="@drawable/pic1" />
</LinearLayout>
<TextView
android:id="@+id/header"
android:layout_width="63dp"
android:layout_height="wrap_content"
android:textSize="22sp" />
</RelativeLayout>
MainActivity
packagecom.example.oleg.ex;
importandroid.content.Intent;
importandroid.os.Bundle;
import android.support.v7.app.AppCompatActivity;
66
importandroid.view.Menu;
importandroid.view.MenuItem;
importandroid.view.View;
importandroid.widget.Button;
public
class
MainActivity
extends
AppCompatActivity
View.OnClickListener {
Button button1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
Intent intent = new Intent(this, Main2Activity.class);
startActivity(intent);
break;
default:
break;
}
}
}
Main2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
implements
67
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/editText"
android:layout_alignParentBottom="true"
android:layout_marginBottom="178dp"
android:text="Вход" />
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="158dp"
android:ems="10"
android:hint="Введите email"
android:inputType="textEmailAddress" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
68
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="218dp"
android:ems="10"
android:hint="Введитепароль"
android:inputType="textPassword" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="74dp"
android:text="Авторизация"
android:textSize="30sp" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/button"
android:layout_toStartOf="@+id/button"
android:text="Регистрация" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
69
android:layout_below="@+id/button"
android:layout_centerHorizontal="true"
android:layout_marginTop="-178dp"
android:text="Забылипароль?"
android:clickable="true"
android:textSize="18sp" />
</RelativeLayout>
Db_config.php
<?php
define('DB_MAIL', "root");
define('DB_PASSWORD', "root");
define('DB_DATABASE', "devcolibri");
define('DB_SERVER', "localhost");
?>
Db_connect.php
<?php
class DB_CONNECT {
function __construct() {
$this->connect();
}
function __destruct() {
$this->close();
}
function connect() {
require 'db_config.php';
$con = mysql_connect(DB_SERVER, DB_MAIL, DB_PASSWORD)
or die(mysql_error());
70
$db = mysql_select_db(DB_DATABASE) or die(mysql_error()) or
die(mysql_error());
return $con;
}
function close() {
mysql_close();
}
}
?>
Reg.php
<?php
require 'db_config.php';
$uname= $_POST['name'];
$utel = $_POST['telephone'];
$uemail = $_POST['email'];
$edate = $_POST["Date"];
$epass = $_POST["pass"];
$connect = new PDO('mysql:dbname=' . DATABASE . ';charset=utf8;host='
. HOST, USER, PASSWORD);
$connect->query("INSERT INTO `USER` ( `Namee`, `Tel`, `Email`, `Date`,
`pass`) VALUES ('$uname', '$utel', '$uemail', '$edate', '$epass')");
?>
Aut.php
<?php
require 'Db_config.php';
$connect = new PDO('mysql:dbname=' . DATABASE . ';charset=utf8;host='
. HOST, USER, PASSWORD);
$data = $connect->query("SELECT pass, email FROM ‘USER’ WHERE
email = '${_POST['login']}'")->fetch(PDO::FETCH_ASSOC);
71
if(empty($data) || !pass_verify($_POST['pass'], $data['pass'])) {
$AUT=false;} else {
$AUT=true;
}
?>
72
73
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА
ДОКУМЕНТА НА ИНФОРМАЦИОННОМ НОСИТЕЛЕ
Наименование
атрибута
группы
атрибутов
1. Описание
Обозначение
документа
документа
(идентификатор(ы)
файла(ов))
Наименование
документа
Характеристики
документа на электронном
носителе
Презентация.ppt
Презентация
к
выпускной
квалификационной работе
Класс документа
ЕСКД
Вид документа
Оригинал документа на
электронном носителе
Аннотация
Демонстрационный
материал,
отображающий
основные этапы выполнения
выпускной
квалификационной работы
Использование
Операционная система
документа
Windows
10,
MicrosoftPowerPoint 2013
2. Даты и
Дата
и
время
13.06.2018
время
копирования документа
Дата
создания
06.06.2018
документа
Дата утверждения
12.06.2018
документа
3. Создатели
Автор
ДоосвО.Е.
Изготовитель
ДосовО.Е.
4. Внешние
Ссылки на другие
Удостоверяющий лист
ссылки
документы
№ 140178/п
5. Защита
Санкционирование
ОГУ
имени
И.С.
Тургенева
Классификация
По
законодательству
защиты
РФ
6.
Объем информации
1300 кБ
Характеристики
документа
содержания
74
7. Структура
Наименование
документа(ов)
слайда №1
Наименование
слайда №2
Наименование
слайда №3
Наименование
(слайда) №4
Наименование
плаката (слайда) №5
Наименование
плаката (слайда) №6
Наименование
плаката (слайда) №7
Наименование
плаката (слайда) №8
Наименование
плаката (слайда) №9
Титульный лист
Цели и задачи работы
Диаграмма вариантов
использования
Обзор аналогов
Сравнение с аналогами
Логический
уровень
концептуальной схемы базы
двнных
Схемы алгоритмов
Транзитивные сети
Экранные формы
75
1/--страниц
Пожаловаться на содержимое документа