Планировщик задач для ios: Лучшие планировщики задач для iOS. Топ-3 приложения

Содержание

‎App Store: TickTick:To-Do List & Calendar

Описание

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

Записать мысль, составить план, вести семейные списки покупок, решать задачи с коллегами и ставить себе личные цели — с TickTick вы сделаете это не теряя времени и не оставляя дела без внимания.

Легко использовать
С TickTick просто разобраться — поможет его интуитивный дизайн и возможность многое подстроить под себя. Записывайте дела за считанные мгновения — и у вас будет время заняться тем, что действительно важно.

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

Быстрое создание дел
Добавить задачу можно и текстом и голосом.
А Умное Распознавание Дат автоматически установит сигнал на день и час, который упомянут в задаче.

Напоминания
У вас куча дел? Установите напоминание и разгрузите голову.
TickTick умеет ставить несколько напоминаний к одной задаче — с ним вы больше не пропустите дедлайн!

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

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

Все дела по полочкам
— Разложите задачи по спискам, папкам и тегам.
— Создавайте подзадачи, чеклисты
— Распределяете приоритеты
— Сортируйте по дате, заголовку, приоритету
— Добавляйте фото, заметки и любые файлы к своим задачам

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

Станьте ещё продуктивнее с нашим Pro-функционалом
— Используйте Siri для добавления новых дел
— Выбирайте изысканные темы, радующие глаз
— Настраивайте Умные Списки с произвольными фильтрами
— С помощью Календаря планируйте на целый месяц
— Ничем себя не ограничивайте: до 299 списков, до 999 задач в каждом списке, до 199 подзадач в каждой задаче.
— До пяти напоминаний на каждую задачу
— Один список дел можно разделить с 19-ю людьми.
— Ежедневно загружать до 99 файлов в задачи
— Совмещать в одной задаче и текстовое описание и вложенный список подзадач.
— Подписываться на календари TickTick.

Подписка ($2.99/месяц или $27.99/год) на Pro-функционал оплачивается c вашей банковской карты через iTunes. Она автоматически оплачивается, если вы не отмените её за 24 часа до ближайшего платежа. Вы не сможете отменить подписку в течение активного периода. Управлять подписками можно в настройках учетной записи.

TickTick интегрировал HealthKit, вы можете синхронизировать данные о времени фокусировки с Apple Health.

Политика конфиденциальности: https://www.ticktick.com/about/privacy
Условия пользования: https://www.ticktick.com/about/tos

Чем полезен TickTick:
— Все задачи будут сделаны
— Не пропустите то, что планировали
— Работа станет эффективнее
— Поставите жизнь на рельсы!

Будем на связи:
Facebook: https://www.facebook.com/TickTickApp
Twitter: https://twitter.com/TickTickTeam

Версия 6.3.61

Lock Screen Widget for iOS 16
— Added 8 Lock Screen Widgets so that you can view information at a glance, such as Today Tasks, Focus Distribution, and Today Habit.

New Habits Statistics
— Redesigned Habits Statistics: tap the statistics icon in the Habit tab, and track all habits check-in status.
— Added Week and Month view for Habits Statistics, which helps you develop good habits.

Focus Filters for iOS 16
— You can customize what you see based on the system’s Focus you have enabled. For example, your work list would be hidden when you’re using Personal Focus.

Regular updates will be made to offer you an ever more smooth and stable journey at TickTick.

To follow what’s new, discover tips, or leave us a feedback, let’s chat on Facebook & Instagram @TickTickApp, Twitter @TickTick, or Reddit r/ticktick.

Оценки и отзывы

Оценок: 5,9 тыс.

Хорошее приложение

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

Лучший таск-трекер

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

Минусы:
— не нашёл серьёзных недостатков!
— не совсем минус, скорее отличие: для работы подойдет не всем, нет иерархии задач, назначения соисполнителей, подробной статистики прогресса и т.п.
— русская локализация пока не совершенна.
— на мой взгляд, не хватает иконок или цветовой идентификации задач и списков (цвета есть, но отображаются не везде).

Подписка

Цена подписки выросла с 1790 до 3350₽, подскажите, с чего это вдруг?

Hi there,

Sorry for the inconvenience. I was wondering if you could feedback on this in the app? Our customer supporters will give you more detailed answers to this three matters.

События

УЖЕ ДОСТУПНО

БОЛЬШОЕ ОБНОВЛЕНИЕ

Lock Screen Widgets

8 Lock Screen Widgets, for Task, Pomodoro Timer, and Habits, help you get more things done.

УЖЕ ДОСТУПНО

БОЛЬШОЕ ОБНОВЛЕНИЕ

New Habit Widgets

Monthly statistics for single habit, Weekly for multiple habits. You can get your streak with a glance.

Подписки

Annual TickTick Premium

Most popular. Unlock all features.

3 350,00 ₽

Monthly TickTick Premium

20 premium features to boost productivity

349,00 ₽

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

Связанные
с пользова­телем данные

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

  • Контактные данные

  • Пользова­тель­ский контент

  • Идентифика­торы

  • Диагностика

Не связанные
с пользова­телем данные

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

  • Идентифика­торы

  • Данные об использова­нии

  • Диагностика

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

Информация

Провайдер
Appest Limited

Размер
218 МБ

Категория

Производительность

Возраст
4+

Copyright
© TickTick.com

Цена
Бесплатно

  • Сайт разработчика

  • Поддержка приложения

  • Политика конфиденциальности

Поддерживается

Другие приложения этого разработчика

Вам может понравиться

Лучшие менеджеры задач для iPhone и iPad – Проект AppStudio

Критерии сравнения

Microsoft To-Do

Things 3

2Do

OmniFocus

ListBox

Wunderlist

any. DO

Основная фишкаСамое необходимоеДизайн и подход к деламКрасивая интуитивностьПодходит для управления проектамиПросто и со вкусомПрокачанный список дел
Интеграция и синхронизация
Наличие клиента для компьютера
Облачная синхронизация
Синхронизация через Dropbox
Синхронизация через iCloud
Интеграция с Календарём iOS / OS X
Интеграция с Siri (либо с другим сервисом распознавания речи)
Уведомления и напоминания
Поддержка Push-уведомлений
Геоуведомления
Настраиваемое содержание бейджа на иконке программы
Отображение задач
Инбокс
Список «Сегодня»
Режим календаря
Просмотр задач на карте
Настраиваемая сортировка задач
Настраиваемое оформление
Защита приложения паролем
Организация задач
Поддержка тегов или контекстов
Проекты (списки задач)
Массовое управление задачами
Поддержка делегирования задач людям
Поиск по задачам
Свойства задач
Типы задач (позвонить, посетить и пр. )
Приоритетные задачи
Вложенные задачи
Добавление фотографий к задачам
Добавление голосовых заметок
Добавление местоположения на карте
Поддержка повторяющихся задач
Экспорт контента
Пересылка задач по почте
Поддержка беспроводной печати AirPrint
Совместимость
Совместимость с iPhone / iPod touch
Адаптация под дисплеи с Face ID
Совместимость с iPad
Универсальное приложение (работает и на iPhone, и на iPad)
Поддержка Apple TV
Поддержка Apple Watch
Семейный доступ
Команды Siri
Виджет для Центра уведомлений
Тёмная тема интерфейса
Русификация
Версии для iPhone и iPod touch
Версия для iPhone / iPod touch2. 8.23.11.13.273.4.33.0.93.4.224.39.7
Размер версии для iPhone / iPod touch (МБ)75,975,786,2164,547,0104,1248,1
Цена версии для iPhone / iPod touch в российском App StoreБесплатно749 ₽БесплатноБесплатноБесплатноБесплатноБесплатно
Встроенные покупки в версии для iPhone
Минимально требуемая версия iOS для iPhone / iPod touch

11.0

12.1

10.3

13.0

11.0

8.0

11.0

Дата релиза последнего обновления версии для iPhone / iPod touch15. 01.2009.01.2008.10.1913.01.2027.10.1909.12.1910.01.20
Версии для iPad
Версия для iPad2.8.23.273.4.33.4.224.39.7
Размер версии для iPad (МБ)75,986,2164,5104,1248,1
Цена версии для iPad в российском App StoreFREEFREEFREEFREEFREE
Встроенные покупки в версии для iPad
Минимально требуемая версия iOS для iPad

11.0

10.3

13.0

8.0

11.0

Дата релиза последнего обновления версии для iPad15. 01.2008.10.1913.01.2009.12.1910.01.20
Lite-версии приложений
Наличие lite-версии для iPhone и iPod touch
Наличие lite-версии для iPad
Ограничения lite-версии
Скриншоты приложений
Скриншоты с iPhone / iPod touch
Скриншоты с iPad DO на iPad»/>
Ссылки на App Store
Скачать / купить полную версию программы для iPhone / iPod touch
Скачать / купить полную версию программы для iPad DO для iPad из App Store»/>
Рейтинги и отзывы
Средний рейтинг в App Store (и число оценок)

1586

2160

2017

134

11153

9914

6083

Выбор редакции AppStudio
Обзоры приложений на сайте AppStudio
Критерии сравнения

Microsoft To-Do

Things 3

2Do

OmniFocus

ListBox

Wunderlist

any. DO

Дата прошлой перепроверки таблицы: 13 января 2020 года

рейтинг топ-9 по версии КП

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

К счастью, множество приложений для планирования задач предлагают полноценные функции, которые зачастую бесплатны и доступны для устройств iOS и Android. Мы подобрали 9 самых оптимальных и удобных приложений для планирования распорядка дня и отслеживания задач, которые доступны для скачивания в 2022 году.

Рейтинг топ-9 по версии КП

1. Any.do

Any.do. Фото: any.do

Any.do — отличное приложение с простым и понятным интерфейсом, которое обеспечивает быстрое и простое управление задачами и даже интегрируется с приложением iOS Reminders. Таким образом, вы можете сообщить Siri напоминание, и оно появится в Any. do. Однако синхронизация работает только в одном направлении: удаление задач из Any.do не приведет к его удалению из приложения напоминаний для iPhone, но если вы используете Any.do в качестве основного приложения, это не будет проблемой. Есть также дополнительные удобные функции, такие как автоматическая сортировка списков продуктов и «планировка дня», чтобы помочь расставить приоритеты для задач.

Синхронизация между ПК, планшетом и телефоном — еще одно приятное дополнение к поддержке iOS и Android. За переход на премиум-версию требуется ежемесячная плата в размере 3,50$ для Android и 5$ для iOS, но она расширяет возможности приложения благодаря неограниченным повторяющимся задачам, цветным меткам и флажкам, напоминаниям о местоположении и 100 ГБ для хранения файлов.

Плюсы и минусы

Хорошая интеграция со смартфоном, кросс-платформенность

Цветовая палитра только в платной версии

Google Play
App Store

2. Google Tasks

Google Tasks. Фото: Google

Google Tasks такой же простой, как и список дел на бумаге. Это потрясающе минималистичное и хорошо разработанное приложение, которое делает именно то, что должно, и не более того. Вы можете создавать задачи, составлять их описание, а затем добавлять подзадачи. Они появляются в маркированном списке, и можно пометить каждую подзадачу завершенной, когда придет время. Каждая задача находится под списком, и количество списков, которые вы можете создать, не ограничено.

Вы можете иметь список покупок, список дел и многое другое. В обмен на простоту Google Tasks теряем некоторые более глубокие теги и организационные функции, которые вы можете найти в других приложениях. Задачи Google доступны на iOS и Android. Если вы используете Gmail в Интернете, вы можете увидеть обзор своих задач в правом краю интерфейса, рядом с приложениями Календарь и Google Keep.

Плюсы и минусы

Бесплатность, простой интерфейс

Ограниченные возможности детализации и планирования

Google Play
App Store

3.

Todoist

Todoist. Фото: todoist.com/ru/

Если вам нужно специальное приложение со списком дел, то к Todoist стоит присмотреться. Это одно из крупнейших приложений с огромным количеством пользователей и проверенной годами эффективностью. Вы можете зарегистрироваться с помощью своего профиля в Facebook или учетной записи Google, и начать работу так же просто, как ввести свою первую задачу и нажать «Отправить».

Можно установить крайний срок выполнения, а также назначить приоритет задаче, или положить ее в группу схожих задач. Выполнение включает в себя установку галочки рядом с задачей, и есть определенное удовлетворение от этого действия и его анимации. Настройка напоминаний о задачах, дополнительные активные проекты, комментарии к задачам и автоматическое резервное копирование — все это дополнительные функции, а подписка на Todoist Premium будет приносить вам около 29$ в год. Тем не менее, если вы опробовали его и считаете, что оно того стоит, то 29$ – это разумно для годовой цены.

Плюсы и минусы

Популярность, большое количество настроек

Ограниченная функциональность в бесплатной версии

Google Play
App Store

4. Evernote

Evernote. Фото: evernote.com

Evernote — еще один список задач, который содержит множество других опций, и, вместе с тем, это приложение для заметок. Он поддерживает несколько способов делать заметки и напоминания, включая голосовые заметки, полные списки и фотографии. Тем не менее, Evernote делает еще один шаг вперед благодаря возможности добавлять видео и прикреплять документы Word или PDF-файлы к своим спискам. Как и в случае с Google Keep, каждый раз, когда вы добавляете что-то в Evernote, он будет синхронизироваться на всех ваших устройствах, но в отличие от Keep, есть опция автономного доступа к вашим файлам — но только если вы платите за версию Premium.

Evernote бесплатен в версии Evernote Basic, и стоит 8$ в месяц или 70$в год за Evernote Premium. Но у него есть целый ряд дополнительных опций, таких как автономный доступ, дополнительное хранилище и возможность добавить поддержку паролей для блокировки ваших ноутбуков. Тем не менее, только вы можете решить, стоит ли это ваших денег или нет, и мы всегда рекомендуем какое-то время использовать бесплатную версию, чтобы оценить, стоит ли вам улучшать ее.

Плюсы и минусы

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

Ограниченная функциональность в бесплатной версии

Google Play
App Store

5. Microsoft To-Do

Microsoft To-Do. Фото: todo.microsoft.com

Организационные инструменты редко существуют в «вакууме». Если вы подключены к экосистеме Microsoft с помощью электронной почты Outlook и работы в Office, вам может быть интересно узнать, что у Microsoft есть собственное приложение для ведения дел.

Microsoft To-Do, созданная командой Wunderlist после того, как Microsoft приобрела это приложение в 2015 году. Продукт от «мелкомягких» поразительно похож на Wunderlist — и это неплохо; постановка новых задач проста, и она предлагает почти то же самое с точки зрения инструментов и функций. Microsoft To-Do отличается тем, что делает акцент на My Day, а именно на идее, что вы начинаете каждый день с чистого листа, а в начале каждого дня уделяете время тому, чтобы записать, чего вы хотите достичь в этот день. Это философия жизни без суеты, и она направлена на то, чтобы пользователи сосредоточились на том, что происходит здесь и сейчас. Это подходит не для всех, и если вы любите планировать заранее, то Microsoft To-Do это тоже позволяет. В него даже встроен интеллектуальный инструмент подсказок, который предложит вам задачи на основе вашей предыдущей записи.

Кажется, в будущем Microsoft To-Do будет синхронизироваться с Wunderlist, и вы сможете импортировать задачи Wunderlist, если вы будете переходить из этого приложения. В будущем планируется интеграция с другими службами Microsoft, что тоже очень удобно.

Плюсы и минусы

Простота использования, синхронизация с сервисами Microsoft

Пока не весь функционал доступен

Google Play
App Store

6. Bear

Bear. Фото: bear.app

Если вы предпочитаете хранить свои заметки и список дел вместе, Bear может быть идеальным приложением.

Существует традиционная строка меню, которая позволяет форматировать текст, а также есть возможность использовать стилус для внесения небольших быстрых изменений. Вы также можете группировать списки и заметки по хэштегам, что облегчает поиск всех ваших задач. Bear доступен для iOS, MacOS и WatchOS. Вы можете использовать Bear бесплатно, но если хотите синхронизировать свои устройства, то придется платить 15$ в год. К сожалению, в разработке нет приложения для Android.

Плюсы и минусы

Удобство использования

Платная синхронизация, только для iOS

App Store

7. Ike

Ike. Фото: play.google.com

Предположительно, приложение основано на организационном методе 34-го президента США Дуайта Айка Эйзенхауэра. Ядро приложения основано на приоритете; пометьте самые неотложные задачи как таковые и постройте свой день на работе с наиболее важными из них, сформировав «матрицу приоритетов».

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

Обновление до Ike Pro — это единовременный платеж в размере 2$, который открывает доступ к напоминаниям о местонахождении, аудиозаписи и всем настраиваемым тегам, а также несколько дополнительных функций.

Плюсы и минусы

Недорогая Pro версия, интересный подход к приоритету задач

Ограниченные возможность долгосрочного планирования

Google Play

8.

Habitica: Gamify Your Tasks

Habitica: Gamify Your Tasks. Фото: habitica.com

Возможно, вы подумали, что приложение со списком текущих дел не может быть сильно разнообразным – это не так.

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

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

Плюсы и минусы

Увлекательная игра-мотивация, нестандартный подход к задачам

Сложность в настройке

Google Play
App Store

9. Cal Calendar

Cal Calendar. Фото: play.google.com

Cal Calendar недавно появился на рынке мобильных приложений (Android, iOS). Это детище команды разработчиков Any.do, которое обладает впечатляющей функциональностью и продуманным дизайном. Приложение поставляется с множеством функций, включая поддержку Exchange и Google Calendar, виджеты, запись голоса и многое другое.

Календарь Cal имеет прямую интеграцию с Any.Do To-Do List, который дает вам уникальный тандем из двух приложений. Помимо расширенной функциональности, Cal Calendar прост в использовании. Создание событий очень просто и быстро. Более того, в зависимости от названия события, приложение автоматически добавляет контакты и данные геолокации в описание записи. Вы даже можете импортировать свои списки и записи из Any. do.

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

Плюсы и минусы

Синхронизация с Any.do, простота использования, бесплатность

— Больше функций календаря, чем планировщика задач

Google Play

Как выбрать планировщик задач

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

Для этого советуем сравнить каждое приложение по следующим критериям:

  1. Кросс-платформенность. Количество платформ, на которых доступно каждое приложение.
  2. Функции стимулирования производительности. Наличие ключевых функций повышения производительности и предоставляемых ими фишек.
  3. Удобство использования. Простота и интуитивность интерфейса приложения и его функций.
  4. Лучшее соотношение цены и качества. Сколько функций вы получаете за платную версию, и нужна ли она в принципе.

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

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

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

Планировщик (Майкрософт) для iOS


Planner

Приложения и интеграции



Приложения и интеграции

Планировщик (Майкрософт) для iOS

Планировщик (Майкрософт) Еще. ..Меньше

Если ваша организация использует Microsoft Planner, вы можете сверяться со своими планами в пути с помощью Планировщика для iOS.

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

Кто может использовать Планировщик для iOS?



Пользователи, у которых есть рабочая или учебная подписка на Microsoft 365. К сожалению, вы не сможете использовать Планировщик с личной подпиской на Microsoft 365 (например, имя@outlook.com или имя@hotmail.com) или подпиской для государственных организаций.


Пользователи, у которых есть устройства iPhone, iPad и iPod Touch. Вы можете использовать Планировщик для iOS на любом устройстве с iOS 9. 0 или более поздней версии. Однако это приложение будет лучше всего выглядеть и работать на iPhone и iPad.


Что можно делать в Планировщике для iOS?






Действие


Планировщик в веб-браузере


Планировщик для iOS

Удаление плана

Да

См. статью Удаление задач и планов

Нет

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

Добавление фотографии, снятой с помощью камеры устройства

Нет

Да

См. раздел Добавление фотографии с помощью камеры устройства.

Все другие функции

Да

Дополнительные сведения см. в статье Справка по Планировщику (Майкрософт).

Да

Добавление фотографии с помощью камеры устройства


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

  1. В Планировщике коснитесь задачи в одном из планов.

  2. Коснитесь Add attachments (Добавить вложения).

  3. В правом верхнем углу экрана коснитесь знака плюс (+).

  4. Коснитесь Take photo (Создать снимок).

  5. Сделайте фотографию и, если хотите ее использовать, коснитесь Use Photo (Использовать фотографию). Если нет, выберите Retake (Создать снимок еще раз).

    Созданная фотография появится в списке Attachments (Вложения). Чтобы посмотреть ее на карточке задачи, коснитесь стрелки «Назад» (<). На карточке появится самая недавняя фотография, но вы можете ее изменить на странице Attachments (Вложения). Для этого коснитесь многоточия на фотографии и выберите Show on card (Показать на карточке) или Don’t show on card (Не показывать на карточке).

Зачем Планировщику для iOS нужны разрешения?


Ниже приведен полный список разрешений, которые запрашиваются в Планировщике для Android, и описаны способы их использования в приложении.



Разрешение

Использование

Обязательное или необязательное?

Фотографии

При попытке вложить фотографию в задачу в Планировщик это разрешение позволит приложению Планировщик для iOS получить доступ к фотоальбому для выбора изображения.

Обязательное

Поделитесь с нами своим мнением


Мы с удовольствием вас выслушаем! Отправьте свой отзыв, чтобы помочь нам определить приоритеты новых функций для будущих обновлений. Дополнительные сведения см. в статье Как оставить отзыв по Microsoft Office.


ТОП-25 Лучших Планировщиков Задач +Бесплатные






В этом обзоре мы собрали лучшие планировщики задач для Windows, iOS и Android, которые предлагаются различными разработчиками. Некоторые обладают дополнительным функционалом, но основная задача у них одна – планировка.

Содержание

  • Лучшие платные планировщики задач
    • Todoist
    • Any.do для iOS и Android
    • To Do Reminder
    • Bear
    • Habitica: Gamify Your Tasks
    • Omnifocus
    • Things
    • 24me
    • Wrike
    • Focuster
    • Asana
    • Pyrus
    • Notion
    • Jira
    • Evernote
    • Hygger
    • Мегаплан
    • ЛидерТаск для Windows
    • Мои дела: Планировщик задач
  • Лучшие бесплатные планировщики задач
    • TickTick
    • Trello
    • Microsoft To-Do
    • Google Tasks
    • Remember The Milk
    • WEEEK
    • Wunderlist
    • MyLifeOrganized
    • Cal Calendar
    • TakeWith
  • Заключение

Лучшие платные планировщики задач

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

1

Todoist

  • Условия использования: есть бесплатная ограниченная версия. Стоимость тарифов от 202 ₽ до 336 ₽ в месяц за пользователя.
  • Платформа: Windows, Mac, iOS, Android, Web.

Это продвинутый онлайн-сервис для управления задачами, доступный на всех основных платформах. С простым, лаконичным интерфейсом, а также интеграцией с десятками различных сервисов.

Интерфейс платформы переведён более чем на десять языков. Имеется простой, лёгкий дизайн. Присутствует полная поддержка командной работы. Есть интеграция с различными сервисами и программами, а также облачными сервисами. Программа интегрируется с такими сервисами, как Microsoft Windows, Apple Mac OS X, iOS, Android, Google Chrome, Firefox, Gmail, Microsoft Outlook, Thunderbird, Postbox.

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

Особенности: фиксация и организация задач за секунды, делегирование задач, визуализация продуктивности.

Преимущества:

  • Полная кроссплатформенность
  • Есть русский язык
  • Интеграция с различными ОС, программами
  • Работа с облачными хранилищами
  • Копирование задач
  • Синхронизируется с разными сервисами
  • Командная работа
  • Большой набор инструментов
  • Полная кроссплатформенность
  • Интуитивно понятный интерфейс

Недостатки:

  • Существенных не найдено

https://todoist.com/ru/

2

Any.do для iOS и Android

  • Условия использования: есть бесплатная ограниченная версия. Стоимость тарифов от 201 ₽ до 403 ₽ в месяц.
  • Платформа: Windows, Mac, iOS, Android, Web.

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

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

В этом проекте имеются даже версии для мобильных платформ iOS Android. Не говоря уже о способности работать на ОС Windows, Linux, macOS. На ПК программа боле функциональна, поддерживает прикрепление картинок к задачам, а также может использовать карточки для каждого напоминания.

Особенности: подходит для командной работы, удобные напоминалки, работает с умными колонками и смарт-часами.

Преимущества:

  • Присутствует русский язык в интерфейсе
  • Продвинутый календарь с настройками
  • Создание заметок
  • Расширенная цветовая палитра
  • Быстрая настройка параметров
  • Работа на Android, iPhone, iPad
  • Кроссплатформенность
  • Есть расширения для браузеров
  • Интуитивно понятное меню

Недостатки:

  • Существенных не найдено

https://www. any.do/

3

To Do Reminder

  • Условия использования: есть бесплатная ограниченная версия. Стоимость тарифов от 168 ₽ до 370 ₽ в месяц.
  • Платформа: Android, iOS.

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

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

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

Преимущества:

  • Наличие русской локализации
  • Удобство, скорость работы со списками
  • Поддержка сервисов для синхронизации, импорта
  • Интеграция с Facebook
  • Доступна визуализация задач
  • Можно делегировать задачи тиммейтам
  • Заметки прекрасно сортируются
  • Работа с облачными хранилищами
  • Кроссплатформенность

Недостатки:

  • Много рекламы в бесплатной версии

https://todoreminder.com/

  • Условия использования: есть бесплатная ограниченная версия. Стоимость тарифов от 100 ₽ в месяц до 1010 ₽ в год.
  • Платформа: Mac, iOS.

Прежде всего он привлекает удобством организации заметок: созданием перекрёстных ссылок, меток с несколькими уровнями вложенности, принципом тегирования. С помощью Bear можно не только быстро что-то записать, оставить на память, но также создать личную «Википедию».

В стандартных заметках удобно искать, просматривать записи с картинками, файлами, закладками. В версии для macOS можно выделить нужные заметки, вызвать в меню «Заметка», затем «Объединить». Данное приложение мультиплатформенное, позволяет даже отправить планы по Email. Есть возможность присваивать каждой задаче собственный цвет.

Особенности: один из лучших заметочников для iOS и macOS. Расширенные настройки текста напоминания, приятное оформление, редактор закладок, поддержка форматов HTML, PDF, DOCX, MD, JPG.

Преимущества:

  • Подходит писателям
  • Поддерживает командную работу
  • Есть интеграция с облаками
  • Создание простых заметок
  • Продвинутый интерфейс
  • Есть приложение для iOS

Недостатки:

  • Существенных не найдено

https://bear.app/

5

Habitica: Gamify Your Tasks

  • Условия использования: есть бесплатная версия для одного человека. Стоимость тарифов для групп от 606 ₽ в месяц.
  • Платформа: iOS, Android, Web.

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

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

Особенности: подготовка к школе и для работы, отслеживание привычек и целей, мотивация на достижение целей.

Преимущества:

  • Менеджер задач в игровом виде
  • Встроенная напоминалка
  • Имеется веб-версия
  • Можно воспользоваться планшетом
  • Подходит для повышения производительности
  • Быстрое переключение между задачами
  • Подойдет для долгосрочного планирования
  • Для индивидуального использования бесплатно
  • Открытый исходный код

Недостатки:

  • Для серьёзной работы не годится

https://habitica.com/static/home

6

Omnifocus

  • Условия использования: есть бесплатная ограниченная версия. Стоимость тарифов от 673 ₽ в месяц или 6737 ₽ единоразово.
  • Платформа: Mac, iOS, Web.

OmniFocus для различных платформ позволяет использовать всю мощь средств управления задачами на мобильных устройствах. Интерфейс OmniFocus для iOS создан «с чистого листа», ориентирован на пользовательские данные, позволяя быстро записывать идеи, задачи, находить их в программе, использовать в жизни в рамках концепции Getting Things Done (GTD) или другой системы повышения продуктивности. OmniFocus предназначен для записи ваших мыслей, позволяет вам хранить, управлять, обрабатывать их в практические задачи.

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

Особенности: грамотно организованный интерфейс, гибкие настройки, работа со смарт-часами Apple, есть версия для браузеров.

Преимущества:

  • Есть версии для Mac, iPhone
  • Поддержка концепции GTD
  • Интуитивно понятный интерфейс
  • Быстрая запись мыслей
  • Есть веб-версия
  • Можно поделиться планом с коллегами
  • Отличается аскетичным дизайном
  • Имеет встроенный ежедневник
  • Поддержка многопользовательского сценария работы
  • Продуманное оформление

Недостатки:

  • Нет русского языка

https://www. omnigroup.com/omnifocus

7

Things

  • Условия использования: есть бесплатная пробная версия. Стоимость от 673 ₽ до 3368 ₽ единоразово.
  • Платформа: Mac, iOS.

Это проект немецкой команды в виде приложений для iPhone, iPad и Mac. Дизайн вполне приемлем для приложения такого рода, панель с папками расположена в левой части, дела делятся по категориям на «Сегодня», «Следующие», «Запланировано», «Потом» и «Проекты». Кроме того, задачи можно вносить из других программ, к примеру, из браузера, выполненные задания переносятся в «Журнал», при удалении — в «Корзину».

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

Особенности: продвинутая система создания и поиска задач, приятное оформление, гибкие настройки напоминаний.

Преимущества:

  • Планирование задач на сегодняшний день
  • Перемещение дел в списки
  • Контроль за выполнением задач
  • Поддержка тегов для присвоения контекста
  • Выставление приоритетов и времени задачи
  • Быстрая фильтрация списка задач для поиска актуальных

Недостатки:

  • Нет напоминаний

https://culturedcode.com/things/

  • Условия использования: есть бесплатная версия для индивидуального использования. Стоимость тарифов для групповой работы по запросу.
  • Платформа: Android, iOS.

Помимо объединения всех календарей, заметок и задач, 24me умеет подключать и некоторые сторонние, как, например, календарь из Facebook и систему TaskRabbit. Кроме того, есть возможность вручную добавить аккаунты различных услуг.

Приложение вполне функционально, особенно для любителей «все в одном». Синхронизация с календарями (включая Outlook, который используется в подавляющем количестве офисов), напоминания, завязанные на ваши контакты и геопозицию, оплата счетов (где это возможно) в пару тапов – вполне удобны.

Особенности: интеграция с соцсетями и другими системами, удобный интерфейс, синхронизация напоминаний с разными устройствами.

Преимущества:

  • Подходит для кооперативной работы
  • Планирование звонков, СМС, рассылок
  • Интеграция с Facebook
  • Поддержка облачных хранилищ
  • Синхронизация с Microsoft Outlook
  • Для индивидуального использования бесплатно

Недостатки:

  • Существенных не найдено

https://www.twentyfour.me/

  • Условия использования: бесплатно для группы из 5 человек. Стоимость тарифов от 660 ₽ до 1671 ₽ за пользователя в месяц.
  • Платформа: Android, iOS, Web.

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

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

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

Преимущества:

  • Выставление приоритетов задачам
  • Ведение диалогов в задачах
  • Совместная работа над файлами
  • Лента новостей в режиме реального времени
  • Табличное форматирование
  • Интеграции с Google Drive, Dropbox, Box, iCal и почтой

Недостатки:

  • Существенных не найдено

https://www. wrike.com/ru/

10

Focuster

  • Условия использования: есть бесплатная пробная версия. Стоимость тарифов от 538 ₽ до 1010 ₽ в месяц.
  • Платформа: Android, iOS, Web.

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

При сортировке списка Focuster основывается на календаре пользователя и важности каждого из дел. Focuster помогает устранять отвлекающие факторы, помогая вам расставить приоритеты. Благодаря автоматическому изменению расписания приоритеты мгновенно обновляются. Напоминания позволяют сосредоточиться в течение дня.

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

Преимущества:

  • Встроенные заметки, напоминания
  • Возможность сфокусироваться на задаче
  • Есть расширения для браузеров
  • Автоматическая расстановка приоритетов
  • Устранение отвлекающих факторов
  • Интуитивно понятный интерфейс

Недостатки:

  • Существенных не найдено

https://www. focuster.com/

  • Условия использования: есть бесплатная ограниченная версия. Стоимость тарифов от 740 ₽ до 1683 ₽ за пользователя в месяц.
  • Платформа: Windows, Mac, Android, iOS, Web.

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

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

Особенности: удобное визуальное представление работы, продуманное управление проектами, элементы управления администратора.

Преимущества:

  • Множество интересных инструментов
  • Есть мобильные приложения
  • Доступно для разных ОС
  • Встроенный календарь
  • Автоматизация рутинных процессов
  • Автоматическая синхронизация
  • Создание отдельных проектов

Недостатки:

  • Существенных не найдено

https://asana. com/ru

  • Условия использования: есть бесплатная ограниченная версия. Стоимость тарифов от 233 ₽ в месяц.
  • Платформа: Mac, iOS, Android, Web.

Это сервис для совместной работы и автоматизации бизнес-процессов. В Pyrus сотрудники общаются друг с другом, ставят задачи и следят за их выполнением, отвечают на обращения клиентов, согласуют документы и организуют рабочие процессы.

Отличительная черта Pyrus — возможность гибкой настройки бизнес-процессов самими пользователями без программирования и привлечения IT-специалистов. Благодаря полученным отчётам даётся оценка эффективности работы команды и итогам по числу заявок, вносятся изменения в текущие бизнес-процессы.

Особенности: готовые решения для ежедневных задач, доступны расширения, инструменты для кадрового документооборота.

Преимущества:

  • Визуальный конструктор бизнес-процессов
  • Маршрутизация на основе бизнес-правил
  • Дашборды процессов для руководителей
  • Синхронизация справочников
  • 256-битное AES и SSL/TLS шифрование
  • Мобильные приложения под iOS и Android
  • До 50 задач, созданных по формам

Недостатки:

  • Существенных не найдено

https://pyrus. com/ru

13

Notion

  • Условия использования: есть бесплатная ограниченная версия. Стоимость тарифов от 269 ₽ в месяц.
  • Платформа: Windows, Mac, iOS, Web.

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

Также в Notion есть возможность отформатировать ваши данные в виде таблицы, календаря, доски agile, диаграммы Ганта и другими способами. Приложение может заменить сразу несколько популярных инструментов, в том числе Evernote, Trello и Google Docs.

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

Преимущества:

  • Доступно создание заметок, документов
  • Собственные базы знаний
  • Постановка задач, управление ими
  • Удобный интерфейс
  • Заменяет многие приложения
  • Кроссплатформенность

Недостатки:

  • Нет русского языка

https://www. notion.so/

  • Условия использования: бесплатно для команды из 10 человек. Стоимость тарифов от 505 ₽ до 977 ₽ в месяц за пользователя.
  • Платформа: Windows, Android, iOS, Web.

Это платформа для управления проектами, задачами и отслеживания ошибок. Платформа предназначена, в первую очередь, для разработчиков и ведения agile-проектов. Jira доступна в веб-версии и в виде десктопного приложения.

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

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

Преимущества:

  • Настраиваемые scrum-доски
  • Гибкие kanban-доски
  • Система автоматизации
  • Настраиваемые фильтры
  • Мобильные приложения
  • Многофункциональные API
  • Совместимость с другим подобным софтом

Недостатки:

  • Только для организаций

https://www. atlassian.com/ru/software/jira

15

Evernote

  • Условия использования: есть бесплатная ограниченная версия. Стоимость тарифов от 538 ₽ до 1010 ₽ в месяц.
  • Платформа: Windows, Mac, iOS, Android, Web.

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

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

Особенности: инструменты для сканирования документов, продвинутые алгоритмы поиска, объединение заметок и списков дел.

Преимущества:

  • Много инструментов для создания
  • Встроенный планировщик
  • Быстрое редактирование записей
  • Интеграция с облачными хранилищами
  • Синхронизация с календарем
  • Работа с социальными сетями
  • Приложения для Android, iOS

Недостатки:

  • Существенных нет

https://evernote.com/intl/ru/

16

Hygger

  • Условия использования: есть бесплатная ограниченная версия. Стоимость тарифов от 471 ₽ до 943 ₽ в месяц.
  • Платформа: Android, iOS, Web.

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

Atlaz доступен в веб-версии и в качестве мобильного приложения (iOS и Android). Hygger изначально создавался как улучшенная версия таск-менеджеров Jira и Trello. Стоит сказать, что создатели преуспели в этом, добавив бесплатно те фичи, которых не хватает у их конкурентов.

Особенности: интеграция с Jira, Trello, Asana и другим ПО, удобная шкала времени, быстрая работа.

Преимущества:

  • Удобная временная шкала
  • Продуманное меню
  • Списки задач
  • Канбан доски
  • Приложения для iOS, Android
  • Имеется веб-версия

Недостатки:

  • Отсутствие русского языка

https://hygger.io/

17

Мегаплан

  • Условия использования: есть бесплатная ограниченная версия. Стоимость тарифов от 384 ₽ до 979 ₽ в месяц с пользователя.
  • Платформа: Windows, Linux, Mac, Android, iOS, Web.

Это мощная система для управления бизнесом с расширенными возможностями в области проектов и заказов. Продукт позволяет автоматизировать внутренние и внешние процессы, наладить взаимоотношение с клиентами, а также управлять и координировать персонал.

С одной стороны, такое совмещение Task и CRM может быть довольно удобным. С другой стороны, функции CRM-системы доступны только в одном из тарифных планов, и там представлены достаточно слабо. Проект запущен в 2008 г. по модели SaaS.

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

Преимущества:

  • Мощная CRM система
  • Можно настроить под свои нужды
  • Высокий уровень безопасности
  • Есть специальные тарифы для бизнеса
  • Учёт рабочего времени
  • Есть контроль продуктивности
  • Много различных инструментов

Недостатки:

  • Подходит только компаниям

https://megaplan. ru/

18

ЛидерТаск для Windows

  • Условия использования: есть бесплатная ограниченная версия для одного пользователя.  Тарифы от 249 ₽ до 349 ₽ в месяц.
  • Платформа: Windows, Mac, iOS, Android, Web.

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

ЛидерТаск идеально подходит для применения всемирно известной методологии повышения эффективности Getting Things Done (GTD) от Дэвида Аллена. В этом приложении есть возможность группировать вкладки, оно поможет разобраться в приоритетности, также даст возможность подключить популярные мессенджеры.

Особенности: доски канбан, статистические данные по команде, программа для удаленной работы, подходит фрилансерам.

Преимущества:

  • Есть напоминания
  • Можно создавать целые проекты
  • Доски доступны на Windows, macOS
  • Хранение данных в облаке
  • Встроенный таймер
  • Можно создать поручение
  • Расширенные опции просмотра задач
  • Доступны чек-листы
  • Подходит для командной работы
  • Низкие расценки

Недостатки:

  • Существенных не найдено

Главная

19

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

  • Условия использования: есть бесплатная ограниченная версия. Стоимость тарифов от 66 ₽ до 2233 ₽ в месяц.
  • Платформа: Android, iOS.

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

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

Особенности: простота и высокая функциональность, система контроля эффективности, продуманные напоминалки.

Преимущества:

  • Имеется бесплатная версия
  • Доступны приложения для iOS, Android
  • Быстрое создание задач
  • Редактирование готовых задач
  • Интуитивно понятный интерфейс
  • Стильный дизайн
  • Уведомления для смартфонов

Недостатки:

  • Бесплатная версия сильно ограничена

https://play.google.com/store/apps/

Читайте также:
ТОП-8 Эмуляторов iOS на ПК: выбираем оптимальный инструмент для Windows

Лучшие бесплатные планировщики задач

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

1

TickTick

  • Условия использования: бесплатно.
  • Платформа: iOS, Android, Web.

TickTick позволяет создавать множество списков задач. Это базовая функция, которая доступна во всех подобных приложениях. У меня создано три списка: рабочие задачи, жизненные задачи (бытовые) и просто заметки.

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

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

Преимущества:

  • Доступен голосовой ввод
  • Есть интеграция с Siri, виджеты и Quick Ball
  • Умный анализ данных
  • Напоминание о местоположении
  • Различные виды календаря
  • Активность в задачах

Недостатки:

  • Существенных не найдено

https://ticktick. com/

2

Trello

  • Условия использования: бесплатно.
  • Платформа: Windows, Mac, iOS, Android, Web.

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

Она позволяет эффективно организовывать работу по японской методологии канбан-досок. Она создана Fog Creek Software в 2011 году на базе MongoDB, Backbone.js и Node.js. Trello доступен на компьютерах в виде десктопной версии, в браузерной версии и версии для мобильных устройств.

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

Преимущества:

  • Метод канбан-досок
  • Имеются версии для смартфонов
  • Есть веб-интерфейс
  • Приватные и публичные команды
  • Продвинутые списки
  • Гибкие настройки
  • Есть русский язык

Недостатки:

  • Существенных нет

https://trello. com/

3

Microsoft To-Do

  • Условия использования: бесплатно.
  • Платформа: Windows, Mac, iOS, Android, Web.

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

Задачи в Microsoft To Do создаются непосредственно в списках, для их создания достаточно нажать кнопку «Добавить задачу» и описать её. Это может быть идеальным вариантом для тех, кто чувствует себя перегруженным чрезвычайно загруженным графиком.

Особенности: продвинутый планировщик дел, простое управление задачами, доступ из любой точки мира.

Преимущества:

  • Создание задач в списках
  • Интеграция с другими сервисами Microsoft
  • Возможность создания заметок
  • Бесплатное использование
  • Приложения для iOS, Android
  • Интеграция со Skype

Недостатки:

  • Не обнаружено

https://todo. microsoft.com/tasks/

4

Google Tasks

  • Условия использования: бесплатно.
  • Платформа: Android, iOS.

По умолчанию в Google Tasks есть один стандартный список — «Мои задачи», но вы можете создать сколько угодно собственных. Лучше всего настроить цикличность для рутины и даже редко повторяющихся дел. Это экономит время и даёт уверенность в том, что вы о них не забудете.

Для удобства и экономии времени резонно создать задачу прямо из почты. И такая возможность предусмотрена в Google Tasks. Шорткаты значительно ускоряют работу, позволяя взаимодействовать с задачами на автомате, что особенно важно при активном использовании Google Tasks.

Особенности: быстрое добавление деталей, интеграция с Gmail, Google Calendar, постоянное отслеживание задач.

Преимущества:

  • Быстрое создание задач
  • Поддержка заметок
  • Синхронизация с календарём
  • Работа с облачными хранилищами
  • Поддержка горячих клавиш
  • Быстрое создание задач;
  • Функционирование на любом смартфоне

Недостатки:

  • Существенных нет

https://support. google.com/tasks/

5

Remember The Milk

  • Условия использования: бесплатно.
  • Платформа: Windows, Mac, Linux, iOS, Android, Web.

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

Данный планировщик переведен на русский язык, однако локализация выполнена лишь частично. Сервис может тесно интегрироваться с другими полезными приложениями, например, Evernote, Gmail, Google Calendar, Microsoft Outlook, Siri и Twitter.

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

Преимущества:

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

Недостатки:

  • Не обнаружено

https://www. rememberthemilk.com/

  • Условия использования: бесплатно для маленьких команд (до 5 человек). Для больших команд и бизнеса от 590 ₽ до 690 ₽ за пользователя в месяц.
  • Платформа: Android, iOS, Web.

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

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

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

Преимущества:

  • Режимы досок, календаря, списков
  • Автоматизация
  • Фильтры и поиск
  • Группы задач
  • Встроенная база данных
  • Ссылки на задачи
  • Умные уведомления

Недостатки:

  • Существенных не найдено

https://weeek.net/ru

7

Wunderlist

  • Условия использования: бесплатно.
  • Платформа: Windows, Mac, iOS, Android, Chrome, Safari.

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

Приложение поддерживается многими браузерами, что значительно упрощает его использование и позволяет добавлять контент из интернета и социальных сетей — Google Chrome, Yandex, Firefox, Safari, Android и iOS.

Особенности: создание напоминаний, поручений и важных событий, добавление комментариев, заметок.

Преимущества:

  • Установка крайнего срока
  • Выставление срока напоминания
  • Добавление подзадачи, заметки, файла
  • Доступны комментарии, заметки
  • Есть расширения для браузеров
  • Быстрая работа на разных платформах
  • Интуитивный интерфейс

Недостатки:

  • Существенных не найдено

https://wunderlist.ru/

8

MyLifeOrganized

  • Условия использования: бесплатно. Стоимость версии Pro от 1818 ₽ до 3365 ₽ единоразово в зависимости от версии приложения.
  • Платформа: Windows, iOS, Android.

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

Нет конкурентов у MLO и в возможностях фильтрации и создания закладок с наборами фильтров. Продукт способен нормально функционировать под Windows, iOS, Android. Основные критерии, которые пользователи предъявляют к планировщикам – надежность и наличие уведомлений. MLO соответствует этим критериям.

Особенности: превращение иерархии в простой список задач, создание задачи почтой, защищенный сервис облачной синхронизации.

Преимущества:

  • Составление списка задач
  • Создание иерархии
  • Напоминания по месту
  • Синхронизация через Облако
  • Есть версии для iOS, Android
  • Есть служба поддержки
  • Большое количество инструментов

Недостатки:

  • Существенных не найдено

https://www.mylifeorganized.net/index-ru.shtml

9

Cal Calendar

  • Условия использования: бесплатно.
  • Платформа: Web.

Теперь календарь смело можно назвать умным. Благодаря интеграции с социальными сетями и с контактами в вашем смартфоне Cal видит всех, кто прикреплен к тому или иному событию и дает возможность позвонить или отправить сообщение, не выходя из приложения. Конечно, полностью Cal раскрывается в связке с приложением Any.do.

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

Особенности: глубокая интеграция с разными сервисами, умная система добавления задач, без интеграции с другими сервисами функционал не очень большой.

Преимущества:

  • Голосовой ввод данных
  • Интеграция с соцсетями
  • Система предикативного ввода
  • Возможность позвонить, отправить SMS
  • Много инструментов для планирования
  • Понятный интерфейс

Недостатки:

  • Без связки с Any. do не такой функциональный

https://cal.com/

10

TakeWith

  • Условия использования: бесплатно.
  • Платформа: Android.

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

Помимо объединения всех календарей, заметок и задач, TakeWith умеет подключать и некоторые сторонние, как, например, календарь из Facebook. Специальная функция напомнит вам какие вещи взять с собой для определенных задач или мест.

Особенности: инструмент для записи идей, распределение заданий по категориям, повышенный уровень безопасности.

Преимущества:

  • Подходит для кооперативной работы
  • Мощные инструменты для планировки
  • Объединение календарей, заметок
  • Синхронизация с соцсетями
  • Интеграция с календарем Google
  • Группировка задач

Недостатки:

  • Существенных не найдено

https://takewithapp. com/

Читайте также:
CRM-системы. ТОП-30 Лучших +Бесплатные программы

Заключение

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

  • Программы для индивидуального использования: Google Tasks, Remember The Milk, Microsoft To-Do, Trello, TakeWith и так далее (по большей части бесплатные продукты).
  • Сервисы для команд и небольшого бизнеса: 24me, Focuster, Asana, Todoist, Evernote, WEEEK, Bear, Omnifocus и другие приложения подобного толка.
  • Варианты для серьезных компаний: Wrike, Мегаплан, Jira, Any.do и другие многофункциональные продукты.

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

10 современных планировщиков задач — ITC.ua

Среди множества планировщиков задач мы выбрали 10 современных вариантов. Эти приложения помогут организовать личную жизнь и работу, повысят количество выполненных дел, не дадут забыть о важных вещах и освободят голову от постоянного «шума». Если в нашем топе нет программы, которой пользуетесь вы, то пишите ее название в комментариях и расскажите, чем она нравится.

Помогаем

Зміст

  • 1 TickTick
  • 2 Any.do
  • 3 Trello
  • 4 Notion
  • 5 Google Keep
  • 6 Microsoft To-Do
  • 7 Todoist
  • 8 Remember The Milk
  • 9 Omnifocus
  • 10 WeDo

TickTick

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

В TickTick есть поддержка голоса, поэтому задачи можно ставить не только письменно. А для улучшения концентрации при работе создатели добавили классический и удобный таймер в стиле pomodoro. TickTick есть в виде приложений для Android и iOS и как расширение браузеров Google Chrome и Firefox. 

Курс

QA

Вивчайте важливi технології для тестувальника у зручний час, та отримуйте $1300 уже через рік роботи

РЕЄСТРУЙТЕСЯ!

Any.do

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

С Any.do удобно ходить за покупками, записывая нужные продукты или товары во встроенном заметочнике, а для детальной планировки дел тут есть календарь. Составленными задачами, списками покупок и поездками удобно делиться с членами семьи, коллегами и друзьями. Any. do поддерживает управление голосом (Alexa и Siri) и доступен на Android и iOS.

Trello

Trello — одно из самых популярных приложение с канбан-досками. Это удобные карточки с делами, которые рассортировываются по тематическим столбикам. Каждому заданию присваивается название, прикрепляются документы, файлы, добавляются участники и сроки выполнения, расписываются подробности дела и так далее. 

Чаще всего Trello используется не только в личных целях, но и для работы. Приложение помогает маленьким или большим компаниям, корпорациям и СМИ. Своя рабочая доска в Trello есть и у автора этого материала. 

В Trello организована детальная визуальная настройка: можно установить задний фон, прикрепить к карточке картинку, загрузить видео или покрасить в другой цвет. Trello есть в виде веб-версии с расширениями для Chrome и Firefox, отдельной программой для Windows и MacOS или в виде приложения на Android и iOS. 

Notion

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

Google Keep

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

Google Keep часто используют для заметок, списков покупок, книг к прочтению и кратковременных дел. Задачи тут представлены в виде карточек, куда крепятся списки, файлы, рисунки, фото, документы и прочее. Карточкам можно изменить цвет и прикрепить вверху экрана, если этой заметкой (или заметками) пользуются чаще других. 

У Google Keep есть мощная интеграция с другими сервисами Google, поэтому из любого письма или документа в Google Docs или Gmail быстро создается заметка в Google Keep, а задачи удобно просматриваются через «Google Календарь». Google Keep представлен приложениями на Android и iOS и расширением для Chrome. 

Microsoft To-Do

У компании Microsoft тоже есть свой планировщик задач. Microsoft To-Do не выделяется обилием возможностей, зато прост в использовании. Есть базовые списки дел, задачи и напоминания, а также смарт-рекомендации по спискам и датам выполнения. Все это отправляется нужным людям и синхронизируется с другими программами компании — Outlook и Office 365.

Microsoft To-Do представлен в виде программы для Windows и приложений на Android и iOS.

Todoist

Приложение Todoist уже давно стало «Выбором редакции» в магазине Google Play и часто попадает в топы самых-самых планировщиков. Функционал программы действительно огромен, но часть фишек открываются только при покупке платной версии. 

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

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

В Todoist есть привязка к файлам из Google Диска» и Dropbox, а также совместная работа с кучей других сервисов. Не забыли о поддержке управления голосом. Todoist работает, как веб-сервис, приложение для Windows, Android и iOS, а также расширениями для браузеров Google Chrome и Mozilla Firefox.

Remember The Milk

Симпатичное приложение Remember The Milk поможет справится с базовыми делами: поставить напоминание, указать подробности задачи, ее время и место. Помимо этого, в программе можно создавать списки и отправлять уведомления в социальные сети, мессенджеры или на почту — так вы точно не пропустите встречу, событие или дело. 

Для длительных задач позволено ставить промежуточные дела, а проигнорировать просроченные не даст система смарт-списков. Remember The Milk умеет создавать тематические списки дел, включая давно отложенные, невыполненные, часто переносимые и прочее. Есть загрузка файлов из Dropbox или «Google Диска».

Remember The Milk представлен виде расширения для Google Chrome или как приложение на Android и iOS.  

Omnifocus

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

В Omnifocus добавили возможность просматривать текущие задачи и сроки их выполнения, количество завершенных проектов и степень их отработки. Программа также умеет рекомендовать дела в зависимости от места нахождения пользователя. Если тот на работе, то сама предложить ему задачи из нужного списка, а если дома, то напомнит о покупке продуктов, ремонте крана и прочем. Omnifocus доступен только для пользователей iOS или macOS. 

WeDo

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

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

Swift iOS BackgroundTasks framework — Обновление фонового приложения за 4 шага | Myrick Chow

IOS позволяет приложению обновлять свое содержимое, даже когда оно отправляется в фоновый режим. iOS может интеллектуально изучать поведение пользователя и планировать выполнение фоновых задач непосредственно перед рутинным использованием. Для приложения полезно получать последнюю информацию со своего сервера и отображать пользователю сразу после возобновления работы приложения на переднем плане. Примерами являются приложения для социальных сетей (Facebook, Instagram и WhatsApp) и новостные приложения.

иллюстрация приоритетной и фоновой задачи; Копия со слайда презентации WWDC 2019

Начиная с iOS 13 Apple добавила новую структуру — BackgroundTasks — для обработки запроса фоновой задачи между iOS и приложением. BGAppRefreshTask и BGProcessingTask — это два доступных типа фоновых задач. BGAppRefreshTask может иметь 30 секунд для завершения своей работы, а BGProcessingTask может иметь более минуты . Метод обработки для старого приложения (_:performFetchWithCompletionHandler:) отличается.

Выполнение фоновой задачи зависит от нескольких условий, в том числе:

  1. Разрешение пользователя на «Фоновое обновление приложения»
  2. Питание от зарядного устройства
  3. Сетевое подключение

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

Шаг 1) Включите фоновые режимы для целевого приложения

Перейдите к сеансу « Фоновые режимы » целевого приложения и установите флажок « Фоновая выборка 9».0006» и « Фоновая обработка », если используются соответственно BGAppRefreshTask и BGProcessingTask.

Сеанс возможностей целевого приложения

Шаг 2) Добавьте «

Разрешенные идентификаторы планировщика фоновых задач »

Перейдите к info. plist и добавьте свойство « Разрешенные идентификаторы планировщика фоновых задач » с идентификаторами для BGAppRefreshTaskRequest и BGProcessingTaskRequest.

Режим списка свойств

Шаг 3) Зарегистрируйте идентификатор задачи планировщика

Зарегистрируйте задачу планировщика в BGTaskScheduler с идентификатором, определенным на предыдущем шаге, и обработчиком завершения, который выполняется при запуске фоновой задачи.

Согласно официальной документации, обработчики запуска для BGTaskRequest должны быть зарегистрированы до окончания последовательности запуска приложения, т.е. application(_:didFinishLaunchingWithOptions:).

Повторная регистрация одного и того же идентификатора задачи может привести к тому, что iOS завершит работу приложения!! Вот сообщение об ошибке:

 *** Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Запуск обработчика задачи с идентификатором com. example.fooBackgroundAppRefreshIdentifier уже зарегистрирован»  

Отправка BGTaskRequest может вызвать следующие исключения:

  1. BGTaskSchedulerErrorCodeUnavailable
    Пользователь отключил параметр «Фоновое обновление приложения» на странице настроек приложения
  2. BGTaskSchedulerErrorCodeTooManyPendingTaskRequests
    Всего может быть запланировано 1 задание обновления и 10 заданий обработки в любое время.
  3. BGTaskSchedulerErrorCodeNotPermitted
    Соответствующий «Фоновая выборка» или «Фоновая обработка» не проверяется в сеансе фоновых режимов возможностей приложения.

Вот коды для BGAppRefreshTaskRequest :

Ожидание запуска iOS для запуска BGTask — утомительная работа во время разработки, поскольку iOS контролирует точное время срабатывания BGTask для оптимизации производительности устройства. Поэтому Apple предоставляет следующие команды ( SimulationLaunchForTaskWithIdentifier и SimulationExpirationForTaskWithIdentifier ) для имитации и завершения BGTask :

Команды не являются кодами Swift и могут быть выполнены только на терминале Xcode. Выполните шаги, показанные ниже, чтобы вызвать BGTask в Xcode:

Шаг 1: Приостановите приложение в любой момент после отправки BGTask в BGTaskScheduler

Шаг 2: Запустите команду на терминале в Xcode

Шаг 3: Возобновите работу приложения

Вы можете увидеть затем запускается обработчик завершения зарегистрированной BGTask.

Свойство: expireHandler

Наиболее важным свойством BGTask является expireHandler . Это обратный вызов, который iOS вызовет, когда BGTask должен быть прерван системой из-за тайм-аута или других проблем.

Функция: setTaskCompleted(success: )

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

Сравнение: Использование

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

BGProcessingTask используется при выполнении длительной обработки. Время для BGProcessingTask может быть от до минут! Однако задачи обработки выполняются только тогда, когда устройство бездействует . Система завершает выполнение любых задач фоновой обработки, когда пользователь начинает использовать устройство . Задачи фонового обновления не затрагиваются. Поэтому необходимо установить expireHandler для объекта BGTask , представленного в предыдущем разделе. Система попытается выполнить этот запрос в меру своих возможностей в течение следующих двух дней, если пользователь использовал ваше приложение в течение прошлой недели.

Общее поле)

EarlyBeginDate

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

BGProcessingTaskRequest — Конфигурация 1) requireNetworkConnectivity

Укажите, требуется ли этому фоновому процессу подключение к сети. Значение по умолчанию — ложь.

BGProcessingTaskRequest — Конфигурация 2) requireExternalPower

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

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

Мы можем использовать UIApplication.shared.backgroundRefreshStatus , чтобы получить текущий статус авторизации фонового обновления приложения. Возможны три значения:

  1. доступно — пользователь включил функцию фонового обновления приложения. Это значение по умолчанию при первой установке приложения.
  2. отклонено — пользователь явно отключил функцию фонового обновления приложения. Мы можем перенаправить пользователя на страницу настроек приложения, чтобы переключить статус с помощью кода UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) .
  3. ограничить — Пользователь не может переключать статус фонового обновления из-за ограничений своей учетной записи, например. родительский контроль

После того, как пользователь изменил статус обновления фонового приложения, приложение может быть уведомлено, наблюдая за Уведомление UIApplication.backgroundRefreshStatusDidChangeNotification . Это можно использовать для отображения любого всплывающего диалогового окна для пользователя, чтобы объяснить использование и важность фонового обновления приложения для потока приложения.

  1. Фоновая задача может выполняться только тогда, когда пользователь включает «Фоновое обновление приложения».
  2. Идентификатор фоновой задачи должен быть добавлен в поле « Разрешенные идентификаторы планировщика фоновых задач» в info.plist
  3. BGAppRefreshTask может иметь 30 секунд, а BGProcessingTask имеет более 1 минуты для завершения своей фоновой задачи.
  4. В любой момент времени может быть запланировано 1 задание обновления и 10 заданий обработки.
  5. Регистрация идентификатора задачи должна быть выполнена до завершения запуска приложения с параметрами application(_:didFinishLaunchingWithOptions:)
  6. Повторная регистрация одного и того же идентификатора задачи может привести к тому, что iOS завершит работу вашего приложения.
  7. Запущенная фоновая задача не может быть запущена снова в будущем. Он должен быть повторно представлен/перенесен на другое время.

Если вам необходимо поддерживать пользователя с устройством, работающим под управлением iOS 12 или более ранней версии, вместо этого используйте application(_:performFetchWithCompletionHandler:) с setMinimumBackgroundFetchInterval(:_). Вы можете найти более подробную информацию здесь ниже:

Обновление фонового приложения Swift iOS за 3 шага

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

Сколько там ограничений…

itnext.io

1. Пример кода WWDC 2019сеанс 707: Улучшения в фоновом выполнении приложений.

Документация разработчика Apple

WWDC 2019

developer.apple.com

2. Официальная документация платформы BackgroundTasks

Фоновые задачи | Документация Apple Developer

Документация Apple Developer

Фоновые задачи | Документация для разработчиков Apple

developer.apple.com

Вы можете подписаться на меня в Twitter@myrick_chow для получения дополнительной информации и статей. Спасибо, что прочитали эту статью. Хорошего дня! 😄

Фоновые задачи в SwiftUI | Свифт с Маджидом

Одной из интересных платформ, выпущенных вместе с iOS 13, была среда BackgroundTasks. Это позволяет разумно планировать работу в фоновом режиме. Наконец, мы можем обрабатывать фоновые задачи, используя жизненный цикл приложения SwiftUI. На этой неделе мы узнаем, как планировать и обрабатывать фоновые задачи в SwiftUI.

Основы

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

 импорт фоновых задач
    
функция расписанияAppRefresh() {
    пусть запрос = BGAppRefreshTaskRequest (идентификатор: «myapprefresh»)
    пытаться? BGTaskScheduler.shared.submit(запрос)
}
 

Как видно из приведенного выше примера, у нас есть функция scheduleAppRefresh , использующая общий экземпляр BGTaskScheduler для планирования задачи обновления приложения. Задача обновления приложения должна иметь уникальный идентификатор. Мы также должны определить список всех идентификаторов в файле Info.plist в ключе «Разрешенные идентификаторы планировщика фоновых задач». Теперь мы можем назвать scheduleAppRefresh в жизненном цикле приложения SwiftUI.

 @основной
структура MyApp: приложение {
    @Environment(\.scenePhase) частная переменная фаза
    
    var body: некоторая сцена {
        Группа окон {
            КонтентВью()
        }
        .onChange (из: фазы) { newPhase в
            переключить новую фазу {
            case .background: scheduleAppRefresh()
            по умолчанию: перерыв
            }
        }
    }
}
 

Здесь мы планируем выполнение фоновой задачи, как только пользователь покинет наше приложение. Мы можем настроить время задачи, используя EarlyBeginDate для экземпляра типа BGAppRefreshTaskRequest . Мы указываем системе запускать задачу только после крайнего срока, указав самую раннюю дату начала.

 импорт фоновых задач
    
функция расписанияAppRefresh() {
    пусть запрос = BGAppRefreshTaskRequest (идентификатор: «myapprefresh»)
    request.earliestBeginDate = . now.addingTimeInterval (24 * 3600)
    пытаться? BGTaskScheduler.shared.submit(запрос)
}
 
Задачи обновления приложения

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

 @основной
структура MyApp: приложение {
    @Environment(\.scenePhase) частная переменная фаза
    
    var body: некоторая сцена {
        Группа окон {
            КонтентВью()
        }
        .onChange (из: фазы) { newPhase в
            // ..
        }
        .backgroundTask(.appRefresh("myapprefresh")) {
            пусть запрос = URLRequest (url: URL (строка: "your_backend")!)
            охрана пусть данные = попробовать? await URLSession.shared.data(для: запроса).0 else {
                возвращаться
            }
            
            пусть декодер = JSONDecoder()
            охранять пусть продукты = попробовать? decoder.decode([Product].self, from: data) else {
                возвращаться
            }
         
            если !products. isEmpty && !Task.isCancelled {
                ожидайте уведомления пользователя (для: продуктов)
            }
        }
    }
}
 

Чтобы узнать больше о сценах в SwiftUI, посмотрите мой пост «Управление сценами в SwiftUI».

Как вы можете видеть в приведенном выше примере, мы используем модификатор backgroundTask для регистрации обработчика обновления приложения для определенного идентификатора. SwiftUI опирается на новую функцию Swift Concurrency и позволяет нам создавать сложные асинхронные задания с использованием синтаксиса async/await. Он также полностью поддерживает совместную отмену, и вы можете быстро проверить, не вышла ли ваша задача из фонового времени выполнения, с помощью статического isCancelled свойство типа задачи.

Задачи URLSession

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

 функция handleFileDownload() асинхронная {
    пусть URL = URL (строка: "your_backend")!
    
    let config = URLSessionConfiguration.background(withIdentifier: "myurlsession")
    config.sessionSendsLaunchEvents = истина
    пусть сеанс = URLSession (конфигурация: конфигурация)
    
    пусть данные = ожидание withTaskCancellationHandler {
        пытаться? ожидайте session.data (для: URLRequest (url: url))
    } приОтмене: {
        пусть задача = session.downloadTask (с: URLRequest (url: url))
        задача.резюме()
    }
    если позволить данные {
        ждать уведомления пользователя ()
    }
}
 

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

 @основной
структура MyApp: приложение {
    @Environment(\.scenePhase) частная переменная фаза
    
    var body: некоторая сцена {
        Группа окон {
            КонтентВью()
        }
        .onChange (из: фазы) { newPhase в
            переключить новую фазу {
            case .background: scheduleAppRefresh()
            по умолчанию: перерыв
            }
        }
        .backgroundTask(.appRefresh("myapprefresh")) {
            ожидание дескриптора загрузки файла()
        }
        .backgroundTask(.urlSession("myurlsession")) {
            // Здесь обрабатываются события фонового URL-адреса
        }
    }
}
 

Мы можем обрабатывать события из URLSession с фоновой конфигурацией, используя модификатор backgroundTask с конкретным идентификатором.

Отладка

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

Для запуска фоновых задач приостановите приложение и запустите в отладчике этот код:

 e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdentifier:@"TASK_IDENTIFIER"]
 

Для принудительного прекращения используйте

 e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateExpirationForTaskWithIdentifier:@"TASK_IDENTIFIER"]
 

Не забудьте заменить TASK_IDENTIFIER на настоящий идентификатор.

Вывод

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

Лучшие приложения для управления делами и задачами для iPhone 2022

Делать Диспетчер задач Приложения Вещи Герой
(Изображение предоставлено Кристин Ромеро-Чан / iMore)

В вашем iPhone и iPad есть встроенное приложение «Напоминания» от Apple, которое отлично подходит для выполнения основных задач и контрольных списков. Однако иногда жизнь подбрасывает вам сложные проекты, за которыми вам нужно следить, или вам просто нужно что-то более надежное. К счастью, в App Store существует множество сторонних альтернатив приложениям диспетчера задач, так что вы определенно сможете найти то, что подходит именно вам.

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

Вещи 3

Вещи 3 Экраны (Изображение предоставлено iMore)

Вещи 3 — это мое личное приложение для управления делами и задачами, которое я предпочитаю для своего iPhone 13 Pro, а также для моего iPad Pro и компьютеров Mac. Я использую его уже несколько лет, и мне просто нравится его общая простота, а также предоставление некоторых мощных функций, которые вы не получите с базовым приложением «Напоминания».

В Things 3 вы получаете интуитивно понятный интерфейс, невероятно простой в использовании. Хотя он выглядит просто, он также сильно основан на жестах, поэтому навигация очень проста. Это также просто и дает вам только самое необходимое, поэтому вы можете сосредоточиться на текущих задачах.

Вещи заставили вас сосредоточиться на различных областях, таких как работа и финансы, а затем вы можете разбить их на проекты, которые являются большими целями, а задачи в них — это то, как вы их достигаете. После того, как у вас есть задачи в Things, вы можете установить сроки выполнения, сделать их повторяющимися, добавить сроки, теги и многое другое. Задачи со сроками выполнения автоматически сортируются в умных списках «Сегодня» и «Предстоящие», чтобы вы могли еще лучше управлять своим расписанием. Кроме того, Things может отображать события вашего календаря, поэтому вы получаете общее представление о том, как будет выглядеть ваш день.

Вам придется платить за каждую версию Things отдельно, но у Cultured Code есть бесплатная служба синхронизации, позволяющая сохранить ваши данные неповрежденными на всех платформах. Если вас беспокоит цена, учтите, что это как минимум разовый платеж за каждую версию, а не еще одна подписка.

(откроется в новой вкладке)

Things — прекрасно оформленный и интуитивно понятный диспетчер задач для iPhone, iPad и Mac.

OmniFocus 3

Omnifocus 3 Экраны (Изображение предоставлено Omni Group)

Другой фантастический вариант — OmniFocus 3. Я лично использовал OmniFocus в течение нескольких лет, прежде чем в конце концов решил, что это слишком для меня, и я был доволен простотой Things. Однако, если вам нужно невероятно многофункциональное приложение для ведения дел, которое следует методологии GTD Дэвида Аллена, то OmniFocus — это то, что вам нужно. Кроме того, он доступен на iPhone, iPad и Mac, а бесплатная облачная служба синхронизации от OmniFocus обеспечивает синхронизацию данных между вашими устройствами.

OmniFocus позволяет пользователям создавать проекты и задачи буквально для каждого аспекта своей жизни. Он позволяет пользователям давать определенным задачам приоритет над другими и сосредотачиваться на них в первую очередь, и теперь он использует теги для лучшей организации. В OmniFocus легко создавать повторяющиеся задачи, а представление «Прогноз» отлично подходит для просмотра того, как будет выглядеть ваш день или даже неделя. Поскольку OmniFocus — привлекательное приложение GTD, вы также можете добавлять примечания и вложения к задачам, если это необходимо. Существует также уникальная перспектива «Обзор», которая проведет вас через все ваши задачи и поможет вам все упорядочить.

Раньше OmniFocus был платным приложением премиум-класса, однако недавно он перешел на модель на основе подписки. Поэтому, хотя его можно загрузить и попробовать бесплатно, вам нужно будет подписаться, чтобы продолжить использовать его после пробного периода. Но имейте в виду, что OmniFocus существует уже более 10 лет и является одним из золотых стандартов, когда речь идет о мощных и гибких приложениях для управления делами и задачами на iPhone, которые следуют методу GTD.

(открывается в новой вкладке)

OmniFocus 3 — это мощный диспетчер задач, который следует методологии GTD Дэвида Аллена и обладает множеством функций.

Todoist

Экраны Todoist (Изображение предоставлено Doist Inc.)

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

Todoist дает вам то, что вы ожидаете от приложения для управления задачами: проекты, списки, приоритетные задачи, сроки выполнения и многое другое. Но он также отличается от других тем, что позволяет создавать подзадачи, что невероятно приятно, когда задача состоит из нескольких этапов. Те, кто работает в команде, могут вовлечь всех в Todoist, а затем назначать задачи членам команды и получать совместную работу над проектами. Организация также может быть выполнена в стиле канбан в Todoist благодаря использованию досок, а также есть интеграция с другими инструментами, такими как Gmail, Google Calendar, Slack и другими.

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

Вы можете скачать Todoist бесплатно в App Store, но чтобы получить максимальную отдачу от него, вам понадобится Todoist Pro, стоимость которого начинается от 4 долларов в месяц. Это стоит затрат, если вы планируете использовать его для совместной работы в команде.

(открывается в новой вкладке)

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

Фантастический

Фантастический Экраны Iphone (Изображение предоставлено iMore)

Хорошо, я знаю, что Фантастический — это прежде всего приложение-календарь. Тем не менее, он имеет бесшовную интеграцию с собственным приложением «Напоминания», поэтому, если вы хотите использовать напоминания, но также хотите одновременно управлять своим расписанием, то Fantastical убьет двух зайцев одним выстрелом. Это также одно из моих любимых приложений, которое обязательно должно быть на каждом iPhone.

Fantastical может получить данные вашего локального календаря и представить их в гораздо более приятном интерфейсе, на который приятно смотреть. Вы можете легко переключаться между еженедельным или ежемесячным просмотром, при этом все ваши встречи отображаются в списке повестки дня под ним, включая любые задачи, которые у вас есть в напоминаниях со сроками выполнения. Вы можете легко добавлять новые события и задачи с помощью ввода на естественном языке, и все быстро синхронизируется. Как я уже упоминал, Fantastical может просто получать данные вашего локального календаря, но вы также можете добавлять учетные записи для Google Calendar, Todoist, iCloud, Zoom и т. д.

Приложение Fantastical можно бесплатно найти в App Store для iPhone и iPad. Однако вам придется подписаться на Flexibits Premium (начиная с 5 долларов в месяц) для таких функций, как открытие и предложения (планирование встреч в зависимости от доступности и опросов встреч), организация звонков для Zoom, Google Meet, Webex и Microsoft Teams; расширенный 10-дневный прогноз погоды и многое другое. Но приложение также прекрасно работает, если вы не подписываетесь — вы просто не получите все дополнительные функции.

(открывается в новой вкладке)

Управляйте своим календарем и напоминаниями в одном приложении.

Bento

Экраны Bento (Изображение предоставлено iMore)

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

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

После того, как у вас есть коробки для бенто и задачи, вам нужно выбрать три приоритетных задачи для трех рабочих процессов, которые использует Bento: Eat That Frog, Climb The Summit и Slow Burn. Смысл их в том, чтобы помочь вам наилучшим образом организовать свой день, чтобы он был успешным и при этом оставалась энергия. Если вам действительно нужен дополнительный толчок, у Bento есть режим фокусировки на одну задачу, который блокирует все остальное и имеет таймер обратного отсчета, чтобы вы могли полностью сосредоточиться.

Это интересный вариант списка дел, и он определенно выделяется среди остальных на насыщенном рынке. Делая меньше, вы на самом деле делаете больше, и это имеет дополнительное значение и смысл. Если вы цените более разумное расходование времени, Bento — это приложение, которое поможет вам в этом.

(откроется в новой вкладке)

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

Организуйте свои задачи и доводите дело до конца

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

Обновлено в мае 2022 г.: Этот список был полностью переработан с добавлением лучших новых приложений.

Кристин Ромеро-Чан уже более десяти лет пишет о технологиях, в частности об Apple, на различных веб-сайтах. В настоящее время она является руководителем iMore по всем вопросам, касающимся iPhone, и использует смартфон Apple с момента выхода первого iPhone в 2007 году. Хотя ее основная специализация — iPhone, она также при необходимости занимается Apple Watch, iPad и Mac.

Когда Кристин не пишет об Apple, ее часто можно найти в Диснейленде в Анахайме, Калифорния, поскольку она является пропуском и одержима всем, что связано с Disney, особенно «Звездными войнами». Кристина также любит кофе, еду, фотографирование, механические клавиатуры и проводит как можно больше времени со своей новой дочерью.

современных фоновых задач в iOS 13 • Andy Ibanez

В статье, опубликованной на прошлой неделе, мы рассмотрели базовые API-интерфейсы фонового выполнения, представленные начиная с iOS 7. Мы рассмотрели, как мы можем запросить дополнительное время для выполнения задачи после перехода в фоновый режим, как мы могли бы отложить загрузку с помощью URLSession и как мы могли бы использовать тихие push-уведомления для запуска фоновых задач.

На этом история с фоновыми задачами не заканчивается. В iOS 13 представлено больше API-интерфейсов для улучшения фоновых задач, которые позволяют делать то, что раньше было невозможно. Apple подарила нам новый блестящий BackgroundTasks framework на WWDC2019. Эта структура дает разработчикам больше гибкости и меньше ограничений для выполнения кода, когда их приложения находятся в фоновом режиме. Не только это, но и старые API-интерфейсы фонового обновления приложений теперь устарели в пользу нового, современного способа их выполнения для вашего приложения. Это изменение унифицируется с новыми задачами фоновой обработки, которые позволяют выполнять больше работы в фоновом режиме, пока устройство заряжается, и т. д.

В этой статье мы рассмотрим следующие API, которые являются частью новых BackgroundTasks framework:

  1. Новая структура BackgroundTasks.
  2. Задачи обновления фонового приложения.
  3. Обработка задач.

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

Эта статья основана на выступлении Advances in Background Execution WWDC 2019 и в документации, но я позволил себе добавить свои собственные примеры кода и удалил контент, который не имеет отношения к большинству разработчиков (VoIP толкает , так далее).

Представляем BackgroundTasks

BackgroundTasks — это новая структура для планирования фоновой работы. Наряду с этим мы получаем новый фоновый режим для наших приложений. И в довершение всего, фреймворк доступен на большинстве платформ Apple, кроме watchOS: iOS, iPadOS, tvOS и в приложениях Catalyst на Mac.

Приложение доступно для приложений Catalyst, но ни в сеансе WWDC, ни в документации оно не упоминается для приложений macOS (AppKit).

Новый фоновый режим называется Задачи фоновой обработки . А начиная с iOS 13 существующая задача обновления фонового приложения была доработана и получила некоторые новые улучшения.

Новый фоновый режим

Этот API довольно удобен, потому что он может дать вашему приложению несколько минут времени выполнения, хотя ограничение делать это в удобное для системы время все еще существует. Это то, что позволяет вам выполнять отложенные работы по обслуживанию, включая задачи машинного обучения, такие как обучение Core ML на устройстве. Это также позволяет отключить монитор ЦП для интенсивной работы. Это очень интересно, потому что мы можем использовать всю мощность устройства, пока оно подключено к сети. Ваше приложение может выполнять эти задачи на переднем плане или если ваше приложение недавно использовалось.

Усовершенствования задачи фонового обновления приложений

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

В сеансе WWDC упоминается, что вы получаете 30 секунд времени выполнения, но, как я говорил в предыдущей статье о фоновом выполнении, не полагайтесь на это число. Вы можете получить реальное время, оставшееся от делегата приложения.

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

Этот новый API заменяет старый, поэтому API выборки UIApplication для фонового обновления приложения устарели и не поддерживаются на Mac.

В документации сказано, что старые API не поддерживаются «на Mac», но установлено, что эти API не работают на Mac с самого начала, поэтому я предполагаю, что это говорит о том, что устаревшие API недоступны для Catalyst. Программы.

Использование BackgroundTasks

Обзор платформы BackgroundTasks

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

Чтобы использовать этот API, вы начинаете работать, когда ваше приложение находится на переднем плане. Вам необходимо создать запросы фоновых задач. Фреймворк предоставляет абстрактный класс BGTask , вы никогда не используете эту задачу напрямую. Вместо этого платформа предоставляет два конкретных подкласса, с которыми вы можете взаимодействовать: BGProcessingTask для длительных задач и задач обслуживания, таких как резервное копирование и очистка, и BGAppRefreshTask для поддержания вашего приложения в актуальном состоянии в течение дня.

Вы не создаете экземпляры этих классов напрямую. Вместо этого вы создаете BGAppRefreshTaskRequest и BGProcessingTaskRequest и отправить их в BGTaskScheduler . Когда планировщик активирует ваше приложение для передачи задач, вы получите их аналоги BGAppRefreshTask и BGProcessingTask .

Вы можете отправить планировщику несколько задач и одновременно отправить BGAppRefreshTask и BGProcessingTask . Интересно, что также можно отправлять задачи из расширения. Это полезно, если, например, у вас есть расширение клавиатуры, которое использует машинное обучение для изучения шаблонов ввода ваших пользователей.

Задачи не запускаются автоматически. Когда BGTaskScheduler увидит, что система соответствует всем условиям, необходимым для конкретной задачи, оно разбудит ваше приложение в фоновом режиме и обработает задачу из планировщика. Если мы получим BGAppRefreshTask , мы сможем получить контент, обработать его и обновить наш пользовательский интерфейс. Если мы получим BGProcessingTask , мы сможем выполнить некоторую очистку, резервное копирование или другие подобные задачи. Когда задача завершена, нам нужно пометить ее как выполненную, чтобы мы могли разрешить приостановке приложения.

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

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

Внедрение фоновых задач в ваши приложения

С этого момента мы будем экспериментировать с новыми API, используя пример проекта. Обычно я избегаю написания полных проектов для своих статей, но я подумал, что в этот раз это необходимо сделать, так как это единственный способ увидеть BackgroundTasks в действии. Итак, продолжайте и создайте новый проект приложения Simple View в Xcode.

Первоначальная настройка

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

Во-первых, вам нужно отредактировать Signing & Capabilities вашей цели, и вам нужно добавить новую возможность для фоновых задач. Коснитесь знака «+» и найдите «Фоновые режимы»

Это добавит новый раздел в ваше приложение, и вам нужно отметить те, которые вы хотите использовать. Для BGAppRefreshTask включите «фоновую выборку», а для BGProcessingTask нужна «фоновая обработка». Как вы уже догадались, вам не нужно использовать оба в приложении, и вы можете выбрать то, что вам нужно.

Мы еще не совсем закончили. Теперь вам нужно отредактировать Info.plist вашего приложения и добавить ключ Разрешенные идентификаторы планировщика фоновых задач ( BGTaskSchedulerPermittedIdentifiers ) и добавить идентификаторы задач, которые вы хотите, чтобы ваше приложение выполняло:

Рекомендуется использовать обратная нотация DNS, так как сторонние зависимости могут добавлять свои собственные идентификаторы.

Теперь у нас есть все необходимые настройки, чтобы начать играть с этим новым фреймворком.

Реализация фоновых задач — BGAppRefreshTask

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

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

Я только покажу вам, как использовать BGAppRefreshTask , но будьте уверены, что то, что относится к этому типу задачи, также относится к BGProcessingTask .

Как бы я ни был слаб, обещаю, я не фанат покемонов. Я выбрал этот API, потому что он прост в использовании и не требует настройки.

(Обещаю)

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

Сначала создайте новый пустой проект и создайте контроллер представления, подобный этому:

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

Pokémon.swift

 struct Pokemon: Кодируемый {
  struct Виды: кодируемый {
    пусть имя: Строка
  }
  
  struct Спрайты: кодируемые {
    отпуститьПо умолчанию: URL?
    отпусти Shiny: URL?
    пусть frontDefault: URL?
    пусть frontShiny: URL?
    
    перечисление CodingKeys: строка, CodingKey {
      case backDefault = "back_default"
      чехол backShiny = "back_shiny"
      case frontDefault = "front_default"
      case frontShiny = "front_shiny"
    }
  }
  
  пусть виды: Виды
  пусть спрайты: Спрайты
}
 

PokeManager. swift

 класс PokeManager {
  статический let urlSession = URLSession (конфигурация: .default)
  
  статическая функция pokemon (id: Int,
                      завершениеHandler: @escaping (_ pokemon: Pokemon) -> Void) {
    пусть pokeUrl = buildPokemonURL (id: id)
    пусть задача = urlSession.dataTask (с: pokeUrl) { (данные, _, _) в
      пусть покемон = попробуй! JSONDecoder().decode(Pokemon.self, from: data!)
      DispatchQueue.main.async {
        завершениеHandler(покемон)
      }
    }
    
    задача.резюме()
    
  }
  
  статическая функция загрузки изображения (url: URL, завершениеHandler: @escaping (_ изображение: UIImage) -> Void) {
    пусть задача = urlSession.dataTask (с: URL) {данные, _, _ в
      пусть изображение = UIImage (данные: данные!)!
      DispatchQueue.main.async {
        обработчик завершения (изображение)
      }
    }
    
    задача.резюме()
  }
  
  частная статическая функция buildPokemonURL (id: Int) -> URL {
    var urlComponents = URLComponents()
    urlComponents. scheme = "https"
    urlComponents.host = "pokeapi.co"
    urlComponents.path = "/api/v2/pokemon/\(id)"
    вернуть urlComponents.url!
  }
}
 

Теперь на контроллере представления для представления, которое вы создали выше, реализуйте fetchPokemon(id: Int) и вызовите его на viewDidLoad .

 переопределить функцию viewDidLoad() {
super.viewDidLoad()
fetchPokemon (id: 1)
}
//...
func fetchPokemon (id: Int) {
PokeManager.pokemon (id: id) { (покемон) в
self.name.text = pokemon.species.name
PokeManager.downloadImage(url: pokemon.sprites.backDefault!) { (изображение) в
self.image.image = изображение
}
}
}
 

Соберите и запустите проект, и вы увидите красивого Бульбазавра:

Теперь мы можем реализовать планировщик. Когда приложение находится в фоновом режиме, мы получаем случайный идентификатор покемона (от 1 до 151 — потому что я стар и не помню многих покемонов после первого поколения), загружаем его и отображаем.

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

В AppDelegate импортируйте BackgroundTasks .

 импорт фоновых задач
 

Теперь нам нужно зарегистрировать наше приложение, чтобы получать BGTask с, когда система передает их приложению. Вам нужно вызвать этот метод один раз для каждого идентификатора, указанного в ‌BGTaskSchedulerPermittedIdentifiers в вашем Info.plist . Вы можете сделать это в приложении (didFinishLaunchingWithOptions:) .

 BGTaskScheduler.shared.register(forTaskWithIdentifier: "com.andyibanez.fetchPokemon",
                                    используя: nil) { (задача) в
      // ...
    }
 

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

Я создам новый метод в AppDelegate, и обработчик из регистра вызовет его, чтобы начать выполнение фоновой работы:

 func handleAppRefreshTask(task: BGAppRefreshTask) {
    
}
 
 BGTaskScheduler.shared.register(
  forTaskWithIdentifier: "com.andyibanez.fetchPokemon",
  используя: nil) { (задача) в
    self.handleAppRefreshTask(задача: задача как! BGAppRefreshTask)
}
 

Система дает нам ограниченное время для выполнения задачи. Первое, что мы сделаем, это отменим все операции, происходящие в PokeManager , когда мы достигнем срока действия:

 func handleAppRefreshTask(task: BGAppRefreshTask) {
task.expirationHandler = {
PokeManager.urlSession.invalidateAndCancel()
}
}
 

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

Но сначала нам нужно запланировать фоновую задачу. Мы запланируем задачу, когда приложение перейдет в фоновый режим.

В делегате вашего приложения:

 func scheduleBackgroundPokemonFetch() {
let pokemonFetchTask = BGAppRefreshTaskRequest (идентификатор: "com.andyibanez.fetchPokemon")
pokemonFetchTask.earliestBeginDate = Дата (timeIntervalSinceNow: 60)
делать {
попробуйте BGTaskScheduler.shared.submit(pokemonFetchTask)
} ловить {
print("Невозможно отправить задачу: \(error.localizedDescription)")
}
}
 

Если вы планируете задачи при запуске приложения, вам следует вызвать BGTaskScheduler.shared.submit в фоновом потоке, поскольку это блокирующий API. Это не проблема при отправке на задний план.

А затем в вашем SceneDelegate.swift :

 func sceneDidEnterBackground(_ scene: UIScene) {
(UIApplication.shared.delegate as! AppDelegate).scheduleBackgroundPokemonFetch()
}
 

В выступлении на WWDC ведущий использует applicationDidEnterBackground в делегате приложения вместо делегата сцены, чтобы запланировать фоновую задачу. applicationDidEnterBackground — это старый API для старого жизненного цикла приложений до iOS 13. В iOS 13 я вообще не мог заставить свое приложение вызывать этот метод делегата, поэтому я решил, что вместо этого мне нужно использовать делегат сцены. .

Вам также может быть интересно, почему у нас есть код обработки задач в делегате приложения, а не в делегате сцены. Причина в том, что методы в SceneDelegate могут вызываться несколько раз на протяжении всего жизненного цикла приложения. Это может произойти только в iPadOS, так как он поддерживает многооконный режим. Мы хотим зарегистрировать обработчик для наших задач только один раз за время существования нашего приложения. Вы можете , возможно, напишите весь код BackgroundTasks в SceneDelegate, если у вас есть приложение только для iPhone, но я не могу сказать, что рекомендую это делать.

Мы можем указать свойство EarlyBeginDate задачи. Это позволит нам загрузить данные как можно скорее. В приведенном выше примере мы планируем задачу через 5 секунд после ее перехода в фоновый режим. Это не гарантирует, что задача запустится в указанное время, а скорее то, что она не запустится раньше. Если вы используете значение по умолчанию nil , задержки запуска не будет.

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

Мы почти закончили. Теперь нам нужно вернуться к handleAppRefreshTask и реализовать код загрузки покемонов:

 func handleAppRefreshTask(task: BGAppRefreshTask) {
  task.expirationHandler = {
    task.setTaskCompleted (успех: ложь)
    PokeManager.urlSession.invalidateAndCancel()
  }
  
  пусть randomPoke = (1...151).randomElement() ?? 1
  PokeManager.pokemon(id: randomPoke) { (покемон) в
    NotificationCenter. default.post(имя: .newPokemonFetched,
                                    объект: я,
                                    userInfo: ["покемон": покемон])
    task.setTaskCompleted (успех: правда)
  }
  
  ScheduleBackgroundPokemonFetch()
}
 

Запланированное задание будет выполнено только один раз. Если вы хотите продолжать выполнять его в течение дня, вам просто нужно снова вызвать scheduleBackgroundPokemonFetch внутри handleAppRefreshTask .

Мы используем NotificationCenter , чтобы уведомить контроллер представления о том, что новый покемон был получен и что пользовательский интерфейс должен быть соответствующим образом обновлен, поэтому создайте новый Notification.Name и для этого:

 extension Notification.Name {
  static let newPokemonFetched = Notification.Name("com.andyibanez.newPokemonFetched")
}
 

Наконец, в контроллере представления зарегистрируйтесь для получения этого уведомления и обновите пользовательский интерфейс при получении:

 func registerForNotifications() {
  NotificationCenter. default.addObserver(
    forName: .newPokemonFetched,
    объект: ноль,
    очередь: ноль) { (уведомление) в
      print("уведомление получено")
      если пусть uInfo=notification.userInfo,
         пусть покемон = uInfo["покемон"] как? Покемон {
        self.updateWithPokemon (покемон)
      }
  }
}
func updateWithPokemon (_ pokemon: Pokemon) {
  имя.текст = pokemon.species.name
  PokeManager.downloadImage(url: pokemon.sprites.backDefault!) { (изображение) в
    self.image.image = изображение
  }
}
 
 переопределить функцию viewDidLoad() {
super.viewDidLoad()
регистрация для уведомлений ()
fetchPokemon (id: 1)
}
 

Готово! Теперь ваше приложение может обновляться в фоновом режиме и каждый раз показывать нового покемона. Захватывающе!

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

Ну, это небольшая проблема, но если вы попытаетесь запустить это сейчас, вы столкнетесь с двумя проблемами:

  1. Это вообще не работает на симуляторе. Вам нужно запустить приложение на реальном устройстве.
  2. Вы не можете контролировать время запуска задачи. Как мы уже говорили, EarlyBeginDate не гарантирует, что приложение получит событие в это время. Вы можете оставить свой телефон подключенным к компьютеру в течение нескольких часов, не получая никаких событий. Так что делать?

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

Создайте и запустите приложение, а затем запустите его в фоновом режиме, чтобы запланировать задачу. Снова выведите приложение на передний план. Затем в Xcode нажмите кнопку паузы в отладчике.

Затем вы можете скопировать и вставить следующие команды, заменив "TASK_IDENTIFIER" идентификатором вашей задачи.

Для имитации получения события:

 e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdentifier:@"TASK_IDENTIFIER"]
 

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

И принудительно завершить задание:

 e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateExpirationForTaskWithIdentifier:@"TASK_IDENTIFIER"]
 

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

Образец проекта.

Вы можете скачать образец проекта для этого приложения здесь.

BGProcessingTask

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

  • requiredNetworkConnectivity : если для работы задачи требуется Интернет, вы можете установить для этого свойства значение true .
  • requiredExternalPower : если для работы задачи требуется, чтобы устройство было подключено к источнику питания, вы можете установить для этого свойства значение true .

BackgroundTasks — это новая платформа, представленная в iOS 13, которая предлагает разработчикам больше способов выполнения фоновой работы. Фоновая задача предлагает два типа классов:

  • BGAppRefreshTask : периодическое обновление приложения в фоновом режиме и всегда наличие актуального содержимого.
  • BGProcessingTask : для выполнения более длительных операций, связанных с обслуживанием, резервным копированием и очисткой приложения. Мы можем установить задачи этого типа для выполнения, когда наши устройства подключены к источнику питания и / или имеют доступ к Интернету.

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

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

Несмотря на то, что статья готова, в Новый год (1 января 2020 г. ) публиковать ничего не буду. Я делаю небольшой перерыв. По этой причине статья от 1 января переносится на 8 января. Спасибо за понимание!

Улучшения в фоновом выполнении приложения

WWDC19
Инструменты разработчика
Производительность
iOS
macOS
твОС
watchOS
Смотреть видео
Форумы разработчиков
Слайды

Написано

Федерико Занетелло

Описание: Выполнение в фоновом режиме — это мощный инструмент, который ваше приложение может использовать для обеспечения удобного взаимодействия с пользователем. Узнайте о передовых методах работы в фоновом режиме, особенно если вы используете VoIP или автоматические push-уведомления, а также о совершенно новом API-интерфейсе планирования, который позволяет выполнять длительные задачи обработки и обслуживания.

Передовые практики фонового выполнения

Если мы хотим, чтобы что-то произошло сейчас или почти сейчас, даже когда приложение переходит в фоновый режим, нам нужно вызвать:

  • из основного приложения: UIApplication. beginBackgroundTask(expirationHandler:)
  • из расширений: ProcessInfo.performExpiringActivity(withReason:using:)

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

Дискреционный фоновый URL-адрес сеанса

  • Отложить загрузку на более позднее время, когда система решит, что это «позже» (могут пройти часы!).
  • Это для загрузки контента, который не имеет высокого приоритета (или пакетной аналитики), и для того, чтобы сделать это в более подходящее время.
  • Позволяет системе отложить загрузку до лучших времен
  • Предоставление информации системе для более разумного планирования
 // Настроить сеанс фонового URL
let config = URLSessionConfiguration.background(withIdentifier: "com.app.attachments")
let session = URLSession (конфигурация: конфигурация, делегат: ..., делегатОчередь: . ..)
// Установить произвольно
config.discretionary = истина
 

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

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

 // Установить временное окно
task.earliestBeginDate = Дата (timeIntervalSinceNow: 2 * 60 * 60)
// Установить размер рабочей нагрузки
task.countOfBytesClientExpectsToSend = 160
task.countOfBytesClientExpectsToReceive = 4096
задача.резюме()
 
  • Новый в iOS 13
  • Пример задач, которые идеально соответствуют этой структуре:
    • СИНСИЦИЯ ДАННЫХ
    • Очистка базы данных
    • . в удобное для системы время
    • Возможность отключения монитора ЦП для интенсивной работы:
    • ночью, когда устройство заряжается, мы можем выполнять интенсивную работу с аккумулятором, не беспокоясь

    Фоновая задача обновления приложения

    • 30 секунд времени выполнения для обновления приложения каждый раз
    • Вызывается на основе шаблона использования пользователем: наше приложение получит эту задачу обновления до того, как пользователь запустит приложение (опять же, на основе шаблона ), так что когда пользователь запускает приложение, весь новый контент уже загружен.
    • См. BGAppRefreshTask

    Как использовать

    BackgroundTasks

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

    Чтобы создать запрос, мы создадим экземпляр BGProcessingTaskRequest или BGAppRefreshTaskRequest в зависимости от задачи.

    Когда система будет готова дать нам время для выполнения задачи, приложение будет запущено (в фоновом режиме) с BGAppRefreshTask / BGAppProcessingTask .

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

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

    Все задачи будут переданы основному приложению, даже если фоновая задача была запланирована расширением.

    1. Установите ключи info.plist , чтобы сообщить iOS, что мы поддерживаем фоновую задачу/обновление приложения. Добавьте ключ «Разрешенные идентификаторы планировщика фоновых задач» и используйте массив строк в качестве значения. Этот массив содержит уникальные строки, которые должны объявлять наши приложения, каждая строка объявляет отдельную задачу, которую приложение хочет выполнить.
    1. Зайдите в делегат приложения и разберитесь с задачей:
      • import BackgroundTasks
      • Зарегистрируйте фоновую задачу.
     BGTaskScheduler.shared.register(
    forTaskWithIdentifier: "com.colorfeed.refresh",
    использование: nil) { задача в
      self.handleAppRefresh(задача: задача как! BGAppRefreshTask)
    }
     

    Обратите внимание, что последний блок этой функции будет вызван, когда система решит, что пришло время выполнить задачу. Не забудьте вызвать task.setTaskCompleted , как только это будет сделано.

    1. Наконец, запланируйте задачу
     func scheduleAppRefresh() {
    пусть запрос = BGAppRefreshTaskRequest (идентификатор: "com.colorfeed.refresh")
    делать {
    попробуйте BGTaskScheduler.shared.submit(запрос)
    } ловить {
    print("Не удалось запланировать обновление приложения: \(ошибка)")
    }
    }
     

    Некоторые интересные свойства этих запросов:

    • EarlyBeginDate говорит системе подождать, по крайней мере, время, которое мы передаем этому методу, прежде чем вызывать задачу запускать наше приложение для задачи, только если у нас есть подключение (или если нам не нужно подключение для выполнения нашей задачи)
    • requiredExternalPower сообщает системе, что мы собираемся выполнять интенсивные действия и использовать много ресурсов. Установка этого значения на true также отключает монитор ЦП, позволяя приложению выполнять интенсивную работу без дросселирования.

    Отладка

    После планирования задачи мы можем имитировать/принудить системный вызов активировать нашу запланированную задачу через отладчик с помощью:

    e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdentifier:@"TASK_IDENTIFIER"]
     

    (замените TASK_IDENTIFIER именем задачи.

    Понимание планировщиков Swift - LogRocket Blog

    Одной из наиболее распространенных ошибок при разработке приложений для iOS является ошибка потока, возникающая, когда разработчики пытаются обновить пользовательский интерфейс из закрытия. Чтобы решить эту проблему, мы можем использовать DispatchQueue.main и потоков .

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

    Начнем!

    Что такое планировщик?

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

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

    Планировщики

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

    Типы планировщиков

    Существует несколько типов планировщиков, встроенных в Combine. Важно отметить, что планировщики следуют протоколу планировщика, который можно найти в документации по планировщику, указанной выше.

    Давайте посмотрим на несколько популярных планировщиков!

    Очередь операций

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

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


    Более 200 000 разработчиков используют LogRocket для улучшения цифрового взаимодействия

    Подробнее →


    Очередь отправки

    Документы Apple определяют DispatchQueue как очередь в порядке поступления, которая может принимать задачи в форме блочных объектов и выполнять их либо последовательно, либо одновременно.

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

    DispatchQueue часто называют одним из самых безопасных способов планирования команд. Однако не рекомендуется использовать DispatchQueue в Xcode 11. Если вы используете DispatchQueue в качестве планировщика в Xcode 11, он должен быть последовательным, чтобы соответствовать контрактам операторов Combine.

    ImmediateScheduler

    ImmediateScheduler используется для немедленного выполнения асинхронных операций:

     импортный комбайн
    пусть immediateScheduler = ImmediateScheduler.shared
      пусть aNum = [1, 2, 3].publisher
            .receive(на: немедленный планировщик)
            .sink (получить значение: {
           print("Получено \$0) в потоке \(Threa.currentT")t
    })
     

    Например, приведенный выше кодовый блок будет отправлять вывод, аналогичный приведенному ниже кодовому блоку:

     Получено 1 в потоке  {номер = 1, имя = основной}
    Получено 2 в потоке  {номер = 1, имя = основной}
    Получено 3 в потоке  {номер = 1, имя = основной}
     

    ImmediateScheduler немедленно выполняет команды в текущем потоке приложения. Приведенный выше фрагмент кода выполняется в основном потоке.

    RunLoop

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

    Планировщики по умолчанию

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

    Переключение планировщиков

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

    Combine использует два встроенных метода переключения планировщиков: получать(вкл) и подписываться(вкл) .

    получать(на)

    Метод receive(on) используется для отправки значений в определенный планировщик. Он изменяет планировщик для любого издателя, который появляется после его объявления, как показано в блоке кода ниже:

     Просто(3)
       .map {_ в печати (Thread.isMainThread)}
       .receive(на: DispatchQueue.global())
       .map { печать (Thread.isMainThread)}
       .sink { печать (Thread.isMainThread)}
     

    Кодовый блок выше выведет следующий результат:

     правда
    ЛОЖЬ
    ЛОЖЬ
     

    подписка(на)

    Метод subscribe(on) используется для создания подписки на определенном планировщике:

     импортный комбайн
    print("Текущий поток \(Thread.current)")
    пусть k = [a, b, c, d, e].publisher
        .subscribe(в: aQueue)
        .sick(receiveValue: {
            print(" получил \($0) в потоке \(Thread.current)")
      })
     

    Кодовый блок выше выведет следующий результат:

     Текущий поток  {номер = 1, имя = основной}
    Получено в потоке  {число = 7, имя = ноль}
    Получено b в потоке {number = 7, name = null}
    Получено c в потоке {number = 7, name = null}
    Получено d в потоке  {число = 7, имя = ноль}
    Получено e в потоке  {число = 7, имя = ноль}
     

    В приведенном выше блоке кода значения выдаются из другого потока, а не из основного потока. subscribe(on) метод выполняет задачи последовательно, как видно по порядку выполнения инструкций.

    Выполнение асинхронных задач с планировщиками

    В этом разделе мы узнаем, как переключаться между методами планировщика подписки (вкл.) и получения (вкл.) . Представьте, что издатель выполняет задачу в фоновом режиме:

     структура BackgroundPublisher: Издатель
      typealias Выход = Int
      typealias Ошибка = Никогда
      функция получения(подписчик: K), где K : Подписчик, Ошибка == K. Ошибка, Выход == K. Вход {
      спать(12)
      подписчик. получить (подписка: Subscriptions.empty)
      _= подписчик.получить(3)
      subscriber.receive (завершение: завершено)
    }
     

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

     ФонПубликатор()
        .sink { _ в печати («полученное значение») }
    печать("Привет!")
     

    В приведенном выше блоке кода Привет! будет напечатано в нашей консоли после получения значения. Мы можем увидеть результат ниже:

    Получено значение

    Привет!
     

    В Combine этот тип асинхронной работы часто выполняется путем подписки на фоновый планировщик и получения событий в планировщике пользовательского интерфейса:

     ФонПубликатор()
        .subscribe(на: DispatchQueue.global())
        .receive(на: DispatchQueue.main)
        .sink { _ в печати («Значение получено») }
    print("Привет снова!")
     

    Приведенный выше фрагмент кода напечатает следующий результат:

     Снова привет!
    Полученное значение
     

    Еще раз привет! печатается до получения значения. Теперь издатель не замораживает наше приложение, блокируя наш основной поток.

    Заключение

    В этом посте мы рассмотрели, что такое планировщики и как они работают в iOS-приложениях. Мы рассмотрели некоторые из лучших вариантов использования OperationQueue , DispatchQueue , ImmediateScheduler и RunLoop . Мы также немного поговорили о структуре Combine и о том, как она влияет на использование планировщиков в Swift.

    Мы научились переключать планировщики в Swift с помощью методов Receive(on) и Subscribe(on) . Мы также узнали, как выполнять асинхронные функции с помощью планировщиков в Combine, подписавшись на фоновый планировщик и получая наши значения в планировщике пользовательского интерфейса.

    LogRocket: полная видимость ваших веб-приложений и мобильных приложений

    LogRocket — это решение для мониторинга внешних приложений, которое позволяет воспроизводить проблемы, как если бы они возникли в вашем собственном браузере. Вместо того, чтобы гадать, почему возникают ошибки, или запрашивать у пользователей скриншоты и дампы журналов, LogRocket позволяет вам воспроизвести сеанс, чтобы быстро понять, что пошло не так. Он отлично работает с любым приложением, независимо от фреймворка, и имеет плагины для регистрации дополнительного контекста из Redux, Vuex и @ngrx/store.

scroll to top