Серия статей про Metal для тех, кто хочет вкатиться в тему:
📌Введение в Metal и разбор основных компонентов
📌Рендеринг с текстурами и шейдерами
📌Работа с прозрачностью
📌Сглаживание
📌Введение в Metal и разбор основных компонентов
📌Рендеринг с текстурами и шейдерами
📌Работа с прозрачностью
📌Сглаживание
Moog Engineering
Metal Part 1: Basics - Moog Engineering
Since Apple released Metal in 2014, it has become the leading graphics API (application programming interface) for iOS and macOS. During that time, Moog has used Metal in Model 15, Model D, and, most recently, Animoog Z. Moog uses rendering APIs like Metal…
👍44💩2🔥1
31 мая в 18:00 пройдет онлайновый Avito iOS Meetup. В программе новая модульная система Авито, диплинки и особенности логирования ошибок в аналитику.
Регистрируйтесь и добавляйте в календарь
Регистрируйтесь и добавляйте в календарь
avitotech.timepad.ru
Avito iOS meetup #9 / События на TimePad.ru
На свежем iOS-митапе выступаят трое спикеров из платформенных команд Авито. Они занимаются созданием инструментов для iOS-разработчиков компании и расскажут про нашу новую систему модульности, deep linking и логирование ошибок.
💩41👍18❤2👎1
Пять видеоуроков PointFree про парсинг сырого инпута в структуры данных
💻Использование библиотеки swift-parsing для написания своих парсеров
🍏Сравнение со Swift Regex DSL
🚏Реализация URL роутинга в iOS приложении
🕸Реализация роутинга в серверном Vapor приложении
🔂Трансформация URL роутеров в API клиенты
💻Использование библиотеки swift-parsing для написания своих парсеров
🍏Сравнение со Swift Regex DSL
🚏Реализация URL роутинга в iOS приложении
🕸Реализация роутинга в серверном Vapor приложении
🔂Трансформация URL роутеров в API клиенты
www.pointfree.co
Parsing › Tour of Parser-Printers
A tour of our parser-printer library for parsing unstructured data into structure data, and simultaneously being able to print the unstructured data back into structured data. We built a few parser-printers from scratch, building up complexity along the way…
❤18👍4💩4🔥1
Пару месяцев назад я выкладывал в канале опрос про то, планируют ли мобильные разработчики релоцироваться. Автор подвела результаты и выложила статью с аналитикой. Ответ на ваш главный вопрос – 40% планирует уехать, 48% не планирует, 12% уже уехали
👍17💩5🔥4
QuickLook framework можно использовать не только для просмотра различных редких типов файлов, но и как браузер для изображений с поддержкой отличной анимации его закрытия.
Twitter
Jordan Morgan
What!! I was today year's old when I realized you can use the QuickLook framework to perform this custom view controller transition for you.... ....with one delegate method 🤯 I have written this transition myself several times, and it is *not* trivial to…
🔥35💩10
Тип Color в SwiftUI не является Codable по умолчанию. В статье разбирается, как сериализовать оба типа цветов – константные и динамические, меняющиеся в зависимости от контекста. Если хочется сразу посмотреть код – то вот GitHub.
Nil Coalescing
Encode and decode SwiftUI color
Add custom encoding and decoding logic for SwiftUI Color that is not Codable by default to be able to save it to disk or remote database.
💩30👍9
Выполнять базовые операции с Git умеет каждый iOS разработчик. Но вот более редкие фичи, которые иногда могут сэкнономить бесконечность времени, знают не все. Несколько примеров:
🕵🏻♂️`git bisect` – бинарный поиск коммита, внесшего баг в код, по всей истории за нужный интервал времени
🧊`git lfs` – расширение, позволяющее версионировать различные большие файлы
🍒`git cherry-pick` – перенос отдельных коммитов из одной ветки в другую
Если вы хотите улучшить свои знания Git, держите видеокурс от наших партнеров. Но, чтобы получить к нему доступ, сначала придется пройти тест на настоящего iOS разработчика!
🕵🏻♂️`git bisect` – бинарный поиск коммита, внесшего баг в код, по всей истории за нужный интервал времени
🧊`git lfs` – расширение, позволяющее версионировать различные большие файлы
🍒`git cherry-pick` – перенос отдельных коммитов из одной ветки в другую
Если вы хотите улучшить свои знания Git, держите видеокурс от наших партнеров. Но, чтобы получить к нему доступ, сначала придется пройти тест на настоящего iOS разработчика!
💩49👍13🤮5❤1👎1
Если вы подключаете через SPM к проекту зависимости с большим объемом исходного кода, то можете встретить кучу проблем с перфомансом. Чтобы это обойти, попробуйте подключать их сразу скомпилированными в XCFramework. В статье разбирается, как это сделать.
Хабр
Правильно подключаем тяжелые зависимости к Xcode проекту через Swift Package Manager
В этой статье я расскажу о проблемах с которыми я столкнулся при подключении тяжелых зависимостей к iOS проекту с помощью Swift Package Manager и о способе их решения. Тяжелые зависимости Для начала...
💩24🔥21👍2🤔1🤮1
В январе проскакивала новость, что Apple добавили в App Store новый тип распространения приложений – Unlisted. При его использовании приложение недоступно в каталоге и через поиск, и открыть его можно только по ссылке. В статье детально разбирается процесс публикации приложения в таком статусе, формы, которые надо заполнять, и проблемы, к котором могут придраться на ревью.
Bendodson
Unlisted App Distribution on the App Store
The somewhat uninituitive steps to get a private app distribution link on the App Store
🔥25👍10💩5😁1
В Swift 5.6 в SPM завезли поддержку плагинов:
📌Build Tools, которые запускаются до и во время сборки
📌Commands, которые запускаются с помощью CLI
В гайде разбирается, как созлавать простые Command-плагины, как со своей собственной логикой, так и обертки над другими инструментами вроде swift-format.
📌Build Tools, которые запускаются до и во время сборки
📌Commands, которые запускаются с помощью CLI
В гайде разбирается, как созлавать простые Command-плагины, как со своей собственной логикой, так и обертки над другими инструментами вроде swift-format.
Theswiftdev
Beginner's guide to Swift package manager command plugins - The.Swift.Dev.
Learn how to create command plugins for the Swift Package Manager to execute custom actions using SPM and other tools.
🔥20💩12
Уже через неделю начнется WWDC! Помогите подготовить гайд для сообщества:
1. Если вы организуете совместный просмотр кейноута в своем городе, напишите мне в личку (@etolstoy)
3. Если вы знаете кого-то, кто будет на WWDC вживую, и готов вести текстовую трансляцию с места событий, сведите его со мной!
4. Если есть идеи, что еще крутого можно сделать вокруг WWDC – тоже пишите!
1. Если вы организуете совместный просмотр кейноута в своем городе, напишите мне в личку (@etolstoy)
3. Если вы знаете кого-то, кто будет на WWDC вживую, и готов вести текстовую трансляцию с места событий, сведите его со мной!
4. Если есть идеи, что еще крутого можно сделать вокруг WWDC – тоже пишите!
Apple Developer
WWDC25
Revisit an incredible week of technology and creativity.
💩23🔥16❤2👍2🎉2
Галерея iPod’ов с рентгеновскими снимками каждой модели и разбором каждого слоя получившихся изображений 😍
Scanofthemonth
iPods put 1,000 songs in your pocket, Neptune CT by Lumafield shows you how.
Tony Fadell sat down with Lumafield to look inside his iPod using our Neptune CT scanner. 'I wish we'd had CT scanning like this back when I was at Apple'
👍13💩4🔥2
У Apple есть специальная программа Swift Mentorship Program, цель которой помогать разработчикам контрибьютить в свифтовый open source. В 2021 году кто-то контрибьютил в документацию, кто-то – в Vapor, а кто-то – в компилятор.
В этом году программа запускается снова. Участвовать может любой желающий, так что, если вы давно хотели ворваться в мир большого опенсорса, это ваш шанс!
📆Таймлайн:
1-15 июня – подача заявок
27 июня – анонс участников
4 июля-23 сентября – работа над проектом
30 сентября – сбор фидбэка и окончание
В этом году программа запускается снова. Участвовать может любой желающий, так что, если вы давно хотели ворваться в мир большого опенсорса, это ваш шанс!
📆Таймлайн:
1-15 июня – подача заявок
27 июня – анонс участников
4 июля-23 сентября – работа над проектом
30 сентября – сбор фидбэка и окончание
Swift.org
Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
🔥18💩7👍6❤2
До 30 июня все приложения, в которых есть регистрация пользователей, должны реализовать возможность удаления профиля.
🔎Ее нельзя прятать куда-то очень далеко, она должна быть хорошо заметна
🍏Те, кто использует Sign in with Apple должны не забыть ревоукнуть токены
🤷🏻♂️Недостаточно просто блокировать аккаунт, надо удалить все связанные с ним данные
🔎Ее нельзя прятать куда-то очень далеко, она должна быть хорошо заметна
🍏Те, кто использует Sign in with Apple должны не забыть ревоукнуть токены
🤷🏻♂️Недостаточно просто блокировать аккаунт, надо удалить все связанные с ним данные
Apple
Account deletion requirement starts June 30 - Latest News - Apple Developer
As a reminder, apps that support account creation must let users initiate deletion of their account within the app starting June 30, 2022, as described in App Store Review Guideline 5.1.1(v). This deadline was extended to provide additional time for implementation…
👍25💩14🤯3🔥2
В Swift 5.6 (Xcode 13.3) завезли флаг компиляции
Судя по бенчмаркам стоит ожидать уменьшение размера бинаря +- в 3 раза.
Будем ждать упоминания на WWDC и включения осенью по дефолту!
за новость спасибо @petropavel
-experimental-hermetic-seal-at-link
который позволяет вырезать неиспользуемый код на этапе полной линковки.Судя по бенчмаркам стоит ожидать уменьшение размера бинаря +- в 3 раза.
Будем ждать упоминания на WWDC и включения осенью по дефолту!
за новость спасибо @petropavel
GitHub
Add a -experimental-hermetic-seal-at-link flag that triggers aggressive LTO-based dead-stripping (VFE, WME, conditional runtime…
In essence, -experimental-hermetic-seal-at-link is just a wrapper flag that turns on all the LTO-based dead-stripping features, and it provides nice diagnostics in the driver (errors out if LTO is ...
🔥71👍10💩4
Разработчики Юлы (проекта VK) запустили свой канал в Телеграме, где делятся ценными материалами о разработке, интересными проектами и активностями, которые можно посетить, и выступлениями сотрудников. Полезный канал для iOS-разработчиков, подписывайтесь!
Telegram
Разработка Юлы
Технологии Юлы. Разработка сервиса. Конференции.
💩76🤮8🔥4🤬2
Огромная подборка отзывов про работу со SwiftUI в его текущем состоянии от известных айосеров. В основном все жалуются на то, насколько фреймворк и тулинг вокруг него сырой, на скорость Apple в исправлении проблем и на отсутствие обратной совместимости. Но есть и позитивные отзывы.
Mjtsai
Michael Tsai - Blog - SwiftUI in 2022
💩27👍11👎1😁1
Отличный тред на Swift Forums про то, как подходить к unit-тестированию кода, под капотом у которого async/await.
Swift Forums
Reliably testing code that adopts Swift Concurrency?
I’m having a hard time figuring out how to test application code as it adopts async-await and begins to be scheduled concurrently. I’ll try to show a simple example. Here’s a basic SwiftUI application that tracks how many times a user has taken a screen…
💩19👍7
Каждое переключение между git ветками ведет к тому, что проект начинает переиндексироваться, скорость билда уменьшается, появляется раздражающий ворнинг про «The file has been modified by another application». В статье разбирается, как использование
git worktrees
помогает справляться с этой проблемой за счет создания копий проекта.Notion
The AI workspace that works for you. | Notion
A tool that connects everyday work into one space. It gives you and your teams AI tools—search, writing, note-taking—inside an all-in-one, flexible workspace.
👍21💩14
Самый прямолинейный способ заинжектить какой-то код в момент вызова Objective-C метода – это method swizzling. Но есть случаи, когда его использовать не получится – например, если нужная вам функция написана на C++. В статье разбирается, как использовать переменную окружения
DYLD_INSERT_LIBRARIES,
чтобы заинжектить в приложение фреймворк, перехватывающий все вызовы нативного кода к кейчейну. Это может быть полезно в тех случаях, когда вы хотите обложить перфоманс-метриками или логами. какую-то стороннюю нативную библиотеку в своем проекте.Emergetools
Emerge Tools Blog | Code Injection with Dyld Interposing
Swizzling C functions in compiled iOS apps with dyld interposing.
👍20💩20🤯2