Оптимизация бинарников: как линкер помогает уменьшить размер приложения?
🧑💻 Обзор функций, а также возможностей линкера никогда не бывает лишним.
Например, полезно знать, какие проблемы могут возникнуть со статической линковкой.
Ответы на эти вопросы можно узнать в этих двух статьях:
➡️ Оптимизация бинарников и принципы работы линкера.
➡️ Типы линковки, таблица статической и динамической линковки.
😃 iOS Dev
Например, полезно знать, какие проблемы могут возникнуть со статической линковкой.
Ответы на эти вопросы можно узнать в этих двух статьях:
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉 В Lottie появилась официальная поддержка SwiftUI
В Lottie 4.3.0 добавили новый компонент
Например, он умеет отображать анимацию как синхронно, так и асинхронно, появился
И помимо всего этого в Lottie появилась поддержка рендеринга и анимации эффектов слоя с падающими тенями.
📖 Анонс всех изменений доступен здесь.
😃 iOS Dev
В Lottie 4.3.0 добавили новый компонент
LottieView
, который предоставляет новый декларативный API.Например, он умеет отображать анимацию как синхронно, так и асинхронно, появился
LottiePlaybackMode
, LottieAnimationLayer
, а ещё реализовали поддержку сокращённого (уменьшенного) движения.И помимо всего этого в Lottie появилась поддержка рендеринга и анимации эффектов слоя с падающими тенями.
📖 Анонс всех изменений доступен здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Новый инструмент для тестирования макросов в Swift
Реализовать макросы непросто, поэтому необходимо написать обширный набор тестов, чтобы убедиться, что были охвачены возможные нюансы.
Авторы PointFree сегодня выкатили новый инструмент
📺 В бесплатном выпуске можно посмотреть (или почитать) возможности либы и узнать, как именно она расширяет инструменты Apple.
🛠 Ссылка на сам инструмент на Github.
😃 iOS Dev
Реализовать макросы непросто, поэтому необходимо написать обширный набор тестов, чтобы убедиться, что были охвачены возможные нюансы.
Авторы PointFree сегодня выкатили новый инструмент
MacroTesting
, простой в использовании и позволяющий проверить все аспекты макросов, включая диагностику, исправления и многое другое.📺 В бесплатном выпуске можно посмотреть (или почитать) возможности либы и узнать, как именно она расширяет инструменты Apple.
🛠 Ссылка на сам инструмент на Github.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉 Swift 5.9 уже доступен!
В мажорной версии появилась система макросов, пакеты параметров, возможность юзать
Но не только это.
В Swift 5.9 появились новые возможности в LLDB и компиляторе.
Команды
А отладочная инфа более точно определяет границы локальных переменных.
Кроме этого, были важные улучшения и в SwiftSyntax (более подробно - тут).
📖 Официальная документация уже содержит обновления для Swift 5.9 и доступна к просмотру.
А сам компилятор Swift 5.9 уже включён в Xcode 15.
😃 iOS Dev
В мажорной версии появилась система макросов, пакеты параметров, возможность юзать
if
и switch
в качестве выражений для возвращаемых значений. Но не только это.
В Swift 5.9 появились новые возможности в LLDB и компиляторе.
Команды
p
и po
теперь выводят локальные переменные и свойства так же быстро, как команды frame variable
или v
.А отладочная инфа более точно определяет границы локальных переменных.
Кроме этого, были важные улучшения и в SwiftSyntax (более подробно - тут).
📖 Официальная документация уже содержит обновления для Swift 5.9 и доступна к просмотру.
А сам компилятор Swift 5.9 уже включён в Xcode 15.
Please open Telegram to view this post
VIEW IN TELEGRAM
Container Background в iOS 17: что это и как использовать в своих проектах
В новой оси появилось понятие
Например, я столкнулся с
Как следует из названия, этот модификатор позволяет определять фоновый вид виджета, тем самым упрощая адаптацию системы к используемому контексту.
📖 В этой статье есть объяснение, как можно адаптировать виджет, или, например, что можно сделать, чтобы система автоматически дропнула этот фон.
😃 iOS Dev
В новой оси появилось понятие
Container Background,
и уже сейчас это приводит к ошибкам в приложениях c использованием WidgetKit. Например, я столкнулся с
Widget needs to adopt container background
, да и в целом c нежелательными поля сбоку.Как следует из названия, этот модификатор позволяет определять фоновый вид виджета, тем самым упрощая адаптацию системы к используемому контексту.
📖 В этой статье есть объяснение, как можно адаптировать виджет, или, например, что можно сделать, чтобы система автоматически дропнула этот фон.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как создать App Clip для вашего приложения
App Clips по факту являются уменьшенными копиями приложений для выполнения определенных задач без необходимости загрузки приложения целиком.
Их размер не превышает 15 МБ, кроме этого они должны быть быстрыми и интуитивно понятными.
🐣 Их также можно запускать из Safari, Карт и даже Messages.
В этом материале есть руководство, как создать App Clip для своего приложения и как генерировать коды, которыми в дальнейшем можно поделиться с пользователями.
😃 iOS Dev
App Clips по факту являются уменьшенными копиями приложений для выполнения определенных задач без необходимости загрузки приложения целиком.
Их размер не превышает 15 МБ, кроме этого они должны быть быстрыми и интуитивно понятными.
В этом материале есть руководство, как создать App Clip для своего приложения и как генерировать коды, которыми в дальнейшем можно поделиться с пользователями.
Please open Telegram to view this post
VIEW IN TELEGRAM
Можно ли использовать код? Доступный обзор популярных лицензий
🧑💻 Лицензии зачастую содержат огромный объём текста, который не всегда возможно быстро прочесть, а некоторые важные моменты так и остаются расплывчатыми.
📖 На этом ресурсе в справочном виде можно посмотреть краткое описание лицензий в стиле: можно ли использовать код/нужно ли указывать источники и так далее.
😃 iOS Dev
📖 На этом ресурсе в справочном виде можно посмотреть краткое описание лицензий в стиле: можно ли использовать код/нужно ли указывать источники и так далее.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как устроена система сборки в Xcode?
Многие инженеры могут недооценивать сложность таких систем в целом.
Например, нам в большинстве случаев не приходится настраивать шаги вручную.
Хотя, возможно, вы когда-нибудь пытались понять, почему система сборки Xcode жалуется на цикл компиляции или оптимизировали сборку, используя только билд-логи или Build Timelines, добавленные в Xcode 14.
📖 В этой статье можно узнать, что происходит Xcode при нажатии
😃 iOS Dev
Многие инженеры могут недооценивать сложность таких систем в целом.
Например, нам в большинстве случаев не приходится настраивать шаги вручную.
Хотя, возможно, вы когда-нибудь пытались понять, почему система сборки Xcode жалуется на цикл компиляции или оптимизировали сборку, используя только билд-логи или Build Timelines, добавленные в Xcode 14.
📖 В этой статье можно узнать, что происходит Xcode при нажатии
⌘+R
с помощью XCBuildAnalyzer.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
Такая фича для возвращаемых значений уже доступна в Swift 5.9.
📖 А вот тут можно посмотреть, какие ещё варианты возможны.
Please open Telegram to view this post
VIEW IN TELEGRAM
iOS Dev
Новая опция в Xcode 15: форматирование кода на несколько строк 🤩 Спустя годы после того, как эту функцию запрашивали и после появления довольно популярного репозитория на Github Apple наконец выкатили фичу для разбиения кода на несколько строк. Разве не amazing!…
Кстати, в релизной версии Xcode появился шорткат для форматирования в несколько строк, дефолтно
😎 В KeyBindings можно чекнуть
😃 iOS Dev
Ctrl+M
(но можно назначить свою комбинацию).Structure -> Format to Multiple Lines
.Please open Telegram to view this post
VIEW IN TELEGRAM
Освоение диаграмм в SwiftUI: круговые и кольцевые диаграммы
Фреймворк
Кроме этого, в них можно задействовать
📖 Посмотреть на примеры создания таких диаграмм можно здесь.
😃 iOS Dev
Фреймворк
Swift Charts
принёс множество опций, среди которых, например: гистограммы, графики с применением градиента и возможность даже делать свои игры.Кроме этого, в них можно задействовать
SectorMark
, который можно использовать для построения круговых или кольцевых графиков.📖 Посмотреть на примеры создания таких диаграмм можно здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Произошли важные изменения для URL-адресов в iOS 17.
Парсинг URL был переведён с устаревшего стандарта
RFC 1738/1808
на RFC 3986
(аналогичный тому, что используется для URLComponents). Теперь разбор URL и URLComponents унифицирован.
Если проще, теперь URL автоматически кодирует недопустимые символы и добавляет символ процента для корректного URL.
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 • 🐱 Доступ к алгоритмам
📺 В этом масштабном (иначе и не сказать) видео Vincent Pradeilles рассказывает о Swift Concurrency с нескольких разных точек зрения.
А вот и сами статьи, которые Винсент использовал:
📖 Async await в Swift с примерами.
📖 Конвертация асинхронного кода в async/await в Swift.
📖 Async let: параллельный вызов async-функций.
📖 Какую роль Tasks играют в системе параллелизма Swift?
📖 Разбор Swift Tasks Groups на примере.
Please open Telegram to view this post
VIEW IN TELEGRAM
Продвинутые анимации в SwiftUI: протокол CustomAnimation
🤩 Вышла новая часть замечательной серии статей про анимацию.
В этой публикации авторы обсуждают такие темы, как типы анимаций и протокол
Кроме этого, уделяется внимание
📖 Десятки примеров кода и разбор параметров доступны здесь.
😃 iOS Dev
В этой публикации авторы обсуждают такие темы, как типы анимаций и протокол
CustomAnimation
, новые способы работы с Transactions
и новые параметры. Кроме этого, уделяется внимание
PhaseAnimator
и KeyframeAnimator
.📖 Десятки примеров кода и разбор параметров доступны здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Загрузка кастомных шрифтов в приложение с помощью Swift Package Plugins
🔎 Если вы создаёте свои приложения с общим стилем оформления и сталкиваетесь с проблемой использования одних и тех же шрифтов снова и снова, то одно из решений — создать собственный Swift package.
Это позволит ускорить выпуск приложений и уменьшить дублирование кода.
📖 Пример создания Swift Package с использованием SwiftGen.
Кстати, вот тут я писал о более традиционном способе работы с нестандартными шрифтами.
😃 iOS Dev
Это позволит ускорить выпуск приложений и уменьшить дублирование кода.
📖 Пример создания Swift Package с использованием SwiftGen.
Кстати, вот тут я писал о более традиционном способе работы с нестандартными шрифтами.
Please open Telegram to view this post
VIEW IN TELEGRAM
TipKit: варианты и примеры использования
✅️ Цель
При реализация всплывающих подсказок нужно решить два вопроса:
1️⃣ Как их показать для всех комбинаций языков и размеров экрана.
2️⃣ Как убедиться, что они срабатывают в нужное время, чтобы не перегружать пользователей.
И как раз с этим успешно справляется TipKit.
📖 А вот тут можно посмотреть примеры использования нового фреймворка.
😃 iOS Dev
TipKit
— максимально упростить отображение информации, которая подчеркивает или объясняет ту или иную функцию приложения.При реализация всплывающих подсказок нужно решить два вопроса:
1️⃣ Как их показать для всех комбинаций языков и размеров экрана.
2️⃣ Как убедиться, что они срабатывают в нужное время, чтобы не перегружать пользователей.
И как раз с этим успешно справляется TipKit.
📖 А вот тут можно посмотреть примеры использования нового фреймворка.
Please open Telegram to view this post
VIEW IN TELEGRAM
Запуск приложения: советы по продвижению
Инди-разработчик делится своим опытом и идеями по продвижению приложения в первые дни.
Например, для пресс-релизов важно:
1️⃣ Проблема, которую нужно решить.
2️⃣ Само приложение для решения.
3️⃣ История о том, как появилась идея и как она воплотилась в жизнь.
Большой материал разделен на две части:
📖 Часть 1.
📖 Часть 2.
😃 iOS Dev
Инди-разработчик делится своим опытом и идеями по продвижению приложения в первые дни.
Например, для пресс-релизов важно:
1️⃣ Проблема, которую нужно решить.
2️⃣ Само приложение для решения.
3️⃣ История о том, как появилась идея и как она воплотилась в жизнь.
Большой материал разделен на две части:
📖 Часть 1.
📖 Часть 2.
Please open Telegram to view this post
VIEW IN TELEGRAM