Результаты большого исследования продакт-менеджеров
Одно из частых направлений развития айосера – это переход в продакт-менеджмент. Если вы подумываете посмотреть в этом направлении в следующем году, то обязательно чекните наше с Авито большое ежегодное исследование продактов.
- Топ-3 профессии для входа в продакт-менеджмент: проджект-менеджер, маркетолог и бизнес аналитик. Вход через разработку – на 7 месте.
- Предел работы на позиции джуна – два года, а в Senior и Head of Product можно метить уже после трех.
- Три самых важных навыка: аналитика, лидерство и коммуникации.
- Только 12% продактов умеют прогать на уровне мидла
- Топ книг: Inspired, Спроси маму, Цель, Thinking Fast and Slow.
Все остальные инсайты про то, куда переехали, где работают, что изучают и чем занимаются на работе продакт-менеджеры – по ссылке. А для тех, кто входит в профессию, там же есть рейтинг курсов, книг и сообществ.
Разговор с ChatGPT про статические и динамические фреймворки
Статью можно читать с двумя целями – вспомнить различия статических и динамических фреймворков и их влияние на перфоманс приложения, или посмотреть на очередной юзкейс того, как ChatGPT разбирает сложные инженерные вопросы и дает почти точные ответы.
Перевод на русский язык
Отключение рекламных алертов от Xcode Cloud
Надоели алерты в Xcode? Установите флаг:
defaults write com.apple.dt.Xcode XcodeCloudUpsellPromptEnabled -bool false
Подключайтесь на новогодний лайв Подлодки! Новогоднее настроение, розыгрыш стимдека и все дела!
https://www.youtube.com/watch?v=154IhLgBvD8
SwiftUI Custom Layout: LayoutValueKey
- С помощью протокола LayoutValueKey можно привязать значение к вью внутри кастомного лэйаута, и использовать его позже в расчетах.
- Для этого надо создать структуру, реализующую протокол LayoutValueKey, и extension для вью, в котором этот параметр настраивается.
- В статье разбирается, как с помощью этой фичи можно реализовать якорную привязку внутри своего лэйаута.
Пример интеропа C++ и Swift
- В Swift есть экспериментальная поддержка интеропа с плюсами, которая не требует написания врапперов на ObjC.
- В статье разбирается, как в одном Swift пакете держать код на С++ и Swift, и напрямую использовать std::vector..
Самое простое интро в шейдеры
Если вы никогда не писали свои шейдеры, и просто киваете с умным видом, когда кто-то начинает говорить про оптимизированный под GPU код, обязательно прочитайте статью.
💻Отличие CPU от GPU в вопросах вычислений
🤔Ограничения в разработке шейдеров
🎨Примеры шейдеров
Foundation переписывают на Swift и выкладывают в open source
Вот что поменяется:
- Полностью избавятся от C, на котором сейчас написано все ядро Foundation. Благодаря избавления от интеропа улучшится перфоманс.
- Огромный Foundation будет разбит на более атомарные куски. Например, FoundationInternationalization, который будет содержать функции, нужные для локализации.
- Для всех эппловых платформ будет использоваться единая реализация Foundation.
- Процесс разработки будет открытым, а коммьюнити получит возможность контрибьютить свои изменения.
Перевод на русский язык
SwiftUI Custom Layout: Spacing
Продолжение цикла статей про работу с протоколом Layout. В этой разбирается, как настраивать расстояние между дочерними вьюшками, учитывать его при расчете лэйаута, и использовать разные значения для разных платформ.
Кастомный контейнер на Layout протоколе
Автор разбирает, как с помощью Layout протокола из SwiftUI собрать контейнер, который будет лэйаутить произвольное количество тегов фиксированной высоты и разной длины.
Перевод на русский язык
Совместное редактирование в Apple Notes реализовано на Server-side Swift
Если вас кто-то будет спрашивать о примерах использования Swift на сервере в продакшне, теперь вам есть, что ответить. Apple на недавней конференции про серверный Swift рассказали, что использовали его, чтобы реализовать коллаборативную работу над заметками. Деталей нет, да и картину адопшна это не сильно меняет, но интересно!
Релиз Lottie 4.0
Раз мы начали день статьей от AirBnb, вот еще одна новость от их команды – новый релиз Lottie, движка для рендеринга анимаций из After Effect.
- Движок рендеринга полностью переписан на CoreAnimation, благодаря чему анимации переехали на GPU, перестали грузить CPU, и перфоманс значительно улучшился.
- Переписан декодер описаний анимаций, работа ускорилась в два раза.
- Помимо JSON, анимации можно определять в более кратком формате dotLottie.
Перевод на русский язык
Послушали дискуссию мобильных разработчиков из Яндекса в формате ютуб-шоу 1+1.
Из особо интересного – размышления о фреймворках.
Например Flutter – хороший фреймворк, особенно, если вам нужно быстро и дешево получить несколько платформ сразу, в том числе и web. Но он не всегда корректно поддерживается iOS, а еще недружелюбен к вносимым изменениям. Можно согласиться с тем, что React Native все же более гибок в этом плане.
Еще в видео обсудили особенности работы над супераппами, mobile разработчикам рекомендуем посмотреть целиком.
dataTile – визуальный логгер поверх os_log()
dataTile – новый инструмент, который помогает визуализировать большое количество логов в приложении. Работает только с симулятором. Пока находится в бесплатной бете.
💻Короткое демо-видео
👀Блогпост про запуск
🔗Ссылка на загрузку
Пример использования UIScreenshotServiceDelegate
UIScreenshotServiceDelegate – API, который позволяет переопределить поведение приложения при снятии скриншота. Подумайте о том, в каких сценариях пользователь скриншотит ваше приложение, и попробуйте подготовить контент так, чтобы им было удобнее пользоваться. Например, в MindNode таким образом можно легко экспортнуть майндмэп в PDF и пошарить его с кем-нибудь.
Как подключить российский SSL-сертификат к iOS приложению
Выдача и продление SSL сертификатов превратилась в проблему, из-за чего в мобильных приложениях могут перестать проходить платежи разных эквайрингов. В статье разбирается, как правильным образом сконвертировать сертификаты от Минцтфры, зашить их в приложение и пройти проверку Apple.
Разработка сложных кастомных плагинов для Xcode Instruments
- Xcode с 2018 года позволяет разрабатывать собственные плагины для Instruments. Вот видео с WWDC, и хорошая вводная статья.
- Одна из основных проблем в разработке этих расширений – писать их надо на чистом XML. Для очень простых задач это еще терпимо, а для тех, где требуется несколько тысяч строк – вообще невозможно.
- В статье разбирается несколько приемов, как можно облегчить себе жизнь. Начиная с транспиляции своего Swift DSL в XML, заканчивая малоизвестными фичами XML вроде includes и conditionals.
Перевод на русский язык
Огромный гайд по реализации in-app purchases на StoreKit
🛒Настройка покупок в App Store Connect
💻Отображение товаров в приложении, их покупка и верификация
🗓️Обработка событий обновления подписки, ее отмены и проблем с платежами
☁️Реализация подписок со своим сервером и без него
Код примеров клиента и сервера на GitHub
Кастомные префиксы для чисел в NumberFormatter
У NumberFormatter есть одна неочевидная фича – вы можете задать свой собственный префикс для всех положительных или отрицательных чисел, используя свойства positivePrefix/negativePrefix.
Простой способ улучшить читаемость логов в Xcode
В настройках Xcode можно изменить цвет логов брейкпойнтов, чтобы они визуально выделялись среди принтов:
Xcode > Settings > Themes > Console
AppCode 2022.3 – последняя поддерживаемая версия
- Вышла новая версия AppCode с поддержкой Xcode 14.2.
- Эта версия станет последней. Новые фичи больше не разрабатываются, купить AppCode больше нельзя.
- Поддержка текущей версии будет предоставляться до конца 2023 – в основном связанная с проблемами совместимости с текущей версией Xcode.
- Основная причина – «While we’ve had some growth in terms of adoption, we didn’t reach the market share we had hoped for»
Команда Тинькофф ищет iOS-разработчиков💡
Большое комьюнити iOS-разработчиков решает крутые задачи — создает высоконагруженные сервисы для 27 миллионов клиентов, экспериментирует и ищет новые решения. Приглашает в команду iOS-разработчиков с опытом от трех лет!
Работать с Тинькофф значит:
— не ограничивать свои скиллы и вводить в сервисы новые фичи;
— делать жизнь миллионов людей удобнее и технологичней;
— расти в грейде по скиллам, а не по стажу в компании;
— становиться заметным в комьюнити iOS-разработчиков.
А еще команда всегда «за» действительно комфортную работу. Поэтому большинство бытовых забот делегируют компании: от расширенного ДМС и юридической помощи до питания и разных активностей.
Откликнуться и узнать подробнее о команде iOS-разработчиков Тинькофф: https://u.tinkoff.ru/mobile.pro
Stable Diffusion на CoreML
- Apple добавили поддержку модели Stable Diffusion в CoreML. Stable Diffusion – самая хайповая нейронка для генерации иллюстраций. Помните иконки, которые я выкладывал на прошлой неделе? Вот это – Stable Diffusion.
- Stable Diffusion умеет не только генерировать изображения по описанию, но и генерировать палитру, апскейлить изображения, редактировать их и много чего еще.
- Модель оптимизирована для работы на конечном пользовательском девайсе.
Советы от ментейнера 185 библиотек
- Когда ты поддерживаешь сразу десятки библиотек, быстро теряешь контекст происходящего в каждой из них.
- Справиться с этим помогает техника «The perfect commit» – делать только такие коммиты, которые решают строго одну задачу, которые содержат подробную документацию и тесты для каждого изменения, и ссылаются на issue с обсуждением.
- Поддерживать уверенность в актуальности документации помогают специальные тесты, которые проверяют, что в ней упоминаются все ключевые концепции.
- В статье много дополнительных советов про все аспекты техники идеальных коммитов.
ВКонтакте объявила победителей грантового конкурса VK Fresh Code.
Создатели 25 самых успешных мини-приложений на базе платформы VK Mini Apps получили поддержку на развитие своих проектов. В дальнейшем их количество может увеличиться: ВКонтакте продолжит поддерживать талантливые команды, чтобы они продолжали творить на благо пользователей.
Обзор всех изменений в прайсинге App Store
- Появилось 700 новых значений цен, которые можно использовать для ваших приложений. Минимальное значение – 0,29$, максимальное – 10000$.
- Между 0,29$ и 9,99$ шаг изменения цены – 0,1$.
- Между 0,49 и 49,99$ шаг изменения цены 0,5$.
- Цены можно округлять до .0$, .90$ и .95$.
- Цены в локальных магазинах теперь можно назначать вручную, а не привязывать к базовой долларовой цене.
Перевод на русский язык
Декларативные анимации в AirBnb
- В AirBnb активно используют анимированные переходы между контроллерами. Стандартные императивные подходы для определения таких анимаций – сложные, хрупкие, требуют много бойлерплейта.
- Вместо этого, команда AirBnb перешла на декларативные анимации. При этом подходе надо определить начальный и конечный экраны, а затем описать поведение каждого из элементов при переходе. Все остальное работает само по себе.
- Сам фреймворк они не шарят, но подход и примеры расписали довольно подробно.
Перевод на русский язык
Cilicon – инструмент для простого запуска виртуалок на macOS
- Работает поверх Virtualization Framework.
- Интегрирован с GitHub Actions.
CocoaHeads на Кипре
Друзья стартанули локальное кипрское ответвление CocoaHeads. Если вы вдруг оказались на острове, обязательно загляните к ним 15 декабря. В программе – доклад про some и any в Swift, нетворкинг и другая веселуха.
Настройка окружений с помощью .xcconfig
Если в вашем проекте много значений, которые вы меняете в зависимости от окружения, например, локального, тестового и продакшн, можно значительно упростить работу с ними, положив их в .xcconfig, откуда затем использовать в Info.plist и в коде.
Перевод на русский язык