Пошаговый план старта на Upwork
Рано или поздно разработчик всерьез задумывается о фрилансе. В этот момент большинство идут на биржи. Выбор бирж огромен. В СНГ: fl.ru, weblancer и прочие. Но когда доходишь до дела начинаешь понимать в каком все упадке. Единственным местом где водятся более-менее нормальные заказы можно назвать fl.ru и еще одну-две биржы. Но на fl.ru нужен pro аккаунт, ведь оказывается чтобы взять заказ нужно заплатить бирже, и далеко не факт что тебе что-то светит. Поэтому было решено идти на Upwork. Здесь заказов больше, стоимость их выше, клиенты подкованы технически. Платить придется тоже, и не меньше, но ты платишь процент от проекта.
Заполняем профиль
Сначала нужно заполнить профиль, ведь с пустым вас никто не возьмет. Система сама дает подсказки, но куда лучше один раз увидеть чем сто раз услышать.
Выбор ниши, почасовая ставка, скиллы
Видео
Overview
Портфолио
Заполнению портфолио стоит обратить много внимания. Добавьте интересное описание своих работ. Сделайте картинки которые цепляли взгляд и оформите их как следует.
Когда портфолио имеет картинки оно цепляет взгляд, и их оформление еще больше заставляет посмотреть на них
Перед вами две абсолютно одинаковые картинки но по-разному оформлены. Какую выберите? Кстати вы можете добавить в портфолио проект который сделали на upwork.
Сертификаты
Тесты
Прочие поля
Ищем первый заказ
Найдите оптимальный для себя заказ. Вначале нужно искать проекты до 200 баксов, на большие заказы без отзывов вас не возьмут. Не занижайте ставку, называйте реальную цену, иногда можно указать цену выше бюджета, так вы привлечете внимание, но это на крайний случай. Не бросайте заявки на все подряд.
Также стоит понимать что на легкие проекты сбегается толпа индусов, и вы — новичок без отзывов, просто затеряетесь в этой толпе. У вас может быть шикарное портфолио, но заказчика нужно заинтересовать заглянуть туда, так как у вас нет отзывов вы должны «брать» своим сопроводительным письмом. Как их писать — это отдельная история. Выделю лишь то, что нужно писать уникальные письма в которых покажете как будете решать проблему которая возникла у заказчика. Не стоит смотреть на проекты опубликованные более чем 2-3 дня назад — скорее всего на них просто забили.
Интересный факт: чем больше скиллов в проекте будет совпадать с вашими — тем выше вы будете показаны в списке фрилансеров.
Первые заказы самые тяжелые дальше будет легче. К примеру, пока я получил первый заказ я потратил половину коннектов(15 заявок), и только один человек допустил меня на интервью, а позже нанял и оставил отзыв на пять звезд. Второй заказ я взял оставив 5 заявок и 2 человека допустили меня на интервью, один нанял, а на второй проект мои способности не подходили, зато заказчик сказал что у него скоро будет проект и я на него подойду.
Rising talent
Крутая плюшка от upwork для начинающих фрилансеров. С её помощью вы часто будете мелькать у заказчика как приоритетный исполнитель, следовательно больше получать заказов. Также получите иконку в профиле которая выделит вас.
Как получить?
Top Rated
Это новая ступень когда у вас появится Job Success Score вы сможете перейти в эту касту. Для этого нужно удерживать показатель выше 90% 16 недель и заработать первую тысячу. Подробнее смотрите здесь.
Ну что же, пора заканчивать. Удачной вам работы.
UpWork. Стоит ли начинать в 2021?
Штош. Вопрос довольно интересный учитывая ситуацию в мире и положение дел на рынке фриланса в 2020. Многие ушли на «удалёнку», а приток заказов действующим фрилансерам заметно возрос в связи с невозможностью использовать работников в офисах. Я решил поделиться опытом использования платформы UpWork с вами и возможно услышать какие-то замечания с вашей стороны. Поехали!
Что же изменилось в 2019? Я решил ещё раз попробовать свои силы, создал аккаунт, к которому у администрации не могло быть претензий. Вроде даже попался нормальный клиент, с которым была завершена одна удачная сделка. Но в целом 2019 год был очень скуден для меня лично, да и не было особо времени заниматься продвижением, поэтому сразу расскажу про 2020.
Однако есть один небольшой (очень крохотный) положительный момент для начинающих в 2021. Они всё же решили вернуть политику бесплатных коннектов под конец года (наверное в ноябре), теперь все новички (помимо тех 40 коннектов что они получают при регистрации аккаунта и ещё 40 за прохождения UpWork Readiness Test) будут получать 10 коннектов ежемесячно и до 50 коннектов за удачное прохождение интервью у клиента (если он вас в итоге нанимает). Не так всё плохо, но в чем же подвох?
Надеюсь вы что-то почерпнули для себя. Буду рад почитать ваши комментарии и обсудить ваши мысли на счёт сабжа.
IT-атмосфера бизнеса: Google Apps for Work
Преимущества оптимизации бизнес-процессов с помощью корпоративного ПО
Есть масса отговорок, которые оправдывают отказ от использования удобного корпоративного ПО: маленькая фирма, молодая компания, нормальная внутренняя коммуникация, мало клиентов и проч… На самом деле, все они несостоятельны – использование программного обеспечения такого рода оправдано даже в том случае, если вы одинокий ИП, работающий директором, менеджером, программистом и бухгалтером в одном лице.
Электронная почта – лучший опыт Gmail
Каждый бизнес генерирует лиды – большой пул лиц, для которых его товары или услуги могут представлять интерес. Лид может иметь ряд параметров: пол, возраст, увлечения, любимые цвета и проч… Как правило, эти параметры строго зависят от сферы деятельности компании и не подлежат унификации. Но есть один параметр, который интересен бизнесу больше всего – контакты пользователя: телефон, адрес, электронная почта. Если вы когда-то работали со сбором данных с сайта или оффлайн, то замечали, что адрес и телефон нередко предоставляется ложный, а вот e-mail – актуальный.
Чисто психологически люди относят телефон и адрес проживания к более приватной зоне, чем электронная почта, на которую, к тому же, можно получать известия от компаний, например, об акциях и скидках (актуально и для B2B, и для B2C). Помимо лидов и контактных данных существующих клиентов, бизнес непрестанно ведет деловую переписку – с партнерами, поставщиками, органами власти, фискальными органами и т.д. Именно поэтому едва ли не первый запрос к корпоративному программному обеспечению: надежная, удобная и функциональная почта.
Google, очевидно, знает толк в организации корпоративных коммуникаций – именно поэтому бизнес-пользователи получают от Google Apps не только надежную почту, впитавшую лучшие практики Gmail, но и дополнительные преимущества. Одно из них – почта на собственном домене. То есть, если у вас есть сайт thebestme.ru, то адреса вашей почты будут выглядеть не как ivanov89561@gmail.com, а как ivanov@thebestme.ru. Такая почта выглядит более солидно, внушает доверие к отправителю и ассоциирует его с компанией, а значит, письмо будет с большей вероятностью прочитано. С электронной почты Google Apps вы сможете управлять контактами и группами рассылки, вести деловую переписку и производить рассылки с информационными и маркетинговыми сообщениями для ваших клиентов.
Корпоративная почта Google Apps включает в себя защиту от спама – вы не будете тратить время на поиск нужных писем и удаление многочисленных спам-рассылок. Встроенные календари и гибкий производительный поиск позволят не забыть ни об одном деле и легко найти нужную переписку в несколько кликов. Корпоративным клиентам гарантируется бесперебойная работа почты в течение 99,9% времени и предоставляется 30 ГБ для хранения данных.
Документы, облачное хранилище и обмен данными – всё под рукой
Многие из пользователей Интернета знакомы с сервисом Google Docs, который позволяет создавать текстовые документы, таблицы и презентации онлайн и оффлайн, и с сервисом Google Диск, который сохраняет документы, фотографии и другие файлы в облаке. Разумеется, что бизнесу необходимо использовать все преимущества этих решений.
Нужно ещё больше возможностей?
Если по какой-то причине вам недостаточно базового функционала Google Apps, рекомендуем обратить внимание на расширенную версию приложения – Google Apps Unlimited, поставляемую за небольшую дополнительную плату. В этой версии доступны дополнительные инструменты аудита, отчетности и администрирования Диска, неограниченное дисковое пространство для хранения данных, а также Google Сейф для всех сотрудников организации. Расширенная версия дает ощутимые преимущества и пользователям, и администраторам системы.
Пользователи получают неограниченное пространство для хранения файлов на Google Диске, сообщений в Gmail и фотографий в Google+ (если в организации работает менее 5 сотрудников, каждому пользователю предоставляется хранилище размером 1 ТБ). Администраторы могут использовать Google Сейф для работы с перепиской сотрудников (архивация, хранение, экспорт, поиск), поиска по всем файлам Диска, доступа к API и расширенным функциям аудита. Группы пользователей, созданные администратором, в расширенной версии Google Apps Unlimited получают возможность синхронизации файлов с компьютером, возможность открывать документы внешним пользователям, работать с документами в офлайн-режиме, доступ к дополнениям для Google Документов, созданным другими разработчиками и др…
Для тех, кому не хватает дискового пространства, но весь остальной базовый функционал устраивает, Google предусматривает возможность расширения пространства в Google Drive. По умолчанию у каждого пользователя Google Apps for Work есть пространство для хранения 30 ГБ загруженных файлов на Google Диске, почты Gmail и Google Фото. Пользователи могут самостоятельно или через администратора приобрести лицензии на дополнительное дисковое пространство. Обращаем внимание, что в Google Apps Unlimited пространство для хранения не ограничено, поэтому для аккаунтов расширенной версии покупка дополнительных лицензий на дисковое пространство не требуется.
Hangouts – большое видится на расстоянии
Если вы смотрели фильм «Кадры» (Internship), то легко вспомните момент, когда двое друзей проходят собеседование с менеджерами Google, общаясь с ним виртуально с помощью микрофона и web-камеры. Это Hangouts – специальное приложение, которое позволяет общаться посредством web-камеры и микрофона со сколь угодно удаленной точкой планеты, где есть Интернет. В Hangouts можно проводить видеовстречи в HD-формате с 15 участниками прямо с телефона, планшета или ноутбука. Это современный способ коммуникации, который даёт бизнесу новые возможности.
Календарь и задачи – помнить всё
Любой современный менеджер сталкивается с огромным потоком задач – уследить за всем бывает крайне сложно. В Google Apps предусмотрен встроенный календарь с возможностью постановки в нем задач. На почту будут приходить напоминания о необходимости выполнения задачи и совершения звонка. Также в календаре отображаются назначенные в Hangouts встречи.
Групповой календарь с отличной графической реализацией позволяет осуществлять планирование командной работы и создавать поэтапные планы реализации проекта. Одного взгляда на календарь достаточно, чтобы выделить зоны ответственности и уточнить веху, на которой находится проект. Если необходимо, к календарю можно привязывать расписание движения корпоративного транспорта, обеда, бронирования переговорной комнаты, распределение ночных дежурств и многое другое.
Сайты, сейф и другие интересные фишки Google Apps
Практически никто сейчас не строит бизнес без собственного корпоративного сайта. Его создание – непростая задача, которая требует тщательного подхода к выбору исполнителя. Сайт в свою очередь может использоваться как портал для клиентов компании и как внутренний портал для обмена информацией, накопления базы знаний, общения и поддержания корпоративной культуры.
В Google Apps предусмотрена возможность создания сайтов проектов – в интуитивно понятном редакторе создать сайт так же просто, как текстовый документ, не нужны особые навыки программирования, не требуется привлечение web-дизайнера. На страничке проекта можно сообщать о вехах реализации, задачах, событиях и т.д.
В течение жизненного цикла компании формируется значительный объём ценной информации: данные клиентов, корпоративная переписка по почте и в чатах, документы и проч… Разумеется, каждая компания заботится о том, чтобы ее корпоративные данные находились в безопасности. И есть группы данных, которые должны быть гарантированно защищены от удаления, например, рабочая переписка с важными клиентами. Для защиты ряда данных от нежелательных потерь в Google Apps дополнительно поставляется услуга «Сейф» для архивирования почты и чата аккаунтов. Если сотрудник уходит из компании (особенно не очень хорошо уходит), администратор блокирует его аккаунт и все данные переписки, чата и даже поисковых запросов сохраняются в «сейфе». В консоли администратора можно указать, как долго следует хранить письма с группировкой по дате, подразделению и еще ряду признаков.
Собственно, сама консоль администратора – настоящий пульт управления всей экосистемой Google Apps. С её помощью администратор может управлять сервисами, осуществлять настройки, устанавливать политику безопасности (например, двухэтапную аутентификацию). В случае потери мобильного устройства администратор блокирует доступ к данным – и они точно не попадут в чужие руки. Вообще, любые подозрительные действия можно отслеживать с помощью функций удаленного контроля и специальных инструментов аудита.
Ещё одно преимущество Google Apps – API интеграции с другими сервисами и готовые интеграции с рядом бизнес-приложений. Если возникнет необходимость расширить пул используемого программного обеспечения, можно обратиться к Google Marketplace и получить необходимые приложения и дополнения.
А теперь представьте.
… начинающее рекламное агентство из 7 человек.
До Google Apps. Приходит запрос от клиента на создание промо для пиццерии. Аккаунт- менеджер записывает контакты на листок, пишет письмо с просьбой заполнить бриф, назначает встречу, записывает дату в ежедневник. Через три дня клиент присылает бриф в не читаемом формате, его пытаются открыть в разных редакторах. Аккаунт вспоминает о встрече незадолго до нее, мчится в офис клиента. Клиент просит подождать – день потерян. Согласно брифу рассчитывается стоимость проекта и готовится презентация. В офисе клиента презентация открывается с ошибками чтения картинок – конфликт опенсорсного и лицензионного офисного приложения. После обсуждения возникает длинная переписка с правками в брифе, документ меняется до неузнаваемости, теряются замечания, написанные в чате и рассказанные по телефону. Проект начинает затягиваться, дедлайн накладывается на дедлайн другого клиента… Сумбур, сбитые сроки.
С Google Apps. Приходит запрос от клиента на создание промо для пиццерии. Аккаунт-менеджер предоставляет доступ клиенту к форме заполнения брифа, открывает проект, заносит контакт в почту. Клиент заполняет бриф, обсуждает его с аккаунтом и креативщиками в удобное время в Hangouts, вносятся совместные правки. После наработки макетов дизайнер демонстрирует презентацию опять же с помощью Hangouts – никаких проблем в совместимости приложений. Вся переписка сохраняется в архиве, задачи распределены исходи из срочности каждого заказа – никаких наложений. Работа ладится, обсуждение проходит быстро, клиент доволен.
Очевидно, что использование Google Apps помогает экономить время и распределять ресурсы на поставленные задачи. Работа становится более организованной и динамичной, что в свою очередь даёт дополнительное время, например, на поиск новых клиентов.
Вместо послесловия
К сожалению, приложения Google Apps недоступны на территории Крыма – это временная трудность, обусловленная внешней ситуацией. Поэтому предпринимателям из Крыма придётся воспользоваться другими решениями для оптимизации бизнес-процессов. Впрочем, как только компания Google вновь откроет доступ к Google Apps, можно будет легко мигрировать существующие данные и воспользоваться всеми преимуществами предложения.
Многих заботит проблема переноса персональных данных россиян в дата-центры, базирующиеся в России. Пока нет официальных заявлений Google, однако очевидно, что компания не захочет терять российский рынок и в СМИ уже появляется информация о переносе части серверов в Россию.
Внедрение решения Google Apps перспективно для многих компаний – это отличный старт для оптимизации всех процессов в компании. А какой будет IT-атмосфера вашего бизнеса – зависит только от вас.
Фоновая работа в Android: обзор возможностей WorkManager
В мобильных приложениях широко востребованы различные виды фоновой работы. Зачастую нужно поддерживать работу в офлайне, планировать какие-либо долгие и повторяющиеся задачи на определенное время, выполнять «тяжелые» задачи без привязки к сценариям пользовательского взаимодействия.
Например, в ритейле мерчендайзерам бывает необходимо в конце каждого рабочего дня отправлять фотоотчеты на сервер и удалять их из памяти телефона, чтобы не занимать место. А для работы онлайн-кассы требуется в фоновом режиме загружать актуальный справочник товаров. В этой статье мы рассмотрим один из самых популярных инструментов для реализации фоновой работы – WorkManager из Android Jetpack.
Для фоновой работы в Android существует множество изначально реализованных нативных решений, таких как AlarmManager, Handler, IntentService, SyncAdapter, Loader. Однако, их судьба складывается по-разному:
Handler до сих пор повсеместно используется, но, в основном, для посылки эвентов в очередь событий главного потока.
На действия AlarmManager система Android накладывает все больше ограничений, также он имеет довольно раздутое API для работы.
IntentService, используемый для обработки операций в рабочем потоке, начиная с Android API 30 стал deprecated.
Loader имеет привязку к жизненному циклу Activity/Fragment и, с появлением более новых, удобных инструментов, позволяющих решать схожие задачи, морально устарел.
SyncAdapter также морально устарел, не имеет возможности задавать условия запуска задач, создавать цепочки задач.
Начиная с Android 5.0 появился JobScheduler, позволяющий задавать условия запуска задач (устройство на зарядке, подключено к wi-fi и т.д.). Его работа основана на Service, и, чтобы обработка прошла асинхронно, необходимо самостоятельно запустить рабочий поток, а также вызвать необходимые методы JobService для избежания утечек. Все описанное повышает вероятность ошибок и доступно только с api 21.
Учитывая перечисленные ограничения, разработчики столкнулись с потребностью в таком инструменте, который может инкапсулировать работу по избежанию утечек и обращению с потоками, а также предоставить удобное API для запуска асинхронных, повторяющихся, откладываемых задач. В результате в 2018 году был выпущен Android Jetpack, частью которого стал WorkManager (познакомиться с ним подробнее можно, в частности, здесь).
Далее рассмотрим подробнее особенности работы.
WorkManager предоставляет удобные инструменты для описанных выше задач, совместим с корутинами, RxJava2, другими Jetpack библиотеками, может работать в мультипроцессном режиме. Доступен он начиная с API 14 за счет использования под капотом уже знакомых инструментов.
1) Описание и добавление задачи
Для описания задачи необходимо унаследоваться от класса Worker и определить метод doWork():
Код внутри метода doWork() будет выполнен в рабочем потоке WorkManager’a.
Далее задачу можно сделать разовой с помощью OneTimeWorkRequestBuilder.
Либо ее можно сделать периодической с помощью PeriodicWorkRequestBuilder.
В обоих случаях мы передали в качестве generic-параметра класс Worker’a, определенный нами.
В случае периодической задачи мы дополнительно определили интервал ее выполнения — 30 минут (минимально доступный интервал составляет 15 минут; если мы поставим интервал меньше 15 минут, то WorkManager повысит его до 15). А также параметр flex — 25 минут. Этот параметр ограничивает окно запуска задачи: она будет запущена не в любой момент интервала, а между 25 и 30 минутами.
Также для задачи можно установить начальную задержку и тег, по которому задача однозначно будет найдена в списке запланированных задач.
После создания задачи мы добавляем ее в очередь WorkManager’a.
2) Критерии запуска задачи
Мы можем задать необходимые условия для запуска задачи:
После этого констрейнты добавляются в билдере work request’a.
Рассмотрим перечисленные условия запуска:
setRequiresCharging (boolean requiresCharging) — критерий: зарядное устройство должно быть подключено.
setRequiresBatteryNotLow (boolean requiresBatteryNotLow) — критерий: уровень батареи не ниже критического (задача начинает выполняться при уровне заряда больше 20, а останавливается при значении меньше 16).
setRequiredNetworkType (NetworkType networkType) — критерий: наличие интернета. Мы можем указать, какой именно тип сети интернет (NetworkType) должен быть при запуске задачи. Тип соединения с сетью может быть:
CONNECTED — WiFi или Mobile Data
UNMETERD — только WiFi
METERED — только Mobile Data
NOT_ROAMING — интернет не должен быть роуминговым;
NOT_REQUIRED — интернет не нужен.
setRequiresDeviceIdle (boolean requiresDeviceIdle) — критерий: девайс не используется какое-то время и ушел “в спячку”. Работает на API 23 и выше.
setRequiresStorageNotLow (boolean requiresStorageNotLow) — критерий: на девайсе должно быть свободное место, не меньше критического порога.
3) Цепочки задач
WorkManager может выполнять несколько разовых задач последовательно друг за другом. При этом задача, для которой не выполнены критерии запуска, будет ожидать их соблюдения вместе с теми, что идут после нее. Если порядок задач не важен, можно запустить их параллельно.
Периодические задачи ставить в цепочку нельзя.
В данном примере мы параллельно запускаем задачи myWorkRequest1, myWorkRequest2. После их выполнения будут параллельно выполняться задачи myWorkRequest3, myWorkRequest4. Затем — задача myWorkRequest5. Данный пример можно переписать, выделив параллельные запросы в цепочки. После чего две получившиеся цепочки можно передать в метод combine() класса WorkContinuation для параллельного исполнения:
4) Уникальная цепочка задач
Мы можем сделать последовательность задач уникальной. Для этого нужно начать последовательность методом beginUniqueWork():
В этот метод мы передали название уникальной цепочки, стратегию действий при коллизии цепочек с одинаковым именем и саму задачу (можно передать список задач).
Стратегий может быть несколько:
REPLACE – остановка последовательности с таким же именем, и запуск новой;
KEEP – оставит в работе текущую выполняемую последовательность, а новая будет проигнорирована;
APPEND – запустит новую последовательность после выполнения текущей.
5) Отмена задачи
Для отмены задачи у класса WorkManager есть следующие методы:
cancelAllWork() — отменяет все запланированные задачи (и не только вашим приложением);
cancelAllWorkByTag(String tag) — отменяет все задачи с указанным тегом;
cancelUniqueWork(String uniqueWorkName) — отменяет уникальную цепочку задач с указанным именем;
cancelWorkById(UUID id) — отменяет задачу по указанному id.
6) Статусы задач
Статусы и жизненный цикл задачи может быть различным, в зависимости от того, разовая она или нет. Возможны следующие статусы задач:
ENQUEUED – задача запланирована;
RUNNING – задача выполняется;
SUCCEEDED (SUCCESS) – задача выполнена, терминальное состояние;
FAILED (FAILURE) – задача не была выполнена, не повторять, терминальное состояние;
RETRY – задача не была выполнена, повторить через некоторое время;
BLOCKED – задача включена в цепочку, и ее очередь выполнения еще не наступила;
CANCELLED – задача отменена, терминальное состояние.
Для разовой задачи возможен следующий флоу:
Если одна из разовых задач включена в цепочку и завершилась с состоянием FAILED, следующие за ней по цепочке задачи будут отменены.
Для периодической задачи существует другой флоу:
Как мы видим, для периодической задачи существует одно терминальное состояние: CANCELLED.
Так как WorkManager является частью Jetpack, получить информацию о задаче можно в виде LiveData:
7) Входные и выходные данные задачи
Мы можем задать входные данные, необходимые для ее работы.
Когда задача будет запущена, мы сможем получить эти данные внутри нее с помощью:
После выполнения мы можем в Result.success() или Result.failure() передать выходные данные задачи.
8) Передача данных между задачами
При создании цепочки задач выходные данные одной задачи будут передаваться во входные данные другой. Рассмотрим такой пример. Пусть задачи myWorkRequest1 и myWorkRequest2 выполняются параллельно, затем выполняется myWorkRequest3. В результате выходные данные из первой и второй задач попадут в третью.
Так как мы задали одинаковые ключи, невозможно предположить, какое именно значение попадет в третью задачу, ведь первая и вторая задача выполняются параллельно. Важно об этом помнить.
9) InputMerger
Для преобразования нескольких выходных результатов в один входной используются реализации класса InputMerger. По умолчанию используется OverwritingInputMerger, перезаписывающий значение по уже существующему ключу. Это было видно на предыдущем примере с двумя параллельными задачами. Если же нам нужно при совпадении ключа записать все пришедшие значения, следует использовать ArrayCreatingInputMerger.
InputMerger можно задать при создании задачи. Добавим ArrayCreatingInputMerger для myWorkRequest3 из предыдущего примера.
Теперь по ключу keyA мы получим не последнее записанное значение, а массив [«value1», «value2»]. Также и для ключа keyB — [1, 2].
10) Кастомная конфигурация WorkManager
WorkManager имеет собственный провайдер, WorkManagerInitializer, который мержится в манифест приложения. Он создает пул потоков, необходимый для работы, фабрики для создания InputMerger’ов и WorkerFactory (создает объекты Worker’ов, полезна в случаях, когда класс Worker’a получил новое имя, и WorkManager должен соотнести действия, запланированные на старое имя, с новым). При необходимости эти параметры можно изменить.
Для начала нужно отключить стандартный провайдер WorkManager’a. Это делается в манифесте приложения путем объявления.
После этого нужно сделать класс нашего приложения реализацией интерфейса Configuration.Provider. И в переопределенном методе изменить нужные нам параметры. Например, заменим стандартный Executor, в потоках которых выполняется код Worker’ов, и изменим минимальный уровень логирования:
11) Тестирование
Для тестирования Worker’ов нужно подключить в проект зависимость
В этом пакете есть классы, которые помогают в тестовой среде.
Пусть у нас есть Worker, который складывает 2 числа и выдает результат в качестве выходных данных. Протестируем его:
Дополнительно можно проверить, что код Worker’a выполняется только тогда, когда выполнены все условия его запуска. А также проверить статус работы.
Пусть у нас есть тот же Worker, выполняющий сложение 2 чисел. Зададим ему условия старта и протестируем.
Заключение
WorkManager предоставляет широкие возможности для асинхронной работы, которая должна выполняться в определенном состоянии устройства, откладывать ее, планировать, выполнять параллельно, перезапускать, запускать периодически, работать в многопроцессном режиме. Также этот инструмент гарантирует выполнение задачи даже после закрытия приложения и перезагрузки устройства. А его доступность, начиная с API 14, делает его must-have инструментом для подобного рода задач.
Спасибо за внимание! Надеемся, что этот материал был полезен для вас.





