Как в 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🔥19 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 25🔥14👍6👾1
Долистали до главного релиза августа — iOS-митапа от hh.ru 🍏
Наши эксперты и специалисты Dodo Engineering представят четыре доклада об инфраструктуре, CI, мобильной аналитике и архитектуре. Ждём iOS-разработчиков и техлидов, которые развивают крупные приложения и хотят ускорить рабочие процессы!
🛠 iOS-разработчик hh.ru Виталий Барабанов расскажет, как устроена iOS-инфраструктура hh.ru и какой путь проходит приложение от коммита до релиза.
🛠 iOS-техлид Dodo Engineering Алексей Березка рассмотрит, как находить узкие места в CI и ускорять сборки.
🛠 iOS-разработчик hh.ru Андрей Максимкин разберёт перезагрузку мобильной аналитики и объединение подходов iOS и Android.
🛠 iOS-разработчик hh.ru Тимур Шафигуллин поделится какой получилась MVVM на проекте из 17 тысяч Swift-файлов и 164 модулей.
📆 Когда: 20 августа в 18:30, начало в 18:30.
✌️ Участие: бесплатно, онлайн
Регистрируйся тут
Наши эксперты и специалисты Dodo Engineering представят четыре доклада об инфраструктуре, CI, мобильной аналитике и архитектуре. Ждём iOS-разработчиков и техлидов, которые развивают крупные приложения и хотят ускорить рабочие процессы!
🛠 iOS-разработчик hh.ru Виталий Барабанов расскажет, как устроена iOS-инфраструктура hh.ru и какой путь проходит приложение от коммита до релиза.
Обсудим CI/CD, сборочные машины, авторелиз, кодогенерация аналитики и сокращение ручных операций
🛠 iOS-техлид Dodo Engineering Алексей Березка рассмотрит, как находить узкие места в CI и ускорять сборки.
Поговорим об интеграции OpenTelemetry с GitHub для мониторинга очередей, прогонов и статусов, а также поиска узких мест. Практические способы ускорить парсинг тестов, распараллелить джобы и оптимизировать сборку с помощью кэшей
🛠 iOS-разработчик hh.ru Андрей Максимкин разберёт перезагрузку мобильной аналитики и объединение подходов iOS и Android.
Проанализируем переход к единому масштабируемому подходу в мобильной аналитике для iOS и Android, а также организацию совместной работы команд, результаты внедрения и применение AI
🛠 iOS-разработчик hh.ru Тимур Шафигуллин поделится какой получилась MVVM на проекте из 17 тысяч Swift-файлов и 164 модулей.
Разберём причины отказа от чистого SwiftUI, объединения бизнес- и UI-состояния и создания собственных опенсорс-библиотек, а также альтернативы и решения возникших проблем.
Регистрируйся тут
Please open Telegram to view this post
VIEW IN TELEGRAM
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
🤣52😁9💯6👍1😱1 1
Разберем сценарий, в котором вы самостоятельно выходите в зарубежный App Store на примере реального клиента который обратился в компанию Easy Payments. Это многоэтапный процесс, где важны последовательность и внимание к деталям.
А если захотите разобраться еще детальней, загляните в Бот Easy Payments. Там выложили закрытый кейс с более глубоким разбором уже другого проекта, где открывали компанию в Грузии, показали весь процесс без сокращений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM