iOS.Devs
5.52K subscribers
93 photos
4 videos
1 file
838 links
Всё самое актуальное из мира iOS разработки. По вопросам @suriksarkisyan

При поддержке qonversion.io

Чат: @ios_camp_chat.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Небольшой материал для всех, кто использует SwiftUI и хочет чуть упросить работу с кнопками и сделать их (кнопки, как класс Button в смысле) асинхронными.
Автор рассказывает (и показывает) о своей небольшой библиотечке для асинхронных кнопок.
https://blog.thomasdurand.fr/story/2024-01-14-asynchronous-swiftui-buttons
Одна из проблем SwiftUI (а точнее плохого использования SwiftUI) - частый ререндер.
Уже не так мало, а будет еще больше, статей на тему того, как же правильно использовать SwiftUI, чтобы избежать частых ререндеров. Из-за которых падает фпс, греются и быстрее разряжаются девайсы и много чего еще.
Вот хорошая статья, где автор описывает основные принципы, которым нужно следовать, чтобы избегать ререндера вьюшек в SwiftUI. И помимо описания этих принцпипов есть еще и конкретные объяснения и причины, почему нужно делать так! 👍
https://medium.com/@shashidj206/how-to-avoid-repeating-swiftui-view-updates-ec1fce0349a9
Изучаем SwiftUI дальше!
О View в SwiftUI и о том, как сохранить полиморфизм! Очень важная штука вообще-то говоря.
https://medium.com/the-swift-cooperative/swiftui-view-models-a-polymorphic-approach-8911a992892b
И еще про SwiftUI!
Про сравнение использования view и модификаторов на примере простой вьюшки с текстом и картинкой.
https://swiftbysundell.com/articles/swiftui-views-versus-modifiers/
Несколько дней назад Apple анонсировали большие изменения для EU региона. Информация в целом будет полезна всем, кто дистрибьютит свои приложения.
Речь о том, что станут доступны альтернативные сторы, способы оплаты и всё связанное с этим 😱
Пока выглядит немного туманно и не до конца понятно, как это будет выглядеть, но в любом случае, лёд тронулся. Будем наблюдать за происходящим с интересом!
https://www.apple.com/newsroom/2024/01/apple-announces-changes-to-ios-safari-and-the-app-store-in-the-european-union/
Небольшой лайфхак для всех, кто использует SwiftUI.
Ловите кусок кода, который поможет вам понять, когда отрисовка вашей вьюшки занимает слишком много времени или просто висит.
В общем полезный кусок кода, который поможет вам в дебагинге.
https://wadetregaskis.com/swiftui-main-thread-hang-detector/
This media is not supported in your browser
VIEW IN TELEGRAM
Я не знаю зачем вам это, но я уверен, что пригодится!
Репозиторий с примером использования библиотечки HandShadows.
Библиотека для создания таких вот тенюшек под ваши клики(gesture). Удобно снять какое-нибудь демо видео для вашей новой фичи, например 👍
https://github.com/adamwulf/HandShadowsExample
Я уже не один раз делился материалами про Swift Concurrency. В том числе и видео с WWDC 🎥
И я надеюсь, что базовые сценарии все уже разобрали и понимают как использовать, поэтому вот материал про не самые частые в работе кейсы, но очень важные. И когда такая задача появляется, важно сделать её максимально правильно.
Я про одновременную обработку N-ного количества запросов, либо с ожиданием друг друга, либо с полной параллельностью и обработкой одного ответа для всех. И про проблемы, которые могут возникнуть в процессе.
В общем это всякие загрузки картинок, отправка пачки запросов на сервер и так далее.
Материал полностью покрывает эту тему и помогает подобрать нужное решение. Ну или провалидировать всё ли у вас правильно реализовано 🔥
https://developer.apple.com/videos/play/wwdc2021/10134
Наверное, не все знают, но на симуляторе можно сделать запись экрана. Например, чтобы сделать классную превьюшку для стора, где пройдетесь по основным фичам вашего приложения.
Но еще это видео должно соответствовать некоторым требованиям Apple. По длине и прочему.
Вот небольшой материал про это, где показывается, как это сделать и также, при помощи RocketSim (много постов про неё было) оптимизируется под требования Apple. Например, корректирует аудио дорожку, устанавливает правильное разрешение и так далее.
В общем в некоторых (наверное, достаточно редких, но всё же) случаях может быть полезно.
https://www.avanderlee.com/workflow/capture-ios-simulator-video-app-preview/
Если вы еще не переехали на async/await, то, наверняка, используете completion блоки.
Вот материал о том, как сделать эти блоки намного безопаснее! Внутри есть и видео материал, если вам так удобнее 👍
https://www.swiftwithvincent.com/blog/how-to-make-a-completionhandler-much-safer
Если вы используете Swift Concurrency, то наверняка приходится (или еще придется) работать с Actors.
Вот материал про то, какие проблемы с ними могут быть и про небольшие фикши по работе с Actors!
https://alexdremov.me/swift-actors-common-problems-and-tips/
Возможно, многие уже знают или хотя бы что-то слышали про Copilot. Это такая тулза, которая при помощи AI помогает вам писать код. То есть дает готовые куски, помогает дописать и так далее. За качество этого кода ничего сказать не могу, но многим вроде как нравится.
Если вдруг хотите интегрировать себе эту штуку (может хотя бы попробовать и немного побаловаться) в iOS проект, то вот подробная статья о том, как это сделать!
https://medium.com/globant/boost-your-productivity-integrate-github-copilot-with-xcode-94a0ee74b961
Знаете ли вы, что такое @ScaledMetric? Даже если да, думаю этот материал будет полезен и вам.
Тут и объяснение зачем нужен этот модификатор и сразу примеры использования с результатом 👍
https://www.avanderlee.com/swiftui/scaledmetric-dynamic-type-support/
Держите совсем уникальный материал. Про новый язык для конфигураций и конфиг файлов - Pkl (Pickle)!
Альтернатива всяким JSON, YAML и прочим.
Авторы говорят, что предыдщуие форматы не очень удобны, много где можно ошибиться, много копипасты приходится писать и так далее.
И предлагают альтернативу. А в статье подробно об этом рассказывают, хвалят и показывают.
Пока непонятно, конечно, сможет ли Pkl занять нишу, но выглядит все равно интересно 👍
https://pkl-lang.org/blog/introducing-pkl.html
Всем, кто изучает SwiftUI будет очень полезно разобраться в одной из основных тем - Alignment. То есть всякие основы верстки и выравнивания компонентов.
Вот хороший материал с коротеньким текстовым описанием и большим видео-материалом с примерами кода и результата! Рекомендую посмотреть видео 🔥
https://www.hackingwithswift.com/books/ios-swiftui/alignment-and-alignment-guides
Очень (прямо очень) крутой ресурс по тому, как работает верстка в SwiftUI!
Сайт с разным набором штук связанных с версткой в SwiftUI, где можно зайти и на конкретном примере посмотреть код и результат работы. Подвигать ползунки, посмотреть, как меняется верстка и так далее.
Выглядит очень классно и ресурс дальше развивается, так что следите за обновлениями! 🔥
https://www.swiftuifieldguide.com/
Если задумываетесь о добавлении в ваш проект нормальной системы логирования происходящего, то вот хороший материал про эпловский фреймворк OSLog!
В целом статья без каких-то уникальных находок. Просто обзор инструмента с примерами использования 👍
https://useyourloaf.com/blog/xcode-console-and-unified-logging/
Небольшой обучающий материал (с большим количеством примеров) для совсем новичков о том, что такое Extensions и как с ними работать, в каких случаях они подходят лучше всего и так далее.
https://www.avanderlee.com/swift/extensions/
Хорошая статья о том, как работать с типизированными ошибками в Swift, когда вы используете throw и разный набор ошибок.
Возможно, у вас есть опыт работы с таким подходом в других языках и вы ничего нового не найдете, но если нет, то материал точно будет полезным. А еще он совсем коротенький, очень понятный и полезный 👍
https://www.donnywals.com/designing-apis-with-typed-throws-in-swift/