Научная статья на тему 'РАЗРАБОТКА ПО ПОД МОБИЛЬНЫЕ УСТРОЙСТВА (В ЧАСТНОСТИ, ANDROID). ОСОБЕННОСТИ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ'

РАЗРАБОТКА ПО ПОД МОБИЛЬНЫЕ УСТРОЙСТВА (В ЧАСТНОСТИ, ANDROID). ОСОБЕННОСТИ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
221
38
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МОБИЛЬНЫЕ ПРИЛОЖЕНИЯ / ГИБКАЯ РАЗРАБОТКА / КРОССПЛАТФОРМЕННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / БИБЛИОТЕКА QT

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шабинский Д.Э., Мещеряков Г.А.

Статья посвящена рассмотрению вопроса разработки программного обеспечения (ПО) для мобильных устройств. Отмечается, что в информационной инфраструктуре продолжается наметившийся рост тренда по использованию мобильных устройств. Рассмотрены особенности индустрии разработки мобильных приложений: пользовательские истории, функционал, масштабируемость и производительность приложения, количество устройств разных видов, экранных разрешений, версий операционной системы (ОС). С учетом этих особенностей представлен обзор наиболее эффективных подходов к их созданию, таких как гибкая разработка и принципы Agile. Автор статьи предлагает набор практических рекомендаций по разработке ПО под мобильные устройства на примере создания системы электронного документооборота с применением инструментария кроссплатформенной библиотеки Qt.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPMENT FOR MOBILE DEVICES (PARTICULARY ANDROID). FEATURES OF MOBILE APPLICATION DEVELOPMENT

The article deals with software development for mobile devices issues. The marked trend in use of mobile device continues to grow in information infrastructure. Such features of mobile application development industry as user stories, functionality, scalability and performance of the application, the number of devices different views, screen permissions, OS versions are considered in the article. Taking into account these features, there is an overview of the most effective approaches to their creation, including flexible development and principles of Agile. The author of article offers a set of practical recommendations to developing mobile software devices based on electronic document management system using cross-platform Qt library.

Текст научной работы на тему «РАЗРАБОТКА ПО ПОД МОБИЛЬНЫЕ УСТРОЙСТВА (В ЧАСТНОСТИ, ANDROID). ОСОБЕННОСТИ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ»

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

fO

сч о сч

о ш m

X

<

m О X X

Шабинский Дмитрий Эдуардович

бакалавр, СПбПУ Петра Великого, Высшая Школа Программной Инженерии, Программная Инженерия, ssd.hn@yandex.ru

Мещеряков Григорий Аскольдович

бакалавр, СПбПУ Петра Великого, Высшая Школа Программной Инженерии, Программная Инженерия, mescheryakov9201@gmail.com

Статья посвящена рассмотрению вопроса разработки программного обеспечения (ПО) для мобильных устройств. Отмечается, что в информационной инфраструктуре продолжается наметившийся рост тренда по использованию мобильных устройств. Рассмотрены особенности индустрии разработки мобильных приложений: пользовательские истории, функционал, масштабируемость и производительность приложения, количество устройств разных видов, экранных разрешений, версий операционной системы (ОС). С учетом этих особенностей представлен обзор наиболее эффективных подходов к их созданию, таких как гибкая разработка и принципы Agile. Автор статьи предлагает набор практических рекомендаций по разработке ПО под мобильные устройства на примере создания системы электронного документооборота с применением инструментария кроссплатформен-ной библиотеки Qt.

Ключевые слова: мобильные приложения, гибкая разработка, крос-сплатформенное программное обеспечение, библиотека QT

Глобализация и, как следствие, распространение интернет-технологий в информационной инфраструктуре (в том числе в таких сферах деятельности как дистанционное образование, сетевые СМИ, реклама, пиар, компании, оказывающие онлайн услуги) приводят к необходимости разработки соответствующего программного обеспечения.

Мобильные приложения играют ключевую роль в информационной инфраструктуре. По данным отчет Digital 2022 Global Overview в 2022 году доля веб-трафика по мобильным устройствам составляет 34,62% [1].

Каковы же особенности или основные критерии, которые необходимо учитывать при создании мобильного приложения. Согласно канонам концепции процессов разработки Rational Unified Process (RUP) от компании Rational Software на начальной стадии формируются видение и границы приложения, создается экономическое обоснование, определяются основные требования, ограничения и ключевая функциональность продукта, оцениваются риски [2]. Особенность разработки мобильных приложений заключается в большой вероятности ошибочного выбора тренда спроса на продукт на рынке, неточной оценки заинтересованности целевой аудитории в продукте, быстрой смене рыночных условий и, как следствие, отсутствие рыночного спроса.

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

К этапу разработки относятся конкретные варианты продукта, в которых внутренняя архитектура приложения реализована. На этом этапе продумываются «иконки», вид экранных отображений, а также элементы и данные, размещаемые на них, ключевые слова для поиска. Особенно важным при создании приложений для мобильных устройств является вопрос стоимости разработки, так как лишь при незначительных вложениях возможна вариативность выпуска продукта.

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

На стадии внедрения создается финальная версия продукта. Продукт передается специалистам для оценки и тести-

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

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

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

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

Подход гибкой разработки основывается на принципах Agile, особое внимание в которых уделяется взаимодействию между людьми, работающим продуктам, постоянной коммуникации с заказчиком и готовности к изменениям, в отличие от традиционного сосредоточения на процессах и инструментах, исчерпывающей документации, согласования условий контракта и следованию первоначальному плану [3].

Если более детально рассмотреть особенности создания приложений для мобильных устройств, можно прийти к выводу, что они накладывают на разработку ограничения, которые описываются в Agile, как «правило креста» [4]. Создаваемое приложение может отвечать любым трем параметрам («хорошо», «быстро», «дешево»), но четвертый параметр «готово» останется неподвластен управлению.

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

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

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

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

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

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

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

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

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

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

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

X X

о

го А с.

X

го m

о

м о м

CJ

fO CS

0

CS

01

о ш m

X

<

m О X X

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

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

К примеру, если посмотреть статистику распространения операционных систем на мобильных телефонах, можно сделать вывод, что рынок, в основном, делится между операционными системами (ОС) iOS (27,8%) и Android (71,5%) [5]. Для эффективного создания приложений под ОС Android от разработчиков требуется знание метода разработки Android Studio с Android фреймворком и языков программирования Java и Kotlin. Для создания приложений под ОС iOS необходимо владение языками программирования Swift и Objective-C.

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

Рассмотрим одно из возможных решений данной проблемы в стиле Agile - Xamarin фреймворк от компании Microsoft. Данная платформа имеет открытый исходный код и предназначена для построения современных производительных приложений для iOS, Android и Windows с .NET. Платформа Xamarin позволяет создавать кроссплатформенные приложения на широко используемом разработчиками языке программирования С#. Такие приложения эффективно выдают реакцию на события эквивалентную системам, под которые они были написаны. Подобными возможностями обладает фреймворк Flutter от компании Google на виртуальной машине Dart [6]. Данная платформа в большей степени ориентирована на пользовательский интерфейс и на визуализацию его компонентов. Помимо возможности создания приложений под iOS и Android, фреймворк Flutter поддерживает ещё Web и Desktop.

Также в стиле Agile можно считать разработку с применением библиотеки Qt. Платформа Qt предназначена для разработки кроссплатформенного программного обеспечения на языке программирования С++, широко применяющегося в среде разработчиков. Помимо возможности создания приложений под iOS и Android, фреймворк Qt поддерживает ещё Windows, OS X, X11, QNX и встраиваемые Linux-системы. Для запуска программного обеспечения, созданного на платформе Qt достаточно просто скомпилировать программу для каждой операционной системы, без изменения ее исходного кода. Данная платформа содержит основные классы для работы с элементами графического интерфейса, сетью, базами данных и XML.

Для демонстрации адаптивной возможности библиотеки Qt, рассмотрим конфигурацию, описывающую её развертывание и размещение других компонент моделируемой системы документооборота предприятия на узле. На следующей схеме представлен упрощенный пример типичного процесса документооборота предприятия (Рис. 1).

Работа с входящими документами

О

Получен« корреспон- Регистрация документе Занес»« документа Отправка на

денции в систему ИСП0ЛН5НИВ

Выюлнвич работа документу

Документ на контроле

Приема

Контроль -

дакунента

Рис. 1. Типичный процесс документооборота предприятия

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

Рассмотрим один из вариантов конфигурации моделируемой системы, представляющей собой удаленное хранилище данных с интегрированными инструментами создания вебсайтов и организации документооборота. Допустим, конфигурация данной система документооборота, как и многих систем подобного класса, имеет клиентскую и серверную части. Предположим, серверная часть представляет собой веб-сервер Apache и ядро системы в качестве надстройки над ним. В качестве файлового сервера допустим использование хостинга. Предложим разработать в качестве клиентской части приложение, написанное на С++ с применением библиотеки графических интерфейсов Qt (для сотрудников компании-заказчика), и сайт, базовый функционал которого, к примеру, реализован посредством PHP, а дополнительный опциональный инструментарий создан при помощи технологии Ajax. Таким образом система делится на три части: файловая система, в которой хранятся версии документов, расширяемое ядро, содержащее реализацию базовых и опциональных функций, и реестр, в котором в типизированном виде хранятся переменные окружения, начиная от свойств системы и заканчивая метками виртуальной файловой системы. Допустим, данные размещаются в файловой системе на одном уровне: в одной физической папке, в дереве виртуальных папок. Обращение по реальным адресам затруднено, так как имена файлов представляются в MD5-шифре (исходными данными для шифрования являются некоторые свойства документа, например, время создания, представленные в реестре системы в явном виде), а MIME-тип смещается. В случае санкционированного доступа шифрованное имя создается заново из данных, хранящихся в реестре по шаблону шифрования, представленному там же.

Благодаря техническому предложению использовать в разработке данной системы кроссплатформенную библиотеку графических интерфейсов Qt и технологии Ajax появляется возможность с минимальными затратами ресурсов адаптировать такую систему документооборота под мобильные средства, к примеру, для увеличения способов получения информации и соответственно сокращения времени работы, отведенного ей по плану. Адаптацию можно проводить двумя способами: посредством арендуемых SMS сервера и короткого номера и за счет оптимизации Qt-приложения и сайтов под мобильные устройства. Таким образом, приложение сохраняет в себе все возможности системы электронного документообо-

рота, но достигаются они за счет оригинального использования имеющихся скромных ресурсов субъекта малого предпринимательства. К достоинствам подобной разработки можно также отнести мобильность и расширяемость, так как весь функционал по обработке данных предполагается реализовать на сервере. Аппаратно-программный комплекс для работы с системой минимален: ЭВМ (в том числе мобильное устройство) с браузером, а клиентская часть только обменивается с сервером HTTP протоколами. Вычисления производятся на сервере, что обеспечивает мобильность разработки. Расширяемость приложения обеспечивается за счет специальной разметки, содержащейся в запросе от клиентской части серверу, что позволяет серверу распознать исходные данные для разных скриптов. Таким образом, на базе хранилища и функций по сбору и воспроизведению информации можно реализовать систему документооборота различного профиля и сложности.

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

Development for mobile devices (particulary ANDROID). Features of mobile

application development Shabinsky D.E., Meshcheryakov G.A.

Peter the Great St. Petersburg Polytechnic University JEL classification: C10, C50, C60, C61, C80, C87, C90

The article deals with software development for mobile devices issues. The marked trend in use of mobile device continues to grow in information infrastructure. Such features of mobile application development industry as user stories, functionality, scalability and performance of the application, the number of devices different views, screen permissions, OS versions are considered in the article. Taking into account these features, there is an overview of the most effective approaches to their creation, including flexible development and principles of Agile. The author of article offers a set of practical recommendations to developing mobile software devices based on electronic document management system using cross-platform Qt library.

Keywords: mobile applications, flexible development, cross-platform software, QT

Library References

1. The most recent Digital 2022 Global Overview report. - 2022 [Electronic resource].

- Access mode: https://vc.ru/marketing/383351-samyy-svezhiy-otchet-digital-2022-global-overview. - Date of access: 04/28/2023.

2. Jacobson A., Butch G., Rambo J. Unified software development process. - St.

Petersburg: Peter, 2002. - 496 p.

3. Agile software development manifesto. - 2001 [Electronic resource]. - Access

mode: http://agilemanifesto.org/iso/ru/manifesto.html. - Date of access: 04/28/2023.

4. Martin R. S. Pure Agile. Fundamentals of flexibility. - St. Petersburg: Peter, 2020. -

352 p.

5. Statistics on the use of browsers and mobile devices. - 2023 [Electronic resource].

- Access mode: https://l-tech.ru/posts/worldwide-web-and-mobile-browser-market-stat. - Date of access: 04/28/2023.

6. Introduction to DartVM. - 2022 [Electronic resource]. - Access mode:

https://mrale. ph/dartvm/ - Access date: 04/28/2023.

Литература

1. Самый свежий отчет Digital 2022 Global Overview. -2022 [Электронный ресурс]. - Режим доступа: https://vc.ru/marketing/38335l-samyy-svezhiy-otchet-digital-2022-global-overview. - Дата доступа: 28.04.2023.

2. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. — СПб.: Питер, 2002. — 496 с.

3. Agile-манифест разработки программного обеспечения. - 2001 [Электронный ресурс]. - Режим доступа: http://agilemanifesto.org/iso/ru/manifesto.html. - Дата доступа: 28.04.2023.

4. Мартин Р. С. Чистый Agile. Основы гибкости. — СПб.: Питер, 2020. — 352 с.

5. Статистика использования браузеров и мобильных устройств. - 2023 [Электронный ресурс]. - Режим доступа: https://l-tech.ru/posts/worldwide-web-and-mobile-browser-market-stat. - Дата доступа: 28.04.2023.

6. Introduction to Dart VM. - 2022 [Электронный ресурс]. -Режим доступа: https://mrale.ph/dartvm/ - Дата доступа: Н

28.04.2023.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

О го А С.

X

го m

о

м о м

CJ

i Надоели баннеры? Вы всегда можете отключить рекламу.