Scientific journal
Scientific Review. Technical science
ISSN 2500-0799
ПИ №ФС77-57440

DEVELOPMENT OF A MOBILE APPLICATION FOR TIME MANAGEMENT IN THE KOTLIN LANGUAGE

Buzhinskaya N.V. 1 Maschenko S.K. 1
1 Russian State Vocational Pedagogical University
Currently, any specialist has a problem of rational distribution of time to perform various tasks. At the same time, it is necessary to identify not only the main stages of work, but also to determine the amount of resources required for the implementation of this stage. Time management skills are especially important for IT professionals (designers, testers, programmers, system analysts), since any software product must be completed on time, with a limited budget and have a minimum amount of errors. One of the elements of time management is the Eisenhower Matrix, which allows you to present the list of tasks in the form of four categories – important and urgent, important and not urgent, not important and urgent, not important and not urgent. The Eisenhower Matrix is ??a good planning tool for IT beginners who prefer to work independently at the initial stage of their professional growth. The article discusses the process of developing a mobile application in Android Studio for time management based on the Eisenhower matrix. For development, the multi-platform programming language Kotlin was chosen, in which you can write applications for any system.
time management
Eisenhower matrix
IT specialist
urgency
importance
mobile app
Android
Kotlin

На старте любого проекта у разработчика должны быть удобные инструменты для планирования работы, которые предполагают наличие четкого плана. Как известно, любой проект необходимо выполнить качественно в установленные сроки, с учетом требований заказчика. Тайм-менеджмент, как процесс управления, предполагает не только выделение основных этапов работы, оказания услуги или иного процесса, но и управление существующими ресурсами для достижения поставленной цели [1]. Тайм-менеджмент включает четыре основных элемента: философию, стратегию, технологию и эффективность [2]. Умение рационально распределять собственное время позволяет увеличивать эффективность своей деятельности, учит выделять наиболее важные на текущий момент дела [3].

Современные программные продукты, которые можно использовать для тайм-менеджмента, позволяют выполнить планирование задач не только каждому разработчику в отдельности, но и команде. Например, с помощью программного продукта Space от JetBrains можно создавать трекеры задач, списки дел, формировать отпуска и командировки, организовывать собрания с уведомлением всех участников (https://www.jetbrains.com/ru-ru/space/). Также данный продукт предлагает чаты, блоги и код-ревью для общения внутри коллектива. Несмотря на очевидные достоинства, можно отметить, что данный продукт больше рассчитан на работу больших корпораций. К недостаткам отнести и отсутствие локализации на русский язык, что затрудняет использование данной программы людям с низким уровнем знаний английского языка.

Еще одним продуктом для тайм-менеджмента является Azure DevOps (https://azure.microsoft.com/ru-ru/services/devops/server/). Данный продукт разработан компанией Microsoft. Он имеет четыре основных элемента:

− контроль исходного кода за счет одновременной множественной блокировки его для изменений;

− отчетность, при этом отчеты могут быть экспортированы в несколько различных форматов, таких как XML, PDF, Excel;

− портал проекта как индикатор прогресса и центр взаимодействия участников между собой;

− общие сервисы.

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

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

Материалы и методы исследования

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

Результаты опроса свидетельствуют о том, что для большей части ИТ-специалистов важной составляющей их работы является распределение задач по степени важности.

На основе полученных данных нами было принято решение разработать мобильное приложение, функции которого достаточно просты для специалистов, начинающих построение своей карьеры в ИТ-сфере. В качестве основы для нашего приложения мы выбрали матрицу Эйхенхауэра (рис. 2). Матрица Эйзенхауэра (матрица решений) – метод американского президента Д.Д. Эйзенхауэра. На горизонтальной оси X показана срочность, от наиболее срочного слева до наименее срочного справа. Вертикальная ось Y показывает степень важности, от наименее важного внизу до наиболее важного наверху [4].

Buzhinskaya1.pdf

Рис. 1. Результаты проведения опроса потенциальных пользователей

Buzhinskaya2.pdf

Рис. 2. Матрица Эйзенхауэра

В результате получается четыре важных сектора:

− срочное и важное (задания, которые должны быть выполнены в любом случае, иначе могут возникнуть затруднения в реализации проекта);

− менее срочное, но важное (задания, которым нужно уделять особое внимание, так ка в данной категории сосредоточен основной объем работы);

− менее важное, но срочное (задания, которые мешают сосредоточиться на других более важных заданиях);

− менее важное и менее срочное (задания, которые не несут пользы).

Работая с данной матрицей, разработчик должен распределить поставленные перед ним задачи по этим секторам и оценить объем предстоящей работы. На первом этапе работы с матрицей обычно сложно выстроить градацию заданий и правильно выбрать категорию, в которую нужно занести то или иное задание. Самой важной является категория «Менее срочное, но важное». Если задания из данной категории не выполнить вовремя, то они переносятся в первую категорию и приходится тратить больше времени на их выполнение. По мнению Б. Трейси, успех и уважение в работе, обществе, команде зависит от умения концентрироваться на одной важной задаче и не оставлять незаконченных дел [5]. Умение планировать свое время и рационально распределять время на основные виды деятельности является показателем самоорганизации и самодисциплины человека, характеризует его с лучшей стороны.

Работая с мобильным приложением, можно представить данный список дел в виде таблицы.

Список дел, представленный на экране мобильного приложения

Показатель

Срочно

Не срочно

Важно

Сделать

Составить расписание

Не важно

Делегировать

Забыть

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

Мобильное приложение разрабатывалось нами для операционной системы Android, которая является в настоящее время одной из самых популярных [6]. При разработке приложения в Android Studio использовался элемент LinearLayout. Внутри макета мы разместили следующие компоненты:

− TextView – имя нашего приложения;

− EditTextView – список дел;

− кнопки «Добавить», «Удалить» и «Очистить» для выполнения желаемых операций;

− TextView – обозначение названия списка дел;

− ListView – хранение всех элементов в списке.

Мобильное приложение разрабатывалось на языке Kotlin.

Buzhinskaya3.pdf

Рис. 3. Схема работы Adapter

Kotlin – это мультиплатформенный язык общего назначения: на Kotlin можно писать приложения для Windows, MacOS, Android. Независимость от системы подразумевает широкий спектр применения Kotlin [7]. Язык Kotlin развивается быстрыми темпами. Код, написанный на данном языке, напоминает обычный текст на английском языке, поэтому искать в нем ошибки становится проще. Также он совместим со всеми существующими библиотеками Java, что увеличивает количество получаемых возможностей при разработке.

При разработке мобильных приложений для Android зачастую используются адаптеры, которые упрощают связывание данных с элементом управления. Например, у нас есть набор объектов (список задач) и есть компонент View. Назначение адаптера заключается в том, чтобы предоставлять дочерние виды для контейнера. Адаптер «берет» данные и метаданные определенного контейнера и строит каждый дочерний вид. В нашем случае ArrayAdapter предназначен для работы с ListView. Данные представлены в виде массива, которые размещаются в отдельных элементах TextView (рис. 3).

Каждому виду работы, который заносит в приложение пользователь, присваивается индекс. Для хранения индексов используется массив ArrayList. Затем адаптер ArrayAdapter, преобразовывает сгенерированные массивы объектов в представление ListView. Adapter используется для организации взаимодействия между источником данных (ArrayList) и визуальным представлением (ListView), а также осуществляет две функции:

− выбор использованных данных в качестве источника;

− преобразование любого заданного элемента, в массиве, в соответствующий объект просмотра.

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

Чтобы использовать базовый адаптер ArrayAdapter, необходимо инициализировать адаптер и подключить его к ListView.

Для кнопки «Добавить» написана функция, в которой основным методом является setOnClickListenter. Этот метод используется для указания действий при нажатии, т.е. добавления нового элемента из текста редактирования в новый список. На каждом шаге мы обновляем адаптер. При этом каждый раз, когда пользователь вводит новый элемент в текстовом окне редактирования, а затем нажимает кнопку «Добавить», этот элемент будет автоматически добавлен в список.

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

Результаты исследования и их обсуждение

Интерфейс приложения представлен на рис. 4.

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

Buzhinskaya4.pdf

Рис. 4. Интерфейс пользователя

Мобильное приложение «Менеджер заданий» обладает удобным интерфейсом, а также обладает такими важными функциями для начинающих специалистов, как:

− создание новых записей – заданий;

− удаление заданий, как единичных, так и всех сразу;

− отметка о выполненных заданиях;

− сортировка заданий по важности и срочности;

− скроллинг списка заданий (для большого объема заданий);

− дополнение примечаний к заданиям;

Заключение

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