🎈Сегодня мой День Рождения
В нашей жизни каждый день приходится решать задачи разной степени важности.
Когда-то, только попав в школу, в своем родном поселке я ждал после уроков, чтобы в единственном компьютерном классе в радиусе 10 км попросить запустить Dune 2000, чтобы посмотреть на этот дивный новый мир! Получалось далеко не всегда, но до своего домашнего пк было очень далеко.
Вообще у всех разный старт. И когда говорят, что Билл Гейтс бросил универ и стал миллиардером, уделите внимание его родителям: известному адвокату и члену совета директоров банка. Ах да, его дед был главной нацбанка США, но это мелочи.
Для меня же образование было единственным способом пробиться куда-то, поэтому я до сих пор продолжаю учиться, и одно из следствий этого – канал, который вы читаете.
Возвращаясь к истории с дюной, намного проще было собраться и поиграть в квадрат где-нибудь рядом. Кто-то сейчас знает, что это?
Прошло много времени и сейчас среди рабочих тасок управление многопоточкой, шифрованием, анимациями и поддержание всего этого в нормальном состоянии. Для меня кажется обыденным постоянно быть на связи и решать что-то в срочном порядке, например, проблемы с эпловским ревью.
Но знаете, через 10-20 лет о наших переработках будут помнить только близкие люди. А о рабочих подвигах только мы (возможно).
Я не очень люблю отмечать день рождения. Для меня важнее не символическая дата, а то, что мы можем сказать о своих поступках в прошлом, настоящем и в будущем.
❤️ Спасибо, что читаете этот канал. Как и прежде, здесь я продолжу делиться своим опытом и знаниями.
Ну вот вы и нашли ключевое слово для шифра Виженера: iosdevcypher
😃 iOS Dev
В нашей жизни каждый день приходится решать задачи разной степени важности.
Когда-то, только попав в школу, в своем родном поселке я ждал после уроков, чтобы в единственном компьютерном классе в радиусе 10 км попросить запустить Dune 2000, чтобы посмотреть на этот дивный новый мир! Получалось далеко не всегда, но до своего домашнего пк было очень далеко.
Вообще у всех разный старт. И когда говорят, что Билл Гейтс бросил универ и стал миллиардером, уделите внимание его родителям: известному адвокату и члену совета директоров банка. Ах да, его дед был главной нацбанка США, но это мелочи.
Для меня же образование было единственным способом пробиться куда-то, поэтому я до сих пор продолжаю учиться, и одно из следствий этого – канал, который вы читаете.
Возвращаясь к истории с дюной, намного проще было собраться и поиграть в квадрат где-нибудь рядом. Кто-то сейчас знает, что это?
Прошло много времени и сейчас среди рабочих тасок управление многопоточкой, шифрованием, анимациями и поддержание всего этого в нормальном состоянии. Для меня кажется обыденным постоянно быть на связи и решать что-то в срочном порядке, например, проблемы с эпловским ревью.
Но знаете, через 10-20 лет о наших переработках будут помнить только близкие люди. А о рабочих подвигах только мы (возможно).
Я не очень люблю отмечать день рождения. Для меня важнее не символическая дата, а то, что мы можем сказать о своих поступках в прошлом, настоящем и в будущем.
❤️ Спасибо, что читаете этот канал. Как и прежде, здесь я продолжу делиться своим опытом и знаниями.
Please open Telegram to view this post
VIEW IN TELEGRAM
Необычный способ найти причину проблемы из-за нехватки свободного места на девайсе
Пока я нахожусь в отпуске (и делаю очень много фотографий), задумался над тем, как корректно обработать ситуации, когда на айфоне уже не остаётся доступного пространства и что с этим можно сделать при работе над мессенджером или каким-нибудь редактором.
Оказывается, эту проблему можно воспроизвести и на симуляторе.
Для этого нужно:
1️⃣ Обратиться к hdutil
4️⃣ После выявления проблемного кейса удалить тестовый образ, используя команду для получения списка
📖 Хороший разбор сценария целиком доступен тут.
😃 iOS Dev
Пока я нахожусь в отпуске (и делаю очень много фотографий), задумался над тем, как корректно обработать ситуации, когда на айфоне уже не остаётся доступного пространства и что с этим можно сделать при работе над мессенджером или каким-нибудь редактором.
Оказывается, эту проблему можно воспроизвести и на симуляторе.
Для этого нужно:
1️⃣ Обратиться к hdutil
hdiutil create -size 1m -fs HFS+ /tmp/app-storage-test.dmg
2️⃣ Использовать созданный образ для симулятора, предварительно получив адрес documentsdirectory.hdiutil attach /tmp/app-storage-test.dmg -mountpoint “полученный путь”
3️⃣
Добавить контент как обычно.4️⃣ После выявления проблемного кейса удалить тестовый образ, используя команду для получения списка
diskutil list.
И избавиться от него с помощью hdiutil detach.
📖 Хороший разбор сценария целиком доступен тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Как связаны все репозитории об iOS-разработке на Github
Оказывается, пользователь с ником @anvaka задумался об этом и создал интерактивную карту.
На ней представлен целый остров под названием Swiftoria, на котором можно найти все репозитории, относящиеся к iOS, а еще кроме этого можно посмотреть на их взаимосвязи.
📖 Об идее и используемых технологиях для создания можно прочесть здесь.
🌐 А вот тут доступна интерактивная версия.
😃 iOS Dev
Оказывается, пользователь с ником @anvaka задумался об этом и создал интерактивную карту.
На ней представлен целый остров под названием Swiftoria, на котором можно найти все репозитории, относящиеся к iOS, а еще кроме этого можно посмотреть на их взаимосвязи.
📖 Об идее и используемых технологиях для создания можно прочесть здесь.
🌐 А вот тут доступна интерактивная версия.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Реализация эффекта адаптивного блюра
Многие пользователи iOS обращали внимание на необычный стиль блюра на системной шторке.
Оказывается, его можно повторить с помощью приватного апи, используя
🛠Janum Trivedi, автор опенсорсного Wave, поделился тонкостями реализации в своем репозитории.
В комментариях к посту заметили, что это можно сделать и комбинацией SceneKit + Metal, и с помощью visual effect view.
Кстати, в своей реализации я использовал маску для градиентного блюра.
😃 iOS Dev
Многие пользователи iOS обращали внимание на необычный стиль блюра на системной шторке.
Оказывается, его можно повторить с помощью приватного апи, используя
CAFilter.
🛠Janum Trivedi, автор опенсорсного Wave, поделился тонкостями реализации в своем репозитории.
В комментариях к посту заметили, что это можно сделать и комбинацией SceneKit + Metal, и с помощью visual effect view.
Кстати, в своей реализации я использовал маску для градиентного блюра.
Please open Telegram to view this post
VIEW IN TELEGRAM
О чистоте кода и японских урнах
Даже плохой код может работать. Но с течением времени скорость разработки начнет снижаться и в какой-то момент может потребоваться активизация огромных ресурсов для того, чтобы все это починить и вернуться к нормальным темпам.
🇯🇵 Находясь в Японии, многие туристы обратят внимание на невероятную чистоту, а еще на практически полное отсутствие урн на улицах, и это неспроста.
Дело в том, что с ранних лет японцев учат воспринимать уборку не как наказание, а скорее как некую игру для формирования привычек.
☕️ Например, в «Книге о чае» Окакуры Какузо, классическом труде о чайной церемонии есть такая цитата «…всё абсолютно чисто. Ни пылинки в самом темном углу. Потому что если найти пылинку, то хозяин — не чайный мастер».
В нашей разработке также стоит учитывать чистоту кода, и не стоит недооценивать правило трех.
Но не нужно слишком рьяно относиться к этому, так как в гонке за бесконечными улучшениями кода бизнес не будет ждать. Поэтому как и в чайной церемонии, в разработке должен быть баланс.
А куда будет склоняться чаша весов, можно определить в будущих спринтах.
😃 iOS Dev
Даже плохой код может работать. Но с течением времени скорость разработки начнет снижаться и в какой-то момент может потребоваться активизация огромных ресурсов для того, чтобы все это починить и вернуться к нормальным темпам.
Дело в том, что с ранних лет японцев учат воспринимать уборку не как наказание, а скорее как некую игру для формирования привычек.
В нашей разработке также стоит учитывать чистоту кода, и не стоит недооценивать правило трех.
Но не нужно слишком рьяно относиться к этому, так как в гонке за бесконечными улучшениями кода бизнес не будет ждать. Поэтому как и в чайной церемонии, в разработке должен быть баланс.
А куда будет склоняться чаша весов, можно определить в будущих спринтах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Performance Trace Profiles: отладка проблем производительности, которые сложно воспроизвести
Одна из самых сложных частей нашей работы — поиск багов, которые встречаются у единичных пользователей, но команда разработчиков не может их повторить.
Среди них: фризы пользовательского интерфейса, проблемы с многопоточностью/параллелизм, проблемы ЦП/памяти и так далее.
Как следует из названия,
Более того, с их помощью можно запускать системную трассировку всего, что в данный момент работает на телефоне, которую вы можете позже извлечь и открыть в «Инструментах».
📖 В этом материале рассматриваются нужные шаги для работы с профилями, инструкция для анализа и несколько советов.
Но будьте осторожны, ведь трассировка будет фиксировать и избыточную информацию.
😃 iOS Dev
Одна из самых сложных частей нашей работы — поиск багов, которые встречаются у единичных пользователей, но команда разработчиков не может их повторить.
Среди них: фризы пользовательского интерфейса, проблемы с многопоточностью/параллелизм, проблемы ЦП/памяти и так далее.
Как следует из названия,
Performance Trace Profiles
предоставляют возможности отслеживания производительности вашего устройства.Более того, с их помощью можно запускать системную трассировку всего, что в данный момент работает на телефоне, которую вы можете позже извлечь и открыть в «Инструментах».
📖 В этом материале рассматриваются нужные шаги для работы с профилями, инструкция для анализа и несколько советов.
Но будьте осторожны, ведь трассировка будет фиксировать и избыточную информацию.
Please open Telegram to view this post
VIEW IN TELEGRAM
Топ-5 нововведений в Xcode 15, которые могут вас удивить
Так сложилось, что во время самого WWDC я был в самолёте и по определённым причинам не смог провести трансляцию, как в прошлый раз , но!
🤩 Вот пять новинок в Xcode, которые некоторые даже смогли предсказать:
1️⃣ Можно использовать previews в UIKit (и AppKit!).
До этого существовали некоторые способы, но теперь нативно.
2️⃣ Представлена SwiftData (многие давно ждали/верили/надеялись, но решили выкатить сейчас, анонс уже здесь).
3️⃣ Можно оставлять закладки в коде! Пока, задисейбленные брейпоинты?
4️⃣ Теперь доступна новая система макросов, которую можно использовать для уменьшения бойлерплейт-кода и улучшения API.
5️⃣ Неактивный код в блоках
😎 Бонус!
Теперь доступно действие Archive, даже если выбран симулятор. Наверняка каждый хоть раз, да забывал переключать симулятор для архива во всех 14 предыдущих версиях Xcode.
😃 iOS Dev — будем следить за новинками вместе (и копить на лыжную маску amazing хэдсет за $3 500)
1️⃣ Можно использовать previews в UIKit (и AppKit!).
До этого существовали некоторые способы, но теперь нативно.
2️⃣ Представлена SwiftData (многие давно ждали/верили/надеялись, но решили выкатить сейчас, анонс уже здесь).
3️⃣ Можно оставлять закладки в коде! Пока, задисейбленные брейпоинты?
4️⃣ Теперь доступна новая система макросов, которую можно использовать для уменьшения бойлерплейт-кода и улучшения API.
5️⃣ Неактивный код в блоках
#if…#endif
теперь будет отображаться с тенью. Очень полезно, когда выбран не тот таргет. Можно вернуть, как было в Text Editing > Display
.Теперь доступно действие Archive, даже если выбран симулятор. Наверняка каждый хоть раз, да забывал переключать симулятор для архива во всех 14 предыдущих версиях Xcode.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Статус-бар в iOS 17 теперь по умолчанию меняет стиль в зависимости от контента!
Сейчас стиль статус-бара определяет приложение (или контроллер). Но есть случаи, когда пользовательский контент может быть динамическим, и тогда изменение стиля становится непростой задачей.
Теперь, в iOS 17, стиль по умолчанию постоянно подстраивается под содержимое приложения и автоматически меняется с тёмного на светлый (и наоборот) для поддержания контраста.
🤩 И теперь даже возможно, что статус-бар может быть наполовину чёрным, а наполовину белым!
Поскольку приложениям больше не нужно явно указывать темный и светлый стили для всех этих случаев, для iOS 17 можно выпилить весь код для настроек и использовать дефолтный стиль.
😃 iOS Dev
Сейчас стиль статус-бара определяет приложение (или контроллер). Но есть случаи, когда пользовательский контент может быть динамическим, и тогда изменение стиля становится непростой задачей.
Теперь, в iOS 17, стиль по умолчанию постоянно подстраивается под содержимое приложения и автоматически меняется с тёмного на светлый (и наоборот) для поддержания контраста.
Поскольку приложениям больше не нужно явно указывать темный и светлый стили для всех этих случаев, для iOS 17 можно выпилить весь код для настроек и использовать дефолтный стиль.
Please open Telegram to view this post
VIEW IN TELEGRAM
Palette Menus в iOS 17: доступен новый тип меню как в Finder, Books и Mail
Этот элемент в Apple используют приложении Books на iOS или в Mail и Finder на Mac. Теперь же они доступны и в
Чтобы превратить любое меню в палитру, просто добавьте
Выбор будет отмечен соответствующим индикатором на основе предоставленного изображения.
Если все элементы в палитре используют монохромные символы SF или шаблонные изображения, выбранный элемент окрашивается цветом оттенка приложения.
👩🎓 Также можно задать свой стиль индикатора выбора, используя
😃 iOS Dev
Palettes
(или проще палитры) представляют собой ряд элементов меню, обычно используемых для выбора из заданного набора. Этот элемент в Apple используют приложении Books на iOS или в Mail и Finder на Mac. Теперь же они доступны и в
UIKit
. Чтобы превратить любое меню в палитру, просто добавьте
.displayAsPalette
к его параметрам, как показано ниже.UIMenu(options: [.displayInline, .displayAsPalette], children: [ ... ])
Выбор будет отмечен соответствующим индикатором на основе предоставленного изображения.
Если все элементы в палитре используют монохромные символы SF или шаблонные изображения, выбранный элемент окрашивается цветом оттенка приложения.
selectedImage
в протоколе UIMenuLeaf
.Please open Telegram to view this post
VIEW IN TELEGRAM
‼️Push Notifications Console — тестовые пуши, логи и валидация в новом инструменте Apple
Новая консоль push-уведомлений упростит отправку тестовых уведомлений на устройства Apple через службу Apple Push Notification (APN).
Есть доступ к логам, которые предоставляют информацию о процессе доставки, а также дополнительные инструменты для создания и проверки токенов. Что доступно:
🔘 Отправка уведомлений. Есть опция выбора приоритета доставки, тип (от
🔘 Логи. Время доставки зависит от различных факторов, а именно: мощности устройства, подключения устройства, приоритета push-уведомления, состояния приложения на устройстве и других.
🔘 Проверка токенов аутентификации, генерация (конфиденциальность сохранится, происходит на стороне браузера), валидация окружения и типа пуша (чтобы не отправить на прод случайно).
В
🧑💻 Посмотреть и попробовать можно здесь.
😃 iOS Dev — помню времена, когда использовал Parse .
Новая консоль push-уведомлений упростит отправку тестовых уведомлений на устройства Apple через службу Apple Push Notification (APN).
Есть доступ к логам, которые предоставляют информацию о процессе доставки, а также дополнительные инструменты для создания и проверки токенов. Что доступно:
🔘 Отправка уведомлений. Есть опция выбора приоритета доставки, тип (от
alert
до voip
) и apns-expiration.🔘 Логи. Время доставки зависит от различных факторов, а именно: мощности устройства, подключения устройства, приоритета push-уведомления, состояния приложения на устройстве и других.
🔘 Проверка токенов аутентификации, генерация (конфиденциальность сохранится, происходит на стороне браузера), валидация окружения и типа пуша (чтобы не отправить на прод случайно).
В
payload
можно задать title, subtitle, body, launch-image и ряд других параметров.Please open Telegram to view this post
VIEW IN TELEGRAM
Новое меню для быстрых действий в Xcode 15
Xcode меняется в лучшую сторону, например, добавили закладки в коде и систему макросов, которую ещё будем разбирать, но есть менее заметные (хотя и довольно полезные) обновления.
1️⃣ Для вызова нужно использовать шорткат
2️⃣ Затем достаточно начать печатать название действия, которое вы хотите использовать.
👍 Из плюсов: можно сразу же выбрать любую опцию рефакторинга, что потенциально ускорит написание кода.
😃 iOS Dev
Xcode меняется в лучшую сторону, например, добавили закладки в коде и систему макросов, которую ещё будем разбирать, но есть менее заметные (хотя и довольно полезные) обновления.
1️⃣ Для вызова нужно использовать шорткат
Shift ⇧ + CMD ⌘ + A
2️⃣ Затем достаточно начать печатать название действия, которое вы хотите использовать.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
😂 Как должно выглядеть настоящее Perfomance Review!
Пока идёт огромный поток информации на неделе WWDC, нужно делать и небольшие паузы в освоении новых материалов.
Например, Крэйг Федериги вчера показал свои скиллы с помощью мощного гитарного соло, чем привёл в восторг всех присутствующих.
😎 А вы отдыхаете после релиза?
😃 iOS Dev
Пока идёт огромный поток информации на неделе WWDC, нужно делать и небольшие паузы в освоении новых материалов.
Например, Крэйг Федериги вчера показал свои скиллы с помощью мощного гитарного соло, чем привёл в восторг всех присутствующих.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Новая опция в Xcode 15: форматирование кода на несколько строк
🤩 Спустя годы после того, как эту функцию запрашивали и после появления довольно популярного репозитория на Github Apple наконец выкатили фичу для разбиения кода на несколько строк. Разве не amazing!
Правда, пока нет шортката, но ведь и Xcode пока только в бете.
😃 iOS Dev
Правда, пока нет шортката, но ведь и Xcode пока только в бете.
Please open Telegram to view this post
VIEW IN TELEGRAM
Новые опции дистрибуции в Xcode 15: отправка в App Store и TestFlight в один клик
Выше я поделился несколькими обновлениями, но это далеко не всё!
🔨 Например, теперь даже без использования инструментов CI, можно заливать приложение буквально в один клик, используя новые встроенные опции.
Варианты, которые были ранее, доступны во вкладке
😃 iOS Dev
Выше я поделился несколькими обновлениями, но это далеко не всё!
Варианты, которые были ранее, доступны во вкладке
Custom
.Please open Telegram to view this post
VIEW IN TELEGRAM
Печальная новость для инди-разработчиков, Apollo для Reddit остановят 30 июня и вот почему это плохо
К крутым продуктам и их создателям можно относиться по-разному, но они двигают всю индустрию вперёд.
Один из таких людей — Кристиан Селиг. Как минимум дважды я писал о его идеях и в нашем канале: посмотрите ещё раз на эту милоту или на более серьёзный материал о работе с жестами.
На протяжении последних восьми лет он работал над клиентом для Reddit, которым пользуется даже Крейг Федериги (не шутка, на WWDC23 были другие упоминания).
Так вот, Reddit выкатил новые условия использования API, которые предполагают траты в размере 20 млн долларов в год для этого приложения. И хоть Аполло используют миллионы, платных юзеров около 50 000. Математически это красная зона для счёта в первый же месяц.
В этой истории последняя страница пока не перевёрнута, но очевидно следующее:
1️⃣ Когда вы полагаетесь на API от крупной корпорации, будьте готовы к таким поворотам. Примеры твиттера, ютуба и других говорят, что это тенденция, а не совпадение. Для корпораций потенциальная стоимость одного пользователя куда выше, чем для инди-разработчиков, так как они рассчитывают на больший доход. И если оценить ситуацию с холодной головой, это справедливо.
2️⃣ У большинства нет таких связей, как у Кристиана (бывшего интерна Applе со связями в яблочной корпорации). Поэтому не нужно думать, что ваш первый (или даже двадцатый) пет-проект обязательно должен получить Editor's choice.
3️⃣ Восемь лет работать над одним проектом — вызов. И в компании, и над своими проектами. Чтобы не выгореть, нужно любить своё дело, и даже при этом, иногда нужно находить время на то, чтобы отвлекаться.
У Кристиана всё будет хорошо. Есть невероятная поддержка и от пользователей, и от влиятельных персон, поэтому даже в случае шатдауна Аполло, с ресурсами на разработку всё будет в порядке.
И кое-что ещё. Если вам по-настоящему нравится какое-то приложение (необязательно Apollo), то потратьте две минуты на отзыв, а если позволяют финансы, то на премиум внутри. Для инди-разработчиков это не только мотивация, но, что более важно, сигнал о том, что их работа кому-то помогла.
😃 iOS Dev
К крутым продуктам и их создателям можно относиться по-разному, но они двигают всю индустрию вперёд.
Один из таких людей — Кристиан Селиг. Как минимум дважды я писал о его идеях и в нашем канале: посмотрите ещё раз на эту милоту или на более серьёзный материал о работе с жестами.
На протяжении последних восьми лет он работал над клиентом для Reddit, которым пользуется даже Крейг Федериги (не шутка, на WWDC23 были другие упоминания).
Так вот, Reddit выкатил новые условия использования API, которые предполагают траты в размере 20 млн долларов в год для этого приложения. И хоть Аполло используют миллионы, платных юзеров около 50 000. Математически это красная зона для счёта в первый же месяц.
В этой истории последняя страница пока не перевёрнута, но очевидно следующее:
1️⃣ Когда вы полагаетесь на API от крупной корпорации, будьте готовы к таким поворотам. Примеры твиттера, ютуба и других говорят, что это тенденция, а не совпадение. Для корпораций потенциальная стоимость одного пользователя куда выше, чем для инди-разработчиков, так как они рассчитывают на больший доход. И если оценить ситуацию с холодной головой, это справедливо.
2️⃣ У большинства нет таких связей, как у Кристиана (бывшего интерна Applе со связями в яблочной корпорации). Поэтому не нужно думать, что ваш первый (или даже двадцатый) пет-проект обязательно должен получить Editor's choice.
3️⃣ Восемь лет работать над одним проектом — вызов. И в компании, и над своими проектами. Чтобы не выгореть, нужно любить своё дело, и даже при этом, иногда нужно находить время на то, чтобы отвлекаться.
У Кристиана всё будет хорошо. Есть невероятная поддержка и от пользователей, и от влиятельных персон, поэтому даже в случае шатдауна Аполло, с ресурсами на разработку всё будет в порядке.
И кое-что ещё. Если вам по-настоящему нравится какое-то приложение (необязательно Apollo), то потратьте две минуты на отзыв, а если позволяют финансы, то на премиум внутри. Для инди-разработчиков это не только мотивация, но, что более важно, сигнал о том, что их работа кому-то помогла.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Новые анимации для ScrollView в iOS 17: ScrollTransitionConfiguration в SwiftUI
Красота и относительная лёгкость реализации анимаций в SwiftUI не может не привлекать, как например в этом примере.
С каждой новой версией количество опций для добавления эффектов только увеличивается, и это радует.
📺 В этом видео с WWDC рассказывается об изменениях в к Scroll View и приводятся примеры кода.
📖 Вот тут уже есть необходимая документация.
🔗 А в этом примере от Meng To можно посмотреть на одну из возможных реализаций.
😃 iOS Dev
Красота и относительная лёгкость реализации анимаций в SwiftUI не может не привлекать, как например в этом примере.
С каждой новой версией количество опций для добавления эффектов только увеличивается, и это радует.
📺 В этом видео с WWDC рассказывается об изменениях в к Scroll View и приводятся примеры кода.
📖 Вот тут уже есть необходимая документация.
🔗 А в этом примере от Meng To можно посмотреть на одну из возможных реализаций.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Воспроизведение эффекта анимации NameDrop с использованием SKShader
Одной из самых эффектных фич в iOS 17 стала
А энтузиасты даже смогли повторить, используя
🛠 Вот здесь, кстати, исходный код, в котором вы можете посмотреть на реализацию и использовать в своих проектах.
😃 iOS Dev
Одной из самых эффектных фич в iOS 17 стала
NameDrop
(для шаринга контактов). Многие обратили внимание на необычную анимацию, похожую на водную рябь.А энтузиасты даже смогли повторить, используя
SKShader
(пример на гифке).🛠 Вот здесь, кстати, исходный код, в котором вы можете посмотреть на реализацию и использовать в своих проектах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Новая опция в Xcode 15: заглушки для пустых состояний
Одно из любопытных нововведений в Xcode — нативное добавление заглушек для обработки empty states (когда у вас не пришёл ответ от сервера, или, например, просто пустой результат поиска).
Ключ для использования —
Можно создавать заглушки одного из трёх типов:
🧑💻 Кстати, бонусом доступна реализация конфига в том числе и на SwiftUI, а для использования можно задействовать
А вот тут пример использования в реальном проекте.
😃 iOS Dev
Одно из любопытных нововведений в Xcode — нативное добавление заглушек для обработки empty states (когда у вас не пришёл ответ от сервера, или, например, просто пустой результат поиска).
Ключ для использования —
UIContentUnavailableConfiguration
(больше инфы в официальной доке).Можно создавать заглушки одного из трёх типов:
empty
, loading
, search
. UIHostingConfiguration
там, где удобно.А вот тут пример использования в реальном проекте.
Please open Telegram to view this post
VIEW IN TELEGRAM
Новый Resumable upload protocol: пауза/продолжение загрузки данных на сервер
Ранее нам были доступны методы вроде
Парадоксально, но нативной поддержки такого важного и полезного метода до сих пор нет.
🥳 Зато в 17 оси появится
Конечно, сервер должен уметь поддерживать такой тип загрузок, и скорее всего, ваши коллеги уже слышали о SwiftNIO.
📺 А в этом видео можно узнать о дополнительных требованиях к серверу и посмотреть на пример клиентского кода (он интуитивен).
📖 Документация по новому методу доступна на сайте Apple.
😃 iOS Dev
Ранее нам были доступны методы вроде
downloadTaskWithResumeData
(аж с седьмой оси), но для того, чтобы реализовать возобновляемый аплоад, приходилось писать свои решения (или использовать либы вроде TUS и прочих).Парадоксально, но нативной поддержки такого важного и полезного метода до сих пор нет.
uploadTaskWithResumeData
.Конечно, сервер должен уметь поддерживать такой тип загрузок, и скорее всего, ваши коллеги уже слышали о SwiftNIO.
📺 А в этом видео можно узнать о дополнительных требованиях к серверу и посмотреть на пример клиентского кода (он интуитивен).
📖 Документация по новому методу доступна на сайте Apple.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Шейдеры в Xcode 15: возможности, примеры кода и математика
📖 В большой обзорной статье приводятся примеры кода, интеграции и работы с разными типами шейдеров.
🧑💻 А для тех, кто хочет прокачать свои знания — есть целая спецификация по созданию собственных шейдеров от Apple, Metal Shading Language (сокращённо, MSL).
😃 iOS Dev
Shader
— это референс на функцию в либе Metal, и в этом году появилось несколько новых модификаторов для его использования внутри SwiftUI
. Пожалуй, основной недостаток — его доступность с iOS 17, в отличие от примера выше.📖 В большой обзорной статье приводятся примеры кода, интеграции и работы с разными типами шейдеров.
Please open Telegram to view this post
VIEW IN TELEGRAM