- •1. Постановка задачи
- •2. Обзор существующих решений
- •2.1 AppInventor
- •2.2 Buildanapp
- •2.3 Выводы
- •3. Используемые технологии
- •3.1 Microsoft.Net: f#
- •3.4 Windows Azure
- •4. Требования к архитектуре
- •3.2 Microsoft.Net: WebSharper
- •3.3 Microsoft.Net: c#
- •5. Архитектура системы
- •5.1. Клиент
- •5.2. Генератор
- •6. Практическая реализация
- •6.1. Формат обмена данными
- •6.2. Репозиторий
- •6.3 Сайт и веб-сервер
- •6.4. Сервер приложений
- •7. Сложности реализации
- •7.1 Сайт и веб-сервер
- •7.2 Сервер приложений
- •7.3 Взаимодействие с «облаком»
- •8. Апробация
- •Заключение
- •Список литературы
- •Приложения
2.2 Buildanapp
Рис. 2. Buildanapp
Конструктор Buildanapp4 (показана на рис. 2) позволяет разрабатывать приложения для мобильной платформы iPhone, Android, Blackberry и Mobile Web.
Построение приложения происходит путем прохождения цепочки из шести шагов. На каждом этапе пользователю предлагается выбрать цель приложения, необходимые элементы, количество и вид страниц в приложении и другие функции. BuildAnApp предоставляет функционал для использования электронной почты и списка рассылки. После создания приложения система предлагает загрузить конечное приложение на компьютер пользователя. Интересной особенностью является то, что владельцы имеют возможность с помощью BuildAnApp рекламировать свои созданные приложения, чтобы заработать на них.
2.3 Выводы
Таким образом, в результате проведенного анализа были выявлены основные недостатки существующих на данный момент веб-конструкторов для создания мобильных приложений, а именно:
отсутствие возможности задания нетривиальной клиентской или серверной логики мобильного приложения;
проектирование приложений исключительно для одной мобильной платформы;
необходимость постоянного соединения рабочего компьютера и мобильного телефона в процессе создания приложения (для некоторых конструкторов);
отсутствие средств для тестирования разработанного мобильного приложения на рабочем компьютере.
При проектировании конструктора QReal:Web были учтены и максимально устранены перечисленные недостатки.
3. Используемые технологии
QReal:Web изначально проектировался как облачный конструктор для создания мобильных приложений, в связи с чем в качестве основной платформы для реализации серверной части приложения был выбран язык программирования F# (функциональный язык, в котором эффективно реализована поддержка распараллеливания данных) и технология web-разработки WebSharper для взаимодействия с клиентской частью (фреймворк, позволяющий реализовывать на F# клиентскую часть). В качестве облака было решено использовать Windows Azure – облачную платформу от Microsoft.
Для возможности задания серверной логики приложения был реализован сервер приложений, для разработки которого в качестве языка программирования был выбран C#.
В качестве основной среды разработки использовалась Microsoft Visual Studio 2012.
3.1 Microsoft.Net: f#
Функциональный язык F#, разработанный в 2002 году в подразделении Microsoft Research, обеспечивает высокую производительность, и снижает объем написанного кода, в сравнении, например, с С#. С деталями использования данного языка можно ознакомиться в книгах Криса Смита [1] и Дона Сайма [2], а также в документации к F# [9].
По производительности F# сравним с C#, однако если сравнивать с языками, которые настолько же лаконичны, как F#, в частности с динамическими языками и языками сценариев, он имеет гораздо лучшие показатели. В 2010 году Microsoft выпустила первую версию продукта – Microsoft Visual Studio 2010, в которую встроена поддержка разработки на F#.
Парадигма функционального программирования предполагает отсутствие в программе неявной зависимости по данным, что в свою очередь облегчает распараллеливание данных. Например, в F# 2.0 реализованы asynchronous workflows – конструкции для организации параллельных и асинхронных вычислений. С помощью традиционных императивных языков программирования достаточно сложно и трудоемко написать распараллеливаемый код без ошибок. Подобное преимущество F# стало основным аргументом при выборе языка программирования для реализации конструктора QReal:Web в связи с тем, что QReal:Web был задуман как система, которая должна работать с большим количеством пользователей, а значит и со значительным потоком информации, которую необходимо обработать за ограниченный промежуток времени.
На данный момент F# широко используется в финансовой сфере, где требуются обработка больших данных и незамедлительное принятие решений, а также нужно строить быстрые алгоритмы, способные давать результат в как можно более короткое время.
На данный момент текущей версией языка F# является версия 3.0, которая поставляется в Microsoft Visual Studio 2012.
