Создание и вывод на рынок приложения для создания и управления таймерами для платформы iOS
React Native и другие программные средства кроссплатформенной разработки. Проведение исследования языка программирования, API и фреймворки. Создание, разработка и распространение B2C продукта для отслеживания и менеджмента пользовательского времени.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 28.08.2020 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
«ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»
Факультет Бизнеса и менеджмента
Выпускная квалификационная работа
Создание и вывод на рынок приложения для создания и управления таймерами для платформы iOS
Примечаев Алексей Сергеевич
Москва, 2020
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ПРЕДПОСЫЛКИ ИССЛЕДОВАНИЯ
1.1 Краткий обзор рынка мобильных приложений
1.2 Обзор-сравнение приложений для тайм-трекинга и тайм-менеджмента
1.3 Выбор платформы и формулировка концепции
1.4 Выбор модели распространения
1.5 Выбор модели монетизации
1.6 Итог
ГЛАВА 2. ИНСТРУМЕНТАЛЬНЫЕ МЕТОДЫ И СРЕДСТВА РЕШЕНИЯ ПОСТАВЛЕННОЙ ПРОБЛЕМЫ
2.1 Выбор технологической платформы для разработки
2.2 Инструменты прототипирования
2.3 Итог
ГЛАВА 3. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ПРЕДЛОЖЕННОГО ПОДХОДА
3.1 Создание прототипа приложения
3.2 Разработка продукта
3.3 Создание вспомогательных материалов
3.4 Итог
ГЛАВА 4. ИТОГИ РАЗРАБОТКИ
4.1 Обзор пользовательских отзывов
4.2 Рыночные показатели продукта
4.3 Итог, выводы и планы на будущее
ЗАКЛЮЧЕНИЕ
ИСТОЧНИКИ
ВВЕДЕНИЕ
Актуальность
Рынок мобильных приложений растет из года год. Обе из доминирующих рынок компаний, Apple и Google, не перестают докладывать как о рекордных количествах приложений, загруженных на платформы для их распространения, Apple App Store и Google Play Store, так и о беспрецедентных прибылях от этих платформ [1] [2].
В современном мире продуктивность -- крайне важный фактор, от которого зависят жизни людей и компаний. Она определяет эффективность выполнения задач: как рабочих, так и личных. Большая продуктивность дает людям возможность тратить меньше времени на отдельно взятую задачу, решать больше задач, и, соответственно, генерировать большую полезность за меньшее количество времени, позволяя жить более полноценной и эффективной жизнью.
Тайм-менеджмент и тайм-трекинг остаются одними из самых важных аспектов, определяющих продуктивность человека. Они позволяют индивидуумам отслеживать и контролировать время, затрачиваемое на различные задачи и, в конечном счёте, быть более осведомленными о процессах и паттернах в собственных жизнях.
В условиях возрастающей потребности людей совмещать все большее количество навыков и требующих их для своего решения их проблем, возникает проблема невозможности держать в голове большое количество одновременно происходящих процессов. Из этого возникает потребность в продукте, который позволял бы пользователям иметь возможность легко и удобно отслеживать несколько параллельно происходящих задач, а в дальнейшем имел функционал для логирования происходящих событий, чтобы пользователи могли анализировать, как именно они распределяют собственное время.
В данной работе будут описаны все аспекты разработки данного продукта: формулирование концепции, краткий анализ рынка, создание прототипа, разработка конечного продукта и его распространение через выбранную платформу. Будут представлены: обоснование выбора платформы для разработки, технологий и библиотек, обзор конкурентов, а также подхода к созданию продукта.
В завершении работа будет заключать вывод о проделанной работе и о результативных показателях продукта относительно поставленных целей и задач.
Цель работы
Цель работы определяется как создание, разработка и распространение B2C продукта для отслеживания и менеджмента пользовательского времени.
Задачи работы
Определив поставленную цель работы, можно выделить несколько этапов, необходимых для её достижения:
Провести рыночное исследование и определить ключевые факторы, важные для продукта, а также проанализировать существующие аналоги на рынке
Сформировать концепцию продукта, который будет выпущен для широкой публики
Создать прототип продукта, используя средства прототипирования приложений
Разработать продукт, используя набор программных инструментов, который будет определен в данной работе
Вывести продукт на рынок, используя платформу для распространения цифровых продуктов, которая будет определена во время выполнения данной работы
Оценить и измерить ключевые показатели продукта, включая отзывы первых пользователей, данные об установках, продажах и использовании
Сделать вывод относительно выполненной работы, продуктовых результатов
Предмет исследования
Предметом исследования является цифровой продукт -- мобильное приложение, отвечающий описанию, сформулированному в цели исследования, привносящее новую ценность на рынок мобильных приложений.
Объект исследования
Объектом исследования является область цифровых инструментов для тайм-трекинга и тайм-менеджмента, в которую входит и предмет исследования.
Практическая значимость
Данная работа содержит как анализ рынка существующих решений, в некоторой степени отвечающих задаче разрабатываемого продукта, так и описание полного цикла разработки и вывода на рынок альтернативного решения. В совокупности исследование содержит практическую и аналитическую части, каждая из которых характеризуется научной новизной и имеет ценность для исследователя и для мира.
С практической точки зрения, исследователь получает возможность применить и развить навыки, полученные во время обучения на образовательной программе. Эти навыки можно сгруппировать в следующие категории:
Навыки рыночного анализа и маркетинга
Навыки продуктовой аналитики и формулирования продуктовых гипотез
Навыки проектирования и прототипирования
Навыки разработки цифровых продуктов и программирования в частности
С точки зрения универсальной ценности, данное исследование будет содержать следующие факторы, влияющие на предмет исследования:
Анализ рынка мобильных приложений
Анализ подкатегории мобильных приложений для платформы, выбранной для распространения решения
Анализ существующих решений с точки зрения удобства использования
Анализ специфики операционных систем, одна из которых будет выбрана для дальнейшей разработки продукта
Анализ программных средств, с помощью которых будет осуществлена разработка продукта
Определение ключевых терминов
Специфика работы является пересечением областей понятий цифровых продуктов, мобильных приложений, продуктивности, а также удобства использования. В связи с этим, необходимо определить некоторые ключевые термины, которые будут использоваться в данной работе:
Мобильное приложение (англ. -- Mobile Application or App) программное средство, разработанное для исполнения на мобильном устройстве, таком как смартфон или планшет. В отличие от традиционных компьютерных приложений, наиболее важными компонентами таких приложений являются энергоэффективность и функциональность в условиях небольшой доступной площади взаимодействия. Термин приобрел популярность в середине 2000х, после того как компания Apple представила платформу App Store для распространения этих приложений. В настоящее время это самый популярный тип программных средств, а компании Apple и Google практически единолично контролируют рынок приложений при помощи закрытых платформ для их распространения Apple App Store и Google Play Store. Интерфейс, или пользовательский интерфейс (англ. -- User Interface, UI) -- точка человеко-компьютерного взаимодействия и коммуникации. Понятие может включать в себя дисплеи, различные устройства ввода, а также специфику отображения информации на экране. Контекст данного исследования, -- мобильные приложения, подразумевает графический интерфейс в качестве принципа отображения и организации информации в программном продукте, и тачскрин как основное устройство ввода. [3, 4]
Пользовательский опыт, или UX (англ. -- User Experience) -- совокупность эмоций, которые испытывает пользователь во время использования продукта, а также характеристик процесса его взаимодействия с продуктом. Мерой качественности пользовательского опыта является юзабилити[4] [5]. Юзабилити, или удобство использования (англ. -- Usability) -- мера того, насколько удобен, или неудобен инструмент или продукт. [4] [5]
Фреймворк (англ. -- framework) -- абстракция, предоставляющую общий код, который затем может быть дополнительно изменен при помощи пользовательского кода, таким образом предоставляя программно-специфичное ПО[6] [7]. Методы исследования
Рыночное исследование, а также анализ целевой аудитории продукта будут произведены с использованием открытой статистики относительно области мобильных приложений в целом и её подкатегории приложений для продуктивности в частности. Формулировка концепции приложения, а также выбор подхода для разработки, будут произведены на основе данного анализа.
Выбор инструментов, необходимых для разработки программного продукта, тесно связан с выбором платформы для разработки, поскольку платформа в значительной степени ограничивает список доступных инструментов, с помощью которых проект может быть разработан. Исследование языков программирования и средств разработки будет проведено при помощи, в том числе, изучения информационных онлайн-ресурсов и некоторых литературных источников, хотя специфика вопроса в большей степени заставляет фокусироваться именно на онлайн-ресурсах из-за свойственной им большей актуальности.
Ожидаемые результаты исследования
Результатами исследования будут являться проведенный анализ ключевых областей знаний, необходимых для разработки результирующего продукта, а также разработанный и выпущенный продукт, отвечающий поставленной цели.
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ПРЕДПОСЫЛКИ ИССЛЕДОВАНИЯ
Ввиду выбранного объекта исследования, следуя задачам, определённым во введении, требуется провести анализ рынка мобильных приложений, а также его субсекции -- приложений для тайм-трекинга и тайм-менеджмента.
1.1 Краткий обзор рынка мобильных приложений
Общая характеристика
Операционные системы Apple и Google, iOS и Android, практически полностью делят рынок мобильных приложений. По данным на 2019 год, 72.26% всех мобильных устройств работает на Android, и 27.03% на iOS [1] [2].
Каждая из операционных систем имеет свою платформу для распространения приложений. Соответствуя самым популярным операционным системам, наиболее популярные платформы -- это Google Play Store и Apple App Store. Вместе, эти платформы представляют более 4 активных устройств, что представляет колоссальную рыночную возможность.
Общее количество доступных приложений на 2020 год превышает 2.5 миллиарда для Play Store и 1.5 миллиарда для App Store. За 2019 год пользователи загрузили более 200 миллиардов приложения на обеих платформах коллективно, при этом, обращая внимание на данные за предыдущие годы, становится очевидным тренд на рост [1] [2] [8].
За 3 квартал 2019 года, прибыль от этих платформ составила $14.2 миллиарда долларов для App Store и $7.7 миллиарда долларов для Play Store. [1] [2]
Подытожив, стоит отметить значительные преимущества App Store как платформы, определяющие его большую привлекательность для разработчиков:
Значительно большая прибыль при значительно меньшей рыночной доле
Большее количество установок приложений на одно и то же количество устройств, что свидетельствует о большем customer engagement
Широкие средства аналитики через сервис App Store Connect [9]
Превосходящее удобство разработки в связи с факторами, определёнными в главе 2
1.2 Обзор-сравнение приложений для тайм-трекинга и тайм-менеджмента
В каждом из магазинов приложений, App Store и Google Play, существует более 20 категорий приложений, внутри которых происходит основная конкуренция между схожими по сущности приложениями.
Следуя из определённой ранее цели продукта, приложение подходит для нескольких категорий, согласно их описаниям, представленным Apple и Google.
Productivity, как определена у Apple, -- приложения, задача которых -- сделать определённый процесс более организованным, или эффективным. Примеры от Google: приложение для заметок, таск-менеджер, клавиатура, приложение для печати, календарь, калькулятор, т.д.
Apps that make a specific process or task more organized or efficient. [10] [11]
Utility (Play Store -- Tools), -- приложения, позволяющие пользователям решать определённую специфическую задачу или проблему. Примеры: часы, измерение времени, веб-браузеры, фонарики, менеджеры паролей, т.д. [10] [11]
Имея в виду определения от обеих компаний, приложение идеально подходит для каждой из этих двух категорий, и обе платформы позволяют указать до двух категорий для своего приложения, что определит секцию магазина, в которой приложение будет показываться пользователям, а также основу для осуществления рекомендаций и участии в подборках.
По данным на ноябрь 2019 года, категории Productivity и Utility, представляют более 10 процентов от общего количества приложений. Что касается загрузок, категория Utility входит в топ-5 самых популярных категорий среди пользователей. [12]
Далее последует анализ самых популярных приложений, относящихся к теме исследования, находящихся в категориях Utility и Productivity, поскольку с ними будет происходить основная и прямая конкуренция, а также тайм-трекинг и тайм-менеджмент приложений, выходящих за границы этих категорий, поскольку механизм обнаружения приложений пользователями, помимо подборок и браузинга по категории предполагает также поиск: который осуществляется по названию, тегам, а также другим метаданным.
В итоге будут сформулированы и сгруппированы характеристики приложений и пользовательских задач, которые они решают. На основе этой информации будет определена и сформулирована концепция продукта, на основе которой будет проектироваться и разрабатываться конечный продукт.
iOS&Android Clock&Reminders
Первые инструменты, к которым прибегают пользователи при попытке решения возникающих проблем, -- приложения, предустановленные на их устройство. Поэтому необходимо проанализировать функционал встроенных нативных приложений [Рисунок 1].
Примечание: приложение с таймерной функциональностью для Android принципиально идентично таковому у iOS, и потому рассмотрено не будет, а аналога приложения Reminders, встроенного в эту платформу, не существует.
Выделенные особенности:
Clock
Возможность устанавливать и запускать таймер, выбирать звук по завершении
Невозможность хранить пресеты таймеров для популярных задач, из-за этого необходимо настраивать таймер вручную каждый раз в момент возникновения задач
Рисунок 1. Стоковые приложения iOS.
Невозможность запуска нескольких таймеров одновременно, что не представляет возможности для мультизадачности пользователя
Невозможность хранения записей прежде запущенных таймеров, что лишает пользователей возможности для тайм-трекинга.
Reminders
Возможность установки произвольного количества задач, группировка их по папкам
Присутствие папок для группировки задач
Отображение выполненных задач в логе приложения
Отсутствие временных интервалов для выполнения задач
В итоге, встроенные приложения либо обладают лишь базовым функционалом, и не подходят для полноценного тайм-трекинга и тайм-менеджмента, либо не подходят для обозначенной цели работы и ограничивают пользовательские сценарии.
Timer+ & Multitimer
Следующая рассмотренная группа приложений -- приложения для установки нескольких таймеров. [13] [14] [Рисунок 2]
Выдеденные особенности:
Timer+
Возможность установки неограниченного количества таймеров, их параллельное исполнение
Интерфейс, похожий на нативный
Присутствие рекламы в приложении
Невозможность быстрого создания и запуска таймеров
Невозможность отслеживания предыдущих активностей
Multitimer
Возможность установки неограниченного количества таймеров, их параллельное исполнение
Крайне неудобный интерфейс
Ограничение на количество таймеров
Рисунок 2. Timer+ и Multitimer
Pomodoro Timers
Далее рассмотрена категория таймеров для продуктивности, основанных на концепции Pomodoro. В обоих магазинах приложений существует множество экземпляров подобных приложений [15] [16] [Рисунок 3].
Рисунок 3. Pomodoro Timers
Особенности:
Фокус на продуктивности, подразумевается зацикливание разнородных таймеров, есть некоторая степень настройки
Не предусмотрено одновременное хранение нескольких типов таймеров
Узкая специализация на методологии Pomodoro, неприменимость к таким задачам, как готовка, мультизадачность, отслеживание времени.
Toggl & Timery
Приложения из этой группы фокусируются на аспекте тайм-трекинга. Подразумеваются глубокая настройка таймеров, их тегирование и категоризация [17] [18] [Рисунок 4].
Рисунок 4. Timery&Toggl
Особенности:
Логирование. Приложения выделяются среди прочих полнофункциональной историей запущенных прежде активностей
Невозможность обратного отсчёта задач, из-за чего задачи необходимо останавливать вручную
Невозможность мультизадачности, поскольку одновременно есть возможность запустить лишь один таймер
1.3 Выбор платформы и формулировка концепции
Проанализировав рынок, можно прийти к выводу, что существует большое множество решений, в какой-то степени отвечающих цели исследования. Однако ни одно из них не лишено проблем:
Мультитаймеры (Timer+, Multitimer) -- неудобны в использовании ввиду: невозможности быстрого создания таймера (в отличие от встроенных системных приложений), сложного UX (для совершения почти всех действий требуется избыточное количество нажатий), а также проблематичных моделей монетизации (реклама, ограничение количества таймеров)
Таймеры для продуктивности (Pomodoro) -- подразумевают крайне узкий спектр сценариев использования ввиду ограничений методологии, из-за чего не подходят для большинства пользователей, ограничивая свою потенциальную рыночную долю
Тайм-трекеры (Timery, Toggl) -- допускают одновременное существование только одной временной единицы (таймера), что делает непригодным их использование для многозадачности, что ввиду реалий современных рабочих и домашних процессов, с которыми сталкиваются люди, ограничивает валидные сценарии использования.
Обращая внимание на эти недостатки, представляется возможным и перспективным создание продукта, разрешающего обозначенные проблемы приложений из каждой категории, а также объединяющее их функциональность, что позволило бы привлекать максимально широкую аудиторию ввиду соответствия в качестве инструмента задачам, которые ставят пользователи проанализированных существующих приложений.
Таким образом, продукт подразумевает:
Возможность параллельной работы нескольких таймеров для осуществления многозадачности
Настройка и хранение пресетов для таймеров для повторяющихся задач
Быстрое создание таймеров
Простой, удобный и компактный интерфейс
Настройка точности таймеров
Логирование временных записей
При этом, принимая решение на основе рыночного анализа, в качестве целевой платформы был выбран Apple App Store.
Имея в виду вышеописанное, представляется возможным сформулировать концепцию продукта. Продукт -- приложение для создания и запуска таймеров для платформы iOS, с возможностью логирования в перспективе.
1.4 Выбор модели распространения
На данный момент, менее 10% всех приложений на платформе Apple App Store являются платными, -- все остальные обязательно имеют минимальный бесплатный функционал [19].
Создавая приложение, разработчик должен иметь в виду модель распространения своего продукта, поскольку это во многом определит различные аспекты дизайна и функционала продукта.
Apple приводит следующие бизнес-модели на своем сайте: [20]
Бесплатная модель. Полностью бесплатное приложение, не имеющее открытых и скрытых покупок. Разработчик может монетизировать такое приложение при помощи:
Показа рекламы
Продажи пользовательских данных
К подобным приложениям можно отнести большинство социальных сетей, а также некоторые игры.
Freemium модель [21] [22]. В этой модели, пользователи ничего не платят до непосредственной загрузки на свое устройство и начала пользования продуктом. В дальнейшем приложение может предоставлять им доступ к дополнительному премиальному функционалу, используя такие средства как внутренние покупки и подписки. Эта модель позволяет пользователям познакомиться с продуктом, и в дальнейшем улучшить свой опыт от использования за денежную плату. Этой модели обычно принадлежат:
Большинство игр
Некоторые профессиональные приложения
Лайфстайл приложения
Платная модель. Пользователи платят один раз при загрузке приложения, и затем пользуются полным функционалом продукта без каких-либо ограничений. Такие приложения формируют ожидание премиальности, что должно отражаться в качестве иконок, дизайна, функциональности и удобства. Формируют ожидание отсутствия дополнительных внутренних покупок. К таким часто относятся:
Большие студийные игры
Некоторые профессиональные приложения
Paymium модель. Комбинация платной модели и freemium. Пользователи платят чтобы загрузить приложение, и помимо этого имеют доступ к дополнительному функционалу за деньги.
Далее данные категории будут оценены с точки зрения тех или иных преимуществ для продукта на рынке:
Конверсия новых пользователей: Freemium и бесплатная модели превосходят иные из-за отсутствия необходимости платить сразу, а также обладают более низкими требованиями к созданию ощущения премиальности по первому впечатлению.
Возможность конвертировать бесплатных пользователей в платных:
Бесплатное: бесплатное приложение, которое затем приобретает платный функционал, или делает бесплатный ранее функционал платным, может вызвать чувство отчуждения у существующей пользовательской базы из-за необходимости тратить материальные средства на что-то, что раньше было бесплатно.
Freemium: приложение, изначально имеющее платный функционал предупреждает пользователей о существовании премиальных функций, и имеет возможность сконвертировать не платящих пользователей в платящий при помощи увеличения ценности предложения платных функций, а также внутренних инструментов маркетинга.
Платное и paymium: на рынке существует малое количество приложений, имеющих входную цену, а также внутренние покупки, поскольку пользователи ожидают, что приобретают полный продукт.
Возможность постоянного дохода от продукта:
Бесплатное: позволяет иметь пассивный доход при наличии рекламы или продажи пользовательских данных. Оба подхода опираются на наличие активной пользовательской базы.
Freemium и paymium: либо от новых внутренних покупок, либо от автовозобновляемых или невознобляемых подписок.
Платные: только от привлечения новых пользователей, что означает, что после достижения точки насыщения рынка приложение теряет возможность генерировать прибыль. В таких случаях чаще всего разработчики или выпускают новую версию приложения отдельной сущностью, за которую необходимо платить отдельно, либо переходят на иные модели монетизации.
Резюмируя, наиболее оптимальной моделью для нового продукта на текущий момент является freemium, в которой приложение предоставляет всем пользователям базовый функционал и содержит набор премиальных функций, за которые необходимо платить дополнительные деньги.
1.5 Выбор модели монетизации
Видом внутренних покупок была выбрана автоматически возобновляемая подписка по следующим причинам:
В отличие от одноразовых покупок, позволяет иметь постоянный доход от активных пользователей
Оправдывает для разработчика дальнейшую поддержку и работу над приложением
Позволяет просто и однозначно разграничивать платный и бесплатный функционал
Дает возможность с большой точностью предсказывать прибыль за промежуток времени, имея информацию о количестве подписчиков
По аналогии с большинством популярных приложений, использующих данную модель, будут предложены 2 тарифа: ежемесячный и ежегодный.
1.6 Итог
В соответствии с проведенным анализом, становится возможным определить продукт как приложение для платформы Apple App Store, распространяемое по модели freemium и использующее подписочную модель монетизации. Функционально, приложение обладает функционалом создания и запуска таймеров для платформы iOS, с возможностью логирования в перспективе.
ГЛАВА 2. ИНСТРУМЕНТАЛЬНЫЕ МЕТОДЫ И СРЕДСТВА РЕШЕНИЯ ПОСТАВЛЕННОЙ ПРОБЛЕМЫ
2.1 Выбор технологической платформы для разработки
Сделанный в предыдущей главе выбор в пользу одной из платформ ограничил технологические опции в разработке приложения, однако все равно предстоит принять несколько решений относительно используемых средств прототипирования, языков программирования, сред разработки, фреймворков, программных интерфейсов и библиотек.
Технологическая платформа
Данный компонент технологической базы описывает программную архитектуру приложения. Это верхнеуровневый элемент, определяющий доступные фреймворки, программные интерфейсы, языки программирования и другие аспекты.
Native App
Под Native App подразумевается приложение, разработанное специально для конкретной платформы, используя родные компилятор и фреймворки. Приложения подобного типа имеют доступ к специфическим для платформы развертки программно-аппаратным средствам. [23]
В контексте определенной ранее платформы приложения, это означает доступ к следующим уникальным возможностям:
Системные API для уведомлений, подсчёта времени, и отрисовки интерфейса
Малый размер скомпилированного приложения
Высокая энергоэффективность и производительность
Доступ к фреймворкам, таким как SwiftUI, Combine, CoreData и прочим
Богатая база библиотек
В числе недостатков подобного подхода стоит отметить следующие: разработка может занимать больше времени, чем используя альтернативы; спектр доступных платформ ограничен лишь одной.
React Native и другие программные средства кроссплатформенной разработки
Гибридное решение, компилирующее Javascript код в исполняемый нативно на iOS и Android. По сравнению с разработкой нативного приложения, главное преимущество -- возможность разработки одной версии для нескольких платформ без необходимости адаптировать версии под специфические операционные системы.
Недостатками являются: пониженная безопасность, ограниченная база компонентов, пока малая поддержка сообщества с точки зрения руководств и библиотек, а также более низкие производительность и энергоэффективность. [23] [24]
Web App
Начиная с 2017 года, все большую популярность приобретают так называемые веб-приложения, -- веб-сайты, отвечающие формальным критериям приложения и имеющие некоторый ранее уникальный для non-web приложений функционал, такой как push-уведомления (только десктоп и Android) и офлайн работу; но исполняемые не нативно на устройстве, а в веб-браузере.
Очевидным плюсом такого подхода можно назвать, как и в случае с React Native, возможность кроссплатформенного функционирования приложения с еще большей степенью совместимости с различными платформами.
Недостатки: требование развертки сервера и в целом возрастающая стоимость разработки, связанная с необходимостью искать или разрабатывать с нуля замену многим компонентам (таким, как система уведомлений, офлайн-работа, работа в фоне), которые предусмотрены при разработке нативного мобильного приложения. Отсутствие поддержки push-уведомлений для платформы iOS -- ключевое ограничение ввиду специфики разрабатываемого продукта. Помимо этого, важнейшим фактором является значительно сниженная производительность и качество анимаций и других аспектов, влияющих на пользовательский опыт. [25]
Итог
В связи со всеми обозначенными плюсами и минусами каждого из подходов, было принято решение сфокусироваться на разработке нативного приложения, поскольку это позволит получить максимально качественный пользовательский опыт при низких затратах, жертвуя поддержкой иных платформ.
Язык программирования, API и фреймворки
Выбранная платформа подразумевает возможность работы с двумя основными языками: Objective-C и Swift.
Objective-C -- компилируемый объектно-ориентированный язык программирования, используемый корпорацией Apple, построенный на основе языка Си и парадигм Smalltalk. Ранее использовался как приоритетный язык разработки приложения под все платформы Apple, пока не был сменён в этом статусе языком Swift.
Swift -- компилируемый мультипарадигмовый язык программирования, представленный Apple в 2014, предназначенный для написания приложений для платформ iOS, macOS, tvOS, watchOS. На данный момент актуальной версией является Swift 5.1. Отличается более простой и лаконичной структурой файлов, улучшенным менеджментом памяти, но, по опыту автора данного исследования, меньшей скоростью компиляции. [26]
Если ранее, на момент выхода языка Swift, вопрос выбора языка приложения для iOS стоял остро, поскольку экосистема Swift была крайне молодой и не позволяла реализовать многие функции, то сейчас ситуация обратная: подавляющее большинство актуальных современных библиотек и фреймворков разработано исключительно на языке Swift, в то время как приоритетной задачей Objective-C является поддержка старых библиотек и приложений, которые еще не осуществили переход на новую технологию. [27]
Выбирая основной фреймворк для интерфейса, на текущий момент перед разработчиками стоит выбор между UIKit и SwiftUI.
SwiftUI -- декларативный интерфейсный фреймворк, представленный в июне 2019 года и официально поддерживаемый операционной системой iOS c версии 13, вышедшей осенью 2019 года. Среди ключевых особенностей фреймворка стоит отметить значительно меньшее количества строчек кода для отрисовки одного и того же интерфейса (по сравнению с UIKit), фокус на реактивном программировании, что значит, что интерфейсные элементы автоматически реагируют на изменения данных без необходимости ручной разработки алгоритмов для этого со стороны разработчика. Помимо этого, присутствует Live Preview, позволяющее предпросмотреть итоговый вариант интерфейса до исполнения кода на устройстве или симуляторе, а также кроссплатформенность (внутри операционных систем Apple). У фреймворка имеются также и недостатки. В данный момент количество базовых компонентов колоссально мало по сравнению с UIKit, а среда разработки Xcode плохо работает с синтаксисом данного фреймворка, часто некорректно указывая на допущенные ошибки. Однако, SwiftUI подразумевает возможность сосуществования с компонентами UIKit. Имплементация взаимодействия UIKit и SwiftUI крайне простая, и позволяет использовать UIKit там, где SwiftUI нецелесообразен [28] [29] [30].
Подводя итоги, преимуществами SwiftUI перед UIKit являются:
Декларативный принцип работы: поскольку фреймворк относится к декларативной парадигме программирования, SwiftUI-код легко читаем, более лаконичен чем императивный, а также повторяет иерархию и общую структуру интерфейса, которую он генерирует.
Меньший объем строк программного кода, необходимый для создания того же интерфейса, нежели у UIKit.
Встроенная поддержка Dark Mode и Dynamic Type -- системных функций, присутствие которых ожидается пользователями, а отсутствие необходимости вручную имплементировать их приводит к сокращению времени разработки.
Интеграция с фреймворком Combine для реактивного программирования, что позволяет разработчикам не тратить время на имплементацию решений для этого.
Live Preview -- возможность предпросмотра интерфейса до компиляции кода на реальном устройстве или симуляторе.
Отсутствие проблем с Auto Layout, задача которого позволить создавать адаптивные интерфейсы, адекватно отображаемые на устройствах с различными размерами экранов. Работу с Auto Layout можно охарактеризовать неудобной для разработчиков, ввиду часто возникающих проблем с Constraints и прочих общих ошибок с Layout. Вместо этого, SwiftUI полагается на HStack, VStack и прочие инструменты верстки, всегда генерирующие валидный интерфейс.
Отказ от Storyboard, -- инструмента для быстрого графического создания интерфейсов. Среди недостатков данного решения можно отметить низкую производительность, необходимость вручную поддерживать созданные сущности в программном коде, отсутствие контроля версий и прочее.
Возможность интеграции UIKit с SwiftUI при помощи протокола UIViewRepresentable, что позволяет закрыть некоторые проблемы, решением которых SwiftUI являться на текущий момент не может, более взрослым фреймворком UIKit.
В связи со всем вышеперечисленным было принято решение в качестве основного фреймворка использовать именно SwiftUI, при необходимости используя компоненты и методы UIKit.
2.2 Инструменты прототипирования
Разработке предшествует создание и разработка макета приложения и прототипа, задача которых в некотором приближении описать:
Внешний вид и эстетику приложения
Описание функциональных особенностей приложения
Описание пользовательского пути
Спецификация элементов верстки, анимаций
Создание данных описательных для конечного продукта аспектов необходимо для структурирования дальнейшей работы, определения промежуточных целей, а также оценки итогового результата.
В данном разделе будет определен инструментарий для создания макетов и прототипов.
Будут рассмотрены 3 самых популярных графических редактора: Adobe XD, Sketch и Figma.
Были определены следующие параметры, важные для выбираемого инструмента: программный фреймворк пользовательский
Производительность -- мера быстроты работы приложения, измерения производились на Apple MacBook 2017.
Прототипирование -- возможность проектирования логики взаимодействия различных компонентов создаваемого приложения друг с другом. Описывает удобство связывания экранов между собой, анимации и т.д.
Компоненты -- возможность создания и поддержки компонентов, задача которых упростить работу с повторяемыми в интерфейсе продукта элементами.
Поддержка расширений -- возможность расширения существующего функционала сторонними дополнениями.
Удобство использования -- субъективная мера удобства взаимодействия с той или иной программой.
Коллаборация -- возможность работы над одним документом нескольким людям.
Стоимость -- мера доступности того или иного решения.
Таблица 1. Сравнение инструментов дизайна и прототипирования [31]
Название программы |
Adobe XD |
Figma |
Sketch |
Adobe Photoshop |
|
Производительность |
4 |
2 |
3 |
1 |
|
Прототипирование |
Да, большое количество триггеров для переходов, Auto Animate для быстрой и удобной анимации |
Да, Smart Animate |
Базовое прототипирование и общие переходы |
Нет |
|
Компоненты |
Да, поддержка состояний и внутренних анимаций, адаптивной верстки |
Да |
Да |
Да, через CC Libraries |
|
Поддержка расширений |
Да, плагины |
Да, плагины и API |
Да, плагины и API |
Да, плагины и расширения |
|
Удобство использования |
4 |
2 |
3 |
1 |
|
Коллаборация |
Да, в реальном времени |
Да, в реальном времени |
Да, не в реальном времени |
Нет |
|
Цена |
Бесплатный тариф, оффлайн-функционал по подписке Creative Cloud |
Бесплатный тариф, Shared Libraries по подписке от $9.99/месяц |
Полностью платный инструмент, $99/год |
Полностью платный инструмент, доступен по подписке Creative Cloud |
|
Совместимость с другими инструментами |
Да, Photoshop, Illustrator, Sketch |
Да, Sketch |
Нет |
Да, Adobe XD, Illustrator |
По обозначенным выше параметрам, наиболее подходящим для выполнения функций создания макета и прототипа программным средством, является Adobe XD, вследствие чего этот инструмент будет выбран в качестве основного в данном исследовании.
2.3 Итог
Определённый в главе 1 продукт -- нативное приложение для платформы iOS, которое будет разработан в среде разработки Xcode с использованием фреймворков SwiftUI, Combine, CoreData, UIKit и других. В качестве языка программирования будет использован Swift.
Прототип и макет этого приложения будут разработаны при помощи инструмента для графического дизайна и прототипирования Adobe XD.
ГЛАВА 3. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ПРЕДЛОЖЕННОГО ПОДХОДА
3.1 Создание прототипа приложения
Первым этапом разработки стало создание макета и прототипа приложения. Были учтены Human Interface Guidelines для мобильных приложений, предоставленные компанией Apple, а для непосредственной отрисовки макетов и создания прототипа была использована программа Adobe XD [Рисунок 5].
Рисунок 5. Макеты приложения в Adobe XD
С точки зрения интерфейса и пользовательского опыта, прототип подразумевает гибкую верстку, одновременно вмещающую большое количество сущностей, большой размер доступных областей взаимодействия, а также выравнивание основных элементов управления в нижней области экрана. Все это должно положительно сказаться на удобстве использования.
Исследование подразумевало юзабилити-тестирование при помощи глубоких интервью, однако в связи с режимом самоизоляции это требование стало выполнить невозможно. Оценить удобство использования можно будет после получения первой аналитики из сервиса App Store Connect, а также пользовательских отзывов. [9]
3.2 Разработка продукта
Продукт был разработан, используя Xcode в качестве среды разработки, SwiftUI в качестве основного интерфейсного фреймворка, а также несколько библиотек с открытым исходным кодом для взаимодействия с компонентами UIKit: ASCollectionView и Introspect [32] [33] [34]. Для работы с данными был использован фреймворк CoreData. Помимо этого, была использована библиотека SwiftyStoreKit [35] для упрощения имплементации встроенных покупок (подписки). Полный цикл разработки занял 3 месяца.
Рисунок 6. Проект приложения в Xcode
Проект содержит 33 файла 8 классов 46 структур, огромное количество переменных, методов и более 4000 тысяч строк уникального программного кода [Рисунок 6].
Рисунок 7. Коммиты в Git
За все время работы было осуществлено более 150 коммитов [Рисунок 7] в системе контроля версий.
3.3 Создание вспомогательных материалов
Помимо прототипа и непосредственного исполняемого кода приложения, для релиза на платформе Apple App Store необходимо создание вспомогательных ресурсов.
Эти ресурсы:
Набор изображений различного разрешения для отображения в качестве иконки в разных частях системного интерфейса, а также на странице приложения в магазине.
Метаданные, такие как Promotional Text, описание, теги, категории, а также спецификации подписки
Дополнительные текстовые и графические ресурсы для внутренних покупок.
Рисунок 8. Иконки приложения и внутренних подписок
Созданные графические ресурсы продемонстрированы на рисунке 8, а также их и другие материалы можно найти в приложении 2.
3.4 Итог
После того, как продукт был разработан, он был загружен в Apple App Store и успешно прошёл проверку модерации магазина. В данный момент приложение доступно по ссылке в приложении 2.
ГЛАВА 4. ИТОГИ РАЗРАБОТКИ
4.1 Обзор пользовательских отзывов
Рисунок 9. Пользовательские отзывы
Продукт характеризуется преимущественно положительными отзывами от пользователей [Рисунок 9], однако некоторые пользователи отмечают следующие недостатки приложения:
Слишком высокая стоимость подписки/недостаточная ценность, которую она предоставляет. Невозможность логирования таймеров, что позволило бы анализировать затрачиваемое время
Недостаточная персистентность уведомлений, означающих конец таймера, что затрудняет возможность следить за текущими задачами
4.2 Рыночные показатели продукта
В этом разделе будут рассмотрены ключевые показатели продукта как App Store-сущности, в том числе показы пользователям, загрузки, а также продажи и данные относительно географии и retention.
Impressions
Согласно определению данному Apple, а также информации из сторонних источников, impression -- показ пользователю иконки приложения в любом месте в магазине, в том числе в поиске, в подборках, или внутри подкатегорий. Имея в виду этот показатель, представляется возможным рассчитать показатель конверсии, -- попадание на отдельную страницу приложения в магазине через impression [36] [9].
Рисунок 10. Impressions за время существования приложения
За время своего существования, приложение характеризуется респектабельным количеством impressions 398,113 [Рисунок 10] (и других фигур, о чем будет рассказано подробнее в соответствующих разделах), что ввиду отсутствия какого-либо маркетинга на данном этапе может показаться странным.
Рисунок 11. Приложение в подборках
При помощи сторонних сервисов, AppRadar и AppFollow [37] [38] [Рисунок 11] удалось обнаружить, что приложение вошло в несколько подборок от редакции App Store во многих странах. Даты попадания приложения в эти подборки соответствуют скачкам в популярности приложения, что, хоть и не однозначно, указывает именно на подборки как на основной инструмент успеха приложения.
Product Page Views
Количество просмотров страницы приложения в магазине.
Рисунок 12. Product Page Views за время существования приложения
Составило 16,218 показов за 2 недели [Рисунок 12]. Разделив на предыдущий параметр, можно получить показатель конверсии в 4%. Поскольку основным источником показов как таковых были подборки, данный показатель может считаться вполне приемлемым, поскольку в подобных подборках может быть от 10 до 30 приложений.
App Units
App Units -- количество загрузок приложения.
Рисунок 13. App Units за время существования приложения
За период продолжительностью 2 недели приложение было загружено 1,348 раз [Рисунок 13]. Конверсия из просмотра страницы приложения в успешную загрузку составила порядка 8%. Согласно информации Apptweak [39], средним показателем по всему магазину является конверсия в 32.53%. Показатель с уверенностью можно считать низким, поскольку внутри категории Productivity, к которой относится приложение, средняя конверсия еще выше: 57.4%.
Sales
Sales -- сумма денег, которую пользователи потратили на приложение.
Рисунок 14. Sales за время существования приложения
За 2 недели приложение заработало 53 доллара [Рисунок 14]. При сохранении темпа загрузок, на данный момент приложение зарабатывает порядка 110 долларов в месяц.
Sales per Paying User
Sales per Paying User -- метрика, показывающая среднее значение денег, которые каждый платящий пользователь тратит на приложение в день.
Рисунок 15. Sales per Paying User за время существования приложения
Составила 6.63 доллара за первые 2 недели [Рисунок 15].
Sessions per Active Device
Количество сессий на активное устройство. Характеризует то, как часто люди, использующие приложение, открывают его и проводят в нем некоторое время.
Рисунок 16. Sessions per Active Device за время существования приложения
Средний показатель составил 2.41 сессий на устройство [Рисунок 16], что, учитывая природу приложения, кажется адекватным осязаемым сценариям использования.
География
Распределение загрузок по странам.
Рисунок 17. App Units by Territory
С колоссальным отрывом, самой популярной страной для приложения стали США [Рисунок 17]. Согласно данным AppTweak [40], США занимает 2 место среди стран с самым большим количеством загрузок приложений (после Индии). Это, в совокупности с тем фактом, что единственный язык локализации приложения -- английский, успех приложения именно в этой стране является закономерным.
Источник загрузки
Метрика, характеризующая каждую загрузку местом первоначального показа иконки приложения пользователям.
Рисунок 18. App Units by Source
88% всех загрузок приходится на обычный браузинг в магазине [Рисунок 18], к которому относятся, прежде всего, подборки от редакции App Store, что поддерживает предыдущую гипотезу относительно причины высоких показателей продукта.
4.3 Итог, выводы и планы на будущее
Собранная информация по показателям продукта, а также отзывы пользователей показывают явную заинтересованность в приложении и его развитии.
С точки зрения рынка, за первые несколько недель, с учетом отсутствия маркетинга, приложение показало себя исключительно хорошо. Существует несколько показателей, над которыми необходимо провести работу (конверсии показов в переходы и переходов в загрузки), но в целом первые результаты можно охарактеризовать как превосходящие ожидания.
Относительно дальнейшего курса развития продукта, существует несколько направлений, в сторону которых приложение можно двигать:
Расширение базового функционала: добавление секундомеров, будильников
Углубление в функции для продуктивности: создание последовательностей таймеров, таймеры по методологии Pomodoro
Имплементация логирования, что откроет возможность для осуществления полноценного тайм-трекинга в приложении
Интеграция с Siri
Приложение-компаньон для Apple Watch
Портирование на другие платформы Apple: iPadOS, macOS, tvOS
Синхронизация данных между несколькими устройствами
Улучшение настроек для уведомлений
По итогу, приложение представляет собой прочный каркас, предоставляющий широкий спектр возможностей для развития и роста.
ЗАКЛЮЧЕНИЕ
Подводя итоги выполненной работы, можно сказать, что первоначально поставленная цель: создание, разработка и распространение B2C продукта для отслеживания и менеджмента пользовательского времени; -- была выполнена.
Было создано приложение, уже на начальном этапе имеющее активную пользовательскую базу и платящих клиентов. Конечный продукт обладает широким набором возможностей для развития.
ИСТОЧНИКИ
1. O. J. Holzer A, «Mobile application market: A developer's perspective,» Telematics and informatics, т. XXVIII, № 1, pp. 22-31, 2011.
2. P. W. Jordan, An introduction to usability, CRC Press, 1998.
3. N. Bevana, J. Kirakowskib и J. Maissela, What is usability, Proceedings of the 4th International Conference on HCI, 1991.
4. N. Pujol, Freemium: attributes of an emerging business model //, 2020.
5. E. Seufert, Freemium economics: Leveraging analytics and user segmentation to drive revenue, 2013.
6. F. C. O. Axelsson, Evaluation targeting react native in comparison to native mobile development, 2016.
Размещено на Allbest.ru
Подобные документы
Средства программирования, описание языка С++. Назначение программы, требования к документации. Стадии разработки, виды испытаний. Используемые технические, программные средства. Вызов и загрузка, входные и выходные данные. Программа и методика испытаний.
контрольная работа [205,3 K], добавлен 23.07.2013Создание и реализация программы в среде визуального программирования С++ Builder. Разработка ее алгоритма. Описание компонентов и их свойств, используемых в структуре приложения. Создание кнопок создания турниров по круговой системе и на выбывание.
курсовая работа [4,6 M], добавлен 12.11.2013Создание индивидуального сайта с использованием языка гипертекстовой разметки HTML и языка скриптов JavaScript. Программные средства, используемые при выполнении работы. Основные средства для создания сайта. Разработка CSS-файла (таблица стилей).
лабораторная работа [31,0 K], добавлен 28.10.2010Организация электронного документооборота. Создание базы данных. Анализ существующих программных средств автоматизации. Обоснование выбора платформы разработки программного продукта. Выбор почтового клиента. Реализация нулевого прототипа системы.
курсовая работа [384,1 K], добавлен 14.11.2016Общая характеристика интерфейса языка программирования Delphi. Рассмотрение окна редактора кода, конструктора формы, инспектора объектов и расширения файлов. Ознакомление с основными этапами создания и сохранения простого приложения; проверка его работы.
презентация [184,3 K], добавлен 18.03.2014Рассмотрение основных этапов создания приложения "Записная книжка", основное предназначение. Анализ способов выбора среды программирования. Знакомство с элементом управления Data Grid View. Общая характеристика методов конструкции языка программирования.
контрольная работа [1002,4 K], добавлен 21.06.2014Исследование базовых концепций программирования приложений под операционную систему Windows. Изучение истории создания универсального языка программирования Си. Разработка графического пользовательского интерфейса. Обзор правил игры и алгоритма работы.
курсовая работа [58,2 K], добавлен 09.11.2012Анализ области автоматизации. Проектирование пользовательского интерфейса и баз данных. Выбор платформы создания информационной системы. Взаимодействие приложения с источниками данных. Оценка длительности и стоимости разработки программного обеспечения.
дипломная работа [2,2 M], добавлен 09.08.2011Основы работы с языком программирования Visual Basic 6.0, разработка и обработка созданных баз данных. Создание экранной формы и запросов по таблице VIP. Алгоритм совместного запроса по таблицам VIP и PROD. Методика разработки пользовательского меню.
курсовая работа [2,7 M], добавлен 04.06.2009Интерфейсные средства СУБД MS Access 2003. Проектирование схемы данных. Создание составного отчёта, содержащего диаграмму. Группировка и сортировка в отчётах. Использование языка программирования VBА, создание макросов. Разработка программы и функций.
курсовая работа [5,2 M], добавлен 20.06.2010