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

Пользователь

Отправить сообщение

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

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров1.6K

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

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

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

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров1.1K

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

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

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

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров4.5K

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

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

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

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.3K

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

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

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

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

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.2K

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

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

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3K

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

Читать далее
Рейтинг0
Комментарии13

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

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.2K

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

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

Flutter 3.13. Что нового?

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5K

Двухмерный скроллинг, ускорение работы с графикой, обновления от Material 3 и многое другое.

Привет! Это команда команда веб- и мобильной разработки Surf. Совсем недавно вышло обновление Flutter 3.13. Спешим поделиться с вами нашим переводом статьи со всеми новыми фичами 👇

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

Flutter-разработчикам: показываем, как шарить код через DartPad

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.2K

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

Меня зовут Ахмедов Самир, я Flutter разработчик в Surf, и я расскажу о том, что же ещё умеет DartPad.

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

Как я сделал приложение для себя, а оно понравилось многим

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров11K

Привет, меня зовут Артём и я Frontend Team Lead в Surf. Я очень люблю две вещи: геймификацию и графики. Сейчас я работаю с людьми больше, чем с кодом, поэтому читаю много тематических статей. Вот так, тихим вечером, в одной из них я натолкнулся на идею объединения Moving Motivators и лепестковой диаграммы.

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

«Я всегда считала, что я старая», или история о том, что стать профессиональным разработчиком никогда не поздно

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров15K

Татьяна стала Flutter-программистом в 47 лет — после нашего курса по Flutter. Теперь за её плечами работа на пяти е-ком и финтех проектах. А ещё она побывала по обе стороны: и в роли студента курса, и в роли ментора, который проверяет домашние задания.

В интервью Татьяна рассказывает о своём длинном пути в коммерческое программирование, недостатках и достоинствах Flutter-курса от Surf и делится наблюдениями о студентах.

Читать далее
Всего голосов 27: ↑12 и ↓15-3
Комментарии12

На смену CoreData пришёл новый фреймворк SwiftData. Разбираемся, как он упрощает хранение данных

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

Фреймворк для хранения данных Core Data был написан еще во времена Objective-C. Многим iOS-разработчикам хотелось иметь более современный инструмент, который бы поддерживал все новые возможности языка Swift. И теперь такой инструмент появился: на WWDC 2023 представили новый фреймворк SwiftData.

Разбираемся, что из себя представляет SwiftData, и пробуем его в тестовом приложении.

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

Новенькое с WWDC23: Отчёты о тестировании и аудит доступности

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

Вот и закончилась очередная конференция Apple WWDC23, на которой ребята из Apple рассказали об изменениях Xcode и Swift. 

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

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

Горячие новинки WWDC 2023

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

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

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

Аутсорс-разработчики и эдтех: какие шишки мы набили, сделав курс по Flutter, и к каким выводам пришли

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

2,5 года назад мы запустили собственный курс по Flutter. Идея была простая: во-первых, мы много вкладываемся в развитие Flutter-сообщества в России (с — скромность), и было логично систематизировать знания и опыт в виде курса. Во-вторых, мы хотели выращивать хороших разработчиков в наш Flutter-отдел: спрос на Flutter-проекты у клиентов рос, а количество разработчиков на Flutter в России было ничтожно мало.

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

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

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

Swift Concurrency Instrument: чем он полезен iOS-разработчику

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.7K

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

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

MVP: как получить «минимально жизнеспособный», а не «минимально полезный» продукт

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

MVP –  это minimum VIABLE product: минимально жизнеспособный продукт. Но почему зачастую происходит так, что вместо minimum VIABLE получается minimum VALUABLE — минимально полезный? 

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

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

Dart 3 на практике: что принесёт нам мажорное обновление языка

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров20K

Dart 3 – самое мажорное обновление языка со времён Null Safety: он изменит многое в том, как мы пишем код и какие библиотеки используем. Рассказываем, как новые фичи помогут вам на практике и как от этого изменится способ взаимодействия с языком.

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

Правильная поддержка Apple Silicon: как избежать проблем при апгрейде с Intel (x86_64) на Apple (arm64)

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.1K

Инженеры Apple придумали прекрасные по быстродействию и производительности процессоры Apple Silicon (M1, M1 Max и так далее) на архитектуре arm64. Но за полученное быстродействие разработчикам пришлось платить своим временем.  

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

Статья вдохновлена ограничениями в недавно вышедшем Xcode 14.3: запуск из-под Rosetta в нём стал deprecated.

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

Как мы стриминг пилили, или 5 неочевидных палок в колеса от Flutter

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров3.9K

Сделать стриминг на Flutter — та ещё задача. Недостаточная функциональность пакета видеоплеера, сложности с реализацией фичи картинка-в-картинке, ошибки из-за особенностей платформ — список проблем можно перечислять долго.

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

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

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность