uz
Feedback
iOS Dev

iOS Dev

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
7 877
Obunachilar
+124 soatlar
-17 kunlar
-5130 kunlar
Postlar arxiv
iOS Dev
7 878
Три важных слова – Митап, Android, Алиса Команда мобильной разработки Алисы приглашает Android-разработчиков на свой первый м
Три важных слова – Митап, Android, Алиса Команда мобильной разработки Алисы приглашает Android-разработчиков на свой первый митап в Екатеринбурге. Расскажем, как использование RFC может улучшить процесс разработки на примере нашей библиотеки для платформ Android и iOS. Поговорим о том, из каких этапов состоит производство станции Дуо Макс и ТВ станций, как мы решаем задачу автоматизации процесса проверки качества производимых устройств. А ещё поделимся нашим опытом и лучшими практиками использования TV Input Framework. Зарегистрироваться можно по ссылке. Реклама. ООО "Яндекс", ИНН 7736207543.

iOS Dev
7 878
Протоколы в iOS: назначение и примеры Даже при частом использовании протоколов начинающие разработчики могут не знать все осо
Протоколы в iOS: назначение и примеры Даже при частом использовании протоколов начинающие разработчики могут не знать все особенности. Например, Identifiable постоянно нужен в SwiftUI, но почему он обычно применяется для списков? Или CustomStringConvertible, который вполне подойдёт для более удобного дебага наших моделей. 📖 В этой статье разбираются популярные протоколы на примерах кода. 🧠 Ах да, кстати, приложение уже в тестфлайте и вы можете получить ранний доступ. Кстати, проголосовавшие в опросе будут приятно удивлены списку тем внутри. 😃 iOS Dev

iOS Dev
7 878
Какие темы обязательно должны быть в первой версии?
Anonymous voting

iOS Dev
7 878
Настраиваемая кнопка с разными состояниями в SwiftUI Конечно, задача мобильных разработчиков далеко не только в покраске кноп
Настраиваемая кнопка с разными состояниями в SwiftUI Конечно, задача мобильных разработчиков далеко не только в покраске кнопок, но знать несколько подходов и обладать арсеналом таких навыков необходимо. SwiftUI в несколько раз упрощает создание переиспользуемой кнопки (и добавление конфигов). 📖 Вот тут можно увидеть подходы к созданию такого элемента на реальных примерах. 😃 iOS Dev

iOS Dev
7 878
Объяснение использования @preconcurrency в Swift Если включить -strict-concurrency для своих существующих проектов, то, вероя
Объяснение использования @preconcurrency в Swift Если включить -strict-concurrency для своих существующих проектов, то, вероятнее всего, при первой компиляции проекта Xcode выдаст множество предупреждений и/или ошибок. Этого можно избежать с использованием @preconcurrency, можно использовать для: 📼 functions 📼 types 📼 protocols 📼 imports С помощью @preconcurrency появляется возможность импортировать старые модули в новый код. Это отличный способ начать постепенно внедрять строгий параллелизм по мере приближения выпуска Swift 6. 📖 В этом посте рассмотрены примеры использования и ошибки, которые могут встретиться. 😃 iOS Dev

iOS Dev
7 878
Как сделать иконку приложения анимированной? Наверняка, многие могли задуматься и раньше, как избежать алерта при выборе альтернативной иконки. Bryce Bostwick, разработчик, знакомый по великолепным постам о реверс-инжиниринге, попробовал покопать глубже, и написал большое исследование о том, как создать иллюзию анимации (на самом деле для этого нужно достаточно часто менять эти иконки). 📖 Почитать увлекательную статью можно здесь (и рекомендую посмотреть остальные статьи блога). 📺 В формате видео вот тут. 🛠 Демо-проект (посмотреть и попробовать повторить) доступен на github. Напоминаю про этот пост, если захотите выложить в стор. ✅Больше крутых эффектов можно увидеь здесь или тут. 😃 iOS Dev

iOS Dev
7 878
Подготовка к собеседованиям: Swift Concurrency Подготовил вопросы, которые помогут новичкам и опытным разработчикам, знакомым
Подготовка к собеседованиям: Swift Concurrency Подготовил вопросы, которые помогут новичкам и опытным разработчикам, знакомым с концепциями параллелизма и заинтересованным в изучении синтаксиса и API Swift Concurrency. Можно узнать что-то новое о приоритетах, выполнении нескольких задач одновременно и многом другом. Задачи постарался по максимуму покрыть примерами с кодом. Некоторые из вопросов уже добавлены в приложение. ✅Доступ можно получить здесь или тут сразу на год. Больше важных тем: 🔗 Блок вопросов: многопоточность (и бонус) 🔗 Собеседования: вопросы на понимание кода 🔗 DispatchQueue: практические вопросы 😃 iOS Dev

iOS Dev
7 878
Что означает spacing = nil в SwiftUI? Понимание принципов Spacing важно при работе со сложной версткой, а владение определенными техниками может помочь добиться эффектов, которые сложно реализовать традиционными методами. Как можно видеть на гифке, когда используется nil, расстояние между Text и соседними элементами больше не равны. Из документации Apple: При установке nil расстояние должно быть дефолтным умолчанию для каждой пары subviews. Но, как оказывается, это значение не фиксировано. 📖 В этой статье объясняется, что на самом деле означает значение nil по умолчанию для параметра Spacing. Кроме того, рассматриваются и другие аспекты, связанные с этим свойством. 😃 iOS Dev

iOS Dev
7 878
Почему загрузка пакетов с помощью Swift Package Manager занимает слишком много времени? Когда мы добавляем зависимость в прое
Почему загрузка пакетов с помощью Swift Package Manager занимает слишком много времени? Когда мы добавляем зависимость в проект через spm, он извлекает весь репозиторий пакета со всеми ветками и полную историю git, которая может представлять собой годы git-снапшотов. Суть проблемы тут. Но почему? На вопрос ответил инженер по инфраструктуре GitHub (обратите внимание на дату комментария), схожая проблема была и в Cocoapods: Поверхностное клонирование по какой-то причине обходится намного дороже, чем клонирование всего репозитория. К тому же GitHub ограничивает скорость в таких репах, что приводит к значительному увеличению времени. Хуже того, фетч может вообще завершиться ошибкой по таймауту. Так в чем же заключается решение? Очевидно, многие компании используют такой подход. Они создают отдельный реп с предварительно скомпилированным .xcframework, при этом пользователь получит только нужную часть исходного репозитория. Например airbnb/lottie применила этот подход и уменьшила размер своего репозитория с +300 МБ до менее 500 КБ! Signal сделал то же самое: отсюда OneSignal-iOS-SDK пришли к оптимизированной версии OneSignal-XCFramework. 📖 Про другой интересный кейс можно прочитать на хабре. 😃 iOS Dev

iOS Dev
7 878
Те, кто подписан на бусти, знают, что кроме ведения канала по мере наличия свободного времени я разрабатываю приложение-компаньон для iOS-разработчиков. С покрытием важных тем, источниками и, надеюсь, интересными вопросами. Сегодня пришло время анонсировать разработку официально. 🧠 IQ — приложение-компаньон для iOS-разработчиков скоро в тестфлайте. Приложение изначально будет доступно только для подписчиков бусти (достаточно уровня База), поэтому если вы хотите поддержать канал, подпишитесь: ❤️❤️❤️❤️❤️ Поддержать канал и получить ранний доступ. 😃 iOS Dev

iOS Dev
7 878
🎉 У меня День Рождения [-Onone] Быть профессионалом, безусловно, важно. Желание, а вместе с ним и стремление смотреть вглубь — необходимое качество не только на нашей работе, но и в жизни. Без оптимизации источников за кажущейся ширмой лёгкого контента часто скрываются киллеры времени. [-Osize] В нашем канале я продолжаю делать акцент на технической составляющей, а не на видео из тик-тока или других филлерах личного пространства. В первую очередь, я разработчик, и только затем — автор канала. Я не распыляюсь на суждения о других блогах и едва ли употребляю слово "самый" чаще, чем это необходимо по причине контрпродуктивности. Нужна ли агрессивная оптимизация? [-O] Иногда приоритет нужно отдать производительности вместо общения в чате. Это может быть непростым выбором, но на дистанции это принесёт свои результаты. 🐾 Спасибо вам за вашу оценку постов, комментарии и за то, что вы здесь. ⬇️One more thing (in progress...).

iOS Dev
7 878
Реализация навигации в SwiftUI с помощью NavigationPath и NavigationDestination 🗺 Вообще, одной из основных проблем в SwiftU
Реализация навигации в SwiftUI с помощью NavigationPath и NavigationDestination 🗺 Вообще, одной из основных проблем в SwiftUI была как раз навигация. До появления NavigationPath существовали некоторые способы решения этой проблемы, но не слишком удобные. 📖 В этом посте рассматриваются особенности NavigationPath (доступной с iOS 16), принципы работы и отличия от UINavigationController в UIKit. ⌚ Некоторое время назад я обновлял таргет для Apple Watch в одном из своих приложений, как раз применяя это сочетание. 😃 iOS Dev

iOS Dev
7 878
Паттерн «Репозиторий» в Swift: разбор и примеры кода 🐱 Шаблон проектирования «Репозиторий» действует как промежуточный урове
Паттерн «Репозиторий» в Swift: разбор и примеры кода 🐱 Шаблон проектирования «Репозиторий» действует как промежуточный уровень между бизнес-логикой приложения и хранилищем данных. С его помощью обеспечивается структурированный способ чтения и записи, абстрагируя при этом базовые детали уровня хранения. При этом можно взаимодействовать с данными, не зная, хранятся ли они в памяти или где-то ещё (у нас может быть и Core Data, и Realm, и кейчейн, да хоть отдельный файл в tmp). Это создает четкое разделение задач и значительно упрощает тестирование. Например, мы можем юзать резервное хранилище в памяти для тестов (при использовании Core Data в проде). Также сам уровень данных будет гораздо более гибким, поскольку появляется возможность заменить используемое хранилище данных без необходимости изменения кода приложения на уровне реализации. Делюсь двумя вариантами применения паттерна: 📖 Шаблон с примерами кода. 📖 Core Data + Repository pattern. Детали реализации. 🍏 А на бусти можно познакомиться с двумя большими разделами по паттернам: 🔗 Структурные паттерны проектирования. 🔗 Порождающие паттерны проектирования (с примерами на Swift). 😃 iOS Dev

iOS Dev
7 878
Как избежать распространенных ошибок при переходе с UIKit на SwiftUI Джереми Гейл опубликовал интересную статью, в которой ес
Как избежать распространенных ошибок при переходе с UIKit на SwiftUI Джереми Гейл опубликовал интересную статью, в которой есть мысль, что разработчики UIKit находятся в невыгодном положении по отношению к новичкам, поскольку знают способы заставить работать вещи, которые больше не актуальны в SwiftUI. Когда я только начинал переносить некоторые проекты на SwiftUI, у меня было похожее ощущение, ведь многое доступно из коробки и так. 📖 В этой статье показан пример рефакторинга SwiftUI. Также в процесе разбираются ошибки, которые допускают разработчики, уже привыкнувшие к UIKit. ✅О других важных подходах при разработке можно прочитать вот тут. 😃 iOS Dev

iOS Dev
7 878
Как измерить производительность с помощью инструментов и os_signposts ⚙️ Инструменты помогают нам не только измерять объём памяти или нагрузку на процессор, но также играют решающую роль в выявлении узких мест. Одна из полезных функций инструментов — возможность добавлять в код указатели (signposts) для определения нужных областей при трассировке. Это особенно полезно, когда у нас много похожих вызовов, и нам нужно измерить время, затраченное на конкретную операцию. 📖 В этой статье можно посмотреть на пример использованиях таких указателей. Полезно будет напомнить и про: 🔗 ETTrace — опенсорсный инструмент для измерения производительности. 🔗 Способы измерения производительности Swift-кода. 🔗 Продвинутые трюки lldb для Swift. ✅ А в ноушне есть дополнительные источники для улучшения арсенала наших инструментов: ➡️Поиск и устранение retain cycle. ➡️Советы по повышению производительности. ➡️Как улучшить отклик приложения: советы инженеров Apple. 😃 iOS Dev

iOS Dev
7 878
Как правильно сделать выбор между Set и Array в Swift? 🔑 Коллекции — ключевой компонент любого языка программирования. Безус
Как правильно сделать выбор между Set и Array в Swift? 🔑 Коллекции — ключевой компонент любого языка программирования. Безусловно, в подаввляющем большинстве ситуаций мы используем Array или Set, но есть и другие виды коллекций (да взять бы даже ArraySlice, который отностися к части массива). 📖 В этой статье рассмотрены особенности Set и Array, ключевые характеристики каждого из них и кейсы использования (а также вопросы производительности). ✅А вот здесь можно ознакомиться не только с базовыми, но и с продвинутыми способами использования массивов. 😃 iOS Dev

iOS Dev
7 878
Доступен ресурс со списком всех сессий WWDC Июнь уже не за горами, а вместе с ним и новая WWDC. И пока мы ожидаем новых фич,
Доступен ресурс со списком всех сессий WWDC Июнь уже не за горами, а вместе с ним и новая WWDC. И пока мы ожидаем новых фич, делюсь источником, где можно посмотреть, что было раньше. 📖 На этом сайте перечислены все WWDC с информацией о 3428 сессиях с 2000 по 2023 год, а также различных технических докладах. Доступно и в JSON. 🔗 Кстати, на гитхабе есть альтернативный источник. 😃 iOS Dev

iOS Dev
7 878
DispatchQueue: практические вопросы 📖 Если вы давно читаете канал, то наверняка знаете про отличную подборку для того, чтобы
DispatchQueue: практические вопросы 📖 Если вы давно читаете канал, то наверняка знаете про отличную подборку для того, чтобы познакомиться с аспектами, возможно, одной из самых сложных тем в разработке. Но, конечно, практических заданий, на которых можно было бы потренироваться, не очень много. В iOS IQ я добавил новый раздел, в котором постарался раскрыть тему от простых задачек к более сложным (в конце даже есть со звёздочкой). Заодно можно проверить и знания и по Dispatch Barrier. ✅ Обновление уже доступно через бот (я бы рекомендовал этот способ) и на бусти. 😃 iOS Dev

iOS Dev
7 878
В Apple удалили 118 000 аккаунтов разработчиков 📎 В большом отчёте Apple опубликовали целый ряд интересных статистических фактов. 🛑 За 2023 год более 100к аккаунтов были закрыты, при этом 91 000 соглашений были отклонены по причине мошенничества. 👨‍💻 Команда App Review (более 500 сотрудников) просматривает около 132 500 приложений в неделю, при этом 192 000 разработчиков впервые выпустили хотя бы один продукт за прошлый год. 😑 Каждый 10-й отзыв в сторе оказался фейковым (было удалено более 100 миллионов рейтингов из миллиарда). Также за последние 4 года в Apple остановили потенциально мошеннические операции на сумму более $7 млрд (заблокировали 14 миллионов украденных кредитных карт). В канале я рассматривал пару лет назад частые причины реджектов (кстати, некоторые, как например покупки на сторонних сайтах, уже не так актуальны). 😃 iOS Dev