Как в Apple переписывают проекты на Swift
Анализаторы шрифтов обрабатывают данные из ненадежных источников, в результате чего TrueType оказывается уязвимым местом, критически важным с точки зрения безопасности.
Чтобы повысить отказоустойчивость формата на платформах Apple, инженеры приняли решение обновить проект с языка C на Swift.
Перед командой стояла амбициозная задача: обеспечить полную безопасность памяти, сохранить 100% попиксельную совместимость рендеринга и не допустить падения производительности.
Для проверки точности инженеры покрыли код тестами на 99,7% и прогнали 27 миллионов глифов из реальных PDF, сравнивая каждый битмап с эталоном.
📖 В этой статье можно посмотреть, какие трюки они использовали для работы с памятью и каких результатов достигли.
😃 iOS Dev
Анализаторы шрифтов обрабатывают данные из ненадежных источников, в результате чего TrueType оказывается уязвимым местом, критически важным с точки зрения безопасности.
Чтобы повысить отказоустойчивость формата на платформах Apple, инженеры приняли решение обновить проект с языка C на Swift.
Перед командой стояла амбициозная задача: обеспечить полную безопасность памяти, сохранить 100% попиксельную совместимость рендеринга и не допустить падения производительности.
Для проверки точности инженеры покрыли код тестами на 99,7% и прогнали 27 миллионов глифов из реальных PDF, сравнивая каждый битмап с эталоном.
📖 В этой статье можно посмотреть, какие трюки они использовали для работы с памятью и каких результатов достигли.
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥20 14🏆4👍1
On-demand resources будут задепрекейчены в iOS 27
📖 Ресурсы по запросу (on-demand) это контент, который размещался в App Store и находился отдельно от соответствующего бандла. Они позволяли уменьшить размер приложения, ускорить загрузку и расширить функциональность.
Вместе с ними под deprecated попал и NSBundleResourceRequest.
Теперь Apple рекомендует использовать только Background Assets.
😃 iOS Dev
📖 Ресурсы по запросу (on-demand) это контент, который размещался в App Store и находился отдельно от соответствующего бандла. Они позволяли уменьшить размер приложения, ускорить загрузку и расширить функциональность.
Вместе с ними под deprecated попал и NSBundleResourceRequest.
Теперь Apple рекомендует использовать только Background Assets.
Please open Telegram to view this post
VIEW IN TELEGRAM
4😢17 7😨6😎3👏1🕊1
А помните, как появился клод и кодекс, и сразу стало миллион инновационных приложений, каждое запускается за 0.25 секунд, 120 фпс у каждого, сам апстор очистился, и программисты все такие светлые вокруг и все друг другу улыбаются.
Вот и я не помню.
😃 iOS Dev
Вот и я не помню.
Please open Telegram to view this post
VIEW IN TELEGRAM
5😁112🤣18🔥7😢3 2👍1
Давно себе хотел пополнить коллекцию необычных девайсов и в этот раз добавил себе trmnl - e-ink экран на максималках.
Ребята когда-то на кикстартере собрали 150к вместо требуемых 5к, а потом ещё и выиграли хакатон с решением в виде отдельной читалки (можно чекнуть на гитхабе) для контента в телеге.
Из особенностей: есть гигантская коллекция плагинов на любой вкус, но меня привлекла возможность самому пилить любые нужные фичи (да хоть крашлитикс или апметрику можно прикрутить, кому что нравится).
⭐️ А у вас есть аналоги? Хотите поделиться? Или может даже делаете сами?
😃 iOS Dev
Ребята когда-то на кикстартере собрали 150к вместо требуемых 5к, а потом ещё и выиграли хакатон с решением в виде отдельной читалки (можно чекнуть на гитхабе) для контента в телеге.
Из особенностей: есть гигантская коллекция плагинов на любой вкус, но меня привлекла возможность самому пилить любые нужные фичи (да хоть крашлитикс или апметрику можно прикрутить, кому что нравится).
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥25 10🤩3👍2💯2
Практическое руководство по совместимости Liquid Glass с UIKit
Осень приближается, а вместе с ней и новые требования к приложениям.
📖 В связи с этим делюсь подходом к некоторым важным моментам при обновлении диза и переезде на жидкое стекло.
В реальной жизни все равно все сложнее, но некоторые из описанных кейсов в любом случае полезны.
😃 iOS Dev
Осень приближается, а вместе с ней и новые требования к приложениям.
📖 В связи с этим делюсь подходом к некоторым важным моментам при обновлении диза и переезде на жидкое стекло.
В реальной жизни все равно все сложнее, но некоторые из описанных кейсов в любом случае полезны.
Please open Telegram to view this post
VIEW IN TELEGRAM
3✍16 7⚡3🙏1👻1
⚡️В России перестали работать «Яндекс», «Макс», сайты маркетплейсов и банков
Проблемы с сетевым соединением наблюдаются в сервисах маркетплейсов, разных IT-компаний и социальных платформ, а также операторов связи и банков.
📖 Новость на хабре.
[UPD] По данным сервиса мониторинга сейчас ситуация пришла в норму.
😃 iOS Dev
Проблемы с сетевым соединением наблюдаются в сервисах маркетплейсов, разных IT-компаний и социальных платформ, а также операторов связи и банков.
📖 Новость на хабре.
[UPD] По данным сервиса мониторинга сейчас ситуация пришла в норму.
Please open Telegram to view this post
VIEW IN TELEGRAM
😨22😢7🏆6🔥5🤩3😱2🕊2🤝1
Протоколы в Swift и main actor
📖 В статье рассматриваются особенности использования атрибута
Например, автор приводит ситуации, когда мы можем поймать неожиданные ошибки компиляции.
А также делится подходом, когда можно смешивать в одном протоколе изолированные и неизолированные требования, обеспечивая совместимость с любыми типами без доп. ограничений.
😃 iOS Dev
📖 В статье рассматриваются особенности использования атрибута
@MainActor.Например, автор приводит ситуации, когда мы можем поймать неожиданные ошибки компиляции.
А также делится подходом, когда можно смешивать в одном протоколе изолированные и неизолированные требования, обеспечивая совместимость с любыми типами без доп. ограничений.
Please open Telegram to view this post
VIEW IN TELEGRAM
7 13✍8⚡3😴1😨1
⚡️ Помните, я шутил про специальную пометку приложений в AppStore, если для них использовались нейронки?
Мы сегодня стали на шаг ближе к этому.
Claude опубликовал свой подход к маркировке контента, и, внимание, отметки о том, что использовалась нейронка, будут даже в тексте.
Кстати, вотермарку в тексте нельзя увидеть, но она есть.
Каждое предложение, которое Клод пишет для вас (а вернее, за вас), теперь несет в себе подпись, которую вы никогда не увидите.
К слову, в других популярных генераторах изображений, например, уже есть пометка, которая однозначно позволяет определить, что картинку делал не человек.
Ждём отдельный апстор для ИИ-приложений?
😃 iOS Dev
Мы сегодня стали на шаг ближе к этому.
Claude опубликовал свой подход к маркировке контента, и, внимание, отметки о том, что использовалась нейронка, будут даже в тексте.
Кстати, вотермарку в тексте нельзя увидеть, но она есть.
Каждое предложение, которое Клод пишет для вас (а вернее, за вас), теперь несет в себе подпись, которую вы никогда не увидите.
К слову, в других популярных генераторах изображений, например, уже есть пометка, которая однозначно позволяет определить, что картинку делал не человек.
Ждём отдельный апстор для ИИ-приложений?
Please open Telegram to view this post
VIEW IN TELEGRAM
6😨27 16😱10💯4👻4🔥2😎1
This media is not supported in your browser
VIEW IN TELEGRAM
Повторяем стопки карт как в Apple Wallet в 50 строк кода
На выхах залип на анимацию из Apple Wallet и решил попробовать воспроизвести с минимальным количеством кода.
Если всю физику жеста можно определить как единый прогресс, то когда тянем вниз, можно представить, что видимое смещение мы делим на длину нашего хода.
Но тут есть подводный камень. Если мы будем анимировать всю стопку одинаково, то на выходе получим скучную, приклеенную однотипную анимашку, это не круто.
Поэтому можно разбавить свои кэфом пружины (просто каждую чуть медленее, чем предыдущую)🎩
А на💰 На бусти и ⭐️ в телеграме уже доступен не только этот пример, но ещё и расширенный и целая тонна полезных фишек.
😃 iOS Dev
На выхах залип на анимацию из Apple Wallet и решил попробовать воспроизвести с минимальным количеством кода.
Если всю физику жеста можно определить как единый прогресс, то когда тянем вниз, можно представить, что видимое смещение мы делим на длину нашего хода.
Но тут есть подводный камень. Если мы будем анимировать всю стопку одинаково, то на выходе получим скучную, приклеенную однотипную анимашку, это не круто.
Поэтому можно разбавить свои кэфом пружины (просто каждую чуть медленее, чем предыдущую)
ForEach(Array(colors.enumerated()), id: \.offset) { index, color in
RoundedRectangle(cornerRadius: 26, style: .continuous)
.fill(color.gradient)
.offset(y: CGFloat(index) * (peek + (openStep - peek) * progress))
.animation(.interactiveSpring(response: 0.30 + Double(index) * 0.035,
dampingFraction: 0.74),
value: progress)
}А на
Please open Telegram to view this post
VIEW IN TELEGRAM
8 26🔥14👍6👾1
This media is not supported in your browser
VIEW IN TELEGRAM
Сеньор-разработчик, когда джун прислал ему очередной нейрослоп в мерж-реквесте на 10 000 строк
😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣53😁9💯6👍1😱1 1
Как Polymarket написал своё приложение для Android на Swift
📖 Любопытную историю выложили на форуме эпла, в которой разработчики поделились своим опытом используя Skip (и к чему это привело).
Внутри приложения почти 170 000 строк кода Swift: модели, сетевые компоненты, бизнес-логика и более 120 ViewModels. Тот же код лежит в основе их приложения для iOS.
Также они пишут, что уже сейчас готовы рекомендовать использовать Skip любой команде с достаточным опытом разработки.
Хотя мне кажется, что вся эта штука выглядит как хайптрейн (у полимаркета явно есть ресурсы на нативную разработку), но нужно отдать должное в их способности довести дело до релиза.
😃 iOS Dev
📖 Любопытную историю выложили на форуме эпла, в которой разработчики поделились своим опытом используя Skip (и к чему это привело).
Внутри приложения почти 170 000 строк кода Swift: модели, сетевые компоненты, бизнес-логика и более 120 ViewModels. Тот же код лежит в основе их приложения для iOS.
Также они пишут, что уже сейчас готовы рекомендовать использовать Skip любой команде с достаточным опытом разработки.
Хотя мне кажется, что вся эта штука выглядит как хайптрейн (у полимаркета явно есть ресурсы на нативную разработку), но нужно отдать должное в их способности довести дело до релиза.
Please open Telegram to view this post
VIEW IN TELEGRAM
5 30😨9👍4💯2👾1
This media is not supported in your browser
VIEW IN TELEGRAM
Рекомендации от Apple по созданию хэдеров в App Store
На WWDC нам заспойлерили новую опцию для продвижения приложений, а сейчас Apple добавили гайдлайны, примеры и важные моменты, на которых нужно акцентировать внимание.
📖 Официальный анонс Apple.
Шаблоны заголовков:
🔗 Для фигмы.
🔗 Для фотошопа.
🔗 Для Pixelmator.
😃 iOS Dev
На WWDC нам заспойлерили новую опцию для продвижения приложений, а сейчас Apple добавили гайдлайны, примеры и важные моменты, на которых нужно акцентировать внимание.
📖 Официальный анонс Apple.
Шаблоны заголовков:
Please open Telegram to view this post
VIEW IN TELEGRAM
6 18🔥7✍4👍3💯1
This media is not supported in your browser
VIEW IN TELEGRAM
Эпичное возвращение стеклянных элементов управления окнами в новой macOS
В новой бете макоси вернули красоту (уже доступно, я поставил).
😃 iOS Dev
В новой бете макоси вернули красоту (уже доступно, я поставил).
Please open Telegram to view this post
VIEW IN TELEGRAM
5 33🔥11👾4🎉2😡2⚡1😈1
This media is not supported in your browser
VIEW IN TELEGRAM
Круговой слайдер с использованием CAShapeLayers и неожиданным компонентом
Себ Видаль назвал это ни много ни мало, как невероятным впечатляющим инженерным подвигом всей команды UIKit.
Под капотом используется приватный
А знаете, кто ещё любит использовать приватные компоненты?
Конечно же, это телега! И у неё, например, с помощью этого апи реализован кастомный таббар.
😃 iOS Dev
Себ Видаль назвал это ни много ни мало, как невероятным впечатляющим инженерным подвигом всей команды UIKit.
Под капотом используется приватный
_UILiquidLensView и setLifted:animated:.А знаете, кто ещё любит использовать приватные компоненты?
Конечно же, это телега! И у неё, например, с помощью этого апи реализован кастомный таббар.
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥28 9😨5💯1👾1
🔔 Напоминаем про главный iOS-митап августа от hh.ru и Dodo Engineering!
Встречаемся уже в этот четверг, 20 августа, чтобы обсудить iOS-инфраструктуру, CI, аналитику и архитектуру.
В программе:
🍎 Виталий Барабанов (hh.ru) — покажет iOS-инфраструктуру hh.ru и весь путь фичи от коммита до релиза.
🍎 Алексей Березка (Dodo Engineering) — расскажет, как находить узкие места в CI и ускорять сборки приложения.
🍎 Андрей Максимкин (hh.ru) — разберет обновление мобильной аналитики и объединение подходов iOS и Android.
🍎 Тимур Шафигуллин (hh.ru) — поделится опытом развития архитектуры MVVM на большом проекте.
🗓 Когда: 20 августа в 18:30
💻 Формат: бесплатно, онлайн
👉 Успейте зарегистрироваться
Встречаемся уже в этот четверг, 20 августа, чтобы обсудить iOS-инфраструктуру, CI, аналитику и архитектуру.
В программе:
🗓 Когда: 20 августа в 18:30
💻 Формат: бесплатно, онлайн
👉 Успейте зарегистрироваться
Please open Telegram to view this post
VIEW IN TELEGRAM
Дизайн-системы для 200 лучших приложений в сторе
🛠 Нашёл репозиторий на гитхабе, в котором разработчикдобавил наслопил описание дизайн-систем самых популярных приложений, уже готовых к интеграции с ИИ.
Каждый файл представляет собой описание с точными шестнадцатеричными значениями для цветов, описанием градиентов, состояниями компонентов, кривыми движения и тактильными эффектами.
Все описано в простом формате Markdown, который Claude, Cursor, Codex читают напрямую.
😃 iOS Dev
🛠 Нашёл репозиторий на гитхабе, в котором разработчик
Каждый файл представляет собой описание с точными шестнадцатеричными значениями для цветов, описанием градиентов, состояниями компонентов, кривыми движения и тактильными эффектами.
Все описано в простом формате Markdown, который Claude, Cursor, Codex читают напрямую.
Please open Telegram to view this post
VIEW IN TELEGRAM
6 23🎉9👍6😍1😨1
Знаете, что отличает крутого спеца от имитатора деятельности?
Способность задавать правильные вопросы.
Не задавать любые вопросы на каждый чих и поворот в сторону от тзшки, а предвидеть большие проблемы в будущем.
Сомневаться.
Потому что когда-то раньше такие проблемы уже были. Называйте это как хотите: насмотренностью, техническим бэкграундом, набитыми шишками, чередой комов в блинах, да неважно.
Умение предвидеть проблемы это то, за что можно и нужно платить огромные деньги.
Способ находить оптимальное решение, которое, внимание - не самое правильное или объективно может более производительное, а именно оптимальное в условиях ресурсов (сил команды, пропускной способности серверов, добавьте любые N-факторов).
Не всегда извилистая архитектура (только не обижайся, дядюшка Боб, мы все тебя чтим) является оптимальной в условиях горящих дедлайнов или когда фичу нужно выкатить раньше остальных конкурентов по рынку. И уж тем более совсем редко решение продвинутого sol 5.7 (или что там сейчас царь горы у нас) является тем, что требуется. Про историю с крючком и подписками посмотрите мой пост.
Поэтому особенно здорово, что даже когда все глашатаи совсем распоясалаись и кричат, что ии это манна буквально, существуют два с половиной человека, которые придерживают вожжи и просят обратить внимание и послушать тех, кто хотя бы ещё что-то понимает.
Задавать вопросы - неудобно, замедляет команду, всегда вызывает споры и рассуждения. И наверняка у каждого были ситуации, когда вы думали, да нафига я вообще это спрашиваю, только время трачу. Нет, это нужно делать, как там говорил Роберт Невилл: «Если вы там... если кто-нибудь слышит меня... Вы не одни»
В каждой команде, цикл продукта в которой длится хотя бы лет эдак пять, жизненно необходим такой человек.
И особенно нужен именно сейчас, когда грань между нейрослопом и надёжной архитектурой становится такой тонкой.
😃 iOS Dev
Способность задавать правильные вопросы.
Не задавать любые вопросы на каждый чих и поворот в сторону от тзшки, а предвидеть большие проблемы в будущем.
Сомневаться.
Потому что когда-то раньше такие проблемы уже были. Называйте это как хотите: насмотренностью, техническим бэкграундом, набитыми шишками, чередой комов в блинах, да неважно.
Умение предвидеть проблемы это то, за что можно и нужно платить огромные деньги.
Способ находить оптимальное решение, которое, внимание - не самое правильное или объективно может более производительное, а именно оптимальное в условиях ресурсов (сил команды, пропускной способности серверов, добавьте любые N-факторов).
Не всегда извилистая архитектура (только не обижайся, дядюшка Боб, мы все тебя чтим) является оптимальной в условиях горящих дедлайнов или когда фичу нужно выкатить раньше остальных конкурентов по рынку. И уж тем более совсем редко решение продвинутого sol 5.7 (или что там сейчас царь горы у нас) является тем, что требуется. Про историю с крючком и подписками посмотрите мой пост.
Поэтому особенно здорово, что даже когда все глашатаи совсем распоясалаись и кричат, что ии это манна буквально, существуют два с половиной человека, которые придерживают вожжи и просят обратить внимание и послушать тех, кто хотя бы ещё что-то понимает.
Задавать вопросы - неудобно, замедляет команду, всегда вызывает споры и рассуждения. И наверняка у каждого были ситуации, когда вы думали, да нафига я вообще это спрашиваю, только время трачу. Нет, это нужно делать, как там говорил Роберт Невилл: «Если вы там... если кто-нибудь слышит меня... Вы не одни»
В каждой команде, цикл продукта в которой длится хотя бы лет эдак пять, жизненно необходим такой человек.
И особенно нужен именно сейчас, когда грань между нейрослопом и надёжной архитектурой становится такой тонкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤🔥25 12💯8👏3😁1
This media is not supported in your browser
VIEW IN TELEGRAM
И ещё: разбор, почему ИИ-пузырь и все компании несут просто лютые убытки доступным языком)
Полная версия
😃 iOS Dev
Полная версия
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣39😁12💯5👍1🤩1