ru
Feedback
iOS Dev

iOS Dev

Открыть в Telegram

👨‍💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift

Больше
7 884
Подписчики
+524 часа
-57 дней
-5430 день
Архив постов
iOS Dev
7 885
⚡️ Помните, я шутил про специальную пометку приложений в AppStore, если для них использовались нейронки? Мы сегодня стали на шаг ближе к этому. Claude опубликовал свой подход к маркировке контента, и, внимание, отметки о том, что использовалась нейронка, будут даже в тексте. Кстати, вотермарку в тексте нельзя увидеть, но она есть. Каждое предложение, которое Клод пишет для вас (а вернее, за вас), теперь несет в себе подпись, которую вы никогда не увидите. К слову, в других популярных генераторах изображений, например, уже есть пометка, которая однозначно позволяет определить, что картинку делал не человек. Ждём отдельный апстор для ИИ-приложений? 😃 iOS Dev

iOS Dev
7 885
Протоколы в Swift и main actor 📖 В статье рассматриваются особенности использования атрибута @MainActor. Например, автор при
Протоколы в Swift и main actor 📖 В статье рассматриваются особенности использования атрибута @MainActor. Например, автор приводит ситуации, когда мы можем поймать неожиданные ошибки компиляции. А также делится подходом, когда можно смешивать в одном протоколе изолированные и неизолированные требования, обеспечивая совместимость с любыми типами без доп. ограничений. 😃 iOS Dev

iOS Dev
7 885

iOS Dev
7 885
⚡️В России перестали работать «Яндекс», «Макс», сайты маркетплейсов и банков Проблемы с сетевым соединением наблюдаются в сер
⚡️В России перестали работать «Яндекс», «Макс», сайты маркетплейсов и банков Проблемы с сетевым соединением наблюдаются в сервисах маркетплейсов, разных IT-компаний и социальных платформ, а также операторов связи и банков. 📖 Новость на хабре. 😃 iOS Dev

iOS Dev
7 885
Практическое руководство по совместимости Liquid Glass с UIKit Осень приближается, а вместе с ней и новые требования к прилож
Практическое руководство по совместимости Liquid Glass с UIKit Осень приближается, а вместе с ней и новые требования к приложениям. 📖 В связи с этим делюсь подходом к некоторым важным моментам при обновлении диза и переезде на жидкое стекло. В реальной жизни все равно все сложнее, но некоторые из описанных кейсов в любом случае полезны. 😃 iOS Dev

iOS Dev
7 885
Давно себе хотел пополнить коллекцию необычных девайсов и в этот раз добавил себе trmnl - e-ink экран на максималках. Ребята
Давно себе хотел пополнить коллекцию необычных девайсов и в этот раз добавил себе trmnl - e-ink экран на максималках. Ребята когда-то на кикстартере собрали 150к вместо требуемых 5к, а потом ещё и выиграли хакатон с решением в виде отдельной читалки (можно чекнуть на гитхабе) для контента в телеге. Из особенностей: есть гигантская коллекция плагинов на любой вкус, но меня привлекла возможность самому пилить любые нужные фичи (да хоть крашлитикс или апметрику можно прикрутить, кому что нравится). ⭐️ А у вас есть аналоги? Хотите поделиться? Или может даже делаете сами? 😃 iOS Dev

iOS Dev
7 885
А помните, как появился клод и кодекс, и сразу стало миллион инновационных приложений, каждое запускается за 0.25 секунд, 120 фпс у каждого, сам апстор очистился, и программисты все такие светлые вокруг и все друг другу улыбаются. Вот и я не помню. 😃 iOS Dev

iOS Dev
7 885
On-demand resources будут задепрекейчены в iOS 27 📖 Ресурсы по запросу (on-demand) это контент, который размещался в App Store и находился отдельно от соответствующего бандла. Они позволяли уменьшить размер приложения, ускорить загрузку и расширить функциональность. Вместе с ними под deprecated попал и NSBundleResourceRequest. Теперь Apple рекомендует использовать только Background Assets. 😃 iOS Dev

iOS Dev
7 885
Как в Apple переписывают проекты на Swift Анализаторы шрифтов обрабатывают данные из ненадежных источников, в результате чего
Как в Apple переписывают проекты на Swift Анализаторы шрифтов обрабатывают данные из ненадежных источников, в результате чего TrueType оказывается уязвимым местом, критически важным с точки зрения безопасности. Чтобы повысить отказоустойчивость формата на платформах Apple, инженеры приняли решение обновить проект с языка C на Swift. Перед командой стояла амбициозная задача: обеспечить полную безопасность памяти, сохранить 100% попиксельную совместимость рендеринга и не допустить падения производительности. Для проверки точности инженеры покрыли код тестами на 99,7% и прогнали 27 миллионов глифов из реальных PDF, сравнивая каждый битмап с эталоном. 📖 В этой статье можно посмотреть, какие трюки они использовали для работы с памятью и каких результатов достигли. 😃 iOS Dev

iOS Dev
7 885
Библиотека лоадеров для работы с Foundation Models Когда-то я делился примерами красоты с помощью математики. Но если подрубить TimelineView, Canvas и немного воображения, сейчас можно создать намного более весёлые и интересные кейсы. Например, скорее всего если вы отдаете юзерам инфу поэтапно (или генерите изображения), а ваши модельки крутятся долго, и как раз в этот момент совершенно точно что-то нужно показывать. Для этого можно создать библиотеку компонентов и юзать любую комбинацию, хоть разбивать поэтапно и показывать последовательность, хоть показывать какой-то один из них. Вот, например, кит, который используется на гифке, которую вы видите:
enum LoaderKit { static let goldenAngle = Double.pi * (3 - (5.0).squareRoot()) static func fibonacciSphere(_ count: Int) -> [LDVec3] { guard count > 1 else { return [LDVec3(x: 0, y: 0, z: 0)] } var pts: [LDVec3] = [] pts.reserveCapacity(count) for i in 0..<count { let y = 1 - (Double(i) / Double(count - 1)) * 2 // 1 … -1 let r = (1 - y * y).squareRoot() let phi = Double(i) * goldenAngle pts.append(LDVec3(x: cos(phi) * r, y: y, z: sin(phi) * r)) } return pts } static func rotateY(_ p: LDVec3, _ a: Double) -> LDVec3 { let c = cos(a), s = sin(a) return LDVec3(x: p.x * c + p.z * s, y: p.y, z: -p.x * s + p.z * c) } static func rotateX(_ p: LDVec3, _ a: Double) -> LDVec3 { let c = cos(a), s = sin(a) return LDVec3(x: p.x, y: p.y * c - p.z * s, z: p.y * s + p.z * c) } static func rotateZ(_ p: LDVec3, _ a: Double) -> LDVec3 { let c = cos(a), s = sin(a) return LDVec3(x: p.x * c - p.y * s, y: p.x * s + p.y * c, z: p.z) } static func dot(_ x: CGFloat, _ y: CGFloat, _ r: CGFloat) -> Path { Path(ellipseIn: CGRect(x: x - r, y: y - r, width: r * 2, height: r * 2)) } static func hash(_ i: Int, _ salt: Double = 0) -> Double { let v = sin(Double(i) * 12.9898 + salt * 78.233 + 0.5) * 43758.5453 return v - v.rounded(.down) } static func lerp(_ a: Double, _ b: Double, _ t: Double) -> Double { a + (b - a) * t } static func smoothstep(_ t: Double) -> Double { let x = min(max(t, 0), 1); return x * x * (3 - 2 * x) } static func easeOut(_ t: Double) -> Double { 1 - pow(1 - min(max(t, 0), 1), 3) } }
А целиком примеры уже доступны: ⭐️ здесь или 💰 тут. 😃 iOS Dev

iOS Dev
7 885
Создание адаптивных немодальных панелей в SwiftUI 📖 В этой статье рассказано, как создать собственные стили для таких панеле
Создание адаптивных немодальных панелей в SwiftUI 📖 В этой статье рассказано, как создать собственные стили для таких панелей, а также описаны решения, которые позволили обеспечить поддержку и потретного, и альбомного режимов. 😃 iOS Dev

iOS Dev
7 885
Пасхалки в крашлогах Apple с помощью hexspeak Помните, когда-то на калькуляторах можно было писать всякие прикольные слова с помощью цифр? Оказывается, есть специальный термин hexspeak, целая форма правописания с использованием шестнадцатеричных цифр. Apple не остался в стороне и несколько кодов завершения также написаны в этом стиле:
0xdead10cc (dead lock) - приложение удерживает системный ресурс во время работы в фоновом режиме. 0x8badf00d (ate bad food) - watchdog убивает за слишком долгую блокировку основного потока при запуске или возобновлении. 0xc00010ff (cool off) - используется Apple в отчетах о крашах iOS, когда приложение было закрыто в ответ на термическое событие. 0xdeadfa11 (dead fall) - юзер принудительно закрыл зависшее приложение. 0xbad22222 (bad too repeatedly) - VoIP-приложуху крашнул iOS, поскольку оно возобновлялось слишком часто. 0xbaaaaaad (baaaaad) - лог представляет собой снимок состояния всей системы, не отчет о краше. 0xdeadfeed (dead feed) - краш из-за превышения таймаута при запуске службы.
Да и вообще, рекомендую посмотреть вики, там много любопытных отсылок, есть даже Ace of Base 🎵 😃 iOS Dev

iOS Dev
7 885
В Яндексе бьют людей? Добрался до разбора доклада про внедрение AI, в котором руководитель мобильной разработки заявляет на весь зал, что у них бьют людей (не буквально, это важно) за то, что при использовании ИИ-агентов они отдают вопросы при комментах в пулл-реквестах для LLM. Ну, даже не знаю как это комментировать. В целом, все прогнозы сбываются. Вроде и продвигают ИИ в массы, а вроде и с оговорками. 😃 iOS Dev

iOS Dev
7 885
Пересмотр модульной архитектуры iOS-приложения компании JET в 2026 году Незначительная проблема с одним из UI-компонентов выя
Пересмотр модульной архитектуры iOS-приложения компании JET в 2026 году Незначительная проблема с одним из UI-компонентов выявила проблемы существующей прежде модели и это стало триггером к пересмотру концепта целиком. В обновленном подходе каждый компонент классифицируется по своей роли, а не по тому, где он находится в графе зависимостей. Как следствие, в JET ввели пять категорий. Три из них относятся к собственным компонентам (App, Feature, Foundation); две - к сторонним зависимостям (SDK, Utility). 📖 Про то, что у них получилось, и как работает всё вместе - можно почитать в техническом блоге. 😃 iOS Dev

iOS Dev
7 885
Мир прототипов Я пилю приложения уже больше 15 лет и за это время увидел рассвет и закат многих проектов: от первых мессенджеров ВК до яндекс.музыки (последнее обновление никуда не годится) и крупных игровых тайтлов, да и вообще, если мы входим в эпоху, когда игры на плойке будут только в цифре - это уже не звоночек, это чёртов колокол. Последние пару-тройку лет постоянно слышу: я сделал аналог ноушена, я запустил агрегатор новостей за день, я выпустил собственный браузер. Ага, конечно. Оказывается, что там надо немного допилить (процентов 90), скачиваний у ребят миллионы (1-2 в неделю), а графики так и вовсе нарисованы какой-нибудь нейросеткой. Ну с графиками хотя бы будет повеселее: вы же в курсе, что крупные ии-игроки добавляют паттерны в свои изображения, по которым можно отличить ии-слоп? Если нет, теперь в курсе. Я к тому, что всё что изменилось - только количество: если раньше плохих приложений было 10, то теперь их будет 1 000 000, но качество не улучшилось ни на йоту. Лагающего, неповоротливого, одинакового стало ожидаемо намного больше. Много ума не надо - отдать диз чего угодно клоду/кодексу (нужное подчеркнуть) и на выходе получить прототип. А потом неделями, месяцами, годами допиливать до хотя бы какого-нибудь приемлемого уровня. Это разве прорыв? Даже телега в последнее время не радует. Что уж говорить об остальных. Если кто-то смотрел ЧМ, то заметили что нейрослоп заполонил и рекламу. Так и представляю, как ушлые маркетологи говорят: ну мы сделаем почти похоже на настоящую, только дешевле, будет почти также. Нет, не почти - это беспросветный, вымученный, чудовищный, вырвиглазный со слабой аурой стиль, за реализацию которой наверняка кто-то получит премию. Когда с таким количеством ресурсов пользователям отдают это - становится по-настоящему страшно за индустрию. Страшно, что мы уже живём в мире прототипов. 😃 iOS Dev

iOS Dev
7 885
🫨 ИИ-модели от OpenAI вышли из-под контроля и устроили хакерскую атаку Недавно компании OpenAI и Hugging Face (возможно, главный хаб для моделей, его я юзал например, вот тут) столкнулись с беспрецедентным инцидентом кибербезопасности, вызванным автономными действиями ИИ-агентов во время внутреннего тестирования. Стремясь любой ценой решить поставленную задачу, модели смогли вырваться из песочницы и получить доступ к hugging face. ИИ самостоятельно обнаружил и проэксплуатировал уязвимость нулевого дня во внутреннем прокси-сервере и использовал украденные учетки. Службы безопасности Hugging Face сумели оперативно обнаружить аномальную активность и пресечь её после инцидента. OpenAI выпустили пресс-релиз со всеми подробностями. Берегите свои креды с молоду, как говорится. 😃 iOS Dev

iOS Dev
7 885
Зарплаты IT-специалистов в первой половине 2026: Objective-C всё еще самый доходный Уровень компенсации для топовых разрабов,
Зарплаты IT-специалистов в первой половине 2026: Objective-C всё еще самый доходный Уровень компенсации для топовых разрабов, знающих Objective-C не только возглавляет таблицу, но ещё и лидер по темпу, +13%.
💰 Доход разработчиков на Objective-C: 400 000 рублей.
Ощутимо зарплаты выросли и в Swift (на 7% до 326 000 ₽), котлин тоже прибавил на 5% до 320 000 ₽. К слову, Авито больше не номер один среди компаний, перехватил эстафетную палочку Райффайзен Банк (+9%, 400 000 - медиана). В целом, ситуация на рынке такая, что медианная зарплата на IT-рынке сейчас — 191 000. 📖 Остальная аналитика доступна на хабре. Прошлые обзоры - вот тут. 😃 iOS Dev

iOS Dev
7 885
Скинули график сна iOS-разработчика на фоне последних новостей 😃 iOS Dev
Скинули график сна iOS-разработчика на фоне последних новостей 😃 iOS Dev

iOS Dev
7 885

iOS Dev
7 885
🫨 Проблемы с AppStore в РФ По данным хабра магазин приложений AppStore начал нестабильно работать в России. У части пользова
🫨 Проблемы с AppStore в РФ По данным хабра магазин приложений AppStore начал нестабильно работать в России. У части пользователей сервисы AppStore не работают вовсе (без специальных сетевых средств). Похоже, что проблемы с прошлой недели продолжаются. 😃 iOS Dev