en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

iOS Dev

iOS Dev

Open in Telegram

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

Show more
7 966
Subscribers
+324 hours
+207 days
+5530 days
Posts Archive
iOS Dev
7 969
Диспетчеризация потоков и Actors: как их использовать Акторы обеспечивают выполнение кода в определенном потоке (например, в
Диспетчеризация потоков и Actors: как их использовать Акторы обеспечивают выполнение кода в определенном потоке (например, в основном или фоновом). Они помогают синхронизировать доступ к мутабельным состояниям и предотвращать потенциальные гонки данных. 📖 В этой статье рассматривается, что происходит при вызове методов, помеченных любым атрибутом actor и как избегать непредвиденных сбоев приложения при определенных контекстах. 😃 iOS Dev

iOS Dev
7 969
Разделение данных на примере использования .chunked() 🧑‍💻 Один из самых важных источников знаний для просмотра реализации т
Разделение данных на примере использования .chunked() 🧑‍💻 Один из самых важных источников знаний для просмотра реализации тех или иных алгоритмов — Swift Algorithms. Например, если вы пишете много длинных и непростых для чтения циклов, то есть вполне приличный шанс, что уже существует нужный алгоритм. 🌎 Допустим, в приложении для путешествий нужно показать список всех мест, которые вы посетили или планируете посетить, отсортированных и сгруппированных по дате в порядке убывания. 📖 В этом посте рассматривается, как юзать алгоритм .chunked() для разделения массива и отображения результатов в нужном виде. 😃 iOS Dev

iOS Dev
7 969
Комбинирование разных типов диаграмм для создания уникального дизайна Существует множество различных типов графиков. Они прос
Комбинирование разных типов диаграмм для создания уникального дизайна Существует множество различных типов графиков. Они просты в использовании и обладают широкими возможностями настройки. 📖 Например, в этой статье автор создаёт комбинированную диаграмму для отображения данных на базе Line Chart и Area Chart. 😃 iOS Dev

iOS Dev
7 969
Swift-библиотека для моделирования и визуализации графов ⭐️Её целью является расположение узлов графа так, что все рёбра имели бы более-менее одинаковую длину, ну и свести к минимуму число пересечений рёбер. Часто подобное можно увидеть в визуализации соцсетей, связей страниц в той-же вики, например, и так далее. Вы наверняка видели разные реализации таких штук на других языках, но вдруг вам пригодится и такое решение. 🛠 Сама либа от Zhen Li доступна здесь, и получившийся итог завораживает! 😃 iOS Dev

iOS Dev
7 969
❗ В России разрешили использовать альтернативные способы покупок в App Store! Для этого нужно будет использовать StoreKit Ext
❗ В России разрешили использовать альтернативные способы покупок в App Store! Для этого нужно будет использовать StoreKit External Purchase Link Entitlement, выполнить ряд условий и заполнить форму. При этом комиссия Apple составит 27 % от выручки. Важнейший шаг к альтернативным сторам? 😃 iOS Dev

iOS Dev
7 969
8 советов по оптимизации приложения для iOS 📺 Itay Brenner и Vincent Pradeilles дают практические советы и разбирают способы повышения производительности в видео. Более детально разделы доступны по следующим тайм-кодам: 1️⃣ Работа с бинарными символами. 2️⃣ Шаринг кода и ресурсов. 3️⃣ Оптимизация ассетов. 4️⃣ Сохранение основного потока лёгким по возможности. 5️⃣ Использование Static Dispatch. 6️⃣ Разбор менеджеров пакетов, их преимущества и недостатки. 7️⃣ Оптимизация CoreML-моделей. 8️⃣ Про постоянные улучшения. 😃 iOS Dev

iOS Dev
7 969
Добавление Firebase Analytics замедляет запуск приложения на 30% Emerge Tools замерила производительность топовых аналитическ
Добавление Firebase Analytics замедляет запуск приложения на 30% Emerge Tools замерила производительность топовых аналитических SDK для iOS. 👨‍💻 Тестили на базовом приложении под iOS (тот, что по дефолту при создании проекта), так как его размер всего 118,5 КБ и нет доп. нагрузки. Либы добавляли через SPM, а затем сравнивали размер и производительность каждого запуска. 📖 Интересные выводы и результаты других SDK в этом посте. Кстати, тут же и объясняется, почему выбрали относительное, а не абсолютное время сравнения. 😃 iOS Dev

iOS Dev
7 969
Обновление местоположения пользователя с помощью Core Location и Swift Concurrency 😎 Мы можем создавать собственные обертки
Обновление местоположения пользователя с помощью Core Location и Swift Concurrency 😎 Мы можем создавать собственные обертки для управления доступом к основным сервисам iOS, используя возможности Swift. Например, для решения задачи получения геолокации через Core Location можно задействовать CheckedContinuation. 📖 А в этом материале рассказано, как написать свой Location Manager, запросить авторизацию и правильно обновлять локацию пользователя. 😃 iOS Dev

iOS Dev
7 969
Универсальный датасорс (хранилище данных) в iOS-разработке Такие решения предоставляют разработчикам API для доступа к данным
Универсальный датасорс (хранилище данных) в iOS-разработке Такие решения предоставляют разработчикам API для доступа к данным в коллекциях без привязки к конкретному источнику и типу данных. 📖 В статье на хабре рассматриваются: 🔘 Cтандартные подходы к регистрации и конфигурации ячеек в коллекции. 🔘 Альтернативный подход с использованием ViewRegistration. 🔘 Пример реализации универсального датасорса (на базе Diffable Datasource) 🔘 Преимущества, особенности, сложности и недостатки подхода. 😃 iOS Dev

iOS Dev
7 969
Запуск приложения: советы по продвижению Инди-разработчик делится своим опытом и идеями по продвижению приложения в первые дни. Например, для пресс-релизов важно: 1️⃣ Проблема, которую нужно решить. 2️⃣ Само приложение для решения. 3️⃣ История о том, как появилась идея и как она воплотилась в жизнь. Большой материал разделен на две части: 📖 Часть 1. 📖 Часть 2. 😃 iOS Dev

iOS Dev
7 969
TipKit: варианты и примеры использования ✅️ Цель TipKit — максимально упростить отображение информации, которая подчеркивает
TipKit: варианты и примеры использования ✅️ Цель TipKit — максимально упростить отображение информации, которая подчеркивает или объясняет ту или иную функцию приложения. При реализация всплывающих подсказок нужно решить два вопроса: 1️⃣ Как их показать для всех комбинаций языков и размеров экрана. 2️⃣ Как убедиться, что они срабатывают в нужное время, чтобы не перегружать пользователей. И как раз с этим успешно справляется TipKit. 📖 А вот тут можно посмотреть примеры использования нового фреймворка. 😃 iOS Dev

iOS Dev
7 969
Загрузка кастомных шрифтов в приложение с помощью Swift Package Plugins 🔎 Если вы создаёте свои приложения с общим стилем оф
Загрузка кастомных шрифтов в приложение с помощью Swift Package Plugins 🔎 Если вы создаёте свои приложения с общим стилем оформления и сталкиваетесь с проблемой использования одних и тех же шрифтов снова и снова, то одно из решений — создать собственный Swift package. Это позволит ускорить выпуск приложений и уменьшить дублирование кода. 📖 Пример создания Swift Package с использованием SwiftGen. Кстати, вот тут я писал о более традиционном способе работы с нестандартными шрифтами. 😃 iOS Dev

iOS Dev
7 969
Продвинутые анимации в SwiftUI: протокол CustomAnimation 🤩 Вышла новая часть замечательной серии статей про анимацию. В этой
Продвинутые анимации в SwiftUI: протокол CustomAnimation 🤩 Вышла новая часть замечательной серии статей про анимацию. В этой публикации авторы обсуждают такие темы, как типы анимаций и протокол CustomAnimation, новые способы работы с Transactions и новые параметры. Кроме этого, уделяется внимание PhaseAnimator и KeyframeAnimator. 📖 Десятки примеров кода и разбор параметров доступны здесь. 😃 iOS Dev

iOS Dev
7 969
Изучение Swift Concurrency за 2 часа 📺 В этом масштабном (иначе и не сказать) видео Vincent Pradeilles рассказывает о Swift Concurrency с нескольких разных точек зрения. А вот и сами статьи, которые Винсент использовал: 📖 Async await в Swift с примерами. 📖 Конвертация асинхронного кода в async/await в Swift. 📖 Async let: параллельный вызов async-функций. 📖 Какую роль Tasks играют в системе параллелизма Swift? 📖 Разбор Swift Tasks Groups на примере. 😃 iOS Dev

iOS Dev
7 969
🐣 iOS 17 может сломать ваши проверки URL! Произошли важные изменения для URL-адресов в iOS 17. Парсинг URL был переведён с у
🐣 iOS 17 может сломать ваши проверки URL! Произошли важные изменения для URL-адресов в iOS 17. Парсинг URL был переведён с устаревшего стандарта RFC 1738/1808 на RFC 3986 (аналогичный тому, что используется для URLComponents). Теперь разбор URL и URLComponents унифицирован. Если проще, теперь URL автоматически кодирует недопустимые символы и добавляет символ процента для корректного URL. 😃 iOS Dev

iOS Dev
7 969
Освоение диаграмм в SwiftUI: круговые и кольцевые диаграммы Фреймворк Swift Charts принёс множество опций, среди которых, нап
Освоение диаграмм в SwiftUI: круговые и кольцевые диаграммы Фреймворк Swift Charts принёс множество опций, среди которых, например: гистограммы, графики с применением градиента и возможность даже делать свои игры. Кроме этого, в них можно задействовать SectorMark, который можно использовать для построения круговых или кольцевых графиков. 📖 Посмотреть на примеры создания таких диаграмм можно здесь. 😃 iOS Dev

iOS Dev
7 969
Кстати, в релизной версии Xcode появился шорткат для форматирования в несколько строк, дефолтно Ctrl+M (но можно назначить свою комбинацию). 😎 В KeyBindings можно чекнуть Structure -> Format to Multiple Lines. 😃 iOS Dev

iOS Dev
7 969
Возможность юзать if и switch в качестве выражений наглядно Такая фича для возвращаемых значений уже доступна в Swift 5.9. 📖 А вот тут можно посмотреть, какие ещё варианты возможны. 😃 iOS Dev