Русский
Русский
English
Статистика
Реклама

Приложения для iphone

Ну, покати! или CICD мобильных приложений на основе контракта

02.09.2020 18:14:51 | Автор: admin

Всем привет! Меня зовут Дмитрий, я релиз-инженер вкоманде CI/CD Speed Авито. Вот уже несколько лет мы сколлегами отвечаем за всё, что связано срелизами наших мобильных приложений и не только. Пронаши релизные поезда и как мы кэтому шли уже очень подробно рассказывал Алексей Шпирко.


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



Немного контекста


Мобильное приложение Авито это:


  • Десятки продуктовых команд.
  • 20+ разработчиков на каждую изплатформ.
  • Тысячи UI-тестов.
  • Десятки тысяч UNIT-тестов.
  • Сотни тысяч строк кода.
  • Еженедельные релизы Android.
  • Релизы iOS раз вдвенедели.

Процесс релиза состоит изследующий частей:


  1. Срез релизной ветки изdevelop и простановка тега вgit.
  2. Прогон всех автоматических проверок кода и прогон всех видов тестов.
  3. Сборка релиз-кандидата.
  4. Загрузка релиз-кандидата вAppStore/GooglePlay и внутреннее хранилище артефактов.
  5. Отправка необходимой информации всистемы мониторинга.
  6. Загрузка данных всистему управления фича-тоглами.
  7. Сборка what's new дляQA и редакторов.
  8. Подготовка Jira-артефактов простановка версии в задачи, создание задач дляредакторов, QA и релиз-инженеров.
  9. Нотификация всех заинтересованных лиц оготовности релиз-кандидата.
  10. Регрессионное тестирование.
  11. Выпуск приложения начасть пользователей и нотификация обэтом.
  12. Выпуск приложения на100% пользователей и снова нотификация.


Так устроен наш релизный поезд


В начале 2019года всё это успешно обслуживалось несколькими десяткам скриптов наразных языках и сложными цепочками TeamCity-билдов. Каждое воскресенье cron запускал стартовую TeamCity-конфигурацию, скрипты и билды выполняли всю работу изпунктов 1-9.


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


Но вкажущемся благополучии таился ряд проблем.


Проблема 1. Сложные цепочки билдов вTeamCity


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



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


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

Например билд-1 завершает работу, билд-3 ждёт результаты выполнения билдов 1 и 4, а вбилде-7 поменяли параметр, и вся система черезчас работы рухнула. Садишься, разбираешься что куда нужно пробросить и кому что скормить или перезапускаешь весь процесс снуля. В итоге теряешь много сил и времени и получаешь временами автоматизацию наручном приводе.


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


Проблема 2. Зоны ответственности


Так сложилось, что наша большая команда состоит издвух независимых команд поменьше. Это собственно мы CI/CD team и наши коллеги Testing team. Мы отвечаем завсю общую часть релиза или же CD как взять нужный срез кода и донести его пользователям. Ребята изTesting team отвечают завсю платформа-специфичную часть как собрать приложение, прогнать нанём нужные тесты и отдать это нам.


И, соответственно, релизная цепочка билдов содержала как наши билды (срез ветки, Jira-задачи, оповещалки, подготовку артефактов дляручных проверок) так и билды коллег. Билды зависели друг отдруга, и это мешало быстро развивать как наши системы и процессы, так и системы и процессы ребят, потому что любое косвенное изменение потенциально ломало весь процесс.


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


Проблема 3. Люди


У нас есть часть релизного процесса, вкоторой участвуют люди. Это непосредственные участники: тестировщики, редакторы, релиз-инженеры. И косвенные, но заинтересованные втом, чтобы пользователи получили приложение: продакт-менеджеры, разработчики, маркетологи, аналитики. Раньше вся коммуникация осуществлялась через Slack-каналы, а актуальное состояние релиза было разбросано поразным местам (Jira, Slack), его знал только релиз-инженер. Поэтому ему приходилось тратить много времени отвечая навопросы когда поедем на 100%?, релиз стартанул?, так уже можно тестировать или нет?, а следующий релиз когда?.


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


Разграничиваем ответственность


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


Давайте посмотрим, что мы вкладываем вэти понятия.


CD:


  • срез релизной ветки вgit;
  • простановка тегов вgit;
  • запуск CI-части;
  • подготовка релизных артефактов (Jira-задачи, Release Notes);
  • подготовка регрессионных артефактов;
  • оповещения остадиях релиза;
  • релиз.

CI:


  • прогон всех тестов;
  • сборка приложения;
  • сборка платформ-специфических артефактов;
  • загрузка приложения вмаркет.

Видно, что есть разграничение зон ответственности напроцессном уровне и есть четкое разграничение наорганизационном уровне. Но вобщем релизном процессе науровне TeamCity всё перемешивалось и доставляло очень много проблем.


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


Контракт по своей сути это пара JSON-файлов, один изкоторых CD передаёт вCI-часть, а второй ожидается как результат работы CI.



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


Пример входного файла контракта config.json:


{"schema_version": 1, "project": "avito", "release_version": "777.5", "output_descriptor": {        "path":"http://artifactory.ru/releases/avito_android/777.5_1/output.json",         "skip_upload": false}, "deployments":  [        {        "type": "google-play",        "artifact_type": "bundle",        "build_variant": "release",         "track": "beta"        }  ]}

Тут мы сообщаем CI-части, что хотим собрать релиз проекта Авито сномером 777.5, ожидаем, что выходной файл врезультате работы будет загружен попути, описанному вoutput_descriptor, а также заказываем, какие артефакты и вкаком виде должны быть собраны и куда загружены после.


Пример выходного файла контракта output.json:


{  "schema_version": 1,  "teamcity_build_url": "https://tmct.ru/viewLog.html?buildId=17317583",  "build_number": "777",  "release_version": "777.5",  "git_branch": {    "name": "release-avito/777.5",    "commit_hash": "2c54c50c220bf91bc1a6ca10b34f53a540c80551"  },  "test_results": {    "report_id": "5f3e94fd23d67bf434e5c1b8",    "report_url": "https://tests.avito.ru/report/AvitoAndroid/FunctionalTests/2c54c50c220bf91",    "report_coordinates": {      "plan_slug": "AvitoAndroid",      "job_slug": "FunctionalTests",      "run_id": "2c54c50c220bf91"    }  },  "artifacts": [    {      "type": "apk",      "name": "avito-777.5-777-release.apk",      "uri": "http://example.com/artifactory/android/avito/777.5-777/avito-777.5-777-release.apk",      "build_variant": "release"    },   ]}

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


Nupokati: сервис релизов мобильных приложений


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


Поэтому мы решили отказаться отTeamCity вCD и реализовывать собственный сервис релизов мобильных приложений.


Что мы хотели получить отнового сервиса?


  1. Отсутствие сложных связей и неявных зависимостей.
  2. Перезапуск релиза, начиная сточки отказа.
  3. Прозрачность процесса релизов длявсех участников.
  4. Простую поддержку, кастомизацию и тестирование.
  5. Возможность использования наразных мобильных проектах компании.

Так появился сервис мобильных релизов Nupokati рабочее название прижилось и осталось снами.



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


Основная управляющая сущность вCD-сервисе это Release.



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



Вот пример небольшой части релиза:



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


Дашборд же служит панелью управления всем процессом и показывает актуальное состояние конкретного релиза:




Здесь есть вся необходимая информация порелизу и ссылки наартефакты



Также отсюда осуществляется всё управление релизом



И отображается актуальное положение релизного поезда



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


Итоги


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


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

Подробнее..

Из песочницы Дайджест главных новостей мобайла и ASO за месяц

05.10.2020 12:23:18 | Автор: admin

Каждый месяц готовлю подборку основных новостей мобайла для Hackernoon. Решила, что стоит поделиться русскоязычной версией с Habr. В этом выпуске: iOS 14 привел в негодование разработчиков и помог Pinterest побить дневной рекорд загрузок, измененные правила App Store, попытки Facebook манипулировать Apple, грядущее обновится Google Play Console и другие нашумевшие истории.


Неожиданная iOS 14, кастомизация экрана, виджеты бустят Pinterest


Внезапно (!) вышла новая iOS 14 многие разработчики не успели подготовиться к релизу и были возмущены. Из важного для маркетинга и ASO: мини-приложения, автоисправления в поиске, фичер-карточки (можно почитать про плюсы и минусы здесь). Из неожиданного: виджеты главного экрана стали большой новостью. После выхода iOS 14 приложения для кастомизации главного экрана за несколько дней установили около 5,7 миллионов пользователей. Лидером стал Pinterest, который за день побил дневной рекорд загрузок 616 000 установок.


Коалиция против Apple, коды предложений и зеленый свет игровым стримингам


Кажется, недовольство Apple становится трендом. 13 издателей приложений, включая Epic Games, Deezer, Basecamp, Tile и Spotify создали лигу справедливости Coalition for App Fairness, чтобы призвать Apple пересмотреть политику стора. Apple действительно идет на некоторые уступки. Например, вводит другие варианты офферов коды предложений, которые, например, дают скидки на автоматически возобновляемые подписки. Еще Apple фактически разрешила игровые стриминговые сервисы. Правда, там всё довольно запутано.


Facebook VS Apple: давление и манипуляции двух гигантов


Facebook не отстает и тоже давит на Apple. Возможно, вы слышали об инициативе Facebook запускать платные онлайн-мероприятия, чтобы помочь бизнесу после пандемии. Apple решил до конца года отказывается от 30% комиссии. Все платежи будут обрабатываться через Facebook Pay. Также Facebook собирается продавливать и вопрос с Messenger. Если теперь пользователи iPhone могут по умолчанию выбирать приложения для почты и просмотра веб-страниц, то почему должны довольствоваться единственным инструментом для отправки сообщений? Тем более в мессенджер появилась фича с совместным просмотром видео.


Swift для Windows, AR от Pokmon Go в масштабах планеты, уведомления о заражении COVID-19


Раньше приложения для iOS можно было создавать только на устройствах Apple. Но сейчас границы дозволенного стерлись язык Swift перенесли на Windows. Про другие границы (личные!): Великобритания все же запустила приложение, отслеживающее социальные контакты. Благодаря Bluetooth оно может оповещать о потенциальном заражении COVID-19. У Checkaso есть обзор подобных приложений. А вот создатели Pokmon Go обещают не только обнаружение покоменов (а какую бы вы сделали подводку от ковида к покемонам?). Разработчик предоставит мобильным операторам контент дополненной реальности с поддержкой 5G и будет работать над стандартами этой инновации. Вот такой Planet-Scale AR Alliance намечается.


Эпопея с TikTok: решения суда, солидарность Instagram, альтернатива от YouTube


Последние вести с полей: федеральный суд США заявил, что запрет на TikTok пока не вступит в силу. Пока суд рассматривает законность запрета и решает, представляет ли приложение риск для национальной безопасности. Instagram, несмотря на их Reels, выступает против запрета TikTok. А вот YouTube подсуетился и анонсировал конкурентный формат Shorts. Пока работает только в Индии и на Android, но планы масштабные.


Коротко про ASO: названия конкурентов в метаданных, разная выдача и новая AppGallery


Теперь в метаданных своего приложения в App Store нельзя использовать названия конкурентов, в том числе и в ключевых словах. Еще оказалось, что у поисковых запросов разная выдача в зависимости от iOS, возможная причина пока не все сервисы перешли на парс iOS 14. Бонусом: обновился AppGallery. Если коротко: они продолжает гордиться созданием экосистемы и говорят, что к ней присоединилось уже больше 1,8 миллионов разработчиков. Есть разные размышления о том, может ли AppGallery стать альтернативой известных сторов.


P.S.


Закончу дайджест анонсом 2 ноября ожидается выход обновленной Google Play Concole. Обещают свежий интерфейс и удобную навигацию. И, кстати, про Google: они запретят разработчикам приложений принимать платежи в обход Google Play. В течение года они должны будут перейти на платежную систему компании.

Подробнее..

Железо и софт, которым я пользуюсь каждый день

20.10.2020 10:16:23 | Автор: admin

Привет, Хабр! Эту статью я написал пару недель назад у себя в блоге, но я продолжаю получать много вопросов по этой теме, поэтому решил опубликовать ее здесь!

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

Подход к железу и не только

Немного расскажу о своём подходе к выбору тех или иных штуковин. В моей голове есть четкая структура потребления, которую позже я услышал словах уЛео Баланёва, только более ёмко: Я не экономлю на инструментах, чтобы быть уверенным, что могу на них положиться. Если что-то не получается, то в этом виноват не инструмент, а я сам. Цитата не точная, но мысль прозрачная. Если я покупаю что-то и отношусь к этому, как к инструменту я готов инвестировать в уверенность в том, что этот инструмент позволит мне выжать максимум. В некотором роде я покупаю на вырост, но в пределах возможностей.Аэродинамическая передняя панель proнаколесахдля меня перебор, поэтому в этом нет смысла.

Вторая категория базовый стаф, который решает свою задачу. Здесь у меня такой подход: если товар закрывает свою потребность, значит этого достаточно. Приведу пример: AirPods мне нужны, чтобы слышать, но не вслушиваться. Я не жду от них музыкальных высот Hi-Fi, поэтому те, что у меня есть устраивают, и я не покупаю AirPods Pro. У меня естьSony WH-1000XM3с хорошим шумодавом. Они помогаю мне отстраниться от офисного шума и фокусироваться на работе, в них я монтажу и слушаю музыку, когда хочется ее слушать, а не слышать это инструемент.

У меня есть хорошие часы и туфли, но это часть моей работы: в корпоративном мире они являются инструментом. А на каждый день мне подходят футболки H&M. Надеюсь, понятно раскрыл идею. Давайте перейдем к железу.

За спиной: MacBook Pro 16

Тут и говорить нечего: эта машина, которая стоила моих инвестиций. На MacOS я с 2015 года, но это всегда были младшие прошки. В 2020 году я понял, что нужно больше, быстрее, мощнее и тут подлетел апдейт старшей модели. Я изучил спеки и помчал отдавать кровный четвертак. За этой штуковиной я провожу половину своего времени, он быстро окупился, сохраняя пятую точку холодной.

В кармане: iPhone 11 Pro

Тут можно подумать, что это избыточная история. Отчасти, так и есть, но на момент покупки у моего X уже подсел аккумулятор, а чехол-батарея оттягивает пиджак (мне иногда нужно в нем быть). iPhone 11 показался мне широким, потому что телефон для меня инструмент on the go (так когда-то назывались подборки в iPod, которые действительно можно было собрать на ходу). Камеры вторая история, которой я действительно пользуюсь. Я покупаю младшие модели на 64Gb, потому что не снимаю длинные видео и пользуюсь облаками. Бльшая часть памяти фото и видео контент, которой я и так дублирую в облаке, а приложений у меня не много. Как я организовал iPhone и почему iOS 14 лучший апдейт с точки зрения продуктивности расскажу в следующих статьях.

На руке: Polar Vantage V

История про рабочий инструмент сохранилась и здесь. У меня были Watch Series 4, которые я разбил на тренировке. Снова покупать часы от Apple не стал, потому что их несложно разбить на тренировке, а функционал для меня избыточный: я не пользовался и 3/4 приложений. Понял, что мои часы должны решать две задачи: спорт и некоторые уведомления. Я без ума отPolar Flowи связи с датчиком ЧСС H10, поэтому купил Polar. Если интересно, я расскажу и об этом. Можете написать мне или в комментариях к этой статье.

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

Коротко

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

Если для вас не знакомо что-то из списка, далее я расскажу про каждое приложение и сценарий использования.

Файлы: OneDrive

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

Для работы я пользуюсь OneDrive, потому что у меня корпоративная подписка Office365. Мне доступен 1TB, автоматическая синхронизация пакета Office365 и тимворк с документами. Я много работаю с документами форматов Office и это было лучшим решением для меня. Раньше у меня был Google Drive отличный базовый продукт, но мне не очень нравились настройки синхронизации с устройством.

Настройки OneDrive в Finder: можно поделиться ссылкой, выгрузить в облако и освободить память или всегда держать файл на готове

Почта: Spark

Удобный и бесплатный (для персонального использования) почтовый клиент. У меня много ящиков, конечно, есть структура с папками, но я буду отрицать своё ОКР. Spark доступен на разных платформах. У Spark хорошо отрабатывают интеграции и для меня это очень удобно: сразу кидаю задачу или делаю заметку. А ещё мне нравится виджет для iOS 14. До этого я пользовался Outlook, но мне не очень нравится его работа на iOS, хотя для корпоративного продукта с Office365 это очень удобно.

Два тапа от письма в Spark до задачи в Todoist на iOS

Календарь: Fantastical

Я уже упоминал Fantastical, как свой календарь. Premium доступен по подписке, персональный стоит 3150 рублей в год или 399 рублей в месяц. Мне нравится интеграции, распознавание натурального языка (когда ты пишешь tomorrow и он понимает, что это не заголовок события), UI и виджеты. Правда, компания еще не выпустила виджет для iOS 14, что меня огорчает. Fantastical показывает погоду, дает возможность настроить отображение по выбранным календарям (можно назвать это рабочими столами, когда определенный пулл календарей отображается, а другой нет) и висит небольшим окошком в статусбаре, когда нужно быстро посмотреть дату. Удобно, что видно загрузку дня и можно быстро определять тип событий по цвету. Для iOS все то же самое, а еще можно выбирать тип виджета. Большая часть функционала любого календаря доступна и в Google календаре, в качестве бесплатной альтернативы я бы посоветовал его.

Распознавание языка в Fantastical работает на английском

Календарь всегда доступен в статусбаре на Mac

Настраиваемый виджет Fantastical на iOS

Задачи: Todoist

Пожалуй, наиболее важная программка в моем паке. Todoist стандартный To-Do, но мне кажется наиболее удобным. Умеет распознавать натуральный язык, напоминает о делах по времени или месту, позволяет создавать повторяющиеся дела и имеет мощный набор фильтров и тегов. Доступен даже в расширении Chrome, а за деньги позволяет добавлять гостей, настраивать фильтры, загружать файлы до 100Mb и менять темы. Отлично интегрируется со многими сервисами, в моем случае это Fantastical и Spark. Задачи можно разложены по проектам, а внутри проектов доступны секции. Большую часть я вношу на ходу с iPhone, а на маке вижу дела в Fantastical. Задача создается в один шорткат, а благодаря распознаванию речи можно не искать нужные кнопки это киллер-фича. У Todoist уже доступен виджет на iOS 14 и он крутой.

Пример добавления задачи в Todoist с помощью распознавания ввода

Заметки: Evernote и Notion

Notion топовый продукт, спросите ближайшего продакт оунера. Не буду рассказывать о функционале, но там можно сделать почти всё. Я использую Notion, как CRM, kanban и базу данных. В Notion живет мой контент-план, список книг, вишлист и домашка по программированию. Да, нужно немного вникнуть в его работу, но после того, как вы поймете принцип построения линкованых баз данных в Notion, уверяю, вы найдете применение и в своей работе. Знаю, что многие студенты формируют учёбу в Notion. Это архитектура, а не готовое решение, в которой вы можно настроить почти всё. Есть на платформах, доступна в вебе. Иногда лежит, бесит загрузочный экран, жрет ресурсы, но чертовски функциональный. Бесплатный с ограничениями, но для большинства задач этого хватит. Для тимворка инструмент невероятный, $8 за пользователя в месяц. Персональный стоит $4, а для студентов бесплатно.

Так выглядит моё изучение Python, да, я не очень далеко продвинулся за лето

Evernote один из наиболее популярных и старых продуктов для заметок, но остается актуальным. Здесь все организовано как в библиотечном списке: блокноты, в них заметки, в заметках разный тип контента. Я пользуюсь Evernote давно и храню в нем что-то важное, но редко используемое. Сюда удобно что-то записать быстро, отсканировать документ и визитку. Здесь, например, храниться медицинская книжка моего пса, потому что я стараюсь сразу оцифровывать документы. Большая библиотека шаблонов позволяет использовать заметки в разных сценариях. Мне нравится, как Evernote работает на iOS после недавнего обновления.

Обновленный Evernote на iOS

Браузер: Chrome на компьютере, Safari на телефоне

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

Рисёрч: Roam

Молодое и нашумевшее веб-приложение, которое начало давить на Notion. По сути, это Bulleted list, в который встроена линковка по тегам и страницам. Работая в Roam, я не отрываете руки от клавиатуры, совсем. Вводите текст, а Roam сделает линки и построит граф связей между страницами. Я использую Roam, когда провожу исследование рынка: удобно связывать мысли и источники. При входе у вас открывается страница дня и это просто чистый лист. Вы начинаете писать, а по пути ставите типы элементов, теги и ссылки. Я пользуюсь с беты, и в начале сервер просто лежал из-за количества пользователей. Сейчас команда с этим справилась, теперь просят $15 в месяц или $165 в год. Для студентов бесплатно, а ещё можно заплатить $500 за 5 лет и попасть в закрытое коммьюнити. Очень советую посмотреть внимательно.

Пример ввода материала в Roam

Пример построения связей между страницами в Roam

Трекер: Daylio

Недавняя находка, которой я пользуюсь всего два месяца. Daylio трекер настроения и привычек с небольшим окном заметок по результатам дня. Позволяет оценивать динамику активностей, не разрывать цепочку привычек и быстро оценивать, что вы делали в конкретный день. Ещё мне нравится функция year in pixels, которая показывает среднее настроение каждого дня в году. Premium стоит 1550 рублей в год или 199 рублей в месяц и позволяет разблокировать приложение по FaceID, учитывать корреляцию настроения и активностей и устанавливать бесконечное количество напоминаний.

Активности в Daylio

А вот так я сократил дни с низким качеством сна

Навигация по системе: Alfred

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

Это невероятно, мастхэв, если вы на Mac

Пароли: LastPass

Отличный бесплатный менеджер паролей для всех моих устройств. LastPass может хранить пароли, банковские карты и защищенные заметки. Умеет заполнять поля и генерировать пароли. При регистрации на новом сайте расширение Chrome предложит сохранить пароль в хранилище. А еще есть отличная функция Authenticator. Технически, это приложение, которое является отдельным шагом многоуровневой верификации. Если вы логинитесь в свое хранилище, необходимо подтвердить это в Authenticator, который постоянно генерирует новые 6-значные коды доступа каждые две минуты.

Authenticator присылает уведомление и позволяет все залочить одним тапом, если кто-то пытается зайти

Если есть вопросы пишите

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

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru