Советы по работе с UIViewRepresentable
Подборка правил и паттернов работы с UIViewRepresentable, которые помешают вам выстрелить себе в ногу.
Релиз Lottie 4.3.0
Вышла новая версия Lottie. Главная фича – полная поддержка SwiftUI через новый компонент LottieView
.
Переезд с GitHub Actions на собственные раннеры на М1
Один и тот же проект может собираться локально за 10 минут на макбуке с М1, но 50 минут – на агентах GitHub Actions. Команда, уставшая терпеть долгие билды, рассказала, как переехать на селфхост с минимальным количеством боли. Как бонус – еще и сэкономили 5000$ в месяц.
"Ламповый стол" на iOS Good Reads
У нас новое ток-шоу на канале iOS Good Reads - "Ламповый стол". Сегодня в 19 часов в Zoom олды из нашего чата вместе с ведущими Женей Елчевым и Володей Аверкиным будут обсуждать SwiftUI: насколько он готов к продакшену, на сколько он лучше или хуже старого доброго UIKit, и другие насущные вопросы.
Присоединяйтесь в качестве случателя, участника или просто общайтесь в чате, рассказывайте успешные кейсы, боли и просто свои мысли по поводу нового фреймворка, будет интересно!
📆Дата: 13 сентября, 19:00
👉Ссылка на зум
Swift как замена С++
Доклад от John McCall, языкового дизайнера Swift и Objective-C, про то, почему Swift можно рассматривать как современную альтернативу С++, и как постепенно интегрировать его в существующие кодовые базы.
Как симболицировать SwiftUI
Apple не предоставляет debug symbols для SwiftUI и некоторых других фреймворков. Как результат – крешлоги в Firebase и других сторонних сервисах становятся бесполезными. Ребята из EmergeTools нашли способ, как можно все-таки достать debug symbols и расшифровать такие крешлоги.
datePickerStyle(.graphical)
Интересный факт – в SwiftUI на macOS можно выбрать графический режим отображения у DatePicker.
Как проектировать архитектуру программного обеспечения так, чтобы оставалось время на собственную жизнь, на собственный рост, а в вашем проекте дела только улучшались?
🔑А ключ ко всему - обучение парадигме слабой связанности.
Представьте, если бы разработчики и проектные менеджеры могли построить архитектуру ПО так, чтобы:
✅любой компонент программного контура мог быть изменен или заменен
✅чтобы бизнес и другие члены команды без глубоких технических знаний были вовлечены в проектирование и понимали как всё устроено
✅чтобы изменения в программный код продуктов были быстрыми и простыми, даже в крупных и очень крупных IT системах
SOA bridge знает как!
📊Приходите 06 сентября в 19.00 (мск) на бесплатный вебинар «3 КЛЮЧЕВЫХ СПОСОБА ПОСТРОЕНИЯ КАЧЕСТВЕННОЙ АРХИТЕКТУРЫ И ПОЧЕМУ ЭТО НУЖНО ЗНАТЬ УПРАВЛЕНЦУ» в рамках «Базового курса управления и построения IT-контура компании» от SOA Bridge.
💬На вебинаре обсудят:
📌Ясность схем – зачем их читать и писать всей команде,
а не только технарям.
📌Сервисы как бизнес-процессы.
📌Частые ошибки при интеграциях между системами. Мифы и заблуждения.
Что участники получат на вебинаре:
Понимание того, что такое хорошая архитектура что такое плохая.
+Чек-лист для управленца в IT: «Что такое хорошая архитектура».
🔥Для кого будет полезен вебинар: продукт-оунеры, менеджеры, техлиды и другие управленцы в сфере IT
💪Не упустите возможность прокачаться в проектировании архитектуры,
👉 регистрируйтесь прямо сейчас: https://bit.ly/3EnUUqQ, и получите в подарок PDF файл "Как составить сервисную карту предприятия из бизнес-процессов и проверить, что Ваша архитектура - сервисная?".
Реклама. ИП Путин Андрей Иванович
ИНН: 772352018416
Автотесты accessibility в Xcode 15
Начиная с Xcode 15, с помощью автотестов можно проверять поддержку различных фичей доступности: Dynamic type, контрастность, наличие лейблов для всех элементов. В статье разбирается, как написать такие тесты и анализировать их результаты.
Является ли злом предварительная оптимизация
Кнут когда-то популяризировал цитату "Premature optimization is the root of all evil". Как результат, во многих проектах забота о перфомансе откладывается на далекое абстрактное будущее. В статье хорошо разбирается, что в большинстве случаев такой подход приведет к тому, что вместо ожидаемых точечных оптимизаций вам придется переписывать всю архитектуру проекта.
Swift для Embedded
Инициативная группа проталкивает использование Swift для программирования микроконтроллеров. На днях опубликовали две важные штуки:
👉Вижн по направлению, включающий в себя описание нового режима компиляции и ограничений, требуемых для запуска Swift в условиях малого количества ресурсов.
👉Proof of concept: программы на Swift, запущенные на микроконтроллерах, управляющие отрисовкой картинки на LCD экране и морганием светодиодов.
Swift и Objective-C в одном SDK
Новая статья на Хабре рассказывает, как заставить два языка ужиться в SDK: какие подходы используют для этого, почему не всегда подходит стандартный способ и с чем приходится мириться. Будет полезно тем, кто разрабатывает SDK, используя оба языка, а также тем, кто хочет переехать с Objective-C на Swift.
Emcee — тест-раннер от инженеров AvitoTech, который проводит 3000 быстрых компонентных UI-тестов за 15 минут. Попробуйте бесплатную базовую версию. Подробности на их канале!
Реклама ООО "Авито Тех", ИНН 9710089440
erid: LdtCKRomj
iOS-разработчики, Ozon приглашает на месяц Mobile Offer
Что по стеку: iOS 14+, Needle, холодная сборка меньше 1 минуты; модульная архитектура; новые модули на SwiftUI+MVVM (UDF), менеджер зависимостей SPM, Unit, Snapshot, UI-тесты.
Что по проектам: основное приложение для покупателей и B2B для продавцов. В ближайших планах разработка ещё двух приложений с нуля, о них — на интервью 😉
Выбор команды за тобой!
Подать заявку и уточнить подробности можно на этом лендинге.
Удобный инструмент монетизации мобильных приложений
Статья о сервисе Яндекса «Простая монетизация» о том, как он помогает увеличить APRU приложений до 91%.
Как работать с профилировщиком ETTrace
ETTrace – альтернатива Time Profiler от ребят из EmergeTools. Его основные плюсы: более информативный интерфейс и отсутствие необходимости собирать отдельный билд для профилирования. В статье разбираются его ключевые фичи и пример использования для поиска проблем в коде.
Шейдеры в iOS 17
Миша Рубанов написал статью про то, как работают шейдеры, какие эффекты можно получить в SwiftUI с их помощью, и как их писать самостоятельно.
Недостатки SwiftData и как их обойти
SwiftData, хоть и основан на Core Data, пока что не является полной заменой. Часть продвинутых фичей старого как мир фреймворка из коробки пока что не доступны. В статье разбирается, как обойти часть из ограничений с помощью рефлексии и библиотеки SwiftDataKit.
Напоминалка про новые фичи Xcode 15
Стабильный Xcode должен выйти совсем скоро. Если вы еще не попробовали все новые фичи, в треде разбираются самые заметные из них:
👉Закладки
👉Parameter permutations в автокомплите
👉Автоформатирование метода из однострочника в мультилайн
👉Quick Actions панель
👉String Catalogs и другие крутые штуки
Сколько денег приносят пользователи iOS и Android
Обновленная аналитика по тому, сколько всего пользователей покупает что-то в App Store и Google Play, и сколько денег они приносят.
👉В мире 650 миллионов активных пользователей App Store и 2.5 миллиарда активны пользователей Google Play.
👉Активный пользователь App Store тратит в месяц 10.4$. Google Play – 1.4$.
👉Получается, пользователи вашего приложения на iOS в среднем в 7.4 раз ценнее, чем на Android.
Нужно ли делать онбординг в приложение коротким
Мысль о том, что чем быстрее и эффективнее проходит онбординг нового пользователя в приложение, тем лучше для всех, кажется абсолютно очевидной. Даже Apple в HIG пишет "Design a brief, enjoyable experience that doesn’t require people to memorize or provide a lot of information".
Но это не всегда так. Как рассказывается в статье, в некоторых случаях длинный и сложный онбординг из 50 экранов, занимающий 10 минут времени, может активировать пользователей существенно лучше.
Как часто вызывается layoutSubviews при скролле UICollectionView
Огромная статья с детальным разбором принципов рендеринга UICollectionView и исследованием коллстеков в разных случаях.
Влияние symbols на вес бинарника
👉Зачем существуют symbols и когда они генерируются
👉Что делает команда nm
👉Как замерять влияние изменений на количество символов
Тинькофф ищет мобайл-разработчиков.
Если пишете для iOS или Android, участвуйте в Mobile Weekend Offer. Сможете пройти собеседование за выходные и получить оффер в течение трех дней.
Масштабные финтех-задачи, продукты для 30 млн пользователей и хорошая зарплата прилагаются.
Успейте оставить заявку до 13 сентября: https://l.tinkoff.ru/mobile.wo.23
Реклама АО «Тинькофф Банк»
Swift OpenAPI Generator 0.2.0
Релиз новой версии генератора клиентов на Swift по OpenAPI спецификации. Из основных новых фичей:
👉Поддержка новых content types в запросах и ответах.
👉Генерация клиента через SwiftPM плагин.
👉Понижены требования к минимальным версиям операционных систем, например к iOS с 16 на 13.
ObservableConverter – плагин для переезда на @Observable
Интересный кейс использования SPM плагинов – разовая миграция кода с ObservableObject на @Observable. После миграции каждого таргета плагин удаляется из проекта.
Как ускорить билд
Хорошая подборка советов по измерению и улучшению времени чистых и инкрементальных билдов.
Скрипт проверки наличия required reason APIs
Как вы помните, с осени Apple будет требовать добавлять специальный манифест с объяснением, зачем вы используете некоторые API, в том числе UserDefaults. Чтобы не продолбаться добавить его, на CI можно запускать простой скрипт, проверяющий наличие в коде вызовов ключевых API.
Выложили видео курса CS193p за 2023
Годы идут, а лучшие курсы для входящих в iOS разработку (хотя тут я предвзят, так как сам по ним учился) от Стенфорда продолжают обновляться каждый год. Большая часть материала повторяет 2021 год, но добавилась новая лекция про Swift Concurrency.
Awesome visionOS
Подборка статей, семплов, демок и обучающих материалов, связанных с разработкой под visionOS.