Привет от онлайн-конференции для техлидов и архитекторов Podlodka Techlead Crew!
⚙️ Масштабировать сложную архитектуру по всем правилам — задачка нетривиальная. Разбираем тренды и новшества, учимся справляться с проблемами. Готовы раскрыть свежие подробности сезона, который стартует 13 ноября:
💎 Улучшим архитектуру приложения с помощью CQRS. Объясним, как сделать взаимодействие между сервисами надёжным и консистентным, повысить масштабируемость и поддерживаемость системы.
💎 Узнаем, как решить проблемы хранения и масштабирования данных в транзакционно-аналитических системах, например, YDB. Эти системы способны одновременно работать с OLTP и OLAP-нагрузками.
💎 Рассмотрим, как развивать уже существующую архитектуру. Это будет доклад Владимира Иванова из Bolt про возможности, ограничения и способы избежать «бутылочных горлышек».
💎 Обсудим эволюцию технических метрик в контексте роста команд, компании, продукта и кода.
Билеты и описание этих и других сессий на сайте: https://podlodka.io/techcrew
🤑 Промокод на скидку 500 руб: iosgr_tech
Какое отношение эта странная повязка из Киберпанка имеет к твоей работе? Сейчас расскажем, но сначала у нас есть к тебе быстрый вопрос.
Ты когда-нибудь хотел избавиться от стресса? Перестать чувствовать постоянную усталость от проектов, начать высыпаться, победить прокрастинацию.
Выбрать образ жизни, который транслируют нам соцсети.
Где можно спокойно провести время с семьей в выходные, не думая о работе или лечь спать и уснуть без тревожных мыслей.
Почему этого еще не произошло? Ты уже попробовал йогу, медитации, психотерапию, ворк-лайф баланс. Но они не помогают.
Давай расскажем почему.
Все современные способы побороть стресс малоэффективны. Их придумали усреднёнными: кому-то, может, поможет, кому-то, не поможет. Не говоря уже о том, что мы в принципе не до конца понимаем, как именно они могут помочь.
Есть только гипотезы, но не четко выявленные рабочие механизмы.
Но, что если найти способ отслеживать влияние тех или иных факторов на конкретного человека и подбирать тот механизм, который будет максимально эффективен для него?
Ученый Джо Камия научился делать это в 1958 году: при помощи ЭЭГ, он доказал, что человек может изменять биоэлектрическую активность мозга в альфа-диапазоне, а также выявил связь альфа-ритмов с состоянием расслабленности
Это новый способ, который гарантированно поможет победить стресс и навсегда избавиться от тревоги.
Переходи по ссылке и узнай, как и почему это работает: https://v.gd/KDkSOh
Реклама ООО "Нейри", ОГРН 1197746458073, erid 2SDnjdrRMNY
Рекомендации библиотек на Swift.org
На официальном сайте Swift появился новый раздел Packages с рекомендациями лучших библиотек для нетворкинга, логов, тестирования, работы с макросами и других задач. Отображается только несколько топовых пакетов, но есть возможность посмотреть всю категорию на коммьюнити-сайте Swift Package Index.
Поиск утечек памяти на CI
Инструкция по тому, как вместе с прогоном UI тестов генерировать граф потребляемой памяти и автоматически анализировать его для поиска утечек памяти.
100 советов по росту приложений
Твиттер-тред из 100 советов про то, как зарабатывать больше денег на вашем мобильном приложении, от фаундера с неплохим портфолио. Много деталей про ожидаемые конверсии на разных этапах и предложений по проведению монетизационных тестов.
Mojo – новый язык от Криса Латтнера
Крис Латтнер – разработчик LLVM и языковой дизайнер, который выпустил первые версии Swift, а потом ушел из Apple. Недавно я уже рассказывал, что он выпустил новый язык Mojo – надмножество Python с близким к С++ перфомансом, ориентированное на ML разработчиков.
Так вот, сначала короткая новость – Mojo SDK стал доступен для macOS, так что можете поиграться с языком.
Но самое интересное не новость, а слайды с выступления Латтнера и других разработчиков на LLVM Conference 2023 с подробнейшим разбором компилятора, языка и его принципов.
Улучшения в менеджменте бета-тестеров в TestFlight
Apple выкатил обновление TestFlight. Основная фича – расширенная статистика по всем бета-тестерам, включающая в себя количество сессий, пойманных крешей, отправленного фидбэка, и конкретную информацию про модель устройства и версию ОС.
Fastlane переезжает в Mobile Native Foundation
В феврале я рассказывал про историю вокруг Fastlane. Если кратко, то по историческим причинам права на репозиторий принадлежали Google, который был совсем не заинтересован в развитии проекта. Так вот, все наконец-то закрутилось. Google согласился передать владение проектом в Mobile Native Foundation, который уже хостит несколько интересных вещей. Для Fastlane это в первую очередь развязывает руки для того, чтобы начать собирать донаты и гранты на оплату мейнтейнеров.
Podlodka Teamlead Crew про стратегию
Как известно, лучшие тимлиды и СТО получаются именно из мобильных разработчиков (но чаще всего – из бэкендеров). Если вы посматриваете в эту сторону развития, или, например, целитесь куда-то в стаффа, то один из навыков, которые придется прокачать – стратегия.
Получить представление о том, как переключаться от ежедневных задач на более широкую стратегическую картину, планировать, и какие инструменты для этого использовать, можно будет на новом сезоне нашей конференции для тимлидов.
Что вас ждет:
👉Восемь докладов от топовых экспертов
👉Круглый стол с обсуждением того, как развивать стратегическое мышление
👉Разбор кейсов участников прямо в телеге
👉Новые знакомства, которые еще не раз помогут вам в будущем
📆Дата: 30 октября – 3 ноября
👉Регистрация
Все возможности #Preview макроса
👉Можно использовать как со SwiftUI, так и с UIKit.
👉Если вы хотите сгенерировать несколько превью, макрос можно использовать сколько угодно раз.
👉Чтобы проще отличать превью друг от друга, в макрос можно передать название конкретного превью.
👉Начиная с iOS 17, макросу можно передать еще и параметр, определяющий размер и поворот экрана.
👉Превью можно использовать и с виджетами.
Демон, который чинит проблемы с потреблением CPU симуляторов Xcode 15
В симуляторах Xcode 15 есть проблема. При прогоне тестов запускаются процессы, которые могут нагрузить несколько ядер CPU на 100%, и, как результат, значительно увеличить время на их прогон.
Yeetd – простой демон, который отслеживает такие процессы и убивает их. Костыль, но может помочь до исправления корневой проблемы.
Гайд по работе с make
Короткий гайд для тех, кто совсем ничего не знает про make. Автор использует его на примере скрипта настройки окружения для нового iOS проекта.
Insights – новая фича Reveal
Первый крупный релиз Reveal за долгое время. Основная фича – Insights. Это набор из 130 инспекций, которые проактивно подсвечивают различные потенциальные проблемы с версткой и accessibility в приложении.
Видео с NSSpain
В открытый доступ выложили все видео с конференции NSSpain. Из интересного:
👉Как Spotify разбивает приложение на модули
👉Использование Metal шейдеров со SwiftUI
👉Как делать приложения на SwiftUI более плавными
Erid: Kra23wvA3
28 октября стриминг выйдет за пределы ваших экранов на конференции PlayButton 2023
Спикеры из команд разработки соберутся на большой конференции Кинопоиска о стриминге и обсудят, как из смелых идей появляются фичи и продукты будущего.
Ребята поделятся решениями, которые создают и развивают на контентных сервисах, расскажут про умные рекомендации и работу с платформами.
Приходите, чтобы узнать, как из мира фантазий создаётся реальность. В программе доклады про нейросети, генеративные технологии и другие решения, которые уже сейчас упрощают жизнь разработчикам.
Мероприятие пройдёт онлайн и оффлайн в Москве. Чтобы стать участником, нужно заполнить анкету и пройти модерацию. Количество мест ограничено.
Реклама. ООО «КИНОПОИСК» ИНН 7710688352
Добавление поддержки шорткатов
В iOS 16 появился фреймворк AppIntents, который добавояет в приложение поддержку App Actions. Эти экшны могут быть использованы в Shortcuts, Siri и Spotlight.
В статье разбирается, как быстро интегрировать фреймворк к себе в проект и правильным образом обрабатывать переданный пользователем ввод.
Rugby – кэш для CocoaPods
Rugby – консольный инструмент, который запускается сбоку от CocoaPods и ускоряет его работу.
👉Кеширует все зависимости и удаляет их из Pods проекта
👉Пересобирает только изменившиеся поды
👉Детектит и удаляет лишние таргеты
При этом никак не меняет Podfile или Podfile.lock.
Плюсы и минусы Swift OpenAPI Generator
Ребята из Озона проверили на тестовом проекте,как работает OpenAPI Generator, и готов ли он к использованию в продакшне. Из заметных минусов:
👉Нет поддержки Lossy Array
👉Нет поддержки multipart/form-data
👉Нет поддержки внешних JSON спецификаций
👉Нет возможности скорректировать шаблоны генерации
👉Довольно медленная генерация
Второй лайв шоу “Ламповый стол”
Активные участники нашего чата iOS Good Talks проводят уже второй лайв, на котором будут обсуждать AI, его использование в работе рядовым кнопкокрасом, и куда вообще все катится. Присоединяйтесь в качестве слушателя, участника или просто общайтесь в чате, рассказывайте успешные кейсы, боли и просто свои мысли по поводу этой темы, будет интересно!
📆Четверг, 2 ноября, 19:00 по Москве
👉Ссылка на Zoom
Эволюция мобильных релизов в Авито
Когда я работал в Авито, я в том числе руководил и командой, которая занималась релизами мобильных приложений. Уже тогда у них были построены супер крутые процессы и инфра (мы даже подкаст про это записали). На прошлой неделе ребята выложили статью, где рассказали про то, как они прокачали свой релизный процесс за последние пять лет:
👉Автоматизация мониторинга отзывов и крешей
👉Релизы, которые катятся каждую неделю вообще без участия людей
👉Дэшборд с текущим статусом всех релизов
👉Сервис релизов, который менеджерит все зависимости по определенным контрактам
Обзор всех улучшений логов в Xcode 15
👉Отображение разных видов метадаты
👉Скрытие записей, похожих друг на друга
👉Фильтрация по типу
Skip – iOS-first кроссплатформа
Вышел первый релиз Skip – кроссплатформенной технологии, которая расчитана в первую очередь на айосеров. Основная идея – вы просто пишете Swift код, а он автоматически транспилится в нативное Android приложение. В чем суть:
👉Проприетарный транспилятор Swift->Kotlin автоматом переводит весь ваш код на Android
👉Стандартную библиотеку и Foundation заменяют написанные авторами библиотеки на Kotlin
👉SwiftUI код переводится в вызовы Kotlin-обертки поверх Jetpack Compose с похожим API
Советы по жизни со SwiftSyntax
Пару месяцев назад я постил обсуждение со Swift Forums про то, что SwiftSyntax, зависимость на который неизбежна при использовании макросов, существенно замедляет сборку и усложняет менеджмент версий ваших зависимостей. В статье от Pointfree дается несколько советов по тому, как эти проблемы можно минимизировать. Статья в первую очередь ориентирована на авторов библиотек, но помочь может и разработчикам приложений.
Метрики в Push Notifications Console
В Push Notifications Console завезли метрики для пушей, отправленных в продакшне через APNs. С их помощью можно понять, были ли ваши пуши доставлены до пользователя, отменены, или отложены для более поздней отправки. Подробнее тут.
Новый формат локализации в Xcode 15
Одна из топовых фичей Xcode 15 – новый формат локализации строк, который пришел на замену .strings и .stringsdict. На открытом вебинаре детально разберут особенности работы с ним, подходы к инъекции переводов, интеграции с различными инструментами локализации, кодогенерации и линтинга.
📆Дата; 26 октября, 20:00 по Москве
👉Регистрация
Вебинар приурочен к старту продвинутого онлайн-курса «iOS Developer. Professional» от Отус.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Запуск локальной LLM на iOS
LLaMA.cpp – проект для инференса различных LLM на девайсах. Основная проблема с запуском его на iOS – ограничения по памяти. В статье разбирается, как можно квантовать модель таким образом, чтобы не ухудшить ее точность, попасть в лимиты памяти и запустить ее локально.
История переезда Spotify на Bazel
🤔Дано:
- 200 iOS разработчиков в 120 командах
- 3 миллиона строк кода только в тестах
- Рост кодовой базы на 30% каждый год
- 80 минут ожидания сборки и прогона тестов на PR
После того, как Spotify перевел все приложение на сборку через Bazel, время ожидания сборки упало в 4 раза, до 20 минут. В статье подробно рассказывается их история миграции: начиная от бесшовной замены xcodebuild на Bazel, заканчивая его интеграцией с IDE.
Насколько активно Apple использует Swift и SwiftUI
Новая итерация ежегодного анализа бинарей в iOS. В iOS 17 такая статистика:
👉Использование Swift продолжает расти. Скорость его роста уже равна скорости роста Objective-C.
👉Впервые за всю историю количество бинарников, использующих только UIKit, упало. SwiftUI же растет еще быстрее – уже 21% бинарников его используют.
👉Несмотря на доступность Secure Enclave для Swift, Apple использует его только с Objective-C.
Интероп Swift с Windows API
Обзор того, как различные фичи Swift упрощают написание Windows приложений и взаимодействие с Windows API.
Тактильная отдача в SwiftUI
С помощью модификатора sensoryFeedback
можно настраивать тактильную отдачу для различных действий с приложением. Все, что нужно для настройки – указать стиль отдачи и пороговое значение, с которого она включится.