All streams
Search
Write a publication
Pull to refresh
64
58.5
Send message

Ещё одна статья про макросы. Часть 2

Reading time20 min
Views1.3K

Продолжаем предыдущую статью — вместе с Серёжей, Flutter Developer Surf, мы пройдём путём разработчика, который только начал изучать макросы, и разберём оставшиеся интересные (и негативные, да!) примеры.

Читать дальше

Ещё одна статья про макросы. Часть 1

Reading time12 min
Views4.2K

Про макросы в Dart написали уже кучу статей, в этой и следующей — минимум теории и максимум практики и рассуждений.

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

Читать дальше

Девайс-холдер: кто такой, зачем нужен и насколько хорошо держит устройства

Reading time6 min
Views2.4K

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

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

Читать дальше

Flutter Web. Часть 1

Level of difficultyMedium
Reading time7 min
Views7.9K

Как работает Flutter Web, и есть ли особенности взаимодействия с платформой? Разбираемся с этим в серии статей. Эта — первая.

Читать дальше

Как устроены аннотации в Kotlin. Часть 2

Level of difficultyMedium
Reading time10 min
Views2.8K

Привет! Сегодня с вами Максим Кругликов из Surf Android Team, и мы продолжаем статью об аннотациях в Kotlin, в которой рассмотрим кодовую базу Moshi в качестве примера того, как реальная библиотека использует процессинг аннотаций, рефлексию и lint. В первой мы рассказывали об этих трёх механизмах — рекомендуем посмотреть сначала её.

Читать дальше

Принципы SOLID на примере iOS-разработки

Level of difficultyMedium
Reading time13 min
Views7K

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

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

Читать дальше

Как подменять данные в SSR-сайтах

Level of difficultyMedium
Reading time4 min
Views1.9K

Привет, на связи Surf Web Team и Никита, QA Surf! 

Давайте разберемся, какие проблемы возникают при тестировании SSR-сайтов с помощью подмены данных и как сделать так, чтобы все заработало.  

Читать далье

Как устроены аннотации в Kotlin. Часть 1

Level of difficultyMedium
Reading time10 min
Views6.2K

Привет! Сегодня с вами Максим Кругликов из Surf Android Team с переводом статьи про устройство аннотаций в Kotlin и три основных механизма их обработки: процессинг, рефлексию и lint.

Читать дальше

Flutter Add-to-App: как добавить Flutter в приложение

Level of difficultyMedium
Reading time24 min
Views4.5K

Меня зовут Сергей, я разработчик в Surf Flutter Team. И сегодня мы разберёмся, как пользоваться Flutter Add-to-App, на что обратить внимание и какие проблемы могут возникнуть при интеграции.

Читать дальше

Как двум командам сработаться и не сойти с ума

Level of difficultyMedium
Reading time12 min
Views1.7K

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

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

А чтобы картинка не получилась однобокой, сделаем мы это вместе: точку зрения команды бэкенда расскажет Наташа, системный аналитик (SA) компании Интаро, взглядом фронтенда поделится Лиза, аналитик (BA) компании Surf.

Читать дальше

Flutter 3.22 — наше мнение

Level of difficultyMedium
Reading time5 min
Views5.7K

14 мая Flutter зарелизили новую версию 3.22. Подробнее об этом тут (мы всё заботливо перевели и художественно отредактировали), оригинал здесь

Наша Flutter-команда не могла остаться в стороне и уже опробовала новинку. Делимся мнением.

Читать дальше

Что Flutter 3.22 нам готовит?

Level of difficultyMedium
Reading time12 min
Views1.6K

Привет, с вами Flutter-команда Surf с переводом нового релиза Flutter 3.22.

WebAssembly, улучшенный рендеринг графики, способы интегрировать искусственный интеллект — это и многое другое в статье!

Читать дальше

Ключи во Flutter

Level of difficultyMedium
Reading time9 min
Views5.1K

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

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

Читать дальше

Уменьшаем boilerplate с помощью Swift Macros

Level of difficultyMedium
Reading time10 min
Views2.8K

Сегодня с вами Никита Коробейников, iOS Team Lead в Surf. Никита объяснит, что такое Swift Macros, сравнит кодогенерацию от Apple со сторонними решениями: Liquid, Generamba, Sourcery и расскажет, как создать собственный Swift Macros. 

Читать дальше

Автоматизированное тестирование событий аналитики в мобильном приложении: насколько это реально и оправдано

Level of difficultyMedium
Reading time14 min
Views1.9K

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

Читать далее

Flutter 3.16: обзор обновления фреймворка с комментариями разработчиков Surf

Level of difficultyMedium
Reading time14 min
Views4.8K

Привет, на связи команда Flutter-разработчиков Surf. Мы регулярно делимся с сообществом последними новостями о Dart и Flutter, и этот случай — не исключение. Предлагаем перевод официального материала о большом обновлении Flutter 3.16. Дополнили его своими комментариями.

Читать далее

Subject объекты в RxDart и чем они полезны Flutter-разработчику

Level of difficultyMedium
Reading time5 min
Views3.8K

Dart в совокупности с пакетом Async обладает неплохим функционалом в части работы со стримами. Однако ограничения всё ещё есть. Чтобы сделать стримы более удобными, используется пакет RxDart.

Меня зовут Виталий, я Flutter Team Lead в Surf. Это первая статья в цикле публикаций на тему RxDart.

Читать далее

WidgetKit в iOS — не просто большие иконки

Level of difficultyMedium
Reading time6 min
Views3.4K

Меня зовут Даша, я iOS-разработчик в Surf. Сегодня я освежу в вашей памяти философию и design виджетов. Подсвечу технические аспекты, которые помогут, если вы собираетесь делать свой первый виджет или хотите вдохнуть жизнь в старый. А ещё затрону несколько неочевидных, но важных тем.

Читать далее

jenv — удобный инструмент для управления версиями Java

Level of difficultyEasy
Reading time4 min
Views4.9K

Иногда может возникнуть необходимость использовать какую-то определенную версию Java для вашего проекта. Мы тоже в Surf с таким столкнулись при работе над одним из Flutter приложений-долгожителей. Решение нашлось в виде использования менеджера версий Java. Рассказываем, что за инструмент и как с ним базово работать на MacOS.

Читать далее

In-app purchases — за что и почему? Взгляд аналитика

Level of difficultyMedium
Reading time11 min
Views6.9K

Всем привет, меня зовут Лиза, я — аналитик Surf. Имею пока что не самый долгий, но уже чрезвычайно насыщенный опыт работы в Fintech, EdTech и MedTech проектах. Я поделюсь с вами своим опытом проектирования и подготовки ТЗ для реализации in-app purchases.

Читать далее

Information

Rating
120-th
Works in
Registered
Activity