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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🐱 TipKit-Examples
Мы уже разбирали статьи и доклады про TipKit но пока его не стали все использовать, сложно понять как он выглядит и ощущается. Анимации и поведение нужны для спецификации задач и демонстации нативного элемента дизайнеру. Простой Example, который можно поставить на свой телефон уже сегодня
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👎3
This media is not supported in your browser
VIEW IN TELEGRAM
На Reddit обсуждают Sideloading в новой бете iOS
В актуальной iOS 17.2 beta нашли возможность устанавливать ipa напрямую, например через airdrop. Успешно завершается установка если эту ipa вы сами ранее скачали из App Store под своей учетной записью Apple ID, другими словами-подписали. При попытке установить файл, связанный с чужой записью Apple ID, вываливается ошибка с невозможностью проверки его целостности
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎2
🖥 Готов ли Swift OpenAPI Generator для продуктивного кода? (10 мин 🇷🇺)
Детальный разбор про нативный Swift OpenAPI (Swagger) генератор исходников. Вообще я фанат подхода с кодогенерацией сетевого слоя, это не только сокращение бойлерплейта но и исключение человеческого фактора на уровне клиент-серверного взаимодействия. Если вам предоставляют Swagger с методами бека, вы можете генерировать нативный код: модели, запросы, парсеры, ошибки согласно спецификации. Сам давно использую java генератор для шаринга Spec-first подхода и для клиента и для сервера, но его интеграция гораздо сложнее для мобильной команды чем новый Swift генератор ❤️‍🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
👎4👍3
⚡️🍎Страшно быстрые новинки Apple

Сегодня ночью Apple провела мероприятие в канун Хэллоуина с говорящим названием, "Scary Fast". Страшно быстрое новое поколение чипов M-серии, MacBook Pro и iMac. Это было первое мероприятие, начавшееся с "Добрый вечер". По ссылке вас ждет детельный обзор всех новинок, коротко:

⌨️Новое поколение чипов серии M: M3, M3 Pro и M3 Max. Изготовлены по 3-нм техпроцессу, в GPU появилось динамическое кэширование, аппаратная трассировка лучей, улучшена энергоэффективность, до 128 ГБ RAM
💻Новая линейка MacBook Pro с чипами M3. Теперь от $1599 за базовую 14-дюймовую модель, на 20% быстрее чем M2 и M3 Max почти в 2 раза быстрее, чем M2 Max.
💻iMac обновился с M1 сразу на M3. Цена осталась прежней, от $1299, но в 2 раза быстрее
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Плохая практика: не использовать фантомные типы (2 мин 🇺🇸)
Интересная идея - использовать фантомные типы с Generic для типобезопасности кода. В статье детально разбирается пример в котором такой подход помогает избегать ошибок, но я с такими ошибками не сталкивался... Как думаете, полезная идея 👍 или усложнение ради усложнения 👎 и достаточно делать typealias на swift типы?
Please open Telegram to view this post
VIEW IN TELEGRAM
👎18👍14
Умные программисты пишут STUPID-код

Лозунг: Вы умны. А умные программисты пишут STUPID-код, потому что это умный способ писать код.
Я для себя сформулировал похожие оценки для кода:
👉 На сколько его просто прочитать коллеге на ревью,
👉 На сколько его просто покрыть тестами
👉 На сколько понятно куда внести изменения

Часто лучше оставить менее красивую, но более понятную конструкцию и это очень сложно для настоящего инженера-перфекционита
👎1
🐚 Skip - плагин Xcode для транспиляции SwiftUI приложения на Android

Пятница - самое время рассмотреть очередной кросплатформенный движок. По-началу, когда я о нем услышал, мысленно закопал. Но потом понял что идея вполне жизнеспособна:
🔥 Полный натив для iOS, в отличии от большинства движков (Flutter, Compose Multiplatform). Look&Feel из коробки. SwiftUI на iOS и Compose на Andoid
🔥 Нет отдельного языка или новых концепций как с React Native или Xamarin
🔥 Нет проблем с ARC - код изначально пишется на Swift+SwiftUI
🔥 Исходники Kotlin, которые генерятся движком, могут быть не только просмотрены но и отредактированы

Не все так просто, даже если опустить вендорлок:
💩Поддержка языка ограничена, нужно думать какие конструкции можно использовать
💩Нативные компоненты прийдется писать свои или адаптировать сильно транспилированный код
💩В качестве БД прийдется использовать прямые обращения к sqlite

Почему я думаю, что это может взлететь?
💸Стартапы часто начинают с iOS-only приложения, которые пишут на самых актуальных инструментах, а это способ быстрее получить аналог на Android и проверить интерес
💸Проще найти разработчика который умеет писать нативный код для iOS и адаптирует его под Android

Можно поступить мудро, и посмотреть взлетит ли этот подход через пару лет, ведь если долго сидеть на берегу реки, то можно увидеть, как мимо проплывёт труп твоего врага 😀
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎9
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