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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
⚡️🍎Страшно быстрые новинки 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
📱 Регистрация на 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