Как работает CPU
Огненная серия статей про то, как процессор запускает и исполняет программы.
👉Общая архитектура процессоров
👉Что такое Syscall
👉Как работают прерывания
👉Как ядро Linux загружает и запускает программы
👉Формат ELF (линуксовый аналог Mach-O)
👉Доступ к памяти с учетом пагинации
👉Форки процессов
Приглашаем на Red Hot Chili Apples — бесплатный митап ЮMoney для iOS-разработчиков
⏰ Митап пройдёт в Санкт-Петербурге и онлайн 29 августа в 18:30 (мск).
Разработчики ЮMoney, Сбера и ВКонтакте поделятся своим опытом, а после докладов вы сможете задать им вопросы.
Темы докладов:
– Кодогенерация из OpenAPI
Узнаем с Дмитрием Шаколо из ЮMoney, как перестать писать код для работы с API и подружиться с кодогенератором.
– Команда Платформы — Сердце Большого Проекта
Как держать пульс технологий, управлять ростом и обеспечивать бесперебойность — откроем для себя роль команды платформы в большой современной разработке. Взгляд изнутри от заядлого платформера Сбера, Миши Харитончика.
– Автоверсионирование и как сделать его правильно
Максим Холявкин из ВКонтакте расскажет зачем нужно автоверсионирование, как сделать так, чтобы было удобно пользоваться, и как делать нельзя.
– Разработка платёжного SDK
Илья Фёдоров расскажет про mSDK ЮMoney, его архитектуру и устройство: как быстро встроить mSDK в мобильные сценарии, чтобы он стал удобным способом принимать деньги.
Все подробности — на сайте. Регистрируйтесь и зовите коллег 💜
Воркшоп по MapKit
Сложнее, чем найти хороший воркшоп, который стоит посетить, только одна задача – найти свою геолокацию и отслеживать ее на карте в реальном времени. Ребята из Отус предлагают решение сразу обеих проблем – топовый воркшоп про то, как работать с MapKit и интегрировать его в приложение на SwiftUI.
📆Дата: 29 августа
👉Регистрация
Обнаружение утечек памяти с помощью XCTest
С утечками памяти можно бороться не только реактивно, профилируя приложение, когда они уже случились, но и проактивно, проверяя их наличие в юнит-тестах. В статье разбирается, как написать такие тесты.
Как переключаться шорткатом между версиями Xcode
С помощью Hammerspoon и скрипта на Lua пишем логику поиска всех установленных версий Xcode и их биндинга на удобный вам шорткат.
Как можно использовать Sourcery
Sourcery – кодогенератор для Swift, работающий поверх библиотеки SwiftSyntax от Apple. В статье разбирается несколько кейсов, в которых он может помочь.
👉Найти в кодовой базе все классы, которые можно сделать final
.
👉Найти все классы, которые реализуют нужный протокол.
ИТ + научпоп + музыка = большой ИТ-пикник в Москве 💛
2 сентября Тинькофф, CodeFest и Мельница собирают большой благотворительный ИТ-фестиваль. Встречаемся в Коломенском на максимально летнем вайбе.
В программе: ИТ- и научпоп-лектории, выступления топовых спикеров, воркшопы, интерактивные зоны и вишенка на торте — музыкальные перформансы от Антохи MC, Zoloto, Therr Maitz, The Hatters, «Сироткина», а также секретного хедлайнера. Как думаете, кто им может быть?
Для участия нужно выбрать благотворительный фонд из списка и сделать донат от 1000 рублей. Подробности и регистрация — тут.
Реклама. АО "Тинькофф Банк"
WWDC 2023 Notes
Дежурное напоминание про то, что для тех, кто не хочет тратить время на просмотр всех сессий прошедшего WWDC, есть коммьюнити-проект с расшифровкой и основными тезисами всех записей.
KeyboardKit – библиотека для разработки кастомных клавиатур
KeyboardKit – опенсорсная библиотека, с помощью которой можно делать кастомные Keyboard Extensions для всех Apple платформ. Основная ценность проекта – куча готовых компонентов для создания клавиатуры, потому что системный API довольно примитивный. Из фичей:
👉61 локаль для клавиатур.
👉Системные кнопки с возможностью переопределить их логику.
👉Поддержка тем.
👉Автокомплит, эмодзи, голосовой ввод и куча чего еще.
Как SwiftData сохраняет изменения
Одно из отличий SwiftData от Core Data – то, что изменения сохраняются автоматически. Это происходит либо по событиям изменения жизненного цикла приложения, либо по таймеру. В остальном ручное сохранение изменений и индикация об изменениях в объектах работают похожим на Core Data образом.
Эффект шторки на шейдерах со SwiftUI
Исходников ровно этого эффекта нет, но вот похожий проект.
Шифрование файлов в бандле с помощью Swift плагина
В статье разбирается, как написать простой Swift плагин, который будет шифровать все файлы в определенной папке с помощью уникального ключа, усложняя доступ к ним для тех, кто решит разобрать ipa файл.
Серия статей про кишки Objective-C
Отличные статьи про дизайн и реализацию некоторых особенностей Objective-C. Например, про tagged pointers, non-fragile instance variables и associated references.
Оптимизация памяти при работе с JPEG
При работе с растровыми изображениями можно сэкономить объем потреьляемой памяти путем конвертации RGB в YUV и последующих оптимизаций. Проблема в том, что UIImage не дает из коробки всех нужных API. Разработчик Телеграма рассказывает в статье о том, как обойти ограничения и сэкономить 50% потребляемой памяти.
TipKit – фреймворк для организации онбординга
В новой бете Xcode появился фреймворк TipKit, про который была ровно одна сессия на WWDC. С его помощью можно создавать подсказки по использованию вашего приложения. Работает на всех платформах, а статус просмотра подсказок синкается через iCloud. В статье разбирается, как верстать подсказки, настраивать правила отображения и дебажить их.
Тред про проблемы макросов
Сейчас макросы работают поверх пакета SwiftSyntax. Как результат, затягивая макросы в свой проект, вы начинаете зависеть от этой библиотеки. Основная проблема – время билда вырастает на дополнительные 20 секунд. Почитайте весь тред, либо вот сразу подробный ответ от разработчиков.
Маленькие детали interaction дизайна
Эссе про то, как за счет небольших деталей в жестах и анимации Apple достигает большей ясности для пользователя.
Lottielab – среда для создания Lottie анимаций
Вышла Beta версия приложения-редактора Lottie анимаций. Дизайн можно импортировать из Figma, есть куча готовых настраиваемых шаблонов анимаций
tl;dr legal – опенсорсные лицензии простым языком
Если вы имеете дело с опенсорсными лицензиями – либо принимаете решения о затаскивании зависимостей в проект, либо распространяете свою библиотеку, сохраните себе этот сайт. Tl;dr Legal – каталог всех опенсорсных лицензий с разбором их требований простым языком.
Ozon Tech приглашает на митап по мобильной разработке
29 августа в 19:00 | Москва
Офлайн l Онлайн
Кому будет полезно?
Android-, iOS-разработчикам и QA mobile
О чём встреча?
Главная тема митапа — дизайн-система. Затронем вопросы:
➖Декларативная дизайн-система и Figma + SwiftUI/Jetpack Compose
➖Тестирование и shapshot-тесты в частности.
➖Как подружить дизайн-систему и BDUI.
❗️Не забудьте зарегистрироваться на офлайн/онлайн.
Swift на сервере в 2023
Рабочая группа, занимающаяся развитием Swift на сервере, делится своим прогрессом за год. Из самого интересного:
👉Куча новых библиотек: Kafka, Cassandra, GraphQL и RabbitMQ.
👉Swift concurrency продолжает адоптиться значимыми библиотеками.
👉Тулинг: 1.0 версия расширения для VSCode, Swiftly для менеджмента версий Swift на Linux.
👉Улучшился билдтайм в специфичных для серверсайда кейсах.
Цели на 2023 практически такие же: рост экосистемы, адопшн concurrency, улучшение тулинга и документации.
Применение шейдеров к тексту
Туториал по тому, как написать простой шейдер на Metal и применить его к тексту на SwiftUI.
Поддержка загружаемых ресурсов
Если вам приходится часто обновлять конфиги экспериментальных фичей, небольшие кусочки бизнес-логики, то проще всего подгружать их в приложение в обход обычной схемы релизов. В статье разбирается, как реализовать весь механизм загрузки и обновления ресурсов, с учетом эдж-кейсов вроде обновления версии приложения и риалтайм обновления в режиме разработчика.
HuggingFace выпустили инструменты для запуска LLM на Apple девайсах
HuggingFace, GitHub в мире машинного обучения, выпустили набор инструкций и инструментов для запуска LLM вроде Llama 2 на macOS и iOS.
👉Семпловое приложение swift-chat
👉swift-transformers, библиотека для реализации трансформеров
👉exporters, пакет для конвертации моделей в CoreML
А по ссылке – подробный гайд по тому, как запустить модель на своем девайсе.
Composable Architecture 1.0
Спустя три года разработки и 983 PR'а вышла первая версия TCA. Ключевое изменение, в результате которого библиотека стала стабильной – добавление навигации. В дальнейших планах – интеграция новых фичей Swift 5.9, включая макросы и Observable.
Воркшоп по SwiftData
Я ожидал огромного потока материалов по SwiftData сразу после WWDC, но все внимание сообщества ушло на visionOS и макросы. И очень зря – переосмысление Core Data заслуживает гораздо большего внимания. Так вот, если вы только краем уха слышали про новый фреймворк, хотите вкатиться в него, разобраться с его архитектурой и совместимостью с Core Data – подключайтесь к воркшопу от Анны Жарковой!
📆Дата: 15 августа, 20:00 по Москве
👉Регистрация: https://otus.pw/3UKx/
Вебинар приурочен к старту продвинутого онлайн-курса «iOS Developer. Professional» от Отус.
Примеры использования TipKit
Опенсорсное приложение, в котором реализованы разные виды подсказок на TipKit.
Как настроить CodeQL для Swift на GitHub
С недавних пор встроенный в GitHub сканер уязвимостей CodeQL поддерживает и Swift. Если в вашей кодовой базе появляются какие-то проблемы вроде потенциальных SQL инъекций, сканер предупредит об этом на PR. В заметке – инструкция, как его правильно настроить.
Почему рендеринг текста – это сложно
Отличная статья, про то, из каких элементов вообще состоит текст, почему все браузеры и другие графические движки чаще всего рендерят его неправильно, и с какими эзотерическими проблемами можно столкнуться.
Интересные решения Swift Runtime
Swift Runtime – это С++ библиотека, которая реализует внутренние механизмы работы языка. Например, логику управления памятью и работы с типами. В статье разбирается, в какой момент и какие выховы к ней появляются в вашем проекте, и то, как реализованы некоторые интересные фичи в ней.