Как стать автором
Обновить
70.04
Surf
Создаём веб- и мобильные приложения
Сначала показывать

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

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

Сегодня с вами Никита Коробейников, 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.1K

Всем привет, меня зовут Лиза, я — аналитик 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.1K

Каждый 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.8K

Фреймворк для хранения данных 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 мин
Количество просмотров 19K

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

Информация

Сайт
surf.ru
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия