Luxe-empire.ru

Красота и Здоровье
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Лучшие приложения для тайм менеджмента

13 приложений для эффективного тайм-менеджмента

Мы протестировали 13 приложений, которые помогут спланировать дела и расставить приоритеты.

Для организации задач

Any.do

В Any.do к каждой задаче можно добавлять теги, напоминания, подзадачи и вложения. Функция приоритетов поможет сконцентрироваться на главном и не забыть о важном деле, а списками можно делиться с друзьями и коллегами — и планировать совместные проекты.

Стоит отметить опцию Focus, которая помогает дополнительно мотивировать пользователя. Если она включена, а человек не завершил задачу, приложение уничтожит виртуальную ёлку. Ещё одна особенность Any.do — список покупок, которые приложение автоматически распределяет по категориям.

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

Цена: базовая версия — бесплатно, премиум-версия приложения обойдётся в $5,99 в месяц.

Пишет про дизайн в Skillbox. Работает директором по маркетинговым коммуникациям, изучает рекламную графику и 3D.

Todoist

Todoist — главный конкурент и отличная альтернатива Any.do. В приложении нет разве что самоуничтожающегося дерева. В Todoist можно разбивать задачи по проектам и подпроектам, добавлять теги, изменять тему, добавлять комментарии, прикреплять файлы и вести совместные проекты. В качестве дополнительной мотивации в сервис встроен трекинг продуктивности. Некоторые функции, включая напоминания и добавление задач по email, доступны только в премиум-версии приложения.

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

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

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

Цена: базовая версия — бесплатно, премиум-версия приложения стоит $3 в месяц.

«Мои дела: Планировщик задач»

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

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

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

Цена: бесплатная версия + можно оформить как подписку (150 рублей за три месяца), так и единоразовую покупку (599 рублей).

Wunderlist

Несмотря на то что Microsoft, купивший Wunderlist в 2015 году, заявил о закрытии приложения ещё два года назад, сервис до сих пор работает. Более того, основатель компании, разработавшей Wunderlist, сейчас пытается начать переговоры о его выкупе. Тем временем на сайте Wunderlist активно рекламируется сервис Microsoft To-Do, о котором речь пойдёт чуть ниже.

Сам Wunderlist остаётся достаточно удобной программой: к каждой задаче можно добавить напоминание, повторы, подзадачи, заметки и файлы, создавать несколько различных списков и настраивать их под себя. Wunderlist может похвастаться ещё одной особенностью — функцией «Беседы», благодаря которой можно обсуждать совместные задачи, не выходя из приложения. Темы не предусмотрены, можно выбрать лишь фон.

Time management без жестких расписаний, опыт разработки мобильного приложения

Планирование времени, контроль, повышение эффективности. Тема заезженная, но осмелюсь предложить ещё одно решение.

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

У меня так: собрался, настроился, принялся за работу и тут — «то тюлень позвонит, то олень». Под конец дня вообще бывает ощущение что непонятно чем занимался и что в итоге.

Однажды возникла идея: «вот бы было классно, позвонили тебе и ты как в шахматной партии нажал на кнопку и остановил время работы, вернулся к работе — нажал другую кнопку. В итоге получишь сколько работал и сколько отдыхал». Я назвал такой подход — шахматный тайм-менеджмент, или сокращенно ChessTM.

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

Концепция

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

Постулат №1

Для управления нужен контроль расхода времени. Чтобы управлять временем нужно уметь его контролировать. Принцип — одним нажатием кнопки (буквально, а не метафорически) выбираем текущую деятельность и автоматически прекращается подсчёт времени на предыдущую деятельность и начинает считаться на текущую.

Постулат №2

Для управления нужно планирование. Чтобы управлять временем нужно уметь его планировать. В любой момент времени у нас имеется общий пул задач и каких-то насущных дел. Работая над задачей или насущными делами мы совершаем деятельность. Планирование заключается в том, что мы предполагаем какой деятельностью мы будем заниматься. Традиционное понимание плана предполагает фиксированную последовательность действий. Зачастую очень сложно соблюдать фиксированную последовательность иногда в силу объективных, а иногда и не очень причин. Отклонение от плана заставляет нервничать и снижает эффективность работы. Отдых воспринимаем как безделье, возникает чувство вины, снижается эффективность работы и уменьшается удовлетворение. Чтобы избежать описанных проблем будем планировать не последовательность разного рода занятий, а время отводимое на деятельность в течении дня.
Можно планировать в минутах. То есть процесс планирования выглядит так — выбираем из общего пула задачи на день, и задаём для них планируемое время, которое собираемся на них потратить.

Постулат №3

то есть получается что при нулевых коэффициентах расхождения качество планирования будет равняться 100%.

Android приложение

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

Читать еще:  Кто такой трафик менеджер

Реализовано приложение ChessTM.

Реализация по вечерам и выходным в свободное от работы время. Работаю я релиз-менеджером и работа с андроид разработкой никак не связана.

  1. Создание пула задач
  2. Планирование времени на задачи на каждый день
  3. Перенос плана предыдущего дня
  4. Простое переключение между задачами
  5. Статистика

  • суммарное затраченное время по отношению к суммарному плану, за произвольный период по жизненным секторам
  • отчёт по задачам, сколько на каждую задачу запланировано и сколько фактически затрачено
  • статистика по переключениям между задачами и по коэффициенту качества планирования за период
  • Распределение задач по жизненным секторам (работа, семья, друзья и т.п.) и тэгам
  • Главной мыслью было сделать такую механику взаимодействия с приложением чтобы делать как можно меньше действий. Чтобы всё было легко и просто — «одним нажатием».

    Реализовано это следующим образом — есть один экран и три таба между которыми можно перемещаться сайпом:

    • пул задач, где имеются все задачи, имеющиеся на текущий момент;
    • дневной план, где задаётся планируемое на задачи время;
    • управление, где переключаемся с задачи на задачу и считаем время.

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

    Инфраструктура разработки

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

    • IDE (Integrated Development Environment);
    • репозитарий хранения кода;
    • трекер задач;
    • документирование;
    • тестирование.

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

    Хранение кода

    В качестве системы хранения кода был выбран git.

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

    В качестве удалённого хранилища был выбран bitbucket:

    • бесплатный;
    • позволяет создавать частные и открытые репозитарии;
    • позволяет создавать команду для совместной работы с различными уровнями прав доступа;
    • имеет свой простой трекер задач.

    Трекер задач

    То есть выбор bitbucket так же даёт наличие трекера задач. На первый взгляд может показаться, что когда пишешь приложение сам, то трекер задач не нужен, но так думать ошибочно. Трекер задач организует. Позволяет строить планы. И в случае если кто-то ещё подключится к проекту не надо будет ничего искать, а при совместной разработке без трекера задач никак. Да, трекер в bitbucket не идеален, но основные вопросы в первом приближении закрывает.

    Документирование

    Для документирования решил использовать readthedocs.io:

    • бесплатная система позволяющая публиковать документацию в формате Sphinx;
    • интегрируется с bitbucket (и многими другими), то есть можно хранить исходники документации в bitbucket и она автоматически будет собираться при каждом коммите, можно сказать continuous integration для документации — это крайне удобно;

    К сожалению сейчас документация не совсем соответствует действительности. Но в своё время её написание принесло большую пользу. Поэтому всем начинающим свой проект крайне рекомендую писать документацию — это приводит мысли в порядок и проясняет видение проекта.

    Тестирование

    Тестирование тема огромная и можно найти множество материалов на этот счёт.

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

    Для этого я использую JUnit4. Тесты запускаются на девайсе.

    Тесты представляют собой юнит тесты основного класса модели.

    Создаётся тестовый набор данных и соответственно вызываются все фукнции класса модели с заранее известным результатом.

    По опыту могу сказать следующее:

    • тесты очень помогают ловить регресс;
    • иногда выявляются ошибки дизайна/архитектуры, когда сам начинаешь применять функции, голова начинает работать немного по другому когда функцию применяешь, даже если сам её написал;
    • поддерживайте тесты в актуальном состоянии, я сейчас крайне жалею что этого не делал, потому что объём приложения уже довольно большой, и не все детали можно удержать в памяти, и некоторый регресс, который может быть выявлен на этапе юнит тестов к сожалению попадает в production. Так что с упрямой, тупой настойчивостью — «поддерживайте тесты в актуальном состоянии. »

    Архитектура и реализация

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

    В самом начале пути основная проблема была в том, что непонятно было с чего начать и в каком направлении думать. Как правильно делать и как неправильно.

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

    Лично я начинал с «Программирование под Android. Для профессионалов» Б. Харди, Б. Филлипс. В целом могу рекомендовать. Может в настоящее время она местами устарела, но начинать вполне можно.

    Ещё могу порекомендовать послушать различные подкасты по теме программирования под андроид. В них конечно не всё понятно, но можно уловить тенденции и понять в какую сторону двигаться. В частности я периодически слушаю androiddev на apptractor.

    Что касается самой ахитектуры то я постарался реализовать подход в котором внутренняя логика максимально отделена от отображения. Дело в том, что на начальном этапе не всё досконально продумано и нужно иметь возможность менять «математику» (логику работы), не переписывая весь код.

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

    Список задач содержится внутри класса ActionsManager и весь доступ к ним осуществляется через функции этого класса. То есть везде в приложении все манипуляции с задачами производятся через класс ActionsManager.

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

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

    GUI реализован на базе ActionBarDrawerToggle. Сначала был использован ActionBarSherlock, он конечно всем не плох, но потом у меня возникли проблемы с совместимостью с другими компонентами и я перешёл на стандартные гугловские компоненты (меню, табы, списки с динамической загрузкой данных и т.п.).

    Читать еще:  Курсы ивент менеджмента москва

    В процессе сознания приложения кроме стандартные компоненты android использовались:

    Лучшие тайм-менеджеры для Andro >Статьи

    Ещё одним важным моментом является наличие функции Work chat (рабочий чат). Вы создаёте заметку и отправляете её выбранным контактам. Когда кто-то ответит на ваше сообщение, вам придёт уведомление. Если, конечно, у вас открыто приложение и вы онлайн. Evernote работает с рукописными заметками. Приложение распознаёт простые геометрические фигуры, поэтому его можно использовать для создания наглядных графиков и диаграмм. Вам не стоит заботиться о том, насколько аккуратно вы их нарисуете, так как приложение отобразит всё ровно, предложив вам преобразить рукописный рисунок в стандартный вид.

    Google Keep, как и Evernote, распознаёт речь, преобразовывая её в текст и записывает аудио. Но когда заметка уже создана, добавить к ней запись невозможно. Пользователь может управлять несколькими заметками одновременно посредством длительного касания, а чтобы отправить запись в архив, нужно прокрутить вправо. В Evernote все записи по умолчанию расположены в виде списка, а в Google Keep можно отображать заметки и в плиточном стиле. Также доступен виджет для рабочего стола.

    Оба приложения бесплатны, но есть возможность подписки, которая несколько расширяет функциональность Evernote. Например, в бесплатной версии приложение предоставляет 60 МБ для хранения информации, а премиум-версия — 10 ГБ, что удобно для корпоративных пользователей.

    Календари

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

    Есть также два режима отображения календаря: на две недели и на ближайшие три дня. Под календарём отображаются все события, назначенные на выбранную дату. Добавить событие очень просто. Можно добавить дату, время, место проведения, участников мероприятия и напоминание. Имеется виджет рабочего стола. Помимо функциональности Sunrise стоит отметить простой и приятный глазу дизайн.

    Управление проектами

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

    По умолчанию в приложении уже существуют колонки задач: Рабочие, Личные, Поручения, Списки покупок, Фильмы для просмотра, но можно добавлять свои. Интересно то, что в Todoist есть раздел «Карма». В нём будет вестись учёт того, насколько успешно вы выполняете задачи, которые ставите сами себе ежедневно. Чем чаще вы будете нажимать на кнопку «Отложить», тем хуже будет ваш личный рейтинг. «Карма», безусловно, будет мотивировать пользователя.

    Контроль затраченного времени

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

    Time management без жестких расписаний, опыт разработки мобильного приложения

    Планирование времени, контроль, повышение эффективности. Тема заезженная, но осмелюсь предложить ещё одно решение.

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

    У меня так: собрался, настроился, принялся за работу и тут — «то тюлень позвонит, то олень». Под конец дня вообще бывает ощущение что непонятно чем занимался и что в итоге.

    Однажды возникла идея: «вот бы было классно, позвонили тебе и ты как в шахматной партии нажал на кнопку и остановил время работы, вернулся к работе — нажал другую кнопку. В итоге получишь сколько работал и сколько отдыхал». Я назвал такой подход — шахматный тайм-менеджмент, или сокращенно ChessTM.

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

    Концепция

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

    Постулат №1

    Для управления нужен контроль расхода времени. Чтобы управлять временем нужно уметь его контролировать. Принцип — одним нажатием кнопки (буквально, а не метафорически) выбираем текущую деятельность и автоматически прекращается подсчёт времени на предыдущую деятельность и начинает считаться на текущую.

    Постулат №2

    Для управления нужно планирование. Чтобы управлять временем нужно уметь его планировать. В любой момент времени у нас имеется общий пул задач и каких-то насущных дел. Работая над задачей или насущными делами мы совершаем деятельность. Планирование заключается в том, что мы предполагаем какой деятельностью мы будем заниматься. Традиционное понимание плана предполагает фиксированную последовательность действий. Зачастую очень сложно соблюдать фиксированную последовательность иногда в силу объективных, а иногда и не очень причин. Отклонение от плана заставляет нервничать и снижает эффективность работы. Отдых воспринимаем как безделье, возникает чувство вины, снижается эффективность работы и уменьшается удовлетворение. Чтобы избежать описанных проблем будем планировать не последовательность разного рода занятий, а время отводимое на деятельность в течении дня.
    Можно планировать в минутах. То есть процесс планирования выглядит так — выбираем из общего пула задачи на день, и задаём для них планируемое время, которое собираемся на них потратить.

    Постулат №3

    то есть получается что при нулевых коэффициентах расхождения качество планирования будет равняться 100%.

    Android приложение

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

    Реализовано приложение ChessTM.

    Реализация по вечерам и выходным в свободное от работы время. Работаю я релиз-менеджером и работа с андроид разработкой никак не связана.

    1. Создание пула задач
    2. Планирование времени на задачи на каждый день
    3. Перенос плана предыдущего дня
    4. Простое переключение между задачами
    5. Статистика

    • суммарное затраченное время по отношению к суммарному плану, за произвольный период по жизненным секторам
    • отчёт по задачам, сколько на каждую задачу запланировано и сколько фактически затрачено
    • статистика по переключениям между задачами и по коэффициенту качества планирования за период
  • Распределение задач по жизненным секторам (работа, семья, друзья и т.п.) и тэгам
  • Читать еще:  Кредитный менеджер обязанности функции

    Главной мыслью было сделать такую механику взаимодействия с приложением чтобы делать как можно меньше действий. Чтобы всё было легко и просто — «одним нажатием».

    Реализовано это следующим образом — есть один экран и три таба между которыми можно перемещаться сайпом:

    • пул задач, где имеются все задачи, имеющиеся на текущий момент;
    • дневной план, где задаётся планируемое на задачи время;
    • управление, где переключаемся с задачи на задачу и считаем время.

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

    Инфраструктура разработки

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

    • IDE (Integrated Development Environment);
    • репозитарий хранения кода;
    • трекер задач;
    • документирование;
    • тестирование.

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

    Хранение кода

    В качестве системы хранения кода был выбран git.

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

    В качестве удалённого хранилища был выбран bitbucket:

    • бесплатный;
    • позволяет создавать частные и открытые репозитарии;
    • позволяет создавать команду для совместной работы с различными уровнями прав доступа;
    • имеет свой простой трекер задач.

    Трекер задач

    То есть выбор bitbucket так же даёт наличие трекера задач. На первый взгляд может показаться, что когда пишешь приложение сам, то трекер задач не нужен, но так думать ошибочно. Трекер задач организует. Позволяет строить планы. И в случае если кто-то ещё подключится к проекту не надо будет ничего искать, а при совместной разработке без трекера задач никак. Да, трекер в bitbucket не идеален, но основные вопросы в первом приближении закрывает.

    Документирование

    Для документирования решил использовать readthedocs.io:

    • бесплатная система позволяющая публиковать документацию в формате Sphinx;
    • интегрируется с bitbucket (и многими другими), то есть можно хранить исходники документации в bitbucket и она автоматически будет собираться при каждом коммите, можно сказать continuous integration для документации — это крайне удобно;

    К сожалению сейчас документация не совсем соответствует действительности. Но в своё время её написание принесло большую пользу. Поэтому всем начинающим свой проект крайне рекомендую писать документацию — это приводит мысли в порядок и проясняет видение проекта.

    Тестирование

    Тестирование тема огромная и можно найти множество материалов на этот счёт.

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

    Для этого я использую JUnit4. Тесты запускаются на девайсе.

    Тесты представляют собой юнит тесты основного класса модели.

    Создаётся тестовый набор данных и соответственно вызываются все фукнции класса модели с заранее известным результатом.

    По опыту могу сказать следующее:

    • тесты очень помогают ловить регресс;
    • иногда выявляются ошибки дизайна/архитектуры, когда сам начинаешь применять функции, голова начинает работать немного по другому когда функцию применяешь, даже если сам её написал;
    • поддерживайте тесты в актуальном состоянии, я сейчас крайне жалею что этого не делал, потому что объём приложения уже довольно большой, и не все детали можно удержать в памяти, и некоторый регресс, который может быть выявлен на этапе юнит тестов к сожалению попадает в production. Так что с упрямой, тупой настойчивостью — «поддерживайте тесты в актуальном состоянии. »

    Архитектура и реализация

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

    В самом начале пути основная проблема была в том, что непонятно было с чего начать и в каком направлении думать. Как правильно делать и как неправильно.

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

    Лично я начинал с «Программирование под Android. Для профессионалов» Б. Харди, Б. Филлипс. В целом могу рекомендовать. Может в настоящее время она местами устарела, но начинать вполне можно.

    Ещё могу порекомендовать послушать различные подкасты по теме программирования под андроид. В них конечно не всё понятно, но можно уловить тенденции и понять в какую сторону двигаться. В частности я периодически слушаю androiddev на apptractor.

    Что касается самой ахитектуры то я постарался реализовать подход в котором внутренняя логика максимально отделена от отображения. Дело в том, что на начальном этапе не всё досконально продумано и нужно иметь возможность менять «математику» (логику работы), не переписывая весь код.

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

    Список задач содержится внутри класса ActionsManager и весь доступ к ним осуществляется через функции этого класса. То есть везде в приложении все манипуляции с задачами производятся через класс ActionsManager.

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

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

    GUI реализован на базе ActionBarDrawerToggle. Сначала был использован ActionBarSherlock, он конечно всем не плох, но потом у меня возникли проблемы с совместимостью с другими компонентами и я перешёл на стандартные гугловские компоненты (меню, табы, списки с динамической загрузкой данных и т.п.).

    В процессе сознания приложения кроме стандартные компоненты android использовались:

    Ссылка на основную публикацию
    Adblock
    detector