fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

AppFiles - Mobile Development

AppFiles - Mobile Development

رفتن به کانال در Telegram

Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.

نمایش بیشتر
2 178
مشترکین
-124 ساعت
اطلاعاتی وجود ندارد7 روز
+230 روز
جذب مشترکین
اکتبر '26
اکتبر '26
+21
در 1 کانال‌ها
سپتامبر '26
+22
در 1 کانال‌ها
Get PRO
اوت '26
+24
در 1 کانال‌ها
Get PRO
ژوئیه '26
+39
در 1 کانال‌ها
Get PRO
ژوئن '26
+31
در 1 کانال‌ها
Get PRO
مه '26
+42
در 1 کانال‌ها
Get PRO
آوریل '26
+26
در 1 کانال‌ها
Get PRO
مارس '26
+35
در 1 کانال‌ها
Get PRO
فوریه '26
+23
در 1 کانال‌ها
Get PRO
ژانویه '26
+45
در 3 کانال‌ها
Get PRO
دسامبر '25
+43
در 3 کانال‌ها
Get PRO
نوامبر '25
+46
در 1 کانال‌ها
Get PRO
اکتبر '25
+132
در 1 کانال‌ها
Get PRO
سپتامبر '25
+38
در 1 کانال‌ها
Get PRO
اوت '25
+40
در 1 کانال‌ها
Get PRO
ژوئیه '25
+31
در 1 کانال‌ها
Get PRO
ژوئن '25
+33
در 1 کانال‌ها
Get PRO
مه '25
+41
در 1 کانال‌ها
Get PRO
آوریل '25
+54
در 2 کانال‌ها
Get PRO
مارس '25
+162
در 1 کانال‌ها
Get PRO
فوریه '25
+42
در 1 کانال‌ها
Get PRO
ژانویه '25
+40
در 1 کانال‌ها
Get PRO
دسامبر '24
+50
در 1 کانال‌ها
Get PRO
نوامبر '24
+65
در 1 کانال‌ها
Get PRO
اکتبر '24
+52
در 1 کانال‌ها
Get PRO
سپتامبر '24
+48
در 1 کانال‌ها
Get PRO
اوت '24
+81
در 2 کانال‌ها
Get PRO
ژوئیه '24
+48
در 1 کانال‌ها
Get PRO
ژوئن '24
+41
در 1 کانال‌ها
Get PRO
مه '24
+29
در 1 کانال‌ها
Get PRO
آوریل '24
+18
در 1 کانال‌ها
Get PRO
مارس '24
+26
در 2 کانال‌ها
Get PRO
فوریه '24
+25
در 1 کانال‌ها
Get PRO
ژانویه '24
+36
در 1 کانال‌ها
Get PRO
دسامبر '23
+49
در 2 کانال‌ها
Get PRO
نوامبر '23
+20
در 2 کانال‌ها
Get PRO
اکتبر '23
+35
در 2 کانال‌ها
Get PRO
سپتامبر '23
+25
در 0 کانال‌ها
Get PRO
اوت '23
+16
در 0 کانال‌ها
Get PRO
ژوئیه '23
+16
در 0 کانال‌ها
Get PRO
ژوئن '23
+27
در 0 کانال‌ها
Get PRO
مه '23
+99
در 0 کانال‌ها
Get PRO
آوریل '23
+34
در 0 کانال‌ها
Get PRO
مارس '23
+28
در 0 کانال‌ها
Get PRO
فوریه '23
+62
در 0 کانال‌ها
Get PRO
ژانویه '23
+31
در 0 کانال‌ها
Get PRO
دسامبر '22
+21
در 0 کانال‌ها
Get PRO
نوامبر '22
+13
در 0 کانال‌ها
Get PRO
اکتبر '22
+25
در 0 کانال‌ها
Get PRO
سپتامبر '22
+11
در 0 کانال‌ها
Get PRO
اوت '22
+9
در 0 کانال‌ها
Get PRO
ژوئیه '22
+16
در 0 کانال‌ها
Get PRO
ژوئن '22
+23
در 0 کانال‌ها
Get PRO
مه '22
+38
در 0 کانال‌ها
Get PRO
آوریل '22
+65
در 0 کانال‌ها
Get PRO
مارس '22
+29
در 0 کانال‌ها
Get PRO
فوریه '22
+48
در 0 کانال‌ها
Get PRO
ژانویه '22
+60
در 0 کانال‌ها
Get PRO
دسامبر '21
+26
در 0 کانال‌ها
Get PRO
نوامبر '21
+26
در 0 کانال‌ها
Get PRO
اکتبر '21
+19
در 0 کانال‌ها
Get PRO
سپتامبر '21
+27
در 0 کانال‌ها
Get PRO
اوت '21
+35
در 0 کانال‌ها
Get PRO
ژوئیه '21
+22
در 0 کانال‌ها
Get PRO
ژوئن '21
+20
در 0 کانال‌ها
Get PRO
مه '21
+11
در 0 کانال‌ها
Get PRO
آوریل '21
+46
در 0 کانال‌ها
Get PRO
مارس '21
+34
در 0 کانال‌ها
Get PRO
فوریه '21
+44
در 0 کانال‌ها
Get PRO
ژانویه '21
+32
در 0 کانال‌ها
Get PRO
دسامبر '20
+1 148
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
26 اکتبر+3
25 اکتبر0
24 اکتبر0
23 اکتبر+2
22 اکتبر0
21 اکتبر+1
20 اکتبر+1
19 اکتبر+1
18 اکتبر0
17 اکتبر+1
16 اکتبر0
15 اکتبر0
14 اکتبر0
13 اکتبر+1
12 اکتبر0
11 اکتبر+1
10 اکتبر0
09 اکتبر+2
08 اکتبر+1
07 اکتبر+2
06 اکتبر+2
05 اکتبر0
04 اکتبر+2
03 اکتبر0
02 اکتبر+1
01 اکتبر0
پست‌های کانال
Over The Air обновления Kotlin-кода для Android-приложений Как мы сделали настоящие OTA-обновления для Kotlin-приложений: не
Over The Air обновления Kotlin-кода для Android-приложений Как мы сделали настоящие OTA-обновления для Kotlin-приложений: не только UI, но и бизнес-логика, функции и состояние — при этом основную тяжёлую работу выполняет сам рантайм Android. Статья: https://apptractor.ru/info/articles/over-the-air-obnovleniya-kotlin-koda-dlya-android-prilozheniy.html Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

2
ChaosBank — 131 переключаемый баг для тренировки мобильного тестирования Оба проекта под MIT. По функциональности это небольш
ChaosBank — 131 переключаемый баг для тренировки мобильного тестирования Оба проекта под MIT. По функциональности это небольшой необанк с брокером акций и крипты, примерно в духе Revolut и Robinhood. Сейчас в нём 131 именованный дефект, и к каждому есть короткое письменное упражнение. Начинал я это как стенд для собственных экспериментов, но, возможно, он пригодится и как тренировочная площадка тем, кто только начинает в мобильной разработке или мобильном QA. Ниже — как всё устроено, как я бы стал этим пользоваться и пара вещей, в которых я пока не уверен. Статья: https://habr.com/ru/articles/1098668/ Платформа: тестирование 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
195
3
Прежде чем работать с AIDL: разбираемся, как устроен IDL Расскажу в двух статьях о языке определения интерфейсов (Interface D
Прежде чем работать с AIDL: разбираемся, как устроен IDL Расскажу в двух статьях о языке определения интерфейсов (Interface Definition Language, IDL) и платформенном механизме, который построен поверх этой идеи в Android — Android Interface Definition Language (AIDL). Начну рассказ с IDL — что это за язык и какую задачу он решает. Здесь будет только теоретическая информация. Примеры кода, внутренности Android и важные технические детали будут во второй статье. Статья: https://habr.com/ru/companies/vk/articles/1096294/ Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
180
4
Вылечил лагающий телевизор Xiaomi за 10 минут: реклама, слежка и YouTube — без root и с откатом На прошлой неделе на GitHub взлетел проект CleanYourTV: автор попросил ИИ-ассистента почистить телевизор родителей от рекламы и за четыре дня собрал 16 тысяч звёзд и статью в TechCrunch. Я открыл его списки — и не нашёл ни Яндекс ТВ, ни Салют ТВ, ни российских прошивок Xiaomi. Зато мой собственный Xiaomi на Android 9 лагал так, что меню открывалось через пару секунд после нажатия. Я сделал ЧистыйТВ — скрипт для Windows, который по Wi-Fi находит телевизор, отключает рекламу и телеметрию по проверенным спискам, ставит YouTube без рекламы и откатывает всё одной командой. Ниже — что на самом деле крутится внутри «умного» телевизора, какие пакеты отключать нельзя ни в коем случае (некоторые превращают ТВ в кирпич до сброса) и на какие грабли я наступил при первом запуске. Статья: https://habr.com/ru/articles/1097472/ Платформа: разработка 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
174
5
Tellyscope - очистка Android TV Tellyscope - приложение очищает Android TV от лишних приложений, позволяет устанавливать прог
Tellyscope - очистка Android TV Tellyscope - приложение очищает Android TV от лишних приложений, позволяет устанавливать программы, просматривать и передавать файлы. И всё это прямо со смартфона. Без root-прав и без компьютера. Для работы Tellyscope необходим смартфон на базе Android 8.0 или новее, подключенный к той же сети Wi-Fi, что и телевизор, а также телевизор с активированными параметрами разработчика. Tellyscope на GitHub: https://github.com/man15h/tellyscope Платформа: Android ⭐️: 126 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
182
6
Интеллектуальная собственность в мобильном приложении Многие предприниматели стремятся разработать мобильное приложение для у
Интеллектуальная собственность в мобильном приложении Многие предприниматели стремятся разработать мобильное приложение для удобства доступа потребителей к его продукту/услуге, узнаваемости и, как следствие, для роста продаж. Вместе с тем, не каждый предприниматель задумывается, что создаваемые результаты интеллектуальной деятельности (РИД): иконка, название приложения и/или его разделов, интерфейсы страниц (их композиционное, цветовое, шрифтовое решения), и конечно, функционал приложения — всё это потенциально можно превратить в интеллектуальную собственность. Как это сделать? Прежде всего, любой РИД создается человеком — автором. В процессе создания приложения многие РИДы являются объектами авторского права. Статья: https://habr.com/ru/articles/1097916/ Платформа: разработка 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
253
7
📺 Видео и подкасты за неделю • (iOS Ru) Metal без магии — когда GPU ускоряет, а не мешает • (iOS Ru) Как легально опубликова
📺 Видео и подкасты за неделю • (iOS Ru) Metal без магии — когда GPU ускоряет, а не мешает • (iOS Ru) Как легально опубликоваться вне App Store • (iOS Ru) Как и зачем писать игровой движок на Swift • (iOS En) Instagram's Swipeable Feed-to-Camera Interaction Using SwiftUI • (iOS En) Your iPhone App Needs This Before Supporting iPhone Duo • (And Ru) Явное лучше неявного, или Shift left в Android-сборке • (And Ru) Как читать метрику памяти и искать прожорливые экраны • (Dev Ru) Как подружить мобильное приложение с JS и прокачать свой SDUI • (Dev Ru) Разделяй и властвуй: распил мобильного приложения на микросервисы • (Dev Ru) Rust в мобильной разработке • (Dev Ru) Насколько опасен ИИ для кибербезопасности • (Dev En) How this skill helps me to understand AI code • (Dev En) The Tech Market Changed. Here's How to Survive It. • (Mrk Ru) Хэллоуин: ASO и монетизация мобильных игр Прошлогодние видео: • (And Ru) Как обеспечить стабильную работу SDK для миллионов устройств • (Crs Ru) Что ждёт Kotlin Multiplatform разработчика на собесе? (все собеседования) 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
1 837
8
HackiOS - запуск iOS на Linux HackiOS загружает открытое ядро Apple XNU (xnu-8796.121.2, ядро iOS 16.5) на аппаратном обеспеч
HackiOS - запуск iOS на Linux HackiOS загружает открытое ядро Apple XNU (xnu-8796.121.2, ядро iOS 16.5) на аппаратном обеспечении Android-смартфона и запускает поверх него неизменённое пользовательское пространство iOS 16.5: launchd → backboardd → SpringBoard → приложения. Это стало возможным благодаря собственному EFI-загрузчику, собственным заменам закрытых драйверов Apple, порту UEFI и Linux-драйверу Wi-Fi, работающему через слой совместимости. Система работает в двух вариантах: • POCO X5 Pro 5G (redwood, Snapdragon 778G) — ничего не прошивается: UEFI запускается через fastboot boot, вся система работает из оперативной памяти, а после перезагрузки телефон возвращается к Android; • QEMU (virt, aarch64) — то же самое можно запустить на любом Linux-компьютере, телефон для этого не нужен. Пока не работают сотовая связь, Bluetooth, зарядка под собственным ядром, запись видео и Live Photo, вход в Apple ID и содержимое App Store. Причина последних ограничений связана в том числе с отсутствием Secure Enclave и тем, что FairPlay daemon завершается. Главное техническое ограничение сейчас — Metal для приложений. Работа уже идёт: 293 из 456 системных шейдеров удалось запустить на Adreno. Поэтому HackiOS уже выглядит как достаточно функциональная iOS-среда на Android-железе, но до полноценной замены обычного iPhone ей пока далеко. HackiOS на GitHub: https://github.com/oosexgang/hackios-xnu-kernel Платформа: iOS/Android ⭐️: 654 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
243
9
Jetpack Compose 1.12: как я наконец отказался от «ненастоящих» градиентов Я не могу сосчитать, сколько раз дизайнер присылал
Jetpack Compose 1.12: как я наконец отказался от «ненастоящих» градиентов Я не могу сосчитать, сколько раз дизайнер присылал мне красивый мягкий градиент, а я отвечал тремя наложенными radialGradient, blur и молитвой. На эмуляторе всё выглядело отлично; на настоящем OLED-экране — блекло. Compose 1.12 решает обе проблемы. Статья: https://apptractor.ru/info/articles/jetpack-compose-1-12-kak-ya-nakonets-otkazalsya-ot-nenastoyaschih-gradientov.html Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
271
10
Прощай, project.pbxproj, здравствуй, JSON: крупнейшее изменение Xcode за 30 лет Apple наконец заменила самый пугающий файл в
Прощай, project.pbxproj, здравствуй, JSON: крупнейшее изменение Xcode за 30 лет Apple наконец заменила самый пугающий файл в каждом iOS-репозитории. Вот что изменилось, как перейти на новый формат и стоит ли это делать — с объяснениями для джунов, сеньоров и тимлидов. Статья: https://apptractor.ru/info/articles/proschay-project-pbxproj-zdravstvuy-json-krupneyshee-izmenenie-xcode-za-30-let.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
259
11
UIKit говорит, что интерфейс уже RTL. Почему тогда половина экрана осталась LTR? Представьте: пользователь переключает язык п
UIKit говорит, что интерфейс уже RTL. Почему тогда половина экрана осталась LTR? Представьте: пользователь переключает язык приложения с английского на арабский. Интерфейс перестраивается, кнопки меняются местами, навигация переезжает на другую сторону. Вроде всё работает. Но затем открываешь следующий экран и замечаешь, что стрелка Back смотрит не туда. Возвращаешься назад, открываешь форму, а текстовое поле ведёт себя странно при вводе латиницы. Ещё одно переключение языка, и часть интерфейса снова оказывается в LTR. Статья: https://habr.com/ru/articles/1097336/ Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
261
12
Sketchy - рисованные анимированные иллюстрации и empty states для Compose Multiplatform Sketchy — это библиотека Kotlin Multi
Sketchy - рисованные анимированные иллюстрации и empty states для Compose Multiplatform Sketchy — это библиотека Kotlin Multiplatform с иллюстрациями в стиле набросков и линейной графики — тёплыми, «человечными» изображениями, которые хорошо подходят для онбординга и пустых состояний. Все они полностью рисуются через Canvas, изначально поддерживают анимацию и полностью настраиваются под тему вашего приложения. Библиотека работает на Android, iOS, desktop и web из одного source set commonMain. Sketchy на GitHub: https://github.com/Ali0092/Sketchy Платформа: Android/кроссплатформа ⭐️: 39 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
283
13
Как Grab сократил ANR на 32% и улучшил время запуска на 35% благодаря R8 Grab — ведущий суперапп Юго-Восточной Азии, который
Как Grab сократил ANR на 32% и улучшил время запуска на 35% благодаря R8 Grab — ведущий суперапп Юго-Восточной Азии, который предлагает доставку, транспортные и финансовые услуги миллионам пользователей в восьми странах через одно приложение. За 10 лет кодовая база выросла до более чем 10 млн строк кода и сотен сторонних библиотек, а сборка использовала гибридную связку Bazel и Gradle. В итоге команда столкнулась с тремя растущими проблемами: высоким уровнем ошибок Application Not Responding (ANR), постоянно увеличивающимся размером приложения и постепенно ухудшающимся временем запуска. Включив оптимизацию R8, доработав keep rules и внедрив Baseline Profiles и Startup Profiles, Grab снизил воспринимаемый пользователями уровень ANR на 32%, уменьшил размер загрузки приложения примерно на 30% и ускорил запуск на 35%. Статья: https://apptractor.ru/info/articles/kak-grab-sokratil-anr-na-32-i-uluchshil-vremya-zapuska-na-35-blagodarya-r8.html Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
291
14
SimulatorCamera - камера для iOS-симулятора У iOS Simulator никогда не было настоящей камеры. AVCaptureDevice возвращает nil. Любое приложение, которое работает с камерой — сканеры QR-кодов, считыватели штрихкодов, захват документов, ML-конвейеры, AR-прототипы, видеозвонки, — либо подменяет работу камеры заглушкой, либо запускается только на физических устройствах, либо содержит ненадёжный запасной вариант вроде «использовать фото вместо камеры». SimulatorCamera регистрирует виртуальную камеру на системном уровне macOS с помощью API Apple CMIOExtension. iOS Simulator в Xcode 16+ видит эту виртуальную камеру через стандартный AVFoundation. Ваш существующий код с AVCaptureSessionпросто работает. Никакой интеграции SDK. Никаких изменений в Info.plist. Никаких веток #if targetEnvironment(simulator). Что вы получаете: • Веб-камера Mac → iOS Simulator — существующее приложение получает кадры с частотой 30 FPS и разрешением 1280×720 • Видео как источник — можно использовать любой MP4 / MOV / HEVC, воспроизведение зацикливается без разрывов • Статичное изображение как источник — выберите PNG / JPG, и оно станет видеопотоком камеры • Генератор QR-кодов — программная генерация QR для тестирования сканеров • Тестовый шаблон — встроенные цветные полосы / движущаяся полоса, всегда доступны • CLI simcamctl — например, simcamctl set-source --qr "TOKEN" для CI и ИИ-агентов • Никакого SDK — вашему iOS-приложению не нужно импортировать или линковать что-либо из этого проекта • Физическое устройство не требуется — всё работает целиком внутри iOS Simulator • Бесплатно, открытый исходный код, лицензия MIT — можно форкать, распространять, продавать, никаких отчислений SimulatorCamera на GitHub: https://github.com/dautovri/SimulatorCamera Платформа: iOS ⭐️: 59 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
284
15
Производительность SwiftUI: как находить перерисовки в Xcode Instruments Проблемы с производительностью SwiftUI часто сводятс
Производительность SwiftUI: как находить перерисовки в Xcode Instruments Проблемы с производительностью SwiftUI часто сводятся к двум вещам: представления либо перерисовываются слишком часто, либо их body выполняется слишком долго. Прежде чем что-то исправлять, нужно понять, какие именно представления виноваты и что вызывает их обновление. Xcode Instruments способен показать это довольно точно — если знать, где смотреть. В этой статье я покажу, как находить перерисовки SwiftUI и измерять их стоимость в Xcode Instruments. Мы запишем трассировку с шаблоном SwiftUI, изучим дорожку SwiftUI и представления View Body Updates, чтобы увидеть, какое представление сколько раз обновляется, сколько занимает каждое обновление и что именно его вызвало. Если вы раньше пользовались Self._printChanges(), то Instruments — следующий шаг, когда нужно понять, сколько эти перерисовки реально стоят. Статья: https://apptractor.ru/info/articles/proizvoditelnost-swiftui-kak-nahodit-pererisovki-v-xcode-instruments.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
278
16
Гравицапа для GPU: OpenGL ES на Kotlin DSL на примере 3D‑«Жизни» Конвея Наконец‑то я закончил работу над новым большим блоком
Гравицапа для GPU: OpenGL ES на Kotlin DSL на примере 3D‑«Жизни» Конвея Наконец‑то я закончил работу над новым большим блоком RedByteFX, тем самым, который в планах звучал скромно: «а ещё было бы неплохо OpenGL ES». «Неплохо» растянулось на много вечеров и вылилось в версию 1.2.0, которая уже лежит в Maven Central. Если коротко: теперь на Kotlin DSL можно писать не только эффекты для Compose, но и полноценную 3D‑графику и вычисления на GPU. Если подробно, то читайте дальше: я покажу всё на живом примере и сравню с тем, как пришлось бы писать без библиотеки. Статья: https://habr.com/ru/articles/1095948/ Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
271
17
Swift на Android: путь к сингулярности. От анонса SwiftJava до полноценного приложения Сегодня мы с вами обсудим наработки от
Swift на Android: путь к сингулярности. От анонса SwiftJava до полноценного приложения Сегодня мы с вами обсудим наработки от Apple. Какую технологию они представили еще в 2025 году, что изменилось со времени, как Apple выпустили официальный релиз Swift SDK для Android. А также мы посмотрим, как написать настоящее приложение, где вся бизнес-логика живёт на Swift, а UI на Compose. Статья в двух частях: первая и вторая Платформа: кроссплатформа 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
273
18
Mac.apk - запуск Android-приложений нативно на Apple Silicon Mac.apk запускает Android-приложения непосредственно на Apple Si
Mac.apk - запуск Android-приложений нативно на Apple Silicon Mac.apk запускает Android-приложения непосредственно на Apple Silicon. Приложения стартуют как обычные процессы macOS, отрисовывают графику через GPU Mac и выполняются на CPU с нативной скоростью. Они появляются в Dock, получают собственные окна с кнопкой «Назад» рядом со стандартными кнопками управления окном, могут менять размер и ориентацию как обычные окна macOS и автоматически переключаются между светлой и тёмной темой вместе с Mac. Android TV-приложениями можно управлять с клавиатуры, а игровые лаунчеры способны запускать другие установленные приложения. Здесь нет ни эмулятора, ни виртуальной машины. В фоне не загружается Android, под системой не работает ядро Linux, а инструкции не интерпретируются одна за другой. Mac.apk напрямую реализует среду выполнения Android-приложений поверх macOS. Mac.apk на GitHub: https://github.com/kksimp/Mac.apk Платформа: Android ⭐️: 901 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
290
19
Как я проектирую SwiftUI-приложения с Swift Concurrency, чтобы компилятор не выдавал предупреждений Структурирование SwiftUI-
Как я проектирую SwiftUI-приложения с Swift Concurrency, чтобы компилятор не выдавал предупреждений Структурирование SwiftUI-приложения для меня всегда сводилось к одним и тем же целям: хорошо организованный код, компоненты, каждый из которых выполняет одну задачу, и приложение, которое остаётся поддерживаемым по мере роста. Я хочу быстро находить нужные вещи, менять одну функцию, не ломая остальные, и использовать превью без зависимости от сервера. Swift concurrency добавила ко всему этому ещё одну проблему, и довольно болезненную. Как только появляются сеть, кэширование или аутентификация, компилятор начинает жаловаться. Ошибки Sendable, ошибки изоляции main actor, предупреждения о гонках данных. Добавляешь где-нибудь @MainActor, и новая ошибка появляется уже в другом месте. В какой-то момент начинаешь задаваться вопросом: Swift concurrency вообще нормально работает со SwiftUI? И если да, то как нужно структурировать приложение, чтобы они не конфликтовали друг с другом? Работает. В этой статье я покажу, как структурирую свои SwiftUI-приложения, чтобы они оставались организованными и удобными в поддержке, а SwiftUI и Swift concurrency работали вместе, а не друг против друга. Статья: https://apptractor.ru/info/articles/kak-ya-proektiruyu-swiftui-prilozheniya-s-swift-concurrency.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
319
20
Blueprint - генерация отладочных иконок Blueprint - небольшая CLI-утилита для iOS/macOS-разработки, которая автоматически пре
Blueprint - генерация отладочных иконок Blueprint - небольшая CLI-утилита для iOS/macOS-разработки, которая автоматически превращает обычную иконку приложения в blueprint-версию для Debug-сборок, примерно в стиле иконки Xcode. Главная идея: чтобы тестовую/отладочную сборку на устройстве было сразу видно и не перепутать с продакшеном. Она умеет работать как с новыми файлами Icon Composer .icon, так и с обычными AppIcon.appiconset. На выходе она создаёт отдельную иконку вроде AppIconDebug.icon или AppIconDebug.appiconset, после чего её можно назначить для Debug-конфигурации через ASSETCATALOG_COMPILER_APPICON_NAME. Исходную иконку библиотека не перезаписывает.  Blueprint на GitHub: https://github.com/MustafaNatur/blueprint Платформа: iOS ⭐️: 114 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
320