Surf iOS Team
Открыть в Telegram
Комьюнити iOS-разработчиков Surf. 🛠 Разрабатываем мобильные и веб-приложения (Лабиринт, SBI, Rendez-Vous) 📚 Делимся полезными материалами и обучаем стажёров 💬 Чат: https://t.me/+pVULWqlh8DhlNGRi 📲 По вопросам @SurfAskBot
Больше1 403
Подписчики
Нет данных24 часа
+37 дней
+430 дней
Архив постов
1 403
Разберёмся, почему кодить для iOS круче, чем пользоваться макбуком 💻
С 12 по 14 ноября сёрферы захватят аудитории ВГУ, чтобы встретиться с тобой на IT-лектории Surf. Кирилл, iOS-разработчик, поделится основами кодинга на Swift и лайфхаками из своего опыта. Бонусом – расскажет о мастхев шагах для старта в мобильной разработке.
Время и место:
🕑12 ноября, 15:10-16:45
🏄главный корпус ВГУ, 226 аудитория
Регистрируйся на лекторий и ставь ✔️рядом с потоком Android & iOS. Трансляцию лекции – покажем в группе Surf в ВК.
UPD: Смотри запись эфира 👈🏻
1 403
Бу! Покажи пример самого страшного кода на Swift 🧛🏻🍏
Все разработчики любят красивый, понятный и читаемый код. В топе страхов каждого из нас – его ужасающие вариации, с которыми иногда приходится сталкиваться не только в «тёмном-тёмном городе…, на тёмной-тёмной улице…», но и… в работе.
🤫 Ладно, всё, не пугаем. Просто Хэллоуин — самое время, когда нужно встретиться со своим страхом лицом к лицу.
Предлагаем тебе поделиться iOS-страшилками и показать пугающие примеры кода на Swift. При составлении используй воображение или истории из реальной практики.
👀 Три лучших (точнее, худших) страшилки — наша команда подробно разберёт и даст советы по его улучшению.
Чтобы принять участие:
🟣Сформируй swift файл с кодом (или кусками кода), с нарушениями clean code, SOLID и прочих признаков порядочности,
🟣Отправь заявку в форму, прикрепив в неё файл,
🟣Жди итогов разбора в следующем посте.
Рассмотрим полученные примеры кода анонимно и разберём с должным вниманием. Ждём бу-код до 2 ноября (включительно).
1 403
Привет! Не пугайся: на связи Антон, iOS-разработчик Surf💡
Он предлагает тебе присоединиться к разбору страшилок на Swift 👇🏻
1 403
+6
Не «po» единым: настраиваем продвинутую отладку 🛠✌️
Отладка занимает много времени. Большинство разработчиков используют либо команду «po» в консоли, либо print’ы в коде, либо проставляют обычные брейкпоинты.
Но в XCode есть другие инструменты для отладки, хоть и не все они всегда нужны.
🚀 Вместе с Антоном, iOS-разработчиком Surf, собрали полезные команды дебаггера и кастомизацию брейкпоинтов с примерами их использования.
1 403
+8
Что делать, чтобы защитить iOS-приложения 🍏
У 75% мобильных приложений есть хотя бы одна уязвимость в безопасности. Мы можем снизить риски и обеспечить защиту данных пользователей, если будем следовать рекомендациям OWASP.
С сёрфером Лёшей разберём шаги, которые помогут защитить приложение и данные пользователей от возможных угроз.
🔗 Полезные ссылки:
🟣MobSF— статический анализатор кода
🟣OWASP Dependency-Check
🟣Библиотека KeychainAccess
1 403
+8
🎫 Как создать виртуальную карту лояльности для Wallet — настраиваем контент
В предыдущем посте обсудили, как создать файл .pkpass. Теперь научимся настраивать контент карты лояльности.
Вся работа будет проводиться вокруг созданного в первой части файла .pkpass.
Директория.pass содержит файл pass.json: его нужно отредактировать, чтобы получить нужный контент на карте.
👉 Работа по настройке контента сводится к нескольким шагам:
1️⃣ Редактируем файл pass.json, подглядывая в документацию и описание полей.
2️⃣ На выходе получаем json, по которому генерируем карту с контентом и дизайном, похожим на дизайн из макета.
3️⃣ Перекидываем карту по почте на свой девайс и проверяем, как она выглядит вживую.
4️⃣ Если что-то расходится с макетом — повторяем заново!
Как отредактировать файл pass.json, и какие моменты учесть — ищи в карточках.
В следующем посте расскажем, как связать карту с приложением.
📌 Важные ссылки:
🔹 Документация
🔹 Описание всех полей, которые могут быть использованы в pass.json
1 403
+6
🧐 Что такое DevRel, кому и зачем он нужен в ИТ?
Про ответы на эти вопросы и первые шаги рассказывает Антон, сёрфер и амбассадор в iOS-отделе Surf.
Пиши, захотелось попробовать себя на позиции DevRel-спеца? 🚀
1 403
+1
🔔 iOS-разработчики, объявляем общий сбор
Встречаемся на митапе по мобильной разработке в Воронеже. Опытные сёрферы подготовили четыре доклада: расскажут о своей работе и нетривиальных задачах в ней.
Антон, iOS-разработчик в Surf, разберёт кодогенерацию на iOS. Покажет её возможности и применение на актуальных примерах.
В программе митапа ещё — три доклада, а также нетворкинг, обмен вопросами и инсайтами, и, конечно, пицца 🍕
Время и место:
📅 2 октября, 19:00
📌 Воронеж, «Матрёшка», Студенческая, 5
Регистрируйся и смотри другие доклады по ссылке 👈
1 403
+8
Анимируем LaunchScreen в SwiftUI 🌟
Если спросить разработчиков, чем iOS отличается от других операционных систем, то наши ребята отмечают анимации и их плавность (даже на старых устройствах). Их создание и отладка – одно из увлекательных занятий нашей iOS-команды. А ещё – это самый яркий результат, который заметен всем.
Можно написать очень сложную форму с кучей полей и состояний, но дизайнеры всё равно будут хвалить анимацию на экране онбординга.
Так что вперед, к созданию анимации загрузки приложения 😉👇🏻
1 403
+5
Создаём виртуальную карту лояльности для Wallet
Что лежит в цифровом кошельке? Банковские карты, карты лояльности, билеты в театр или на поезд и прочие интересные штуки.
Это полезные вещи, с созданием которых тебе наверняка рано или поздно придётся столкнуться.
Так давайте разберёмся, как сделать карту для Wallet.
А в следующих постах расскажем, как настроить контент и связать карту с приложением😉
⚠️ Для всех этих манипуляций нужен оплаченный аккаунт разработчика Apple
Полезные ссылки:
Документация из второй карточки
Example-проект
1 403
+8
Диспетчеризация методов в Swift. Продолжение и примеры
Продолжаем разбираться с диспетчеризацией методов. В этом посте покажем всё, что скрыто — то есть кейсы, конечно же.
#экспертный #от_сёрфера
1 403
+6
Диспетчеризация методов в Swift 🍏
Что такое диспетчеризация методов, как она устроена в Swift и почему важно понимать её устройство? Рассказывает и показывает 🏄♀️ Сёрфер Антон.
А примеры будут в следующих постах. Не пропусти!
#экспертный #от_сёрфера
1 403
Принципы SOLID на примере iOS-разработки
🏄♀️ Антон, iOS-разработчик в Surf, рассказал и показал на примерах, как писать красивый, масштабируемый и сопровождаемый код.
В статье ты примеришь на себя роль ментора: поможешь начинающему разработчику отревьюить код и улучшишь его с помощью SOLID.
➡️Го читать и комментировать
#surf_ios #surf_habr
1 403
Что мы думаем по поводу WWDC 2024 🍏
Всей Surf iOS Team мы смотрели WWDC 2024. И теперь расскажем, что думаем по этому поводу.
Спойлер — это была не самая зажигательная конференция купертиновцев 😅
🟣 visionOS 2 — это хорошо. Apple сделали упор не только на инструменты для разработчиков, но и на создателей контента для VisionOS. Теперь любые фотографии можно сделать объемными. А для записи Spatial-видео Canon вообще выпустили специальный объектив.
Вообще, некоторые из нас ждали редизайн всей системы в стиле visionOS, это случилось, но частично. Заметили, что в обновленном приложении Photos есть элементы из visionOS, а в iPadOS новый TopBar похож на элементы из visionOS. Но хотелось бы больше;
🟣 Кастомизация рабочего стола на iOS — это какой-то Android боженьки. Теперь иконки можно размещать в любом месте экрана и настраивать их цвет;
🟣 Калькулятор на iPad крут, но не так, как распознавание рукописных примеров и автоматический перерасчёт. Распознавание — просто магия какая-то. Интересно, кстати, посмотреть сессию про рукописный ввод (если будет). Дадут ли разработчикам как-то с этим поработать? 🤔
🟣 Apple Developer обновился. И после публичной части конференции разработчики смогли опробовать бета-версии новых Os и Xcode 16;
🟣 iOS 18 получит и многострадальный iPhone SE 2nd generation — единственный iPhone в линейке, у которого нет safe Area и с которым нужно будет считаться при создании UI в приложениях;
🟣 Из контента первого дня для разработчиков были интересные сессии про:
➡️ Swift Testing;
➡️ Swift 6;
➡️ new in SwiftUl;
➡️ new in UIKit;
🟣 Swift Testing оказался всего лишь сахарным макросом для тестов. Есть прикольные фичи, но нет действительно необходимых штук, из-за которых обычно используют подобные обертки. Например, автомоков не хватает;
🟣 Сессия Migrate your app to Swift 6 оказалась по большей части про concurrency. Из интересного — специальный тип билда с советами по миграции;
🟣 В сессии «про новое» много интересного, но без подробностей. Нам вот понравились typed throws. Теперь можно делать throws (SomeError) и уже в try/catch обработчики ошибок будут попроще.
Что мы ждём?
🟣 Новый Xcode 16 с автозаполнением. Он будет понимать контекст и более быстрый билдинг previews в SwiftUI.
🟣 Какие API Apple предоставит для использования Apple Intelligence в приложениях.
#surf_ios
1 403
+1
Запустили регистрацию на летнюю школу iOS 🏄♀️
15-18 июля погрузимся в iOS, полайвкодим и отберём ребят в стажёрский резерв Surf!
Что за летние школы такие:
📌 Ты сделаешь первый шаг в IT-сферу и профессию;
📌 Пообщаешься с крутыми спецами в своей сфере и заведёшь полезные знакомства;
📌 Расширишь кругозор и сделаешь выбор в сторону той или иной профессии;
📌 Добавишь проекты в своё портфолио;
📌 И самое главное — получишь возможность стажировки в топовой IT-компании!
❗️ В этом году школа пройдёт для ребят из Воронежа, стажировка после школы также пройдёт в офисе в Воронеже. Подробности о том, как всё будет устроено, мы отправим тебе на почту после регистрации. Наши преподаватели с нетерпением ждут встречи с молодыми и амбициозными студентами!
Чтобы участвовать, выполни несколько простых действий:
1️⃣ Регистрируйся на сайте;
2️⃣ После 15 июня начнём рассылать анкеты — чекай почту;
3️⃣ Жди приглашения на школу!
❓ По вопросам и FAQ пиши в нашего бота.
#surf_ios #surf_events
1 403
BottomSheet в SwiftUI
С появлением SwiftUI интеграция bottom sheet (тот самый экран-шторка) стала ещё более простой и гибкой — если сравнивать с UIKit.
В SwiftUI не нужно создавать сложные контроллеры представлений и управлять их жизненным циклом. Вместо этого мы используем набор встроенных функций и модификаторов для создания и управления bottom sheet.
Идём разбираться с базовыми методами создания и настройки bottom sheet на SwiftUI ⬆️
#surf_ios
1 403
Выложили записи мобильного митапа в Воронеже 📹
Спасибо всем участникам митапа за активность и интересные вопросы. До встречи на других наших мероприятиях!
🟢 Особенности построения интерфейса для разных платформ — Лёша, Surf Android Team Lead
🟣 Организация и поддержка нативных тестов в iOS — Дима, Surf iOS Developer
#surf_events #surf_android #surf_ios
1 403
+7
SwiftUI: стили для View
В SwiftUI многие параметры View устанавливаются через расширение к View и применяются ко всем подходящим View внутри ViewTree по правилу «кто ближе, тот главнее». Например, так можно применить font или buttonStyle.
Но задумывался ли ты, как использовать эту фичу для стилизации больших View с несколькими состояниями и большим количеством child View? И можно ли упаковать это в кастомный стиль и применить внутри ViewTree аналогично font?
Разберёмся с 🏄♀️ Никитой, iOS Team Lead в Surf.
#surf_ios
