iOS Dev
7.52K subscribers
944 photos
66 videos
1 file
1.07K links
🍏Канал об iOS-разработке, необычных подходах и решениях.
👨‍💻Автор: Виктор Грушевский (@Viktorianec)
Темы:
⭐️ Подготовка к собеседованиям.
⭐️ Архитектуры и алгоритмы.
⭐️ Код. Много кода.

⚒️База знаний: https://boosty.to/ios_dev

#ios #mobile #swift
加入频道
Можно ли использовать код? Доступный обзор популярных лицензий

🧑‍💻 Лицензии зачастую содержат огромный объём текста, который не всегда возможно быстро прочесть, а некоторые важные моменты так и остаются расплывчатыми.

📖 На этом ресурсе в справочном виде можно посмотреть краткое описание лицензий в стиле: можно ли использовать код/нужно ли указывать источники и так далее.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Как устроена система сборки в Xcode?

Многие инженеры могут недооценивать сложность таких систем в целом.

Например, нам в большинстве случаев не приходится настраивать шаги вручную.

Хотя, возможно, вы когда-нибудь пытались понять, почему система сборки Xcode жалуется на цикл компиляции или оптимизировали сборку, используя только билд-логи или Build Timelines, добавленные в Xcode 14.

📖 В этой статье можно узнать, что происходит Xcode при нажатии ⌘+R с помощью XCBuildAnalyzer.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Возможность юзать if и switch в качестве выражений наглядно

Такая фича для возвращаемых значений уже доступна в Swift 5.9.

📖 А вот тут можно посмотреть, какие ещё варианты возможны.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
iOS Dev
Новая опция в Xcode 15: форматирование кода на несколько строк 🤩 Спустя годы после того, как эту функцию запрашивали и после появления довольно популярного репозитория на Github Apple наконец выкатили фичу для разбиения кода на несколько строк. Разве не amazing!…
Кстати, в релизной версии Xcode появился шорткат для форматирования в несколько строк, дефолтно Ctrl+M (но можно назначить свою комбинацию).

😎 В KeyBindings можно чекнуть Structure -> Format to Multiple Lines.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Освоение диаграмм в SwiftUI: круговые и кольцевые диаграммы

Фреймворк Swift Charts принёс множество опций, среди которых, например: гистограммы, графики с применением градиента и возможность даже делать свои игры.

Кроме этого, в них можно задействовать SectorMark, который можно использовать для построения круговых или кольцевых графиков.

📖 Посмотреть на примеры создания таких диаграмм можно здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🐣 iOS 17 может сломать ваши проверки URL!

Произошли важные изменения для URL-адресов в iOS 17.

Парсинг URL был переведён с устаревшего стандарта RFC 1738/1808 на RFC 3986 (аналогичный тому, что используется для URLComponents).

Теперь разбор URL и URLComponents унифицирован.

Если проще, теперь URL автоматически кодирует недопустимые символы и добавляет символ процента для корректного URL.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Изучение Swift Concurrency за 2 часа

📺 В этом масштабном (иначе и не сказать) видео Vincent Pradeilles рассказывает о Swift Concurrency с нескольких разных точек зрения.

А вот и сами статьи, которые Винсент использовал:

📖 Async await в Swift с примерами.
📖 Конвертация асинхронного кода в async/await в Swift.
📖 Async let: параллельный вызов async-функций.
📖 Какую роль Tasks играют в системе параллелизма Swift?
📖 Разбор Swift Tasks Groups на примере.

😃 iOS Dev🐱 Доступ к алгоритмам
Please open Telegram to view this post
VIEW IN TELEGRAM
Продвинутые анимации в SwiftUI: протокол CustomAnimation

🤩 Вышла новая часть замечательной серии статей про анимацию.

В этой публикации авторы обсуждают такие темы, как типы анимаций и протокол CustomAnimation, новые способы работы с Transactions и новые параметры.

Кроме этого, уделяется внимание PhaseAnimator и KeyframeAnimator.

📖 Десятки примеров кода и разбор параметров доступны здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Загрузка кастомных шрифтов в приложение с помощью Swift Package Plugins

🔎 Если вы создаёте свои приложения с общим стилем оформления и сталкиваетесь с проблемой использования одних и тех же шрифтов снова и снова, то одно из решений — создать собственный Swift package.

Это позволит ускорить выпуск приложений и уменьшить дублирование кода.

📖 Пример создания Swift Package с использованием SwiftGen.

Кстати, вот тут я писал о более традиционном способе работы с нестандартными шрифтами.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
TipKit: варианты и примеры использования

✅️ Цель TipKit — максимально упростить отображение информации, которая подчеркивает или объясняет ту или иную функцию приложения.

При реализация всплывающих подсказок нужно решить два вопроса:

1️⃣ Как их показать для всех комбинаций языков и размеров экрана.

2️⃣ Как убедиться, что они срабатывают в нужное время, чтобы не перегружать пользователей.

И как раз с этим успешно справляется TipKit.

📖 А вот тут можно посмотреть примеры использования нового фреймворка.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Запуск приложения: советы по продвижению

Инди-разработчик делится своим опытом и идеями по продвижению приложения в первые дни.

Например, для пресс-релизов важно:

1️⃣ Проблема, которую нужно решить.
2️⃣ Само приложение для решения.
3️⃣ История о том, как появилась идея и как она воплотилась в жизнь.

Большой материал разделен на две части:

📖 Часть 1.
📖 Часть 2.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Универсальный датасорс (хранилище данных) в iOS-разработке

Такие решения предоставляют разработчикам API для доступа к данным в коллекциях без привязки к конкретному источнику и типу данных.

📖 В статье на хабре рассматриваются:

🔘 Cтандартные подходы к регистрации и конфигурации ячеек в коллекции.

🔘 Альтернативный подход с использованием ViewRegistration.

🔘 Пример реализации универсального датасорса (на базе Diffable Datasource)

🔘 Преимущества, особенности, сложности и недостатки подхода.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Обновление местоположения пользователя с помощью Core Location и Swift Concurrency

😎 Мы можем создавать собственные обертки для управления доступом к основным сервисам iOS, используя возможности Swift.

Например, для решения задачи получения геолокации через Core Location можно задействовать CheckedContinuation.

📖 А в этом материале рассказано, как написать свой Location Manager, запросить авторизацию и правильно обновлять локацию пользователя.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Добавление Firebase Analytics замедляет запуск приложения на 30%

Emerge Tools замерила производительность топовых аналитических SDK для iOS.

👨‍💻 Тестили на базовом приложении под iOS (тот, что по дефолту при создании проекта), так как его размер всего 118,5 КБ и нет доп. нагрузки.

Либы добавляли через SPM, а затем сравнивали размер и производительность каждого запуска.

📖 Интересные выводы и результаты других SDK в этом посте. Кстати, тут же и объясняется, почему выбрали относительное, а не абсолютное время сравнения.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
8 советов по оптимизации приложения для iOS

📺 Itay Brenner и Vincent Pradeilles дают практические советы и разбирают способы повышения производительности в видео.

Более детально разделы доступны по следующим тайм-кодам:

1️⃣ Работа с бинарными символами.

2️⃣ Шаринг кода и ресурсов.

3️⃣ Оптимизация ассетов.

4️⃣ Сохранение основного потока лёгким по возможности.

5️⃣ Использование Static Dispatch.

6️⃣ Разбор менеджеров пакетов, их преимущества и недостатки.

7️⃣ Оптимизация CoreML-моделей.

8️⃣ Про постоянные улучшения.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
В России разрешили использовать альтернативные способы покупок в App Store!

Для этого нужно будет использовать StoreKit External Purchase Link Entitlement, выполнить ряд условий и заполнить форму.

При этом комиссия Apple составит 27 % от выручки.

Важнейший шаг к альтернативным сторам?

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Swift-библиотека для моделирования и визуализации графов

⭐️Её целью является расположение узлов графа так, что все рёбра имели бы более-менее одинаковую длину, ну и свести к минимуму число пересечений рёбер.

Часто подобное можно увидеть в визуализации соцсетей, связей страниц в той-же вики, например, и так далее.

Вы наверняка видели разные реализации таких штук на других языках, но вдруг вам пригодится и такое решение.

🛠 Сама либа от Zhen Li доступна здесь, и получившийся итог завораживает!

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM