bootg.com »
United States »
iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT » Telegram Web
Apple запустили новостную рассылку для разработчиков
Apple продолжает менять свою стратегию взаимоотношений с разработчиками и становиться более открытым. В этот раз запустили регулярную рассылку, в которую будут включать все ключевые новости, произошедшие за последнее время. В декабрьском выпуске:
👉Использование App Store Connect для работы с Game Center
👉Разбор вопросов про spatial design
👉App Store 2023 awards
👉Интервью с разработчиком Ancient Board Game Collection
Apple продолжает менять свою стратегию взаимоотношений с разработчиками и становиться более открытым. В этот раз запустили регулярную рассылку, в которую будут включать все ключевые новости, произошедшие за последнее время. В декабрьском выпуске:
👉Использование App Store Connect для работы с Game Center
👉Разбор вопросов про spatial design
👉App Store 2023 awards
👉Интервью с разработчиком Ancient Board Game Collection
Импорт макросов в проект без SwiftPM
Иногда вам может потребоваться импортировать макрос в проект в CocoaPods зависимости или напрямую. В статье разбирается, как скомпилировать макрос в бинарник и корректным образом подключить его к проекту.
Иногда вам может потребоваться импортировать макрос в проект в CocoaPods зависимости или напрямую. В статье разбирается, как скомпилировать макрос в бинарник и корректным образом подключить его к проекту.
www.polpiella.dev
How to import Swift macros without using Swift Package Manager
How to compile a Swift macro into a binary and import it into your Xcode project without using Swift Package Manager.
Как работает модификатор fixedSize()
В зависимости от типа вьюшки модификатор fixedSize() может как растянуть ее до границ родительской, так и сжать до какого-то небольшого размера. Под капотом там такая логика:
👉Взять пропозал по размеру от родителя
👉Выбрать размер, который идеально подходит самой вьюшке в зависимости от ее контента
В зависимости от типа вьюшки модификатор fixedSize() может как растянуть ее до границ родительской, так и сжать до какого-то небольшого размера. Под капотом там такая логика:
👉Взять пропозал по размеру от родителя
👉Выбрать размер, который идеально подходит самой вьюшке в зависимости от ее контента
Обновлен вводный курс в SwiftUI
Apple обновили курс для тех, кто только вкатывается в SwiftUI. За четыре часа вы изучаете основы фреймворка, работу с анимациями, лэйаут сложных интерфейсов и интероп с UIKit.
Apple обновили курс для тех, кто только вкатывается в SwiftUI. За четыре часа вы изучаете основы фреймворка, работу с анимациями, лэйаут сложных интерфейсов и интероп с UIKit.
Google AI SDK для Swift
Google выпустили SDK, который дает удобный доступ ко всем их моделям, включая совсем свежую Gemini. SDK умеет:
👉Генерировать текст по текстовому вводу
👉Генерировать текст по мультимодальному вводу из текста и изображений
👉Работать в режиме чата
Google выпустили SDK, который дает удобный доступ ко всем их моделям, включая совсем свежую Gemini. SDK умеет:
👉Генерировать текст по текстовому вводу
👉Генерировать текст по мультимодальному вводу из текста и изображений
👉Работать в режиме чата
Arc браузер, написанный на Swift, вышел на Windows
Первое большое десктопное приложение, целиком написанное на Swift, вышло на Windows. Я все еще считаю эту идею абсолютно сумасшедшей. Если хотите узнать больше деталей про разработку, вот видео. Весь наработанный тулчейн обещают заопенсорсить.
Первое большое десктопное приложение, целиком написанное на Swift, вышло на Windows. Я все еще считаю эту идею абсолютно сумасшедшей. Если хотите узнать больше деталей про разработку, вот видео. Весь наработанный тулчейн обещают заопенсорсить.
Как регулируется accessibility
Обзор стандартов, законов и регулировок, которые существуют в разных странах для того, чтобы увеличивать доступность сайтов и приложений.
Обзор стандартов, законов и регулировок, которые существуют в разных странах для того, чтобы увеличивать доступность сайтов и приложений.
Добавление описаний к изображениям с помощью OpenAI Vision API
Автор Mastodon-клиента Ice Cubes рассказывает, как с помощью Vision API добавил в свое приложение фичу автоматической генерации описаний публикуемых изображений.
Автор Mastodon-клиента Ice Cubes рассказывает, как с помощью Vision API добавил в свое приложение фичу автоматической генерации описаний публикуемых изображений.
Medium
Adding AI-generated image description to Ice Cubes
A little story on why and how I did it
Зачем айосеру учить другие языки
Разработчик из Альфы рассказывает, почему ему нравится изучать языки программирования помимо Swift, и что вообще это может дать айосеру. Список причин такой:
👉Меньше выгораешь от рутины.
👉Получаешь навыки, которые могут пригодиться в будущем. Например, когда захочешь где-то поднять бэкенд.
👉Расширяешь свою картину мира, узнаешь про новые подходы.
👉Быстрее и проще решаешь повседневные задачи и выбираешь подходящие инструменты для автоматизации.
👉Обеспечиваешь себе ветку роста в фуллстека или техлида.
Кстати, мы когда-то писали офигенный выпуск Подлодки с Брагилевским как раз про то, как учить языки программирования.
Разработчик из Альфы рассказывает, почему ему нравится изучать языки программирования помимо Swift, и что вообще это может дать айосеру. Список причин такой:
👉Меньше выгораешь от рутины.
👉Получаешь навыки, которые могут пригодиться в будущем. Например, когда захочешь где-то поднять бэкенд.
👉Расширяешь свою картину мира, узнаешь про новые подходы.
👉Быстрее и проще решаешь повседневные задачи и выбираешь подходящие инструменты для автоматизации.
👉Обеспечиваешь себе ветку роста в фуллстека или техлида.
Кстати, мы когда-то писали офигенный выпуск Подлодки с Брагилевским как раз про то, как учить языки программирования.
Хабр
Как много языков может влезть в одного программиста?
Всем привет, меня зовут Серёжа, я технический лидер iOS-разработки в Альфа-Банке. Сегодня я хочу поговорить о многогранности мира программирования, а именно о количестве языков и причинах, по которым...
Как устроен протокол iMessage
Все про устройство протокола iMessage: работа с APNs, сервис ключей и шифрование сообщений. А если захотите закопаться подробнее, в конце статьи куча ссылок на более детальный анализ.
Все про устройство протокола iMessage: работа с APNs, сервис ключей и шифрование сообщений. А если захотите закопаться подробнее, в конце статьи куча ссылок на более детальный анализ.
Хабр
Как устроен протокол iMessage
В этом посте я вкратце расскажу о внутреннем устройстве iMessage, изученном мной в процессе работы над pypush — опенсорсным проектом воссоздания реализации iMessage. Ради краткости и понятности я не...
Как дизайнить bounding box handles
Небольшое эссе про то, как можно накосячить в UX такой стандартной штуки, как управление границами выделенного объекта.
Небольшое эссе про то, как можно накосячить в UX такой стандартной штуки, как управление границами выделенного объекта.
Организация онбординга с помощью паттерна Сага
Сага – паттерн, который помогает описать процессы, затрагивающие сразу много различных компонентов. Например, в условном финтехе Сагой можно представить последовательность запросов к различным сервисам: прайсингу, чекауту, проверки транзакции. Этот паттерн можно использовать и в разработке UI. В статье разбирается, как с его помощью управлять последовательностью онбординговых экранов.
Сага – паттерн, который помогает описать процессы, затрагивающие сразу много различных компонентов. Например, в условном финтехе Сагой можно представить последовательность запросов к различным сервисам: прайсингу, чекауту, проверки транзакции. Этот паттерн можно использовать и в разработке UI. В статье разбирается, как с его помощью управлять последовательностью онбординговых экранов.
Swift Evolution дайджест за декабрь
В декабре были приняты три интересных пропозала.
SE-0413: Typed throws
SE-0404: Nested Protocols in Non-Generic Contexts
SE-0409: Access-level modifiers on import declarations
В декабре были приняты три интересных пропозала.
SE-0413: Typed throws
SE-0404: Nested Protocols in Non-Generic Contexts
SE-0409: Access-level modifiers on import declarations
Substack
Swift Evolution Monthly: December '23
Our biggest wish came true: Explaining Typed Throws in Swift. Also: Improved namespacing and reduced dependency creep. And 14 more proposals linked!
This media is not supported in your browser
VIEW IN TELEGRAM
Примеры Dynamic Island от Apple
Дизайнер Apple поделился подборкой анимаций в Dynamic Island, появившихся в iOS в последних релизах.
Дизайнер Apple поделился подборкой анимаций в Dynamic Island, появившихся в iOS в последних релизах.
Typestate – новый паттерн в Swift 5.9
С появлением Noncopyable типов в Swift 5.9 стало возможным реализовать паттерн Typestate. По сути, это стейт-машина на типах, с помощью которой проверку корректности бизнес-логики можно переложить на компилятор. В статье на простом примере показывают, как этот паттерн реализовать.
С появлением Noncopyable типов в Swift 5.9 стало возможным реализовать паттерн Typestate. По сути, это стейт-машина на типах, с помощью которой проверку корректности бизнес-логики можно переложить на компилятор. В статье на простом примере показывают, как этот паттерн реализовать.
Тестирование миграций в SwiftData
На примере семпла SwiftDataAnimals разбирается, как написать миграцию с одной версии схемы на другую и правил но ее протестировать. Результат можно посмотреть на GitHub.
На примере семпла SwiftDataAnimals разбирается, как написать миграцию с одной версии схемы на другую и правил но ее протестировать. Результат можно посмотреть на GitHub.
Medium
Testing SwiftData Migrations
XCTesting SwiftData VersionedSchema Migrations: an example based on Apple’s SwiftDataAnimals sample project.
Выпуски Подлодки для айосеров
Подлодка семь лет назад начиналась как подкаст про iOS разработку. Спустя год от этой концепции мы отошли и начали охватывать более широкий круг тем. Но все равно, айосников среди наших слушателей по прежнему очень много. Держите подборку выпусков за 2023 год, которые могут вам зайти:
👉Цвета и цветовые пространства с Андреем Ситником про то, чем отличаются друг от друга CMYK, RGB, OKLCH и другие способы представления цветов на экранах.
👉Ruby c Дмитрием Цепелевым про язык, с которым вы периодически сталкиваетесь, работая с CocoaPods и Fastlane.
👉Мобильные фермы с Антоном Малинским про то, как управлять сотнями девайсов на уровне софта и железа.
👉Backend driven UI с Александром Казарцевым с полным обзором плюсов, минусов и сложностей перехода к нему.
👉Теория сложности с Александром Куликовым с разбором вообще всех стыдных вопросов про алгоритмы.
👉Сыр с Александром Крупецковым, потому что плох тот айосник, который не любит сыр.
👉Рендеринг текста с Никитой Прокоповым про путь, который проходит строчка от хранения в переменной до отображения на экране.
Если вам понравились эти или другие выпуски – напишите нам что-то хорошее в отзывах в Apple Podcasts, или прямо в чатике подкаста!
Подлодка семь лет назад начиналась как подкаст про iOS разработку. Спустя год от этой концепции мы отошли и начали охватывать более широкий круг тем. Но все равно, айосников среди наших слушателей по прежнему очень много. Держите подборку выпусков за 2023 год, которые могут вам зайти:
👉Цвета и цветовые пространства с Андреем Ситником про то, чем отличаются друг от друга CMYK, RGB, OKLCH и другие способы представления цветов на экранах.
👉Ruby c Дмитрием Цепелевым про язык, с которым вы периодически сталкиваетесь, работая с CocoaPods и Fastlane.
👉Мобильные фермы с Антоном Малинским про то, как управлять сотнями девайсов на уровне софта и железа.
👉Backend driven UI с Александром Казарцевым с полным обзором плюсов, минусов и сложностей перехода к нему.
👉Теория сложности с Александром Куликовым с разбором вообще всех стыдных вопросов про алгоритмы.
👉Сыр с Александром Крупецковым, потому что плох тот айосник, который не любит сыр.
👉Рендеринг текста с Никитой Прокоповым про путь, который проходит строчка от хранения в переменной до отображения на экране.
Если вам понравились эти или другие выпуски – напишите нам что-то хорошее в отзывах в Apple Podcasts, или прямо в чатике подкаста!
podlodka.io
Podcast Records
Слушайте бесплатно все выпуски подкаста Podlodka.
Видеокурс по SwiftData
Бесплатный цикл роликов на YouTube с разбором всех особенностей работы со SwiftData:
👉CRUD операции
👉Динамические сортировки и фильтры
👉Легковесные миграции
👉Связи один ко многим и много ко многим
👉Работа с CloudKit
Бесплатный цикл роликов на YouTube с разбором всех особенностей работы со SwiftData:
👉CRUD операции
👉Динамические сортировки и фильтры
👉Легковесные миграции
👉Связи один ко многим и много ко многим
👉Работа с CloudKit
Self-hosted CI в Додо
Ребята из Додо рассказывают, как эволюционировал CI в их команде.
👉Тимсити с единственным раннером на старом Mac Mini
👉Облачные раннеры в Bitrise
👉Self-hosted GitHub раннеры на М1
👉Виртуализация с помощью Cilicon
Ребята из Додо рассказывают, как эволюционировал CI в их команде.
👉Тимсити с единственным раннером на старом Mac Mini
👉Облачные раннеры в Bitrise
👉Self-hosted GitHub раннеры на М1
👉Виртуализация с помощью Cilicon
Хабр
Как Додо Пицца доставляет свежий код: история мобильного CI для iOS
Мобильная разработка под iOS особенная: собрать приложение можно только на macOS, среда разработки по сути только одна, большая часть принятого в сообществе тулинга написана на Ruby, свой пакетный...
Godot для iPad
Miguel de Icaza, известный в том числе тем, что разработал Xamarin, начал в качестве хобби проекта портировать редактор игрового движка Godot для разработки под iPad. Ну как портировать – скомпилировать его уже и сейчас можно, но он заточен под работу с мышью. План – перевести необходимую часть интерфейса на компоненты SwiftUI. Короче говоря, интересный проект, за которым точно стоит наблюдать!
Miguel de Icaza, известный в том числе тем, что разработал Xamarin, начал в качестве хобби проекта портировать редактор игрового движка Godot для разработки под iPad. Ну как портировать – скомпилировать его уже и сейчас можно, но он заточен под работу с мышью. План – перевести необходимую часть интерфейса на компоненты SwiftUI. Короче говоря, интересный проект, за которым точно стоит наблюдать!