iOS Broadcast
3.31K subscribers
1.71K photos
84 videos
974 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
Subscript строк по индексу и ренжу
Мое самое большое непонимание в эволюции 🖥Swift - удаление substring при переходе с Swift 2.3 на Swift 3.0. Из-за некоторых граничных кейсов, которые сложно покрыть обычными индексами, мы потеряли удобство для всех кейсов. В результате чего, почти в каждом проекте есть расширение, позволяющее работать со строками через subscript. И пару раз я находил там баги или неожиданное поведение. На сколько я понимаю, все приседания с ради предсказуемой работы с emoji:

"\u{1F44D}" // 👍
"\u{1F44D}\u{1F3FD}" // 👍🏽

Если вы тоже работаете с обычными строками, забирайте мой gist
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👎1
Легковесный типобезопасный макрос для работы с сетью в Swift

SwiftRequest абстрагирует бойлерплейт, который обычно связан с настройкой HTTP-запросов в Swift. Он использует макросы, которые можно связать с конкретными объявлениями для улучшения и расширения их функциональности. Очень напоминает Retrofit на андроид

Макросы в Swift это новое дыхание для языка, главное чтобы это не превратилось в молоток, взяв в руки который все становится гвоздями. Как относитесь к подобным неявным упрощениям в коде? 👍/👎
👍22👎3
⚠️ Изменения в конструкторе URL из строки в iOS 17
Если зайти в документацию URL конструктора с аргументом в виде строки, там появилась секция:

⚠️Важно! Начиная с iOS 17 поведение метода будет соответствовать RFC 3986.

Понятно что важно, но что это значит на практике? На самом деле, все проще чем кажется! Новое значение по умолчанию заключается в том, что URL(string:) пытается закодировать недопустимые символы. Если мы хотим продолжать использовать поведение, существовавшее до iOS 17, нам нужно будет заменить URL(string:) на новый URL(string:encodingInvalidCharacters:) и передать false во второй аргумент. На примере все становится понятно 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎1
🌳Как сделать так, чтобы ваше приложение выглядело, будто вы наняли дизайнера (🇺🇸17 мин)
Хочу поделиться с вами находкой, которую вчера мне подарила предложка 🌃youtube. Это именно то, чего не хватает каждый раз, когда пытаешься сделать свой 🗑 пет проект
✔️ Как подобрать цвета и использовать их так, чтобы приложение выглядело консистентным
✔️ Как делать дизайн интуитивным
✔️ Как списывать как художник используя HIG
✔️ Как не перегружать интерфейс
✔️ Почему важно оставлять свободное место в интерфейсе
✔️ Секретная форма скруглений

И все это используя 🖥Xcode
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25👎1
📱 Регистрация на TraitChanges (🇺🇸3 мин.)
Apple прекратила поддержку метода «traitCollectionDidChange» в iOS 17, заменив его регистрацией на определенные изменения свойств «registerForTraitChanges». В статье на примерах рассматривается как это теперь работает
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👎2
Forwarded from Android Broadcast (Кирилл Розов)
GitHub больше не основывается на Git, а начинает фокусироваться на Copliot технологиях (заявление тут). Это не значит что функционал с репами уйдёт, просто меняется приоритет компании, что уже можно было наблюдать весь год. GitHub Copilot Chat станет доступен всем в декабре 2023 и будет доступен на сайте и мобильных приложениях. Конечно подписку придется оформлять!

Что еще интересного в анонсе:
👉 Представили GitHub Copilot Enterprise - Copilot, который персонализируется под бизнес (39$ за пользователя в месяц)
👉 Безопасность GitHub тоже прокачали с AI (подробности тут)
👉 GitHub Copilot в рамках партнерской программы начнет интеграцию с другими сервисами для расширения знаний ассиcтента

#github #copilot #tooling
👎12👍5
🐚Создайте инструмент командной строки
Выходные - идеальное время для пет проекта. И если вы давно мечтали облегчить свою жизнь при помощи CLI утилиты, в блоге Swift появился туториал:
Как создать проект на основе 🖥SPM
Как сделать красивый вывод в 🐚консоль
Как парсить аргументы комманд

🖥Example проект с рассматриваемым проектом CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👎3
📺Offline-first дизайн мобильных приложений

Еще один доклад с Swift Connection 2023 которым захотелось поделиться после просмотра. Как сделать мобильное приложение доступным без интернета, если сеть ему нужна. Детально рассматриваются проблемы, с которыми сталкиваются разработчики подобных приложений и способы их решений.
👉 Отличие кеша от персистентного реляционного хранилища
👉 Сохранение консистентности состояния приложения
👉 Способы мержить конфликты незаметно для пользователя
👉 CRDT - Бесконфликтные реплицированные типы данных

Очень хорошо разложил по полочкам как сложно сделать работающее в фоне приложение и почему вам это скорее всего не нужно, с чем я абсолютно согласен 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎1
🔥Упрощение отладки SwiftUI в Xcode 15.1: что вызвало перерисовку? (🇷🇺 5 мин)
Очень полезное нововведение в Xcode 15.1, позволяющее удобно отловить лишнее место перерисовки SwiftUI View. Статья показалась мне на столько полезной, что сделал перевод. Уделите 6 минут, будет полезно!
👉 Что такое обновляемый SwiftUI экран
👉 Проблема Массивных SwiftUI View
👉 Использование LLDB для отладки изменений
👉 Использование _logChanges в Xcode 15.1
👉 Решаем проблемы с перерисовкой в SwiftUI
👉 Отладка изменений с помощью кода. Что такое @self и @identity
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15👎1
Forwarded from AvitoTech
Делимся материалами с Avito iOS meetup #10 🕊️

📺 Async / Await. Лучшие практики, советы и особенности
Максим Сурков (МТС) — рассмотрит structured concurrency в Swift, поговорит о async/await, actors, tasks и проведёт аналогии с уже существующими инструментами для работы с многопоточностью

📺 SwiftUI — уже пора?
Тимур Долотказин (Авито) расскажет про свой опыт перехода на новый (старый) фреймворк, подводные камни и выводы, к которым он пришёл.

📺 Гармония статики и динамики: погружаемся в mergeable libraries
Александр Сычев (Тинькофф Страхование) о новом решении Apple – mergeable libraries, он рассмотрит их внутреннее устройство и разберёт, как можно интегрировать их в свои iOS-проекты.

Ссылка на наш плейлист.
Фотографии с мероприятия лежат в альбоме Вконтакте 🔵

#iOS_avitotech #avitoiOSmeetup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👎1