Trailing label TextField в SwiftUI
Бывают кейсы, когда в TextField вам надо отображать не только введенный пользователем текст, но и какой-то суффикс. Например, автоматически добавлять домен почтового ящика при вводе логина. В короткой статье разбирается несколько трюков, которые помогут сверстать такую вьюху.
Бывают кейсы, когда в TextField вам надо отображать не только введенный пользователем текст, но и какой-то суффикс. Например, автоматически добавлять домен почтового ящика при вводе логина. В короткой статье разбирается несколько трюков, которые помогут сверстать такую вьюху.
Курс «Английский для разработчиков» Яндекс Практикума
Для тех, кто хочет изменить свою профессиональную жизнь и работать в международной команде.
Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков:
✋Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи.
👨💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи.
📣 Митапы. Сможете понимать на слух доклады и выступать сами.
😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать.
👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее.
💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение.
Запишитесь на бесплатную консультацию. Кураторы определят ваш уровень языка и расскажут подробнее про обучение.
Реклама АНО ДПО "Образовательные технологии Яндекса", ИНН:7704282033, erid: LjN8JuH9p
Для тех, кто хочет изменить свою профессиональную жизнь и работать в международной команде.
Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков:
✋Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи.
👨💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи.
📣 Митапы. Сможете понимать на слух доклады и выступать сами.
😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать.
👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее.
💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение.
Запишитесь на бесплатную консультацию. Кураторы определят ваш уровень языка и расскажут подробнее про обучение.
Реклама АНО ДПО "Образовательные технологии Яндекса", ИНН:7704282033, erid: LjN8JuH9p
Серия статей про CloudKit
Очень подробный цикл про все аспекты работы с CloudKit – начиная от общих концепций, заканчивая обработкой сложных кейсов изменений стейта.
Очень подробный цикл про все аспекты работы с CloudKit – начиная от общих концепций, заканчивая обработкой сложных кейсов изменений стейта.
Как работают mergeable libraries
В Xcode 15 появился новый тип библиотек – mergeable libraries. Они оптимизированы одновременно под то, чтобы размер приложения и время билда не увеличивались, и под то, чтобы не росло время запуска приложения. Короче говоря, совмещают в себе все лучшее от static libraries и dynamic frameworks.
В статье разбирается, как именно они работают и как их можно использовать в многомодульном проекте.
В Xcode 15 появился новый тип библиотек – mergeable libraries. Они оптимизированы одновременно под то, чтобы размер приложения и время билда не увеличивались, и под то, чтобы не росло время запуска приложения. Короче говоря, совмещают в себе все лучшее от static libraries и dynamic frameworks.
В статье разбирается, как именно они работают и как их можно использовать в многомодульном проекте.
Проигрывание gif в SwiftUI
В SwiftUI добавили новую функцию
С ними связана и новая настройка accessibility, которая позволяет отключать анимированные изображения. Поэтому, если будете их реализовывать, не забывайте подписываться на
В SwiftUI добавили новую функцию
CGAnimateImageAtURLWithBlock
, с помощью которой можно легко запускать анимированные гифки.С ними связана и новая настройка accessibility, которая позволяет отключать анимированные изображения. Поэтому, если будете их реализовывать, не забывайте подписываться на
AXAnimatedImagesEnabledDidChangeNotification
и проверять AXAnimatedImagesEnabled
перед проигрыванием гифок.История миграции библиотеки из CocoaPods на SwiftPM
Разработчики ETTrace рассказывают, как они добавляли поддержку SwiftPM, и что она им дала.
Основной плюс переезда – конфигурация билда проекта стала проще, так как вместо xcodeproj используется простой Package.swift.
Из встреченных проблем:
- Много мелких багов в SPM
- Если зависимость не поддерживает SPM, приходится ее форкать и добавлять поддержку самостоятельно
- Пришлось рефакторить проект, чтобы Swift и ObjC код не были в одном таргете
Разработчики ETTrace рассказывают, как они добавляли поддержку SwiftPM, и что она им дала.
Основной плюс переезда – конфигурация билда проекта стала проще, так как вместо xcodeproj используется простой Package.swift.
Из встреченных проблем:
- Много мелких багов в SPM
- Если зависимость не поддерживает SPM, приходится ее форкать и добавлять поддержку самостоятельно
- Пришлось рефакторить проект, чтобы Swift и ObjC код не были в одном таргете
Emergetools
Emerge Tools Blog | Moving ETTrace from CocoaPods to Swift Package Manager
How we build ETTrace with Swift Package Manager
Почему мы всё время начинаем и бросаем учить английский?
Одна из причин — мы не знаем свой уровень языка. В итоге берёмся за контент, который нам не по силам. Например, сериал «Друзья» часто советуют смотреть тем, кто начинает учить язык, но в нём полно юмора, который начинающие пока понять не могут.
В итоге разрыв знаний удручает и мотивация снова падает.
Если вы готовы дать английскому ещё один шанс, Яндекс Практикум поможет поверить в свои силы и довести дело до конца.
Приходите на бесплатную консультацию в Яндекс Практикум:
- Проведут устный тест на уровень языка,
- Покажут, чего реально добиться и за какой срок,
- Расскажут, как их курсы помогут достичь цели.
Записаться
Реклама АНО ДПО "Образовательные технологии Яндекса", ИНН:7704282033, erid: LjN8KKsBt
Одна из причин — мы не знаем свой уровень языка. В итоге берёмся за контент, который нам не по силам. Например, сериал «Друзья» часто советуют смотреть тем, кто начинает учить язык, но в нём полно юмора, который начинающие пока понять не могут.
В итоге разрыв знаний удручает и мотивация снова падает.
Если вы готовы дать английскому ещё один шанс, Яндекс Практикум поможет поверить в свои силы и довести дело до конца.
Приходите на бесплатную консультацию в Яндекс Практикум:
- Проведут устный тест на уровень языка,
- Покажут, чего реально добиться и за какой срок,
- Расскажут, как их курсы помогут достичь цели.
Записаться
Реклама АНО ДПО "Образовательные технологии Яндекса", ИНН:7704282033, erid: LjN8KKsBt
Какие приложения были первыми в App Store
Ребята собирают список 500 первых приложений и игр, появившихся в App Store. Пока получилось найти следы только 130 из них. Идеально для тех, кто хочет поностальгировать по старым временам.
Ребята собирают список 500 первых приложений и игр, появившихся в App Store. Пока получилось найти следы только 130 из них. Идеально для тех, кто хочет поностальгировать по старым временам.
Google Docs
App Store day-one apps list
SwiftUI Data Flow 2023
Системный разбор всех способов организации работы со стейтом в SwiftUI с учетом новинок последней WWDC.
👉Код на GitHub
Системный разбор всех способов организации работы со стейтом в SwiftUI с учетом новинок последней WWDC.
👉Код на GitHub
This media is not supported in your browser
VIEW IN TELEGRAM
Запуск Xcode Preview на девайсе
В последнем Xcode превью можно запускать на реальных девайсах. Детали есть в этой сессии WWDC.
В последнем Xcode превью можно запускать на реальных девайсах. Детали есть в этой сессии WWDC.
Отслеживание переключателя тихого режима
Бесшумный режим в iOS не распространяется автоматически на проигрывание медиа. Поэтому Instagram умеет детектить включенность этого режима и глушить звук, если нужно. Проблема в том, что задокументированного API для этого нет. Самый известный воркэраунд – проиграть звук, и, если коллбэк о его окончании придет сразу же, считать бесшумный режим включенным.
Автор статьи пошел дальше и раскопал, на какое системное событие надо подписаться, чтобы "честно" узнавать о бесшумном режиме, и выпустил обертку, которую можно использовать и в ваших проектах.
Бесшумный режим в iOS не распространяется автоматически на проигрывание медиа. Поэтому Instagram умеет детектить включенность этого режима и глушить звук, если нужно. Проблема в том, что задокументированного API для этого нет. Самый известный воркэраунд – проиграть звук, и, если коллбэк о его окончании придет сразу же, считать бесшумный режим включенным.
Автор статьи пошел дальше и раскопал, на какое системное событие надо подписаться, чтобы "честно" узнавать о бесшумном режиме, и выпустил обертку, которую можно использовать и в ваших проектах.
Хабр
iOS: Узнать и отслеживать состояние физического переключателя тихого режима
Инстаграм же так умеет, и мы тоже так хотим. TLDR: и даже никакого приватного апи import notify var token = NOTIFY_TOKEN_INVALID notify_register_dispatch( "com.apple.springboard.ringerstate",...
Программировали, программировали и переросли свои задачи?
Работайте над масштабными ИТ-проектами в Тинькофф. Здесь тимлид хороший и задачи интересные. А работать можно прямо там, где живете: у Тинькофф есть ИТ-хабы в 25 городах России, в Беларуси, Армении и Казахстане.
Вакансии тут: https://u.tinkoff.ru/it-prof.2023
Работайте над масштабными ИТ-проектами в Тинькофф. Здесь тимлид хороший и задачи интересные. А работать можно прямо там, где живете: у Тинькофф есть ИТ-хабы в 25 городах России, в Беларуси, Армении и Казахстане.
Вакансии тут: https://u.tinkoff.ru/it-prof.2023
Что видят пользователи неподдерживаемых версий OS в App Store
Когда вы предложите своему продакту дропнуть поддержку старых версий iOS, он скорее всего спросит, как именно будет выглядеть опыт тех, кто на них все еще сидит. По ссылке собрали скриншоты и ответы на другие частые вопросы.
Когда вы предложите своему продакту дропнуть поддержку старых версий iOS, он скорее всего спросит, как именно будет выглядеть опыт тех, кто на них все еще сидит. По ссылке собрали скриншоты и ответы на другие частые вопросы.
Apple Push Notifications Console
Apple выпустили новый сервис для тестирования push уведомлений. С его помощью можно отправлять тестовые пуши с любым пэйлоадом на конкретные девайсы, видеть детальные логи процесса доставки, проверять ваши токены.
Apple выпустили новый сервис для тестирования push уведомлений. С его помощью можно отправлять тестовые пуши с любым пэйлоадом на конкретные девайсы, видеть детальные логи процесса доставки, проверять ваши токены.
Разбор новых фичей Figma
👉Переменные, которые могут представлять цвета, размеры, эффекты, типографику и локализованные строки.
👉Новые настройки автолейаута, с помощью которых можно прямо в Figma делать адаптивный дизайн.
👉Новый Developer Mode, который позволяет готовить экраны для передачи их разработчикам.
👉Песочница компонентов, в которой дизайнер может легко переключать разные настройки экспортируемых компонентов и смотреть, как они себя ведут в граничных состояниях.
👉Поддержка в VSCode для работы с макетом прямо в IDE.
👉Плагины для экспорта дизайна в код на любом фреймворке.
👉Переменные, которые могут представлять цвета, размеры, эффекты, типографику и локализованные строки.
👉Новые настройки автолейаута, с помощью которых можно прямо в Figma делать адаптивный дизайн.
👉Новый Developer Mode, который позволяет готовить экраны для передачи их разработчикам.
👉Песочница компонентов, в которой дизайнер может легко переключать разные настройки экспортируемых компонентов и смотреть, как они себя ведут в граничных состояниях.
👉Поддержка в VSCode для работы с макетом прямо в IDE.
👉Плагины для экспорта дизайна в код на любом фреймворке.
Новая библиотека от Apple – swift-http-types
Библиотека содержит в себе базовые типы для работы с сетевыми запросами:
Основная идея – иметь единую библиотеку и для клиента, и для сервера, чтобы было проще шарить одинаковый код.
Библиотека содержит в себе базовые типы для работы с сетевыми запросами:
HTTPRequest
, HTTPResponse
, HTTPFields
, конвертеры в аналогичные типы в Foundation и хелперы для URLSession
. Основная идея – иметь единую библиотеку и для клиента, и для сервера, чтобы было проще шарить одинаковый код.
Недостатки SwiftPM при шаринге общих модулей между проектами
Женя Ртищев рассказал про то, как он пытался красиво разложить общий код своих проектов по нескольким пакетам, и затягивать их к себе из приватного репозитория.
Женя Ртищев рассказал про то, как он пытался красиво разложить общий код своих проектов по нескольким пакетам, и затягивать их к себе из приватного репозитория.
Как тестируют в 100 компаниях
Реаозиторий с подборкой ресурсов о том, как организовано тестирование и CI/CD мобильных приложений в очень разных компаниях. В списке есть Netflix, Reddit, Revolut и Uber.
Реаозиторий с подборкой ресурсов о том, как организовано тестирование и CI/CD мобильных приложений в очень разных компаниях. В списке есть Netflix, Reddit, Revolut и Uber.
GitHub
GitHub - testableapple/how-they-automate-on-mobile: A curated collection of publicly available resources on how software companies…
A curated collection of publicly available resources on how software companies implement automation on iOS and Android platforms 📱🚢 - testableapple/how-they-automate-on-mobile
Вакансия для тех, кто хочет работать с видео и AI
Ребята из 4spaces ищут iOS разработчиков на три приложения: редактор видео для рилсов/тиктока, создание медиаконтента с помощью AI и фоторедактор, тоже на базе AI. Приложения уже были в топе в нескольких странах в App Store. Требования довольно стандартные для любого айосера мидла. А если вы работали с AVFoundation, Metal, или набрались опыта по настройке CI/CD, то это будет значительным плюсом. Ах, да – вакансия полностью удаленная, а на весь процесс собеса ребята обещают потратить не больше 2 часов вашего времени!
Ребята из 4spaces ищут iOS разработчиков на три приложения: редактор видео для рилсов/тиктока, создание медиаконтента с помощью AI и фоторедактор, тоже на базе AI. Приложения уже были в топе в нескольких странах в App Store. Требования довольно стандартные для любого айосера мидла. А если вы работали с AVFoundation, Metal, или набрались опыта по настройке CI/CD, то это будет значительным плюсом. Ах, да – вакансия полностью удаленная, а на весь процесс собеса ребята обещают потратить не больше 2 часов вашего времени!
Названия макросов теперь зарезервированы
Если вы использовали какое-то слово для названия макроса, при попытке использовать его же в названии объекта вы получите неочевидную ошибку –
Если вы использовали какое-то слово для названия макроса, при попытке использовать его же в названии объекта вы получите неочевидную ошибку –
No macro named xxx
. Пример – макрос #Preview
.