Разработка мобильного приложения для синхронизации с удаленным сервером
Описание платформ Android, iOS и Linux, их сравнение. Изучение способов разработки приложения под Android. Разработка мобильного приложения и серверной части. Синхронизация удаленного сервера с программным обеспечением "Справочник USSD запросов".
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.08.2018 |
Размер файла | 3,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Одним из проектных решений во Flask является то, что простые задачи должны быть простыми; они не должны занимать много кода, и это не должно ограничивать вас [5]. Поэтому сделано несколько вариантов дизайна. Например, Flask использует локальные треды внутри объектов, так что вы не должны передавать объекты в пределах одного запроса от функции к функции, оставаясь в безопасном треде. Хотя это очень простой подход и позволяет сэкономить много времени, это также может вызвать некоторые проблемы для очень больших приложений, поскольку изменения в этих локальных тредах-объектов может произойти где угодно в том же треде. Для того, чтобы решить эти проблемы, мы не скрываем от вас локальные треды-объекты, вместо этого охватываем их и предоставляем вам много инструментов, чтобы сделать работу с ними настолько приятным насколько это возможно.
Во Flask много вещей предварительно сконфигурированы, на основе общей базовой конфигурации. Например, шаблоны и статические файлы сохранены в подкаталогах в пределах исходного дерева. Вы также можете изменить это, но обычно вам этого не потребуется.
Основная причина, почему Flask называется «микрофреймворком» -- это идея сохранить ядро простым, но расширяемым. В нем нет абстрактного уровня базы данных, нет валидации форм или всего такого, что уже есть в других библиотеках, к которым вы можете обращаться. Однако Flask поддерживает расширения, которые могут добавить необходимую функциональность, и реализует их так, как будто они уже были встроены изначально. В настоящее время уже есть расширения: формы валидации, поддержка закачки файлов, различные технологии аутентификации и многие другие.
Все средства для разработки мобильных приложений можно поделить на две группы:
Native SDK;
Кроссплатформенные фреймворки использующие HTML 5/CSS3/JS/C#.
Стандартные среды разработки.
Стандартные среды разработки позволяют получить полный доступ к возможностям операционной системы и компонентам телефона. Для написания приложений они используют высокопроизводительные языки программирования, именно поэтому они позволяют добиться наивысшей производительности, что критично для таких приложений, как игры. Для разных платформ используются разные языки программирования:
для платформы Android используется язык Java, однако возможно использовать языки C/C++, что позволяет повысить производительность на критичных участках кода;
для платформы iOS используется язык ObjectiveC и Swift. Swift -- новый язык программирования, представленный компанией Apple в 2014 году. Он унаследовал большинство черт от ObjectiveC.
Кросплатформенные фреймворки.
В силу фрагментации мобильных устройств, для большинства организаций становится экономически невозможным создавать приложения для всех мобильных платформ, используя Native SDK. На помощь приходят кроссплатформенные фреймворки, которые позволяют разрабатывать мобильные приложения, используя стандартные веб-технологии HTML5/JS/CSS3/С#. Достаточно написать приложение на HTML5, используя API фреймворка для работы с аппаратными функциями устройства, и на выходе получить готовые приложения почти для всех мобильных платформ.
Как уже было сказано, фреймворки могут использовать HTML5/CSS/JS/C# и другие средства. Все фреймворки можно разделить на две группы:
HTML5 фреймворки, позволяющие создавать веб приложения, используя HTML, CSS, Javascript. Эти технологии обеспечивают легкость вхождения для разработчиков, большое покрытие аудитории(браузеры сейчас есть практически на каждом мобильном устройстве). Приложения используют единую базу кода и дешевы в разработке;
другие фреймворки, например Xamarin. В нем используется язык программирования C#, который славится своей кроссплатформенностью, однако разработка графического интерфейса для каждой платформы должна производиться отдельно.
Для создания мобильного программного обеспечения нам понадобится то, которое позволит разработать кроссплатформенное гибридное приложение, с возможностью его установки на устройства с различными операционными системами.
Xamarin.
Фреймворк для кроссплатформенной разработки мобильных приложений (iOS, Android, WindowsPhone) с использованием языка C#. Xamarin основан на open-source реализации платформы .NET -- Mono. Эта реализация включает в себя собственный компилятор C#, среду выполнения, а так же основные .NET библиотеки. Цель проекта -- позволить запускать программы, написанные на C#, на операционных системах, отличных от Windows -- Unix-системах, Mac OS и других. 28 мая 2014 года была выпущена 3-я версия инструментов разработки. Одной из главных новинок стал инструмент Xamarin.Forms, позволяющий создавать пользовательский интерфейс из набора визуальных элементов, описываемых на языке разметки XAML, который отображается в визуальные элементы соответствующей операционной системы (Android, iOS и WindowsPhone).
Фреймворк состоит из нескольких основных частей:
Xamarin.IOS -- библиотека классов для C#, предоставляющая разработчику доступ к iOS SDK;
Xamarin.Android -- библиотека классов для C#, предоставляющая разработчику доступ к Android SDK;
компиляторыдляiOSи Android;
IDE Xamarin Studio;
плагиндля Visual Studio.
Phonegap.
Бесплатный open-source, созданныйNitobiSoftware. Позволяет создать приложения для мобильных устройств используя JavaScript, HTML5 и CSS3, без необходимости знания «родных» языков программирования (например, Objective-C), под все мобильные операционные системы (iOS, Android, Bada и т. д.). Готовое приложение компилируется в виде установочных пакетов для каждой мобильной операционной системы. Прелесть его в том, что он не требует навыков разработки под конкретную платформу. Вы пишете свое приложение на JavaScript, используете HTML и CSS для разметки. Вы пишете мобильное приложение как обычный сайт или веб-сервис.
Движок PhoneGap расширяет API браузера и добавляет следующие возможности: доступ к акселометру, доступ к камере (пока только фото), доступ к компасу, доступ к списку контактов, запись и прослушивание аудио файлов, предоставляет доступ к файловой системе, позволяет работать с разными HTML5 хранилищами localStorage, Web SQL и т.п а также позволяет безболезненно обращаться к любому кросс-доменному адресу.
Интегрированными средами разработки (IDE), позволяющими значительно ускорить написание приложения (ускорение тестирования, компиляция «одним-кликом» для всех операционных систем, графическая разработка интерфейса через «drag - and-drop» и т. д.), являются AdobeDreamweaver (начиная с версии 5.5), Tiggzi, ApplicationCraft
NetBeans IDE.
Свободная интегрированная среда разработки приложений (IDE) на языках программирования Java, Python, PHP, JavaScript, C, C++, Ада и ряда других.
Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведётся независимым сообществом разработчиков-энтузиастов (NetBeansCommunity) и компанией NetBeansOrg.
Последние версии NetBeans IDE поддерживают рефакторинг, профилирование, выделение синтаксических конструкций цветом, автодополнение набираемых конструкций на лету и множество предопределённых шаблонов кода.
Для разработки программ в среде NetBeans и для успешной инсталляции и работы самой среды NetBeans должен быть предварительно установлен Sun JDK или J2EE SDK подходящей версии. Среда разработки NetBeans по умолчанию поддерживала разработку для платформ J2SE и J2EE. Начиная с версии 6.0 NetBeans, поддерживает разработку для мобильных платформ J2ME, C++ (только g++) и PHP без установки дополнительных компонентов.
В версии NetBeans IDE 6.1 декларируется поддержка UML, SOA, языка программирования Ruby (включая поддержку RubyonRails), а также средства для создания приложений на J2ME для мобильных телефонов. В версии 6.5 добавлена поддержка языка PHP. Также для тестирования выложен модуль поддержки Python.
NetBeans IDE поддерживает плагины, позволяя разработчикам расширять возможности среды. Одним из самых популярных плагинов является мощный дизайнер отчётов iReport (основанный на библиотеке JasperReports).
На идеях, технологиях и в значительной части на исходном коде NetBeans IDE базируются предлагаемые фирмой Sun коммерческие интегрированные среды разработки для Java -- SunJavaStudioCreator, SunJavaStudioEnterprise и OracleSolarisStudio (для ведения разработки на C, C++ или Фортран). Сравнительно недавно Sun стала предлагать эти среды разработки бесплатно для зарегистрировавшихся в SunDeveloperNetwork (SDN) разработчиков, сама же регистрация на сайте бесплатна и не требует никаких предварительных условий, кроме согласия с лицензией CDDL.
NetBeans IDE доступна в виде готовых дистрибутивов (прекомпилированных бинарных файлов) для платформ MicrosoftWindows, Linux, FreeBSD, Mac OS X, OpenSolaris и Solaris (как для SPARC, так и для x86 -- Intel и AMD). Для всех остальных платформ доступна возможность скомпилировать NetBeans самостоятельно из исходных текстов.
В релизе NetBeans IDE 6.7 была добавлена интеграция с ProjectKenai, поддержка языка Groovy и веб-фреймворкаGrails. В версии 6.8 -- поддержка PHP-фреймворкаSymfony, а в 6.9 -- ZendFramework.
В версии 7 производитель отказался от поддержки языка Ruby и RubyonRails, объясняя этот отказ большим объёмом работ по поддержке Java 7 и сравнительно невысокой потребностью в этом языке и технологии среди пользователей NetBeans (компонент RubyandRails был взят на сопровождение сообществом и продолжает существовать). Таким образом, «из коробки» последние версии NetBeans поддерживают только Java (включая Java FX, Java ME, Java EE), C/C++, Groovy, PHP, HTML, JavaScript, CSS. Также для версии 7 не имеется ни собственных, ни бесплатных сторонних компонентов поддержки UML-моделирования.
Работу с мобильной платформой можно разбить на два этапа:
разработка конфигурации и тестирование, в этом случае используется мобильная платформа для разработчиков, при работе с которой существует возможность динамически и удаленно обновлять конфигурацию на мобильном устройстве;
создание готового решения в виде установочного apk-файла, содержащего в себе одну или несколько конфигураций. В этом случае, при каждом обновлении конфигурации, необходимо собирать новый установочный файл и обновлять приложение на мобильном устройстве.
Мобильная платформа предоставляет возможность работать с нормативно-справочной информацией, оформлять документы, описывающие внешние действия, просматривать и создавать отчеты, передавать информацию с помощью интернет-сервисов и многое другое.
Помимо обычной функциональности, которая присутствует на платформе для персонального компьютера, мобильная платформа обеспечивает работу со специфическими возможностями, которые присущи только мобильным устройствам:
работа со звонками и журналом звонков;
работа с короткими сообщениями (SMS) и их списком;
контакты;
календари;
геопозиционирование (без прокладки маршрутов);
позволяет делать фотоснимки, а также осуществлять видео- и аудиозапись;
реагировать на изменение ориентации экрана;
работа с уведомлениями (локальными и PUSH, как напрямую, так и через специальный сервис-посредник);
сканирование штрих- и QR-кодов с помощью камеры;
монетизация мобильных приложений;
Работа с сервисами покупок AppleIn-AppPurchase (для ОС iOS) и GooglePlayIn-AppBilling (для ОС Android), с помощью которых можно организовывать в мобильном приложении различного рода подписки, покупки функциональности и т.д.;
Показ рекламы в мобильных приложениях.
Мобильное приложение.
Платформа разработки: возможность проводить разработку на любой платформе.
Целевая платформа: Android, IOS.
Платформа разработки: ionic framework.
Среда разработки: PyCharm.
Серверное приложение.
Платформа: Linux, MacOS, Windows.
Платформа разработки: Python и фреемворк flask.
Среда разработки: PyCharm.
3. Разработка приложения
3.1 Разработка мобильного приложения
Описываемый проект состоит из 2 частей: клиентское приложение и серверное.
Мобильное приложение основано на web технологиях, то есть используется html, css и js. Проект содержит ресурсы приложения, это используемые картинки и данные о ussd запросах, которые доступны сразу после установки приложения. Графические файлы лежат в папке img, а данные о ussd в data.
Остальные составляющие приложения это htmlфайлы шаблонов лежащие в папке templates, css файлы в папакеcss и скрипты на JavaScript в папке js. Папка lib содержит подключенные к проекту библиотеки (рис. 3.1).
Разработка графического интерфейса производится при помощи js, на котором описывается логика работы и html + css, которые отвечают за внешний вид форм. Ionic придерживается шаблона проектирования MVC, поэтому у разработчика есть 3 основные части приложения: модель, представление и контроллер.
Модель отвечает за работу с данными и обеспечивает прозрачное получение данных. Код, отвечающий за это находится в файле services.js и описывает сервисы, из которых мы получаем данные и не важно откуда (json, webstorage и т д).
Представление отвечает за обработку запроса от шаблона и за наполнение шаблона данными [6]. Это описывается в 2 файлах: app.js (исходный код представлен в Приложении А) и controllers.js (исходный код представлен в Приложении Б). В app.js описывается, что при переходе на определенный url будет открыта заданная там страница и будет вызван заданный контроллер, чтобы заполнить данными страницу (рис. 3.2).
Рис. 3.1 - Структура файлов проекта
Рис. 3.2 - Задание маршрутов по меню
На картинке ниже показано, что задаются маршруты до меню, доступ к которому можно получить из любой части приложения и до страницы со справкой (рис. 3.3).
Рис. 3.3 - Структура переходов в программе
В файле controllers.js описываются все контроллеры, которые будут привязываться к событиям описанным в app.js (рис. 3.4).
Рис. 3.4 - Получение списка доступных операторов
Вот пример контроллера для меню. В нем происходит получения списка доступных в приложении операторов связи и сохранение этого списка в специальную переменную, которая будет в дальнейшем доступна из шаблона, для того, чтобы отобразить сохраненные туда данные на странице.
Последняя основная составляющая приложения это шаблон, в котором отображаются необходимые данные. В данном приложении шаблон это просто html страница со специальной разметкой (рис. 3.5).
На приведенном выше скриншоте видно, что на странице расположено много нестандартных тегов. Эти теги часть фреемворка ionic и определяют внешний вид приложения. На пример тег ion-side-menus определяет, что в приложении будет вертикальное выдвигающиеся меню. Положение, внешний вид и пункты меню определяется внутри этого тега. Например, пункты меню определяются с помощью тега ion-item, а дополнительные особенности задаются с помощью атрибутов тега и вложенных тегов.
Рис. 3.5 - Код шаблона
Ниже представлена общая структура проекта, на ней видно, что весь проект размещается в папке www (рис. 3.6), а остальные папки не имеют особого значения и все файлы там генерируются автоматически.
Рис. 3.6 - Итоговая структура проекта мобильного приложения
3.2 Хранение данных в приложении
Хранение данных в приложении осуществляется при помощи json файлов и webstorage [7]. В json хранятся данные о ussd запросах (содержимое файла представлено в Приложении В) (там они разбиты на категории, у них есть свое описание и т д), webstorage в свою очередь хранит данные о недавно использованных командах.
Json был выбран как основное хранилище данных по нескольким причинам:
размер webstorage ограничен;
в случае если системе будет не хватать памяти, webstorage может быть очищен.
Все данные хранятся в 1 файле data.json (рис. 3.7), содержит структуру типа «ключ: значение», где в роли ключей выступают названия операторов связи, а в значениях в виде набора вложенных структур хранятся все сведения о ussd предоставляемых оператором.
Ниже представлен пример, где описаны ussd команды оператора разбитые на 2 группы (проверка баланса и свой номер, и тарифный план).
Рис. 3.7 - Содержимое файла data.json
3.3 Разработки серверной части приложения
Серверная часть приложения умещается буквально в нескольких строках кода это возможно благодаря удачно выбранному фремворку для разработки и потому, что приложению требуется просто высылать обновленные данные (рис. 3.8).
Серверная часть приложения состоит из кода для запуска web сервера app.run('0.0.0.0') и создания функции get_update()обрабатывающей запрос приходящий по адресу /get-update. Функция извлекает из аргументов запроса сведения о версии данных у мобильного приложения и сравнивает их с версией данных хранящихся на сервере (версия хранится в static/info), если приложению требуется обновление, то происходит считывание новых данных из файла static/ussd.json, и они отправляются приложению, если нет, то отправляется ответ говорящий, что обновление не требуется (рис. 3.9). Исходный код представлен в Приложении Г.
Рис. 3.8 - Серверная часть приложения
Рис. 3.9 - Алгоритм синхронизации приложения
3.4 Пример использования мобильного приложения
Приложение позволяет смотреть справку по ussd командам и производить их вызов из приложения [8]. После открытия приложения сразу открывается список категорий ussd запросов (рис. 3.10), для вашего оператора и пользователь может выбрать интересующую категорию, так же в дальнейшем тут будут отображаться 3 последние вызванные команды.
Рис. 3.10 - Список категорий
После выбора категории будет показан список запросов с описанием (рис. 3.11).
Рис. 3.11 - Содержимое категории «Управление балансом»
Для вызова нужно просто нажать по кнопке. Произойдет выполнение (рис. 3.12).
Рис. 3.12 - Выполнение запроса
Пользователь может посмотреть ussd команды, не только для своего оператора, для этого нужно выйти в меню и посмотреть там список доступных.
Заключение
В ходе выполнения выпускной квалификационной работы было разработано сервисное мобильное приложение «Справочник USSD запросов». Рассмотрены способы реализации создания мобильного приложения. Данный программный продукт позволяет: получать затребованную пользователем информацию. Задачи, решаемые в процессе достижения цели, в полной мере реализованы, поэтому можно заявить, что поставленная цель - разработка мобильного приложения для синхронизации с удаленным сервером, выполнена. Главной особенностью этого программного продукта является то, что благодаря его синхронизации с удаленным сервером, мы можем получать актуальную информацию, и быть в курсе последних изменени
Размещено на Allbest.ru
...Подобные документы
Создание, изучение и разработка приложение на Android. Среда разработки приложения DelphiXE5. Установка и настройка среды программирования. Этапы разработки приложения. Инструменты для упрощения конструирования графического интерфейса пользователя.
курсовая работа [1,6 M], добавлен 19.04.2017Современное состояние рынка мобильных приложений. Основные подходы к разработке мобильных приложений. Обоснование выбора целевой группы потребителей приложения. Этапы проектирования и разработки мобильного приложения для операционной системы Android.
курсовая работа [987,1 K], добавлен 27.06.2019Архитектура и история создания операционной системы Android. Язык программирования Java. Выбор средства для реализации Android приложения. Программная реализация Android приложения. Проведение тестирования разработанного программного обеспечения.
курсовая работа [167,8 K], добавлен 18.01.2017Разработка приложений для смартфонов на ОС Android для сети аптек "Фармация". Архитектура операционной системы Android. Архитектура и реализация приложения. Его функциональность. Описание работы мобильного приложения. Расчет затрат на создание продукта.
дипломная работа [1,6 M], добавлен 17.06.2017Структура и архитектура платформы Android. Основные достоинства и недостатки операционной системы Android. Среда разработки Eclipse, платформа Java. Подготовка среды разработки. Вкладка "Погода", "Курс валют", "Новости". Просмотр полной новости.
дипломная работа [1,0 M], добавлен 11.07.2014Разработка системы синхронизации уведомлений (клиентское приложение для смартфонов под управлением операционной системы Android версии 4.0.0 и выше). Разработка сервера, работающего под управлением Windows. Расчет себестоимости создания системы.
дипломная работа [706,7 K], добавлен 17.07.2016Средства разработки развивающих и обучающих игр и используемой программы. Среда выполнения и Dalvik. Разработка приложения для платформы Android. Графический интерфейс и обработка касаний экрана. Разработка экранов приложения и их взаимодействия.
дипломная работа [2,1 M], добавлен 18.01.2016Общая схема работы приложения Android. Разработка обучающего приложения для операционной системы Android, назначение которого - развитие речи посредством произнесения скороговорок. Описание компонентов разработанного приложения, его тестирование.
дипломная работа [1,2 M], добавлен 04.02.2016Проектирование удобного приложения для комфортной навигации по файлам облачного хранилища в одном файловом менеджере. Выбор интегрированной среды разработки. Выбор инструментов для визуализации приложения. Выбор средств отслеживания HTTPзапросов.
курсовая работа [3,6 M], добавлен 16.07.2016Знакомство с особенностями и этапами разработки приложения для платформы Android. Рассмотрение функций персонажа: бег, прыжок, взаимодействие с объектами. Анализ блок-схемы алгоритма генерации платформ. Способы настройки функционала рабочей области.
дипломная работа [3,4 M], добавлен 19.01.2017Структура Android-приложений. Особенности игрового движка. Алгоритмизация и программирование. Список игровых состояний. Настройка, отладка и тестирование программы. Разработка руководства пользователя. Тестирование инсталляции и отображения элементов.
дипломная работа [4,5 M], добавлен 19.01.2017Архитектура операционной системы Android, набор библиотек для обеспечения базового функционала приложений и виртуальная машина Dalvik. Объектно-ориентированный язык программирования Java как инструмент разработки мобильных приложений для ОС Android.
дипломная работа [1,6 M], добавлен 08.07.2015Обзор мобильной ОС Android. Выбор инструментов и технологий. Проектирование прототипа графического интерфейса. Характеристика и описание пользовательского интерфейса. Проектирование и разработка базы данных. Определение списка необходимых разрешений.
курсовая работа [376,6 K], добавлен 13.09.2017Разработка программного обеспечения для платформы Android версии 2.3: информационное приложения для поклонников футбольной команды, с возможностью просмотра событий, статистики и иной информации о команде и ее успехах. Листинг JsonDataManager.java.
дипломная работа [4,1 M], добавлен 24.04.2013Мобильные операционные системы. Основные характеристики систем iOS и Android, их достоинства, недостатки и индивидуальные возможности. Анализ преимуществ лидирующих мобильных платформ для разработки приложения. Основные различия в механизмах безопасности.
дипломная работа [806,5 K], добавлен 01.01.2018Обзор существующих популярных программ для просмотра погоды на ОС Android. Операционные системы современных смартфонов. Ключевые особенности Android, технология Java. Разработка программной части, выбор языка, описание алгоритма, ее логической структуры.
курсовая работа [911,5 K], добавлен 16.04.2014Разработка клиент-серверного игрового приложения на примере игры в шашки для мобильных устройств на базе операционной системы Android. Обзор мобильных платформ. Экраны приложения и их взаимодействие. Графический интерфейс, руководство пользователя.
курсовая работа [2,6 M], добавлен 15.06.2013Изучение языков программирования PHP, SQL, C++, HTML. Рассмотрение правил запуска и использования локального сервера Denwer. Составление технического задания по разработке программного продукта. Описание создаваемого мобильного и веб-приложения.
курсовая работа [212,4 K], добавлен 07.04.2015Анализ российского рынка мобильных приложений. Мобильное приложение как новый канал коммуникации с целевой аудиторией. Этапы создания мобильного приложения. План продвижения мобильного приложения в сети Интернет. Бесплатные инструменты продвижения.
дипломная работа [1,6 M], добавлен 23.06.2016Общие характеристики операционной системы Android. Разработка приложения на основе создания менеджера файлов. Получение с помощью приложения доступа к файлам, хранящимся в "облачном хранилище" в сети Интернет. Расчет стоимости программного обеспечения.
дипломная работа [2,7 M], добавлен 03.04.2015