iOS Dev
Открыть в Telegram
👨💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift
Больше8 000
Подписчики
-124 часа
+467 дней
+7930 день
Архив постов
8 000
Комбинирование разных типов диаграмм для создания уникального дизайна
Существует множество различных типов графиков.
Они просты в использовании и обладают широкими возможностями настройки.
📖 Например, в этой статье автор создаёт комбинированную диаграмму для отображения данных на базе
Line Chart и Area Chart.
😃 iOS Dev8 000
Swift-библиотека для моделирования и визуализации графов
⭐️Её целью является расположение узлов графа так, что все рёбра имели бы более-менее одинаковую длину, ну и свести к минимуму число пересечений рёбер.
Часто подобное можно увидеть в визуализации соцсетей, связей страниц в той-же вики, например, и так далее.
Вы наверняка видели разные реализации таких штук на других языках, но вдруг вам пригодится и такое решение.
🛠 Сама либа от Zhen Li доступна здесь, и получившийся итог завораживает!
😃 iOS Dev
8 000
❗ В России разрешили использовать альтернативные способы покупок в App Store!
Для этого нужно будет использовать
StoreKit External Purchase Link Entitlement, выполнить ряд условий и заполнить форму.
При этом комиссия Apple составит 27 % от выручки.
Важнейший шаг к альтернативным сторам?
😃 iOS Dev8 000
8 советов по оптимизации приложения для iOS
📺 Itay Brenner и Vincent Pradeilles дают практические советы и разбирают способы повышения производительности в видео.
Более детально разделы доступны по следующим тайм-кодам:
1️⃣ Работа с бинарными символами.
2️⃣ Шаринг кода и ресурсов.
3️⃣ Оптимизация ассетов.
4️⃣ Сохранение основного потока лёгким по возможности.
5️⃣ Использование Static Dispatch.
6️⃣ Разбор менеджеров пакетов, их преимущества и недостатки.
7️⃣ Оптимизация CoreML-моделей.
8️⃣ Про постоянные улучшения.
😃 iOS Dev
8 000
Добавление Firebase Analytics замедляет запуск приложения на 30%
Emerge Tools замерила производительность топовых аналитических SDK для iOS.
👨💻 Тестили на базовом приложении под iOS (тот, что по дефолту при создании проекта), так как его размер всего 118,5 КБ и нет доп. нагрузки.
Либы добавляли через SPM, а затем сравнивали размер и производительность каждого запуска.
📖 Интересные выводы и результаты других SDK в этом посте. Кстати, тут же и объясняется, почему выбрали относительное, а не абсолютное время сравнения.
😃 iOS Dev8 000
Обновление местоположения пользователя с помощью Core Location и Swift Concurrency
😎 Мы можем создавать собственные обертки для управления доступом к основным сервисам iOS, используя возможности Swift.
Например, для решения задачи получения геолокации через
Core Location можно задействовать CheckedContinuation.
📖 А в этом материале рассказано, как написать свой Location Manager, запросить авторизацию и правильно обновлять локацию пользователя.
😃 iOS Dev8 000
Универсальный датасорс (хранилище данных) в iOS-разработке
Такие решения предоставляют разработчикам API для доступа к данным в коллекциях без привязки к конкретному источнику и типу данных.
📖 В статье на хабре рассматриваются:
🔘 Cтандартные подходы к регистрации и конфигурации ячеек в коллекции.
🔘 Альтернативный подход с использованием
ViewRegistration.
🔘 Пример реализации универсального датасорса (на базе Diffable Datasource)
🔘 Преимущества, особенности, сложности и недостатки подхода.
😃 iOS Dev8 000
Запуск приложения: советы по продвижению
Инди-разработчик делится своим опытом и идеями по продвижению приложения в первые дни.
Например, для пресс-релизов важно:
1️⃣ Проблема, которую нужно решить.
2️⃣ Само приложение для решения.
3️⃣ История о том, как появилась идея и как она воплотилась в жизнь.
Большой материал разделен на две части:
📖 Часть 1.
📖 Часть 2.
😃 iOS Dev
8 000
TipKit: варианты и примеры использования
✅️ Цель
TipKit — максимально упростить отображение информации, которая подчеркивает или объясняет ту или иную функцию приложения.
При реализация всплывающих подсказок нужно решить два вопроса:
1️⃣ Как их показать для всех комбинаций языков и размеров экрана.
2️⃣ Как убедиться, что они срабатывают в нужное время, чтобы не перегружать пользователей.
И как раз с этим успешно справляется TipKit.
📖 А вот тут можно посмотреть примеры использования нового фреймворка.
😃 iOS Dev8 000
Загрузка кастомных шрифтов в приложение с помощью Swift Package Plugins
🔎 Если вы создаёте свои приложения с общим стилем оформления и сталкиваетесь с проблемой использования одних и тех же шрифтов снова и снова, то одно из решений — создать собственный Swift package.
Это позволит ускорить выпуск приложений и уменьшить дублирование кода.
📖 Пример создания Swift Package с использованием SwiftGen.
Кстати, вот тут я писал о более традиционном способе работы с нестандартными шрифтами.
😃 iOS Dev
8 000
Продвинутые анимации в SwiftUI: протокол CustomAnimation
🤩 Вышла новая часть замечательной серии статей про анимацию.
В этой публикации авторы обсуждают такие темы, как типы анимаций и протокол
CustomAnimation, новые способы работы с Transactions и новые параметры.
Кроме этого, уделяется внимание PhaseAnimator и KeyframeAnimator.
📖 Десятки примеров кода и разбор параметров доступны здесь.
😃 iOS Dev8 000
Изучение Swift Concurrency за 2 часа
📺 В этом масштабном (иначе и не сказать) видео Vincent Pradeilles рассказывает о Swift Concurrency с нескольких разных точек зрения.
А вот и сами статьи, которые Винсент использовал:
📖 Async await в Swift с примерами.
📖 Конвертация асинхронного кода в async/await в Swift.
📖 Async let: параллельный вызов async-функций.
📖 Какую роль Tasks играют в системе параллелизма Swift?
📖 Разбор Swift Tasks Groups на примере.
😃 iOS Dev
8 000
🐣 iOS 17 может сломать ваши проверки URL!
Произошли важные изменения для URL-адресов в iOS 17.
Парсинг URL был переведён с устаревшего стандарта
RFC 1738/1808 на RFC 3986 (аналогичный тому, что используется для URLComponents).
Теперь разбор URL и URLComponents унифицирован.
Если проще, теперь URL автоматически кодирует недопустимые символы и добавляет символ процента для корректного URL.
😃 iOS Dev8 000
Освоение диаграмм в SwiftUI: круговые и кольцевые диаграммы
Фреймворк
Swift Charts принёс множество опций, среди которых, например: гистограммы, графики с применением градиента и возможность даже делать свои игры.
Кроме этого, в них можно задействовать SectorMark, который можно использовать для построения круговых или кольцевых графиков.
📖 Посмотреть на примеры создания таких диаграмм можно здесь.
😃 iOS Dev8 000
Возможность юзать if и switch в качестве выражений наглядно
Такая фича для возвращаемых значений уже доступна в Swift 5.9.
📖 А вот тут можно посмотреть, какие ещё варианты возможны.
😃 iOS Dev
8 000
Как устроена система сборки в Xcode?
Многие инженеры могут недооценивать сложность таких систем в целом.
Например, нам в большинстве случаев не приходится настраивать шаги вручную.
Хотя, возможно, вы когда-нибудь пытались понять, почему система сборки Xcode жалуется на цикл компиляции или оптимизировали сборку, используя только билд-логи или Build Timelines, добавленные в Xcode 14.
📖 В этой статье можно узнать, что происходит Xcode при нажатии
⌘+R с помощью XCBuildAnalyzer.
😃 iOS Dev8 000
😍 В своём канале Лев продолжает делиться результатами большого опроса среди разработчиков.
Так вот, одним из вопросов было то, за кем вы следите в мобильном сообществе.
Во-первых, спасибо за упоминание в самом посте, это приятно 😎.
А вообще, вот пара мыслей на счёт публичного поля и небольшая история.
Недавно (примерно месяц назад) я общался с продакт-менеджером хабра на счёт формата «посты» (вкладка рядом со статьями). Суть в том, что не слишком большое количество разработчиков юзают эту опцию, и вот почему, на мой взгляд.
1️⃣ Цена ошибки велика. Рассказывая технические вещи таким же профессионалам, легко попасть не под мэйнстримное мнение и тем самым срезать себе карму/рейтинг.
2️⃣ Публичные выступления (и статьи тоже) — это затраченное время. А также умение корректно реагировать на критику, принимать конструктивные замечения и не уходить в бесконечные дебаты.
3️⃣ Не хочется быть поверхностным, если вы хотите рассказать о новинках, покажите пример. Иногда официальной доки недостаточно. И даже история неуспеха это круто.
Всех задолбали только истории побед, волков и то, как за месяц можно можно взлететь до 1ККК в секунду. Это ошибка выжившего, удачный билет в лотерею, правильная дверь в парадоксе Монти Холла, в конце-концов.
Но есть миллион примеров, когда можно оказывать пользу сообществу, не используя клише для кликбейта.
Общаясь с зарубежными специалистами, или когда стараюсь рассказать вам про необычные вещи, я не перестаю удивляться, когда узнаю, что есть опенсорсные репы с 5к звёзд, а в том же твиттере у автора условно 100 читателей.
Не это главное. Есть герои, как, например, The Eskimo! на форумах эпла, или легендарный mattt с количеством подписчиков далеко не под миллион.
Ну, и третье, если вы всё-таки дочитали до этого момента.
🎤Я — автор этого канала, Виктор Грушевский, и мы ещё встретимся с вами в новом формате, когда придёт время.
😃 iOS Dev
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
