TGViewer
Channel Public Channel
iOS Dev

iOS Dev

@iosdev

👨‍💻Автор: Виктор Грушевский (@Viktorianec)

⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru

🍏Канал об iOS-разработке, алгоритмах и архитектурах

⭐️ Подготовка к собесам

⭐️ Код. Много кода.

#ios #mobile #swift
Subscribers
7.92K
Photos
1.2K
Videos
153
Links
1.5K

Showing posts older than #2094 · Back to latest

Older Posts 20 shown
Post #2093 3.17K
Дизайн-системы для 200 лучших приложений в сторе

🛠 Нашёл репозиторий на гитхабе, в котором разработчик добавил наслопил описание дизайн-систем самых популярных приложений, уже готовых к интеграции с ИИ.

Каждый файл представляет собой описание с точными шестнадцатеричными значениями для цветов, описанием градиентов, состояниями компонентов, кривыми движения и тактильными эффектами.

Все описано в простом формате Markdown, который Claude, Cursor, Codex читают напрямую.

😃 iOS Dev
  • 🎉 10
  • 👍 7
  • 😍 1
  • 😨 1
Post #2091 3K
Круговой слайдер с использованием CAShapeLayers и неожиданным компонентом

Себ Видаль назвал это ни много ни мало, как невероятным впечатляющим инженерным подвигом всей команды UIKit.

Под капотом используется приватный _UILiquidLensView и setLifted:animated:.

А знаете, кто ещё любит использовать приватные компоненты?

Конечно же, это телега! И у неё, например, с помощью этого апи реализован кастомный таббар.

😃 iOS Dev
  • 🔥 30
  • 😨 5
  • 💯 1
  • 👾 1
Post #2090 2.88K
Эпичное возвращение стеклянных элементов управления окнами в новой macOS

В новой бете макоси вернули красоту (уже доступно, я поставил).

😃 iOS Dev
  • 🔥 13
  • 👾 4
  • 🎉 2
  • 😡 2
  • ⚡ 1
  • 😈 1
Post #2089 3.59K
Рекомендации от Apple по созданию хэдеров в App Store

На WWDC нам заспойлерили новую опцию для продвижения приложений, а сейчас Apple добавили гайдлайны, примеры и важные моменты, на которых нужно акцентировать внимание.

📖 Официальный анонс Apple.

Шаблоны заголовков:

🔗 Для фигмы.
🔗 Для фотошопа.
🔗 Для Pixelmator.

😃 iOS Dev
  • 🔥 7
  • ✍ 4
  • 👍 4
  • 💯 1
Post #2088 3.84K
Как Polymarket написал своё приложение для Android на Swift

📖 Любопытную историю выложили на форуме эпла, в которой разработчики поделились своим опытом используя Skip (и к чему это привело).

Внутри приложения почти 170 000 строк кода Swift: модели, сетевые компоненты, бизнес-логика и более 120 ViewModels. Тот же код лежит в основе их приложения для iOS.

Также они пишут, что уже сейчас готовы рекомендовать использовать Skip любой команде с достаточным опытом разработки.

Хотя мне кажется, что вся эта штука выглядит как хайптрейн (у полимаркета явно есть ресурсы на нативную разработку), но нужно отдать должное в их способности довести дело до релиза.

😃 iOS Dev
  • 😨 9
  • 👍 4
  • 💯 2
  • 👾 1
Post #2078 3.48K
Сеньор-разработчик, когда джун прислал ему очередной нейрослоп в мерж-реквесте на 10 000 строк

😃 iOS Dev
  • 🤣 55
  • 😁 9
  • 💯 6
  • 👍 1
  • 😱 1
Post #2076 3.26K
Повторяем стопки карт как в Apple Wallet в 50 строк кода

На выхах залип на анимацию из 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)
}


А на 💰 На бусти и ⭐️ в телеграме уже доступен не только этот пример, но ещё и расширенный и целая тонна полезных фишек.

😃 iOS Dev
  • 🔥 15
  • 👍 6
  • 👾 1
Post #2075 3.42K
⚡️ Помните, я шутил про специальную пометку приложений в AppStore, если для них использовались нейронки?

Мы сегодня стали на шаг ближе к этому.

Claude опубликовал свой подход к маркировке контента, и, внимание, отметки о том, что использовалась нейронка, будут даже в тексте.

Кстати, вотермарку в тексте нельзя увидеть, но она есть.

Каждое предложение, которое Клод пишет для вас (а вернее, за вас), теперь несет в себе подпись, которую вы никогда не увидите.

К слову, в других популярных генераторах изображений, например, уже есть пометка, которая однозначно позволяет определить, что картинку делал не человек.

Ждём отдельный апстор для ИИ-приложений?

😃 iOS Dev
  • 😨 27
  • 😱 10
  • 💯 4
  • 👻 4
  • 🔥 2
  • 😎 1
Post #2074 3.22K
Протоколы в Swift и main actor

📖 В статье рассматриваются особенности использования атрибута @MainActor.

Например, автор приводит ситуации, когда мы можем поймать неожиданные ошибки компиляции.

А также делится подходом, когда можно смешивать в одном протоколе изолированные и неизолированные требования, обеспечивая совместимость с любыми типами без доп. ограничений.

😃 iOS Dev
  • ✍ 8
  • ⚡ 3
  • 😴 1
  • 😨 1
Post #2073 3.77K

This post (sticker, poll or similar) has no web preview. Open in Telegram

  • 🤩 13
  • 👻 6
  • 🔥 2
Post #2072 3.97K
⚡️В России перестали работать «Яндекс», «Макс», сайты маркетплейсов и банков

Проблемы с сетевым соединением наблюдаются в сервисах маркетплейсов, разных IT-компаний и социальных платформ, а также операторов связи и банков.

📖 Новость на хабре.

[UPD] По данным сервиса мониторинга сейчас ситуация пришла в норму.

😃 iOS Dev
  • 😨 22
  • 😢 7
  • 🏆 6
  • 🔥 5
  • 🤩 3
  • 😱 2
  • 🕊 2
  • 🤝 1
Post #2071 3.77K
Практическое руководство по совместимости Liquid Glass с UIKit

Осень приближается, а вместе с ней и новые требования к приложениям.

📖 В связи с этим делюсь подходом к некоторым важным моментам при обновлении диза и переезде на жидкое стекло.

В реальной жизни все равно все сложнее, но некоторые из описанных кейсов в любом случае полезны.

😃 iOS Dev
  • ✍ 16
  • ⚡ 3
  • 🙏 1
  • 👻 1
Post #2070 3.23K
Давно себе хотел пополнить коллекцию необычных девайсов и в этот раз добавил себе trmnl - e-ink экран на максималках.

Ребята когда-то на кикстартере собрали 150к вместо требуемых 5к, а потом ещё и выиграли хакатон с решением в виде отдельной читалки (можно чекнуть на гитхабе) для контента в телеге.

Из особенностей: есть гигантская коллекция плагинов на любой вкус, но меня привлекла возможность самому пилить любые нужные фичи (да хоть крашлитикс или апметрику можно прикрутить, кому что нравится).

⭐️ А у вас есть аналоги? Хотите поделиться? Или может даже делаете сами?

😃 iOS Dev
  • 🔥 25
  • 🤩 3
  • 👍 2
  • 💯 2
Post #2069 3.51K
А помните, как появился клод и кодекс, и сразу стало миллион инновационных приложений, каждое запускается за 0.25 секунд, 120 фпс у каждого, сам апстор очистился, и программисты все такие светлые вокруг и все друг другу улыбаются.

Вот и я не помню.

😃 iOS Dev
  • 😁 117
  • 🤣 19
  • 🔥 8
  • 😢 3
  • 👍 1
Post #2068 3.46K
On-demand resources будут задепрекейчены в iOS 27

📖 Ресурсы по запросу (on-demand) это контент, который размещался в App Store и находился отдельно от соответствующего бандла. Они позволяли уменьшить размер приложения, ускорить загрузку и расширить функциональность.

Вместе с ними под deprecated попал и NSBundleResourceRequest.

Теперь Apple рекомендует использовать только Background Assets.

😃 iOS Dev
  • 😢 17
  • 😨 6
  • 😎 3
  • 👏 1
  • 🕊 1
Post #2067 4.47K
Как в Apple переписывают проекты на Swift

Анализаторы шрифтов обрабатывают данные из ненадежных источников, в результате чего TrueType оказывается уязвимым местом, критически важным с точки зрения безопасности.

Чтобы повысить отказоустойчивость формата на платформах Apple, инженеры приняли решение обновить проект с языка C на Swift.

Перед командой стояла амбициозная задача: обеспечить полную безопасность памяти, сохранить 100% попиксельную совместимость рендеринга и не допустить падения производительности.

Для проверки точности инженеры покрыли код тестами на 99,7% и прогнали 27 миллионов глифов из реальных PDF, сравнивая каждый битмап с эталоном.

📖 В этой статье можно посмотреть, какие трюки они использовали для работы с памятью и каких результатов достигли.

😃 iOS Dev
  • 🔥 20
  • 🏆 4
  • 👍 1
Post #2066 4.06K
Библиотека лоадеров для работы с 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
  • 😍 29
  • 🔥 9
  • 👍 2
  • 👏 2
  • 👾 1
Post #2065 3.73K
Создание адаптивных немодальных панелей в SwiftUI

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

😃 iOS Dev
  • 🔥 8
  • ✍ 6
  • 👍 1
  • 👏 1
  • 👾 1
Post #2064 3.86K
Пасхалки в крашлогах 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
  • 🔥 50
  • ❤‍🔥 6
  • 👍 3
  • 👏 2
  • 🎉 1
  • 😨 1
  • 👾 1
Post #2063 3.99K
В Яндексе бьют людей?

Добрался до разбора доклада про внедрение AI, в котором руководитель мобильной разработки заявляет на весь зал, что у них бьют людей (не буквально, это важно) за то, что при использовании ИИ-агентов они отдают вопросы при комментах в пулл-реквестах для LLM.

Ну, даже не знаю как это комментировать.

В целом, все прогнозы сбываются. Вроде и продвигают ИИ в массы, а вроде и с оговорками.

😃 iOS Dev
  • 😁 35
  • 🤣 15
  • 👍 6
  • 😱 6
  • 🔥 1
  • 👏 1
  • 🤯 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →