Зачем айосеру учить другие языки
Разработчик из Альфы рассказывает, почему ему нравится изучать языки программирования помимо 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. Короче говоря, интересный проект, за которым точно стоит наблюдать!
Кастомизация Strings Catalog в зависимости от типа девайса
Оказывается, с помощью Strings Catalog можно настраивать разный перевод строки в зависимости от типа девайса, на котором будет запущен проект. Идеально для кроссплатформенных проектов для iOS и macOS.
Оказывается, с помощью Strings Catalog можно настраивать разный перевод строки в зависимости от типа девайса, на котором будет запущен проект. Идеально для кроссплатформенных проектов для iOS и macOS.
Как AnyView влияет на перфоманс
Автор статьи проводит несколько замеров того, как использование AnyView вместо конкретных типов ухудшает производительность в SwiftUI.
Автор статьи проводит несколько замеров того, как использование AnyView вместо конкретных типов ухудшает производительность в SwiftUI.
Новый выпуск рассылки Hello Developer от Apple
В этот раз основная тема рассылки – разработка под Vision Pro.
👉Открыта возможность отправлять на ревью свои приложения для Vision App Store
👉Кейс-стади от компании, которая делает приложение с виртуальным диджейским пультом
👉Статья с Q&A про разработку под очки
👉Открыта запись на Developer Labs про Vision Pro
В этот раз основная тема рассылки – разработка под Vision Pro.
👉Открыта возможность отправлять на ревью свои приложения для Vision App Store
👉Кейс-стади от компании, которая делает приложение с виртуальным диджейским пультом
👉Статья с Q&A про разработку под очки
👉Открыта запись на Developer Labs про Vision Pro
This media is not supported in your browser
VIEW IN TELEGRAM
Как сделать иконку для Vision Pro
Раз кто-то из вас уже начинает готовить свои приложения для очков для сабмита в App Store, держите гайд про то, как адаптировать существующую иконку под стандарты новой операционной системы.
Раз кто-то из вас уже начинает готовить свои приложения для очков для сабмита в App Store, держите гайд про то, как адаптировать существующую иконку под стандарты новой операционной системы.
Swift биндинги для WinRT
Если вы пропустили, то в октябре ребята из Browser Company, которые делают Arc на чистом Swift, и портируют его на Windows, заопенсорсили биндинги к WinRT. Теперь, если вы хотите написать нативное приложение для Windows, можете и сами делать это на Swift.
Если вы пропустили, то в октябре ребята из Browser Company, которые делают Arc на чистом Swift, и портируют его на Windows, заопенсорсили биндинги к WinRT. Теперь, если вы хотите написать нативное приложение для Windows, можете и сами делать это на Swift.
Вызов Swift из C++ кода
В последний Xcode завезли поддержку C++ -> Swift интеропа. По ссылке – инструкция, как его потестить.
В последний Xcode завезли поддержку C++ -> Swift интеропа. По ссылке – инструкция, как его потестить.
chaos.social
Uli Kusterer (@[email protected])
Wow! I hadn't realized calling Swift from C++ had landed in mainline Xcode already! And it's really easy to use:
1. In Xcode, set ‘SWIFT_OBJC_INTEROP_MODE = objcxx’
2. Make sure all Swift you want to call is public
3. Include the "MYSWIFTMODULENAME-Swift.h"…
1. In Xcode, set ‘SWIFT_OBJC_INTEROP_MODE = objcxx’
2. Make sure all Swift you want to call is public
3. Include the "MYSWIFTMODULENAME-Swift.h"…
Perception – бэкпорт Observability
Pointfree выпустили библиотеку Perception, которая бэкпортит Observability framework на все версии iOS, начиная с 13. API аналогичен, но сами макросы и функции называются немного по-другому. Миграция в будущем, кажется, будет несложной.
Pointfree выпустили библиотеку Perception, которая бэкпортит Observability framework на все версии iOS, начиная с 13. API аналогичен, но сами макросы и функции называются немного по-другому. Миграция в будущем, кажется, будет несложной.
Xcodegen для сложных проектных сетапов
Инструкция по настройке Xcodegen для генерации проектов с поддержкой различных окружений (dev/staging), в каждом из которых свои настройки и сертификаты.
Инструкция по настройке Xcodegen для генерации проектов с поддержкой различных окружений (dev/staging), в каждом из которых свои настройки и сертификаты.
Medium
Xcodegen — Getting Deeper
In our first article about xcodegen (that you could read here) we covered: