Telegram Web Link
Почему загрузка пакетов с помощью Swift Package Manager занимает слишком много времени?

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

Суть проблемы тут.

Но почему?

На вопрос ответил инженер по инфраструктуре GitHub (обратите внимание на дату комментария), схожая проблема была и в Cocoapods:

Поверхностное клонирование по какой-то причине обходится намного дороже, чем клонирование всего репозитория. К тому же GitHub ограничивает скорость в таких репах, что приводит к значительному увеличению времени.

Хуже того, фетч может вообще завершиться ошибкой по таймауту.

Так в чем же заключается решение?

Очевидно, многие компании используют такой подход. Они создают отдельный реп с предварительно скомпилированным .xcframework, при этом пользователь получит только нужную часть исходного репозитория.

Например airbnb/lottie применила этот подход и уменьшила размер своего репозитория с +300 МБ до менее 500 КБ!

Signal сделал то же самое: отсюда OneSignal-iOS-SDK пришли к оптимизированной версии OneSignal-XCFramework.

📖 Про другой интересный кейс можно прочитать на хабре.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3311👍9321❤‍🔥1👏1💯1🎄1
This media is not supported in your browser
VIEW IN TELEGRAM
Что означает spacing = nil в SwiftUI?

Понимание принципов Spacing важно при работе со сложной версткой, а владение определенными техниками может помочь добиться эффектов, которые сложно реализовать традиционными методами.

Как можно видеть на гифке, когда используется nil, расстояние между Text и соседними элементами больше не равны.

Из документации Apple:

При установке nil расстояние должно быть дефолтным по умолчанию для каждой пары subviews.

Но, как оказывается, это значение не фиксировано.

📖 В этой статье объясняется, что на самом деле означает значение nil по умолчанию для параметра Spacing.

Кроме того, рассматриваются и другие аспекты, связанные с этим свойством.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥8👍411❤‍🔥1👏1💯1🏆1🆒1
Подготовка к собеседованиям: Swift Concurrency

Подготовил вопросы, которые помогут новичкам и опытным разработчикам, знакомым с концепциями параллелизма и заинтересованным в изучении синтаксиса и API Swift Concurrency.

Можно узнать что-то новое о приоритетах, выполнении нескольких задач одновременно и многом другом. Задачи постарался по максимуму покрыть примерами с кодом. Некоторые из вопросов уже добавлены в приложение.

Доступ можно получить здесь или тут сразу на год.

Больше важных тем:
🔗 Блок вопросов: многопоточность (и бонус)
🔗 Собеседования: вопросы на понимание кода
🔗 DispatchQueue: практические вопросы

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍8🔥5👏2🎉221👌1
This media is not supported in your browser
VIEW IN TELEGRAM
Как сделать иконку приложения анимированной?

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

Bryce Bostwick, разработчик, знакомый по великолепным постам о реверс-инжиниринге, попробовал покопать глубже, и написал большое исследование о том, как создать иллюзию анимации (на самом деле для этого нужно достаточно часто менять эти иконки).

📖 Почитать увлекательную статью можно здесь (и рекомендую посмотреть остальные статьи блога).

📺 В формате видео вот тут.

🛠 Демо-проект (посмотреть и попробовать повторить) доступен на github. Напоминаю про этот пост, если захотите выложить в стор.

Больше крутых эффектов можно увидеть здесь или тут.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
27🔥13🤯8👍4👏3🏆21🆒11
Объяснение использования @preconcurrency в Swift

Если включить -strict-concurrency для своих существующих проектов, то, вероятнее всего, при первой компиляции проекта Xcode выдаст множество предупреждений и/или ошибок.

Этого можно избежать с использованием @preconcurrency, можно использовать для:

📼 functions
📼 types
📼 protocols
📼 imports

С помощью @preconcurrency появляется возможность импортировать старые модули в новый код.

Это отличный способ начать постепенно внедрять строгий параллелизм по мере приближения выпуска Swift 6.

📖 В этом посте рассмотрены примеры использования и ошибки, которые могут встретиться.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
125🔥4👍32❤‍🔥1👏1💯1🏆1
Настраиваемая кнопка с разными состояниями в SwiftUI

Конечно, задача мобильных разработчиков далеко не только в покраске кнопок, но знать несколько подходов и обладать арсеналом таких навыков необходимо.

SwiftUI в несколько раз упрощает создание переиспользуемой кнопки (и добавление конфигов).

📖 Вот тут можно увидеть подходы к созданию такого элемента на реальных примерах.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
18👍4🔥422👏2💯2👌1🏆1
Протоколы в iOS: назначение и примеры

Даже при частом использовании протоколов начинающие разработчики могут не знать все особенности.

Например, Identifiable постоянно нужен в SwiftUI, но почему он обычно применяется для списков? Или CustomStringConvertible, который вполне подойдёт для более удобного дебага наших моделей.

📖 В этой статье разбираются популярные протоколы на примерах кода.

🧠 Ах да, кстати, приложение уже в тестфлайте и вы можете получить ранний доступ.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1510🔥52❤‍🔥11👏1🏆1🆒1
Please open Telegram to view this post
VIEW IN TELEGRAM
16🔥6👏4👍3211🏆11
Вопрос из приложения iOS IQ

🐱 Попробуйте догадаться, какая временная сложность у алгоритма для решения задачи «Ханойские башни».

Это пример из приложения, доступного на бусти (кстати, есть хардкор-режим для настоящих профессионалов).

Уже сейчас можно попробовать возглавить таблицу лидеров.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
138🔥32👏2💯2❤‍🔥1👍1🆒11
Как справиться с секцией на написание кода?

Чтобы оценить кандидата, компании используют одну, либо сразу две итерации:

1️⃣ Лайв-кодинг. Нужно решить техническую задачу перед интервьюерами (от 0.5 до 1.5 часов).

2️⃣ Тестовое задание. Чаще всего на срок от одного-двух дней (иногда неделя).

📖 Вот тут можно ознакомиться с некоторыми полезными советами про прохождению этой секции. Среди них:

🔘 Прочтите условие несколько раз. Как известно в условии вопроса часто половина решения (особенно касается лайв-кодинга).
🔘 Разделите техническую задачу на следующие темы: обязательные требования и дополнительные требования.
🔘 Выпишите вопросы. Уточните их у интервьюера.
🔘 Убедитесь, можно ли юзать сторонние либы перед тем, как их добавлять.

При подготовке также важно определиться, какой именно архитектурный паттерн вам нужен.

Другие советы и задачи можно найти вот тут.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍5🔥4👏33❤‍🔥11💯1🎅1🆒1
Алгоритмы: терминология и примеры

Для того, чтобы понять сложность алгоритма, иногда достаточно просто использовать свою интуицию (не нужно слишком глубоких математических знаний).

Например, если код использует один цикл, в котором мы проходим по всем n элементов входных данных, сложность O(n).
Если у нас есть два вложенных цикла, это O(n^2), и так далее.

📖 Конечно, в канале уже был пост про сложность алгоритмов.

Но бывают и далеко не самые очевидные моменты.

🧠 Пришло время новой секции в iOS IQ (добавлено две части, на теорию и на оценку кода). Есть и интерактивный формат в тестфлайте.

❤️Получить доступ можно сразу на год.

🐱 А в честь WWDC со скидкой 24% - вот тут (ссылка работает ровно неделю).

😃 iOS IQ
Please open Telegram to view this post
VIEW IN TELEGRAM
126🔥52❤‍🔥1👍1💯1🏆1🎄11
Начали с показа обновлений Vision OS 2

Из крутых фич, теперь технологии позволят создавать из 2D фото с погружением.

Пообещали упростить работу с технологиями, добавили новые API. Volumetric APIs, TabletopKit, Enterprise APIs.

Добавили 8 новых стран, где можно купить.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👏8👍52❤‍🔥1🎉1👌11
iOS 18

Расширили работу с иконками на домашнем экране (в андроиде уже тысячу лет?).

😎 Иконки можно красить, привет, tintColor!

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥75😭3👏1
Control Center

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

Для этого появится новый Control API.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
14❤‍🔥10👍6🎉2🔥1👏1👌1💯1
Можно скрывать приложения

🕺 Ну наконец-то!

Магические слова: Lock an app.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
16🔥7👍3❤‍🔥1👏1🎉1💯1🏆1😎1
Wallet

💰Tap to cash! - фича для оплаты, просто направив телефон друг на друга.

Где будет работать, Крейг? Где?!

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
15🏆6💯4🎅2🔥1👏1👌1🎄1
Редизайн приложения Photos!

Фильтр по скриншотам (очень полезная фича при разработке), новый интерфейс для сортировки по времени, ввели Collections - можно искать фото по темам.

Коллекции можно сортировать, пинить и не только.

Добавили карусель с лучшими моментами и Featured Photos (всё можно кастомизировать).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥5👍4👏2😭2❤‍🔥11💯1
Все новые фичи iOS 18 одной картинкой

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍9👏52❤‍🔥1🎉1
2025/07/08 18:38:57
Back to Top
HTML Embed Code: