- PVSM.RU - https://www.pvsm.ru -
Некоторое время назад, я, как активный пользователь планировщиков личных задач, открыл для себя один значительный недостаток – несмотря на их несчётное количество, невозможно найти «тот самый», который удовлетворял бы тебя по всем пунктам.
Нет, само по себе это абсолютно нормально, так как программу разрабатывал один или несколько разработчиков, которые в итоге пришли к своему пониманию того, “как пользователю будет лучше”. Да и к тому же, невозможно в одной программе уместить всё, что теоретически может захотеть сферический пользователь в вакууме. Или возможно?
Давайте на секунду отбросим все ограничения и представим что идеальный планировщик существует: он полностью соответствует вашим ожиданиям в плане интерфейса, предоставляет все необходимые вам функции и работает на всех ваших устройствах. Что это нам даёт? Ключевой особенностью такого приложения будет возможность использовать одни и те же данные для обеспечения работы всех функций приложения.
Смоделируем ситуацию — есть два пользователя, которые жить не могут без составления списка задач и использования техники Pomdoro [1]. У обоих одинаковые потребности — разница лишь в том, какие приложения они используют для их удовлетворения:
Пару слов о том, как происходит взаимодействие пользователя с программой в обоих случаях:
Исходя из приведённой иллюстрации можно определить некоторые неприятные моменты, с которыми придётся столкнуться пользователю#1, в отличие от пользователя#2:
Если вас это не смущает, и вы считаете что можно обойтись и несколькими приложениями, то представьте что будет, если нужно обеспечить пользователя не двумя, а десятью функциями?
Хорошо, одно приложение в котором есть все нужные функции лучше, чем несколько приложений. Но нельзя же разрабатывать под все сочетания функций отдельную программу! Всё так и получается, если не использовать...и зачем его я ломаю комедию, в заголовке же написано было… модульный подход!
Главный секрет «идеального» приложения в том, что не надо пытаться «предугадать» что же пользователь там захочет, а позволить ему самому собрать своё «личное» приложение, которое как раз и будет максимально полно отвечать его желаниям и потребностям. Процесс сборки такого приложения будет заключаться в отбирании желаемых функций приложения и аспектов пользовательского интерфейса, которые будут представлены соответствующими модулями.
К тому же, очевидно, что если грамотно организовать процесс разработки подобного приложения, то общая трудоёмкость существенно сократится, так как реализованные функции никуда не исчезают — они лишь «запаковываются» в удобные для использования другими разработчиками модули.
Чтобы эта статья не выглядела как бред спятившего на своей теории разработчика, я хотел бы показать как это всё работает на примере своего проекта. Я не буду пока описывать его в рамках данной статьи — сейчас лишь опишу саму идею. В общем, есть некое приложение X — на данный момент в нём можно подключать новые модули в систему, где каждый модуль может существенно изменить интерфейс и расширить доступные функции приложения.
Вот ситуация как в примере выше, когда модуль списка дел расширяется модулем Pomodoro:
На данный момент приложение находится в стадии разработки, и не готово к предоставлению доступа пользователям. Ещё много чего предстоит реализовать, но кое-что уже есть — вот, например, список рабочих функций приложения:
Каждая из описанных функций представлена группой модулей, каждый из которых можно удалить, не повлияв на работоспособность всей системы — удаление модуля лишь исключит из системы соответствующую функцию, за которую он отвечал.
Под конец статьи я бы хотел поделиться с вами своими концептами по дальнейшему развитию и использованию этого проекта.
В данной статье я не рассматривал особенности реализации, дабы не перегружать текст деталями. Я обязательно освещу сам процесс разработки, но в рамках следующей статьи. Если кому-то интересно, то можно ознакомиться с уже реализованными модулями:
С исходным кодом можно ознакомиться по ссылке [4].
Спасибо за внимание.
Автор: Кирилл Крылов
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/gtd/265586
Ссылки в тексте:
[1] Pomdoro: https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BC%D0%B8%D0%B4%D0%BE%D1%80_(%D0%BC%D0%B5%D1%82%D0%BE%D0%B4)
[2] Todoist: https://play.google.com/store/apps/details?id=com.todoist
[3] Productivity Challenge Timer: https://play.google.com/store/apps/details?id=com.wlxd.pomochallenge
[4] ссылке: https://github.com/CurunirCingar/MASS
[5] Источник: https://habrahabr.ru/post/340018/?utm_source=habrahabr&utm_medium=rss&utm_campaign=sandbox
Нажмите здесь для печати.