Как стать автором
Обновить

Компания Wrike временно не ведёт блог на Хабре

Сначала показывать

DI.kt: одна из первых DI библиотек для Kotlin Multiplatform

Время на прочтение5 мин
Количество просмотров3.2K

Прошу приветствовать одну из первых DI библиотек для Kotlin multiplatform — DI.kt

Вы можете спросить: «А зачем нам ещё DI либы?». Долгое время полноценного DI для Kotlin Multiplatform не было. Существующие библиотеки — это сервис-локаторы (Koin, Kodein, Popkorn), которые не валидируют граф зависимостей во время компиляции. А это одна из важнейших фич многих привычных Java и Android сообществам DI библиотек и фреймворков. Чтобы принести эту фичу в Kotlin Multiplatform, я и написал DI.kt. Библиотека намного проще привычного нам Dagger — нет мультибиндингов и прочих концептов, которые делают его таким сложным в освоении (и периодически используются неправильно).

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии0

Интеграция с Allure: структурировать, упростить, стабилизировать

Время на прочтение8 мин
Количество просмотров13K

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

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии6

DartUP возвращается: открыта регистрация на самую масштабную русскоязычную конференцию по Dart и Flutter

Время на прочтение1 мин
Количество просмотров2.4K

Привет, Хабр! 3 и 4 декабря мы проведем DartUP — онлайн-конференцию по Dart и Flutter на русском и английском. Вас снова ждет несколько потоков докладов: спикеры из Google и других компаний, а также разработчики тулинга для Dart и Flutter поделятся новостями об экосистеме и своим практическим опытом.

Узнать больше про DartUP
Всего голосов 15: ↑15 и ↓0+15
Комментарии3

Как повысить качество кода в тестовом проекте

Время на прочтение13 мин
Количество просмотров4.8K

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

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии0

Dart Code Metrics 4.0: команды, поддержка монорепозиториев и новые правила

Время на прочтение8 мин
Количество просмотров2.7K

В предыдущей статье мы анонсировали Dart Code Metrics — инструмент статического анализа кода. Сегодня я расскажу про новые возможности, которые появились в Dart Code Metrics с выходом очередного мажорного обновления. Поговорим про появление команд, поддержку монорепозиториев, улучшения в интеграции с CI/CD, и, конечно же, про новые правила для анализатора. Теперь у инструмента появился сайт с документацией, его можно найти здесь.

Читать далее
Всего голосов 9: ↑8 и ↓1+11
Комментарии4

Особенности миграции на фронтенде: итоги панельной дискуссии с экспертами Wrike, Яндекс, Kaspersky и Leroy Merlin

Время на прочтение7 мин
Количество просмотров2.5K

Привет, Хабр! Несколько месяцев назад Wrike публично объявил об отказе дальнейшей разработки на Dart и переходе на новый стек.

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Код-ревью без очередей

Время на прочтение8 мин
Количество просмотров8.1K

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

Читать далее
Всего голосов 28: ↑28 и ↓0+28
Комментарии4

Способы инжектить ViewModel с помощью Dagger: что может пойти не так

Время на прочтение8 мин
Количество просмотров21K

Инъекция зависимостей во ViewModel — очень популярная тема для статей по всему интернету. Давайте посмотрим, какие проблемы могут скрывать популярные подходы, и разберемся, есть ли способ инжектить ViewModel с помощью Dagger без огромного количества кода или потерь валидации графа зависимостей во время компиляции.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии6

View Model не обязательно наследоваться от ViewModel

Время на прочтение6 мин
Количество просмотров6.7K

Рекомендованные практики от Google, как правило, включают использование ViewModel в качестве базового класса для View Models (тех, которые в MVVM). ViewModel — отличная штука для сохранения чего угодно в случае поворота экрана: будь то View Model, Presenter или Router. Но можно ли получить все преимущества выживания при повороте без необходимости наследоваться от ViewModel напрямую?

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Круглый стол в Wrike: как перевести фронтенд на новый стек

Время на прочтение1 мин
Количество просмотров1.7K

Больно, дорого, стрессово, но порой необходимо. Миграция на новый стек (язык или фреймворк) — событие, которое всегда интересно пообсуждать, особенно, если происходит оно не в твоем продукте. 13 июля в 19:00 (Мск) мы соберем подискутировать всех, кто пережил или переживает перевод фронтенда на новые технологии. «А я вам говорил» и другие комментарии зрителей — приветствуются!

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

В Европу со своим дроном

Время на прочтение5 мин
Количество просмотров17K

Отправляясь в отпуск, все берут с собой телефон для съемок, некоторые — хороший фотоаппарат или action-камеру. А кто-то — квадрокоптер. Дрон больше не роскошь, а средство, которое помогает запечатлеть прекрасные воспоминания о путешествиях. Рано или поздно пандемия закончится, и многие из нас поедут в Европу, прихватив с собой коптер для съемок. Но, к сожалению, это может привести к штрафам за его нелегальное использование. Давайте разберемся, как сделать всё по закону.

Читать далее
Всего голосов 16: ↑15 и ↓1+22
Комментарии16

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

Время на прочтение10 мин
Количество просмотров4.5K

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

Читать далее
Всего голосов 16: ↑15 и ↓1+17
Комментарии11

Как превратиться в суперзвезду Zoom-звонков за 15 минут. Часть 2. Софт

Время на прочтение6 мин
Количество просмотров14K

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

Читать далее
Всего голосов 16: ↑13 и ↓3+16
Комментарии6

Google I/O 2021: что нового для Android-разработчиков (полный обзор)

Время на прочтение6 мин
Количество просмотров6.8K

В этом году Google I/O снова проходил в виртуальном формате. Как это было, например, 3 года назад, можно прочитать в прошлой статье. Привычка делать саммари интересных докладов для разработчиков у меня осталась, так что решил поделиться своими заметками после просмотра сессий и чтения блог-постов. Думаю, что это будет полезно не только внутри Wrike.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии7

Wrike переходит с Dart на новый стек. Какой?

Время на прочтение7 мин
Количество просмотров18K

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

Читать далее
Всего голосов 32: ↑30 и ↓2+35
Комментарии33

Wrike уходит от использования языка Dart. Часть 1

Время на прочтение7 мин
Количество просмотров28K

Данной статьёй мы хотим пролить свет на технический стек Wrike: каким он был раньше и каким мы видим его в будущем. Мы расскажем о том, почему пять лет назад мы выбрали язык Dart основным для frontend-разработки нашего продукта и почему сейчас мы решили посмотреть в сторону других языков и фреймворков.

Читать далее
Всего голосов 34: ↑31 и ↓3+37
Комментарии99

Повышаем качество кода с Dart Code Metrics

Время на прочтение8 мин
Количество просмотров7.3K

Dart Code Metrics — это инструмент статического анализа кода, который позволяет собирать метрики по коду и предоставляет дополнительные правила для анализатора. Основная задача — помогать разработчикам следить за качеством кода и улучшать его. В этой статье мы хотим поделиться возможностями инструмента с сообществом. Он помог нам в Wrike решить часть проблем на фронтенде, и, надеемся, поможет и вам.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии2

Безопасность iOS-приложений: гайд для новичков

Время на прочтение18 мин
Количество просмотров16K

Привет! Меня зовут Гриша, я работаю application security инженером в компании Wrike и отвечаю за безопасность наших мобильных приложений. В этой статье я расскажу про основы безопасности iOS-приложений. Текст будет полезен, если вы только начинаете интересоваться безопасностью мобильных приложений под iOS и хотите разобраться, как все устроено изнутри.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии4

Подготовка экосистем Dart и Flutter к переходу на null safety

Время на прочтение2 мин
Количество просмотров5.5K

Поезд null safety мчится вперёд, уже почти официально анонсирован Flutter 2.0 (подключайтесь к предстоящему Flutter Engage), экосистема Dart тоже не стоит на месте. Мы перевели на русский язык новость из официального блога Dartlang и настоятельно рекомендуем вам переводить свои пакеты на новые рельсы, если вы этого ещё не сделали!

Читать далее
Всего голосов 10: ↑9 и ↓1+9
Комментарии19

Как превратиться в суперзвезду Zoom-звонков за 15 минут

Время на прочтение10 мин
Количество просмотров39K

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

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

Читать далее
Всего голосов 99: ↑91 и ↓8+116
Комментарии133