Главная страница
Навигация по странице:

  • КУРСОВАЯ РАБОТА По ПМ/МДК/дисциплине ____________________________________________на тему: _____________________________________________________________

  • создание мобильного приложения. Курсач_приложение. Заочноеочное отделение среднего профессионального образования курсовая работа


    Скачать 451.25 Kb.
    НазваниеЗаочноеочное отделение среднего профессионального образования курсовая работа
    Анкорсоздание мобильного приложения
    Дата17.01.2022
    Размер451.25 Kb.
    Формат файлаdocx
    Имя файлаКурсач_приложение.docx
    ТипКурсовая
    #333064



    Заочное/очное отделение среднего профессионального образования
    КУРСОВАЯ РАБОТА
    По ПМ/МДК/дисциплине ____________________________________________
    на тему: _____________________________________________________________

    __________________________________________________________________
    Специальность 09.02.03 Программирование в компьютерных системах


    Выполнил студент группы ___________

    ФИО

    «___» __________________________

    Руководитель:

    Преподаватель АН ПОО «МВЕК»

    ФИО

    «_____»________________ 20_____г.


    Ижевск – 2021

    СОДЕРЖАНИЕ
    Введение………………...…………………………………………………………3

    1. Теоретическая часть...………………………………………………………….8

    2. Практическая часть..………………………………………………………….26

    Заключение……………………………………………………………………….29

    Список использованной литературы…………………………………………...32

    Приложения………………………………………………………………………33

    Введение
    15 лет назад компании, которые предлагали владельцам бизнеса создать сайты, едва получали заказы, потому что все разводили руками и говорили “зачем нам сайт, кому он нужен, ведь мы и так продаем?!” Сегодня бизнес без собственного сайта немыслим. И те компании, которые заранее позаботились об этом инструменте, забрали себе львиную долю клиентов, а другие лишь разочарованно вздыхают, что они не смогли попасть в число первых.

    После интернет-революции наступила эра мобильных технологий. Именно сейчас пришло время использовать новые эффективные инструменты, которые буквально ворвались в наш мир вместе с мобильными устройствами. Речь о мобильных приложениях.

    Если у вас есть смартфон или планшет, то вы понимаете, как работают различные функциональные приложения, игры, развлечения. А что может сделать мобильное приложение для бизнеса?

    Повышение продаж

    Получение прибыли - основная цель любого бизнеса. Все маркетинговые инструменты должны помогать в достижении этой цели. Встроенные функции приложения, такие как, например, карта лояльности и отправка push-уведомлений позволяют мотивировать пользователей покупать товары или услуги именно в вашей компании, а также мгновенно информировать о различных акциях и скидках.

    Лояльность

    Программы лояльности стимулируют повторные продажи. Например, начисление бонусов мотивирует клиента совершить несколько покупок до того как он сможет получить скидку. То есть покупатель будет возвращаться снова и снова, накапливая баллы, а бизнес снова и снова будет получать прибыль и лояльных клиентов.

    Люди уже устали от множества бонусных карт. Программа лояльности в мобильном приложении заменяет бонусную карту и даёт покупателю возможность освободить место в кошельке - отличный способ завоевать расположение клиента.

    Привлечение клиентов

    Чтобы заполучить новых клиентов, предложите своим посетителям интересный бонус за установку приложения. Бонусы и скидки любят все. И мобильные устройства есть практически у всех. Приложение помогает запускать новые интересные маркетинговые акции и таким образом выгодно отличаться от конкурентов.

    Например, компания предлагает получить пожизненно скидку 10% на определенные виды товаров/услуг или получить электронный купон на чашку кофе в подарок после установки приложения. Как правило, посетители к чашке кофе закажут еще пирожное или полноценный обед. Предприятие остается в плюсе, бизнес получает лояльного клиента.

    Целевая аудитория

    Сегодня все, кто так или иначе связан с продвижением бизнеса, говорят о целевой аудитории. Фокус в том, что мобильное приложение аккумулирует вокруг себя только целевую аудиторию.

    Давайте представим, клиент видит рекламу мобильного приложения турагентства, ему предлагают установить приложение, чтобы быть в курсе горящих путевок и спец.предложений. Кто установит это приложение? Правильно, те клиенты, которые уже путешествуют или планируют отправиться на отдых, то есть целевая аудитория. Ведь если клиент не путешествует и ему неинтересна эта тема, то как бы Вы ни старались его замотивировать, он не станет скачивать и устанавливать себе приложение туристического агентства.

    А если клиент устанавливает себе приложение турагентства, значит ему интересна тема поездок и путешествий. Следовательно, ему можно отправлять push-уведомления и предлагать варианты отдыха.

    Формирование доверия клиентов посредством push-уведомлений

    Push-уведомления — сообщения, которые приходят на экран смартфона от приложения. По статистике, push-уведомления увеличивают посещаемость приложения в два раза.

    Допустим, клиент утром собирается на работу, берет в руки телефон и просматривает сообщения. Он видит push-уведомление от магазина одежды о сезонной распродаже, нажимает на сообщение и переходит во вкладку приложения с изображением красивого платья или обуви, которые продаются с огромной скидкой. Внимание клиента привлечено, он изучил информацию и перешел на сайт компании или во вкладку приложения, где сработал визуальный контент. Конверсия продаж в разы повышается.

    Привыкая получать какой-то полезный контент, клиенты начинают ждать его, а значит доверие к компании повышается.

    Отстройка от конкурентов

    Для продвижения бизнеса большинство компаний использует листовки, рекламу на радио, СМС-маркетинг, сайты и социальные сети. В AppStore и GoolgePlay едва наберется с десяток приложений, которые предназначены покупателям в рамках определенного города или региона. А это значит, что использование мобильного приложения даёт устойчивое конкурентное преимущество.

    Только представьте: человек в городе Воронеже заходит в интернет со своего мобильного устройства, чтобы заказать пиццу на ужин, и Google ему находит мобильное приложение службы доставки готовых блюд. Человек устанавливает приложение на свой смартфон и делает заказ.

    Если, к примеру, посмотреть сайты компаний доставки готовых блюд через браузер компьютера, то нужно еще поработать над тем, чтобы попасть в первые строчки поисковой выдачи. А приложение позволяет опередить соперников.

    Google предлагает такую возможность уже сегодня. Компания Яндекс также заявила о возможности настройки рекламных кампаний в Яндекс.Директ для мобильных приложений.

    Связка «сайт + приложение»

    Приложение позволяет установить постоянный канал связи с потенциальными клиентами. Сайт фирмы способен привлекать трафик через поисковые системы, а, перенаправляя пользователей с сайта в мобильное приложение, компания продолжит работать с потенциальным клиентом дальше. Когда клиент закрывает вкладку с сайтом компании, он перестаёт взаимодействовать с бизнесом, но когда сайт переводит клиента в приложение, то работа с клиентом только начинается.

    Как это сделать?

    • Поставить всплывающее окно на сайт с предложением получить бонус за установку приложения.

    • В конце каждого поста поставить напоминание об установке приложения.

    • Поставить страницу переадресации на установку мобильного приложения в GooglePlay, если клиент уходит с сайта.

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

    Теоретическая часть
    По данным исследовательской фирмы Gartner на 2016 год, Android захватил большую часть мирового рынка, заняв первое место с 80.7% (рис. 1). Это определило мой выбор платформы для мобильного приложения.

    Рис. 1. Данные фирмы Gartner (2016 г).
    Операционная система Android - это открытая платформа, а значит, что она не привязана к одному провайдеру. Это помогает Android завоевать рынок, так как любой производитель и провайдер может создавать и продавать устройства, поддерживающие эту операционную систему. Исходный код Android доступен каждому для изучения или модифицирования. Это позволяет дать широкий простор для создания удобных интерфейсов и приложений для Android-устройств [1].

    ОС Android может использоваться на устройствах с разными размерами экрана и другими техническими характеристиками, поэтому она поставляется с набором инструментов, которые помогают приложению адаптироваться под конкретное устройство. Политика Google более жесткая. Например, если приложение требует наличие фронтальной камеры, то это приложение в Android Market увидят телефоны только с фронтальной камерой.
    Мэшап соединяет две и более службы в одном приложении. Например, можно создать мэшап, использующий камеру и геолокацию для размещения изображений на карте. Такой прием часто можно встретить в социальных сетях.

    С помощью встроенных в Android библиотек API, можно легко использовать предоставляемые возможности для создания собственного приложения с необходимыми функциями.
    приложение пишется на языке Java, однако при разработке необходимы также документы XML. Язык Java используется здесь не в полнофункциональном варианте, а только в небольшом подмножестве, которое иногда называют виртуальной машиной Davlik. В этом подмножестве не используются те классы Java, которые не могут быть применены или не имеют смысла при разработке приложений на мобильные устройства.
    Деятельности приложение включает в себя одну или несколько деятельностей (activities). Деятельность можно представить в виде контейнера, содержащего пользовательский интерфейс и код, который его запускает.
    Намерения (intents) составляют систему сообщений на Android. Намерение состоит из действия (action), которое необходимо выполнить (посмотреть, редактировать и др.) и данных. Действие - это то, что должно быть совершено при получении намерения и данных, с которыми необходимо оперировать.

    Намерения используются при запуске деятельности и при коммуникации между различными частями Android системы. Приложение может получать или отправлять намерения.

    При передаче намерения фактически отправляется сообщение системе сделать что-либо, например, запустить новую деятельность в текущем приложении или открыть другое приложение.

    Если просто отправить намерение, это не означает, что что-то произойдет автоматически. Для этого необходимо зарегистрировать приемник намерений (intent receiver), который получает намерение и указывает Android системе, что нужно сделать: выполнить задачу в новой деятельности или запустить другое приложение. Если же имеется несколько приемников для получения intent, можно создать инструмент, позволяющий пользователю самому выбрать необходимое действие. Одним намерением могут быть найдены несколько приемников, поэтому пользователь лично определяет action, которое нужно выполнить. Например, при долгом нажатии на изображение в галерее, появляется инструмент выбора, который предлагает отправить картинку через e-mail или социальные сети, редактировать или удалить и др.

    Если система не может найти подходящее намерение, а инструмент выбора не был создан разработчиком, то приложение потерпит крах и выдаст ошибку исполнения. Поэтому важно следить за тем, чтобы выборы для намерений, не нацеленных на другие деятельности в данном приложении, были созданы.

    Видовое окно (view) представляет собой базовый элемент управления интерфейса в виде прямоугольной области, где можно рисовать и обрабатывать события. Примерами видовых окон являются: контекстное меню (ContextMenu), меню (Menu), вид (View), поверхность рисования (SurfaceView).

    Виджеты (widgets) - это более продвинутые элементы пользовательского интерфейса, например, флажки с переключателями, где можно выбрать одно из нескольких возможных состояний. Виджеты являются теми элементами управления, с которыми взаимодействует пользователь. Виджетами являются: кнопка (Button), выбор даты (DatePicker), галерея (Gallery), флажок (CheckBox) и др.

    Таким образом, видовые окна и виджеты являются элементами управления пользовательского интерфейса, однако первые способны выполнить не одну, а несколько функций.

    Прежде чем перейти к понятию асинхронных вызовов, нужно ясно понимать, что такое поток.

    Потоком называется выполнение в одном приложении нескольких операций одновременно. Асинхронным поток называется поток, который выполняется независимо от других потоков, в фоновом режиме.

    Асинхронные потоки применяются при выполнении задач, которые занимают много времени, например, загрузка файла из Интернета, воспроизведение аудиозаписи или просмотр видеоклипа, т.е. то, что заставляет пользователя ждать. Если пользователю необходимо подождать решения какой-либо задачи, то лучший выход из ситуации - создать асинхронный поток, чтобы дать возможность пользователю заниматься в это время чем-нибудь другим.

    В большинстве случаев специалисты рекомендуют выносить в фоновый поток выполнение тех задач, которые сильно нагружают процессор, или выполняются более 5-6 секунд.

    Служба - это такое приложение, которое выполняется в фоновом режиме и которому не требуется наличие пользовательского интерфейса. Примером службы на компьютере является антивирусная программа, а в ОС Android - аудиоплееры, которые воспроизводят аудиозаписи в фоновом режиме, позволяя пользователю пользоваться с то же время другими приложениями.

    Приложение состоит из нескольких деятельностей (Activities), которые занимают весь экран. Приложение же переключается между ними в зависимости от выбранной пользователем задачи.

    Деятельности состоят из видовых окон (View). Общую структуру стандартного Android приложения можно представить в виде схемы (рис. 2).




    Рис. 2. Структура Android приложения
    Прежде чем приступить непосредственно к разработке приложения, необходимо определить, какие понадобятся инструменты разработки, и установить их.

    В разрабатываемом приложении используются следующие программные средства и технологии:JDK (Java Development Kit) - набор для разработки приложений на языке Java, который включает в себя компилятор Java, библиотеки, утилиты, документацию и др.Studio - среда разработки от Google, которая является официальной средой разработки для Android приложений на базе IntellIJ IDEA.- реляционная база данных, по умолчанию использующаяся в Android.S3 - облачное хранилище объектов, предназначенное для хранения файлов любых типов и возможности доступа к ним через Интернет.- быстрый и удобный эмулятор Android, содержащий настроенные образы Android, что существенно упрощает тестирование на нескольких Android устройствах с целью выявления ошибок и оптимизации приложения.- платформа для разработки мобильных и веб-приложений. В разрабатываемом приложении используется для идентификации пользователей.

    Необходимо создать интуитивно понятный для пользователей графический интерфейс приложения.

    Основные структуры при создании интерфейса:

    Деятельности (Activities)

    Ресурсы (файлы XML) - включают в себя компоновки, строки, изображения, стили

    Файл AndroidManifest.xml - содержит информацию о настройках конфигурации

    Класс View - базовый класс для всех компонентов пользовательского интерфейса. Отвечает за прорисовку изображения и обработку событий.

    Файл R.java - отвечает за идентификацию ресурсов.

    Стоит помнить, что приложение может содержать несколько деятельностей (экранных форм), одна из которых определяется как главная и отображается при первом запуске приложения. Также деятельности одного приложения независимы друг от друга.

    Для создания виджетов существует 2 способа:файл компоновки, содержащий описание графических элементов и их характеристик.

    Динамическое создание виджетов в программном коде класса экранной формы.

    Оба метода имеют свои достоинства и недостатки, поэтому на практике их применяют вместе, что и было сделано в данном приложении.

    В разрабатываемом приложении были выделены следующие структуры:- деятельность, которая запускает экран инициализации пользователя- та деятельность, которая запускается после LoginActivity- деятельность, которая запускается при нажатии на загруженное в приложение изображение, содержащая информацию о названии и описании фото, а также возможность их редактирования и сохранения.

    Обе эти структуры связаны с моделью для загрузки данных из базы данных и с сервера (в данном случае, Amazon).

    В общем виде структура приложения показана на рис. 3.




    Рис. 3. Общая структура приложения
    Запуск приложения происходит через основной сценарий

    В главном интерфейсе системы пользователь выбирает приложение и запускает. Запускается экран инициализации пользователя, затем главный экран приложения. Приложением проверяется, пуста ли база данных, получение и обработка данных. Выводит список доступных фотографий.

    Альтернативный сценарий

    а) Если база данных пуста, приложение получает данные на сервере.

    б) Если получение данных с сервера по каким-либо причинам недоступен, то система выводит на экран сообщение «Сервер недоступен».

    Робастная диаграмма для данного варианта использования представлена на рис. 4. Данная диаграмма выражает взаимосвязь между классами и выполняемыми действиями. Каждое такое действие на диаграмме соответствует шагу варианта использования.

    Используемые в диаграмме обозначения:

    - в приложении обозначаются в виде экранов и окон.

    - сущностные объекты.

    - контроллеры, представляющие роли посредников между первыми двумя типами объектов.




    Рис. 4. Робастная диаграмма варианта использования «Запуск приложения»
    Основной сценарий:

    Приложение выводит на экран список доступных для чтения и редактирования фотографий. Пользователь выбирает одну из них. Приложение выводит информацию о фотографии с возможностью редактирования описания и/или названия пользователем.

    На экране с информацией о фотографии (рис. 10) расположены кнопки «Отменить» и «Сохранить». При нажатии пользователем на «Сохранить», приложение отправляет измененные данные на сервер, принимает их, обрабатывает и обновляет отображаемые данные.

    Альтернативный сценарий:Ос

    а) Отсутствует соединение с Интернет. Система выводит сообщение об ошибке.

    б) Сервер недоступен. Система выводит сообщение об ошибке.
    .5 Описание пользовательского интерфейса
    Пользовательский интерфейс - это та часть приложения, с которой непосредственно взаимодействует пользователь, т.е. «внешний вид» приложения.

    При запуске приложения, в первую очередь, появляется экран авторизации пользователя (рис. 5). После авторизации, когда в приложении еще нет никаких данных, выполняется главная деятельность - MainActivity. В этом случае появляется экран вида, отображенного на рис. 7. На скриншоте видно, что вверху экрана отображается название приложения, в правом верхнем углу - функция поиска, а внизу располагается главное меню: первая кнопка отвечает за добавление папки, вторая - за добавление изображения, а последняя - за удаление.




    Р
    ис. 5,6. Экран авторизации пользователя; Экран регистрации нового пользователя

    Рис. 7, 8. Начальный вид приложения; вид экрана при нажатии на кнопку «Добавить фото».
    Если же пользователь зашел в систему в первый раз, и у него нет собственного аккаунта, то ему необходимо зарегистрироваться (рис. 6).

    Чтобы загрузить изображения в приложение, необходимо нажать на кнопку «Добавить фото» (рис. 8). При нажатии на экране появится инструмент выбора: сделать фото через камеру и загрузить полученное изображение или загрузить фото из галереи. При нажатии на «Загрузить фото», предоставляется следующий выбор (рис. 9). После загрузки фото экран будет иметь представление, показанное на рис. 10.




    Рис. 9, 10. Окно «Выберите источник»; Вид экрана после загрузки фото
    При нажатии на загруженное изображение запускается деятельность PhotoInfoActivity, ответственная за редактирования описания к фото. В этом случае экран примет форму рис. 11.





    Рис. 11. Окно редактирования описания и названия фото.
    При нажатии на кнопку «Добавить папку», на экране появится значок папки (рис. 12). При нажатии же на само изображение папки, запустится окно редактирования (рис. 13) названия и описания выбранной коллекции.




    Рис. 12, 13. Функция «Добавить папку»; Окно редактирования описания коллекции
    2.6 Проектирование и разработка базы данных
    Вид основных таблиц базы данных:

    Таблица пользователей - USERS
    Таблица 1

    Атрибут

    Примечание

    ID пользователя

    Обязательное поле, ключ

    Электронная почта

    Обязательное поле

    Пароль

    Обязательное поле


    Пользователь должен иметь уникальный код ID и непустые поля «Электронная почта» и «Пароль».

    Таблица для фотографий - PHOTOS
    Таблица 2

    Атрибут

    Примечание

    ID фото

    Обязательное поле, ключ

    ID пользователя

    Обязательное поле

    Название

    Обязательное поле

    Описание

    Необязательное поле

    Путь

    Обязательное поле

    Дата загрузки

    Обязательное поле


    Каждая фотография должна иметь уникальный ID код, который используется в качестве ключа. Из всех полей, входящих в таблицу для фотографий, описание не является обязательным полем и может оставаться пустым.

    Таблица для коллекций - COLLECTIONS
    Таблица 3

    АтрибутПримечание




    ID коллекции

    Обязательное поле, ключ

    ID пользователя

    Обязательное поле

    Название

    Обязательное поле

    Описание

    Необязательное поле

    Путь

    Обязательное поле


    Каждая коллекция должна иметь уникальный ID код, который используется в качестве ключа. Из всех полей, входящих в таблицу для фотографий, описание не является обязательным полем и может оставаться пустым. У каждой коллекции есть только один владелец - пользователь, который определяется по ID.

    В коде программы переменные отражены следующим образом [8]:

    public static final String DB_MAIN = "main.db"; //название базы данныхstatic final String TABLE_NAME1 = "photos"; //название таблицы с фотографиямиstatic final String PHOTO_ID = "id_photo"; //код фотоstatic final String PHOTO_TITLE = "title"; //название фотоstatic final String PHOTO_DESCRIPTION = "description"; //описаниеstatic final String PHOTO_PATH = "path"; //путь к изображениюstatic final String UPLOAD_DATE = "date"; //дата загрузки

    public static final String TABLE_NAME2 = "users"; //название таблицы с информацией о пользователях

    public static final String USER_ID = "id_user"; //код пользователяstatic final String USER_EMAIL = "user_email"; // электронная почта пользователяstatic final String USER_PASSWORD = "user_password"; //пароль пользователяstatic final String TABLE_NAME3 = "collections"; //название таблицы с коллекциямиstatic final String COLL_ID = "id_collection"; //код коллекцииstatic final String USER_ID = "id_user"; //код пользователяstatic final String COLL_TITLE = "title"; //название коллекцииstatic final String COLL_DESCRIPTION = "description"; //описаниеstatic final String COLL_PATH = "path"; //путь к коллекции

    Они находятся в классе PhotoDbHelper, наследуемом от абстрактного класса SQLiteOpenHelper, отвечающем за работу с базой данных, т.е. за ее создание, открытие и обновление.

    В классе SQLiteOpenHelper по умолчанию содержатся два метода: onCreate(), отвечающий за создание базы первый раз, и onUpgrade(), с помощью которого базу данных можно модифицировать.

    Чтобы сэкономить место в памяти телефона и не сильно нагружать процессор, изображения будут храниться не в базе данных, а в облачном хранилище. В базу данных же будут передаваться пути к ним.

    Структура базы данных в наглядном виде представлена в виде схемы (рис. 14).




    Рис. 14. Схема взаимодействия сущностей базы данных
    2.7 Amazon Storage Services
    .7.1 Обзор Amazon Web Services (AWS)

    Amazon Web Services (AWS) - это пластичная, рентабельная, легкая в использовании облачная платформа для хранения данных. Она обеспечивает недорогое хранение данных с легкой доступностью. AWS предлагает варианты хранения для резервного копирования, архивирования и аварийного восстановления файлов. включает в себя следующие хранилища [4]: Simple Storage Service (Amazon S3) - сервис, предоставляющий масштабируемое и долговременное хранение объектов в облаке.Glacier - сервис, предоставляющий недорогое высокоэффективное долговременное хранение архивов в облаке.Elastic File System (Amazon EBS) - сервис, предоставляющий масштабируемую сетевое файловое хранилище для экземпляров Amazon EC2.EC2 Instance Storage - предоставляет блочное хранилище для экземпляров Amazon EC2.Storage Gateway - встроенное хранилище, которое интегрируется с облачным хранилищем.Snowball - сервис, который переносит большие объемы данных в облако и из него.CloudFront - сервис, позволяющий ускорять доставку сетевых ресурсов с помощью кэширования CDN [5].

    В данном приложении из этого списка применяется только Amazon S3.
    .7.2 Обзор Amazon S3Simple Storage Service (Amazon S3) предоставляет надежное, долговечное масштабируемое хранилище данных по очень низкой цене. Можно хранить и извлекать любой объем данных в любое время из любой точки Интернета через простой интерфейс веб-сервиса. Можно записывать, просматривать и удалять объекты, содержащие от 1 до 5 Тб данных. Amazon S3 обладает высокой масштабируемостью, что позволяет одновременно просматривать или записывать данные многим разным клиентам или потокам приложений.
    .7.3 Использование шаблонов

    Существует 4 основных случаев использования шаблонов для Amazon S3.

    Во-первых, Amazon S3 используется для хранения и распространения статического веб-контента и мультимедиа. Этот контент может быть напрямую поставлен из Amazon S3, так как каждый объект в Amazon S3 имеет свой уникальный URL-адрес HTML. В качестве альтернативы, Amazon S3 может служить в качестве хранилища для сети доставки контента (CDN), например, как Amazon CloudFront. Пластичность Amazon S3 делает его особенно удобным для веб-хостинга контента, который требует высокой пропускной способности для решения экстремальных скачков спроса. Кроме того, поскольку не требуется резервирования хранилища, Amazon S3 хорошо подходит для быстро растущих веб-сайтов, содержащих насыщенный пользовательский контент, такой как сайты для обмена видео или фотографиями.

    Во-вторых, Amazon S3 используется для размещения всего статического веб-сайта. Amazon S3 обеспечивает недорогое, высокодоступное и масштабируемое решение, в том числе хранение статических HTML-файлов, изображений, видеозаписей и клиентских скриптов в формате, например, JavaScript.

    В-третьих, Amazon S3 используется как хранилище данных для вычислений и крупномасштабной аналитики, таких как анализ финансовых транзакций, анализ трафиков, транскодирование мультимедиа файлов и др. Из-за горизонтальной масштабируемости Amazon S3 можно получать данные из нескольких вычислительных узлов без ограничения одним соединением.

    Наконец, Amazon S3 часто используется как высоконадежное, масштабируемое и безопасное решение для резервного копирования и архивирования критически важных данных.
    2.7.4 Интеграция с Amazon S3

    Для интеграции приложения с Amazon S3 прежде всего необходимо завести AWS аккаунт. После этого в app/build.gradle файл необходимо добавить следующие зависимости [6]:

    dependencies {'com.amazonaws:aws-android-sdk-core:2.4.0'('com.amazonaws:aws-android-sdk-s3:2.4.0') {module: 'commons-io'

    }('com.amazonaws:aws-android-sdk-cognito:2.4.0') {module: 'commons-io'

    }

    }

    После добавления зависимостей в файл build.gradle необходимо добавить следующее разрешение в файл AndroidManifest.xml:



    Следующий шаг - получение учетных данных AWS. Чтобы использовать сервисы AWS в мобильном приложении, необходимо сначала получить учетных данные, используя Identity Amazon Cognito в качестве поставщика учетных данных. Использование поставщика учетных данных позволяет приложению получать доступ к службам AWS без необходимости встраивания личных учетных данных в приложение. Также это позволяет установить разрешения, чтобы контролировать, к каким сервисам AWS пользователи имеют доступ.

    До начала работы с Amazon Cognito, необходимо, в первую очередь, создать пул идентификации (identity pool). Пул идентификаций - это хранилище данных идентификации пользователя, относящегося к своему аккаунту. В каждом identity pool есть настраиваемые роли IAM, позволяющие указать, какие сервисы AWS могут использовать пользователи приложения. Как правило, разработчик использует один пул идентификации для каждого пользователя.

    После создания личного пула идентификации, генерируется код, создающий поставщика учетных данных для простого интегрирования Cognito Identity с Android приложением. Остается только передать объект поставщика учетных данных в конструктор используемого AWS клиента. Поставщик ученых данных выглядит следующим образом [7]:

    // Initialize the Amazon Cognito credentials provider

    CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider((),

    "eu-central-1:f2aabdb4-61c4-416d-baaf-aeb6521d418b", // Identity Pool ID.EU_CENTRAL_1 // Region

    );

    Далее необходимо добавить следующее в AndroidManifest.xml файл:



    Инициализация клиента S3:Client s3Client = new AmazonS3Client(credentialsProvider);

    Для загрузки и скачивания файлов из S3 используется класс TransferUtility. Необходимо передать клиент S3 и контекст приложения в TransferUtility.

    Создание экземпляра TransferUtility:

    TransferUtility transferUtility = new TransferUtility(s3Client, mContext.getApplicationContext());

    Теперь сервер готов к работе с приложением, и появилась возможность загружать и выгружать фотографии с сервера.
    Большинство приложений должны знать личность пользователя. Знание идентификатора пользователя позволяет приложению безопасно сохранять пользовательские данные в облаке и обеспечивать одинаковый персонализированный интерфейс на всех устройствах пользователя.

    Для аутентификации пользователей в данном приложении используется Firebase Authentication - набор backend сервисов, простых в использовании SDK (Software Development Kit) и готовые библиотеки пользовательского интерфейса для аутентификации пользователей в приложении. Он поддерживает аутентификацию с использованием паролей и электронной почты, телефонных номеров, Google, Facebook и т.д.Authentication тесно интегрируется с другими сервисами Firebase и использует такие стандарты, как OAuth 2.0 и OpenID Connect, поэтому он может быть легко интегрирован с пользовательским backend'ом .
    Для правильной работы разрабатываемого приложения, в ходе разработки необходимо добавлять необходимые разрешения в файл AndroidManifext.xml. Ниже приведен список некоторых из них с пояснением их функционала.

    - запрос на использование камеры

    - запись или удаление файлов на карте памяти. При наличии данного разрешения READ_EXTERNAL_STORAGE используется автоматически, поэтому для чтения данных с карты памяти, в этом случае, вводить необязательно

    - требование приложением наличия камеры

    - разрешение на использование Интернета

    - разрешение на доступ к сетевым подключениям.

    Практическая часть.

    Настало время выполнить задание и создать приложение для интернет-магазина.



    Рис. 15. Демонстрация работы сайта

    О проекте:


    Этот проект представляет из себя интернет-магазин на платформе NodeJS, Вы можете продавать свои цифровые товары именно загрузив этот репозиторий, в панели управления Вы сможете создавать, удалять и редактировать товары или категории . В проекте используется концепция REST API, поэтому для отдачи информации клиенту существует отдельный API. Информация о покупателях, товарах, категориях и т.д хранится в БД MongoDB (используется нативный драйвер).

    Функционал покупателя:


    • Возможность выбирать интересующие категории, переход по одиночным страницам конкретного товара.

    • Возможность комментировать как отдельный товар, так и весь магазин на отдельной странице с помощью системы комментариев Disqus.

    • Возможность фильтровать интересующую категорию или все товары через фильтр.

    • Покупатель может совершать одну или несколько покупок через корзину или кнопку "Купить".

    • Оплата осуществляется через сервис QIWI API.

    • Результатом оплаты будут данные одного или нескольких товаров, все данные отсылаются на электронную почту покупателя, которую он указал при создании заказа.

    • Покупатель может узнать все свои совершенные покупки в магазине на отдельной странице.

    Функционал администратора:


    Для входа в админ-панель необходимо дописать в адресной строке /admin, после Вы попадете на страницу авторизации где нужно ввести данные в формате email:password. По умолчанию admin@support.ru:admin

    • Пароль админа хэшируется через bcrypt для безопасности и

    • записывается в БД.

    • На главной странице есть небольшая статистика, где можно посмотреть: сумму проданных товаров, кол-во проданных товаров, кол-во товаров в наличии.

    • На главной странце так же можно узнать подробные данные о покупателях: номер заказа, почта покупателя, способ оплаты, дата покупки, сумма и данные которые были высланы по почте.

    • Возможность находить конкретного покупателя через поле (нужно знать номер заказа).

    • Возможность добавлять, удалять или редактировать товары на странице "Товары", так же можно посмотреть и информацию о товаре.

    • Поиск товаров через поле поиска (нужно знать частичное или полное название товара).

    • Добавление, удаление и редактирование категорий через страницу "Категории", каждой категории присваивается собственная иконка, которую можно загрузить через страницу "Иконки".

    • Возможность править контент, изменять общее оформление магазина (только цвет).

    • Возможность изменять данные администратора: почта, пароль, имя.

    Структура репозитория:


    В основе всего репозитория существуют две ветки. Ветка master предназначена для разработки приложения, для выгрузки готового приложения на сервер используйте ветку production.

    Заключение

    В наши дни иметь свой собственный сайт очень распространенное дело, так как, собственный сайт позволяет сэкономить много времени , увеличить возможности, освободиться от множества нудной работы. Помогает осуществить рекламу. Создание сайта можно превратить в увлекательное творческое занятие, доставляющее настоящее удовольствие от проделываемой работы и получаемого результата. Если выбрать эффективный, адекватный, поставленным целям и требованиям, а также ресурсам, способ создания сайта.

    Интернет развивается достаточно быстро. Число публикаций, посвященных Интернету, стремительно растет, что предвещает его широкое распространение даже в нетехнологических областях. Интернет превращается из отличной игрушки для интеллектуалов в полноценный источник разнообразной полезной информации для каждой категории пользователей.

    Эксперты прогнозируют, что через десять лет около 50% семей (пока, конечно, только в развитых странах) будут пользоваться им ежедневно. Телевизионные и радиоприемники не будут заменены компьютерами, а будут иметь мощный процессор, большую память и в некоторых отношениях даже станут самими компьютерами.

    Это будет время, когда любой владелец компьютера сможет «скачивать» статьи, иллюстрации, видео- или аудиоинформацию по любой интересующей его теме. Он или она сможет получать эту информацию, когда захочет. Через некоторое время системы искусственного интеллекта — параллельный машинный перевод, идентификация и распознавание языков — разрушат последние национальные и языковые барьеры и обеспечат свободный транснациональный обмен информацией.

    Каждый из нас уже может внести свой вклад в развитие интернета. Все, что вам нужно сделать, это создать свой собственный сайт и разместить его в Интернете.

    В данной работе рассматриваются актуальные вопросы разработки и создания современного веб-сайта.

    Я решил следующие частные задачи:

    • Знакомство с современными Интернет-технологиями и их использование

    • Знакомство с основными правилами и рекомендациями по разработке и созданию сайтов и их строгое соблюдение на практике;

    • чтобы определить структуру веб-страниц;

    • Выбор стратегии развития и создания сайтов.

    В результате проделанной работы на основе выбранных технологий был создан прототип современного сайта.

    Его основные отличительные особенности заключаются в следующем:

    • небольшой размер файлов с кодами веб-страниц (их перечень указан в приложении), что обеспечивает их быструю загрузку из сети на клиентский компьютер

    • Используется векторный формат графики, сжатые форматы растровых и звуковых файлов, что также положительно сказывается на уменьшении размера веб-страниц и времени их загрузки по сетевым каналам;

    • Нет проблем совместимости с различными браузерами, такими как Internet Explorer и Netscape Navigator.

    • автоматическая поддержка сглаживания (сглаживание контура путем смешивания смежных цветов), что значительно улучшает эстетическое восприятие используемой графики

    • Гибкость, открытость и модифицируемость простыми средствами.

    Среди существующих недостатков можно назвать следующие:

    • Необходимость овладеть идеологией и инструментами Macromedia Flash 5.0 — современными профессиональными инструментами для создания сайтов;

    • вынужден использовать плагин Flash Java Player для существующих версий браузеров (обновленные версии браузеров еще не выпущены) для корректного отображения Flash-страниц.

    • Методология процесса разработки и создания сайта, использованная в этой работе, была апробирована и исследована в реальных условиях моей профессиональной деятельности и показала работоспособность и эффективность.

    Таким образом, материалы работы показывают, что задачи, упомянутые во введении выше, полностью выполнены.

    Список использованной литературы

    1. Гаевский А. Основы работы в Интернете. Самоучитель. – СПб.:БХВ-Петербург,2003.-464 с.

    2. Гончаров О.Ю. Знакомство с Интернет и Web-дизайн. 2002г. Ижевск

    3. Першиков В.И., Савиков В.М. Толковый словарь по информатике. 1990 г. Издательство «Финансы и статистика». г. Москва

    4. Симонович С.В. , Евсеев Г.А., Алексеев А.Г. Специальная информатика. 2001г. ЗАО «КОМПАНИЯ «АСТ-ПРЕСС». Г. Москва.

    5. Форум Учебники для программистов [Электронный ресурс]: www.olocoder.ru

    6. Подбор цветов и генерация цветовых схем [Электронный ресурс]: www.colortheme.ru 7. Справочник web-программиста [Электронный ресурс]: www.html-book.ru


    Приложения

      1. https://disk.yandex.ru/d/BRMLkgqIOZOWvA

    По данной ссылке можно загрузить созданное мной приложение.


    написать администратору сайта