Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день.
Лучшее iOS сообщество в Телеге: @iosgt
Размещение рекламы: @tatiana_2209
Сможете ли вы работать мобильным разработчиком в Тинькофф?
Сравните свои скиллы с требованиями и откликайтесь на вакансии в Тинькофф, если интересно решать сложные финтех-задачи: https://l.tinkoff.ru/mob_pro
CoreTransferrable и ShareLink
В последней версии SwiftUI появился новый подход для шаринга данных из приложения – ShareLink. Это вьюха, на вход которой можно отдать любую структуру, реализующую протокол Transferable. Этот протокол поддержан во многих системных типах данных, например, в изображениях. А при желании, реализовать его можно и в кастомных типах.
DocCGPT – автоматическая документация для ваших пакетов
- DocCGPT – инструмент, который автоматически генерирует документацию для вашего кода с использованием моделей OpenAI.
- Особой разницы между GPT-3.5 и GPT-4 не видно.
- Инструмент пока экспериментальный, результаты надо докручивать руками – но попробовать уже точно стоит!
Перевод на русский язык
И всё-таки, на что мобильному разработчику не жалко потратить субботу?
На конференцию о мобильной разработке Яндекс Go Mobile Day & Night!
Днем будем слушать доклады спикеров и обсуждать, как не положить бэкенд своим приложением. Вечером — вкусно есть и пить, пританцовывать у диджейского пульта и общаться в лаундж-зоне. Не конфа, а фестиваль какой-то!
Всех мобильных разработчиков Яндекс Go приглашает в московский Loft Hall. Встречаемся в субботу, 22 апреля, в 14:00.
Изучайте программу и регистрируйтесь на конфу по ссылке: https://clck.ru/342rza
Реклама ООО "ЯНДЕКС.ТАКСИ" erid: Pb3XmBtzt2BwbDSy2aA6TRTsf9WMEENoyhZfhNN
Релиз Swift 5.8
- Новые языковые фичи, которые можно потрогать в плейграунде.
- Полностью переработана реализация result builder’ов.
- Документацию, собранную DocC, теперь можно кастомизировать.
- Парсер в SwiftSyntax переписан на С++ и научился показывать более понятные ошибки.
Анонс WWDC 2023
Главная неделя всех iOS разработчиков в этом году пройдет 5-9 июня. Большая часть конференции пройдет в онлайне, но на кейноут и State of the Union можно попасть вживую.
Короче, ждем Swift Data и кучи обновлений для будущей xrOS!
VK поддержит разработчиков мини-приложений облачными ресурсами
Разработчики мини-приложений на платформе VK Mini Apps получили доступ к программе поддержки VK Cloud. Каждому участнику программы будет ежемесячно начисляться бонус в 2500 рублей на счет в личном кабинете, которые можно потратить на облачные сервисы и вычислительные ресурсы. Всего же на платформе доступно около 30 инфраструктурных и платформенных сервисов, а также современные инструменты для разработки отказоустойчивых приложений.
Программа действует до конца 2023 года. Для участия необходимо создать учетную запись на платформе VK Cloud и заполнить специальную форму, указав ID проекта.
Построение пайплайна из Metal шейдеров и CIFilter
Чтобы получить эффект анимированного дыма, автор смешивает семь шейдеров и фильтров в один пайплайн. Поиграться с последовательностью нод можно в опенсорсном проекте с несколькими разными пайплайнами.
На что мобильному разработчику не жалко потратить субботу?
Всё не так просто. Скоро расскажем!
Реклама ООО "ЯНДЕКС.ТАКСИ" erid: Pb3XmBtztCBFAwdb6MGW6Xz7K9Y6SRpMH3L6Ncg
Детали миникарты в Xcode
Миникарта в большиестве случаев не особо помогает в навигации по файлу. Держите хинт, как сделать ее более полезной. Наведите на нее курсор, удерживая зажатым Cmd, и на ней появится дополнительный слой информации.
XCTest: Activities и Attachments
Пост про две фичи XCTest, которые полезны для написания UI тестов:
- Activity – группировка нескольких действий с приложением для более читаемых логов
- Attachment - прикрепление к логам дополнительного контекста, например, скриншота состояния экрана
Как работает цвет: от HEX до восприятия глазом
Топовый лонгрид на выходные, который закроет все пробелы в вашем понимании того, как работает цвет: электромагнитное излучение, цветовые пространства, колбочки в глазах, устройство пикселей экрана и многое другое.
Разбор неочевидных вопросов, связанных с релизами в App Store
Примеры вопросов:
- Какая версия приложения загружается теми, кто скачивает его в первый раз, если прямо сейчас раскатывается phased релиз?
- Можно ли катить новый релиз, пока предыдущий еще в процессе phased release?
- Можно ли обновить билд после того, как ревью пройдено, но до того, как релиз перешел в состояние Rwady for Sale?
Отображение только измененных файлов в Xcode
Еще один небольшой хинт про работу в Xcode. Если вы готовите большой PR к ревью, может быть удобно в Project View видеть не все файлы, а только те, в которых были изменения. Для этого в интерфейсе есть специальная галочка, которую легко пропустить.
Перевод на русский язык
Дайджест Swift Evolution за январь-февраль
Новый выпуск дайджеста, в котором автор подробно разбирает все языковые пропозалы, принятые за последнее время.
✅SE-0382: Expression Macros
✅SE-0383: Deprecate @UIApplicationMain and @NSApplicationMain
✅SE-0384: Importing Forward Declared Objective-C Interfaces and Protocols
Swift Package Index теперь спонсируется Apple
Автор рассылки iOS Dev Weekly помимо нее занимается проектом Swift Package Index – реестром Swift зависимостей с автогенерацией документации и проверкой их совместимости. Проект изначально разрабатывался силами комьюнити, но теперь приобрел более официальный статус и получил спонсорство от Apple. Ну круто же!
Реализация пикера эмодзи для iOS
Автор статьи рассказывает, как реализовывал аналог системного macOS пикера эмодзи для iOS.
- Получение списка доступных эмодзи
- Вопросы обратной совместимости
- Тон кожи и двусоставные эмодзи
- Локализация
Библиотека, получившаяся в результате
Все модификаторы, меняющие цвет текста в SwiftUI
В SwiftUI есть несколько модификаторов, которые изменяют цвет текста – foregroundColor, foregroundStyle, tint. В статье разбираются их отличия друг от друга и контекст применения.
Как пробовать фичи новых версий Swift до их релиза
В Swift 5.8 появился новый компиляторный флаг -enable-upcoming-feature. С его помощью можно активировать еще не выпущенные языковые фичи и посмотреть, как себя будет вести ваша кодовая база.
Кроме того, эти фичи можно начать использовать, при этом сохраняя поддержку сборки проекта старым компилятором. Для этого вызов новых фичей надо оборачивать в директиву #if hasFeature().
Перевод на русский язык
История консоли предыдущих билдов
Фича, которая всегда перед глазами, но вообще не очевидна. В истории предыдущих билдов можно перечитать все содержимое консоли.
Новый способ привязывать действия к кнопкам в UIKit
Начиная с iOS 14, в UIKit появился новый API для привязки к кнопке действия. Вместо добавления таргета с селектором можно создать UIAction с нужным замыканием и передать его в конструкторе кнопки.
Apple совсем забил на Catalyst
🐞Огромное количество багов, для решения которых нужны нетривиальные костыли.
🙅♀️Многие API, работающие и на iOS, и на macOS, недоступны в Catalyst.
🕵️♂️Системные приложения Apple, собранные на Catalyst, все еще очень плохо работают и выглядят.
😞Все эти проблемы не исправляются со временем, и в целом у технологии сильно ощущение заброшенности.
xcode-timing – CLI утилита для сбора статистики билдов
xcode-timing – скрипт, который логирует время прохождения каждого вашего билда в Xcode и сохраняет их в json файле. Умеет фильтровать по проектам и считать среднее время прохождения билдов.
Accessibility Inspector в macOS
В macOS предустановлено приложение Accessibility Inspector, которое позволяет на лету подключиться к любому приложению на компьютере или в симуляторе, и протестировать, как оно работает с доступностью.
Вот что оно умеет:
👉Смотреть настройки каждого элемента на экране
👉Запускать Voice Over для отдельных элементов
👉Проводить аудит экранов и выдавать список ворнингов по проблемам с доступностью
👉Динамически менять настройки доступности и смотреть, как приложение себя поведет
Еще один пример работы ChatGPT
А вот это уже посложнее анимаций. За несколько промптов автор сгенерировал приложение, которое каждый день рекомендует пять новых фильмов, к каждому из них подтягивает обложку, трейлер и ссылки на стриминговые сервисы. Все API ChatGPT подобрал сам.
4.6K
members statistics for channel
Популярное в канале
Судьба Fastlane
Начнем с предыстории. Когда-то у Twitter был замечательный сервис Fabric, в который входило распространение тестовых билдов, аналитика по крешам и перфомансу. В какой-то момент в команду Fabric наняли Felix Krause, основного ментейнера Fastlane. Не очень понятно, что в этот момент произошло с правами на IP, но основной идеей было дать Феликсу возможность фуллтайм работать над проектом, важным для всех разработчиков.
Спустя два года, Fabric был продан гуглу, которые интегрировали его в Firebase. В нагрузку к Fabric к ним перешел и Fastlane, причем уже, кажется, без Феликса.
Последствия этого решения начали отстреливать сейчас. Внутри Google Fastlane никому не нужен, его развитием занимается только несколько сторонних контрибьюторов на бесплатной основе. Получать донаты от других компаний за свою работу они не могут, ведь все права на проект принадлежат Google.
У сообщества появилась идея передать Fastlane в Mobile Native Foundation. К этому готовы и основной ментейнер проекта, и сам фонд. Основная проблема – найти в Google хоть кого-то, кто готов задрайвить принятие решения о переносе проекта. Пока, кажется, безуспешно.
upd: Процесс пошел
7.4K
7 месяцев назад
Советы по тому, как избежать выгорания
Несколько давно известных, но от этого не менее важных советов по тому, как программистам избегать выгорания:
🎯При работе над большими неопределенными задачами всегда разбивать их на понятные небольшие куски, которые можно завершить за обозримое время.
⏰Управлять своей загрузкой, приоритизируя задачи, и уделяя внимание только важным.
☝️Стараться фокусироваться только на одной задаче, даже когда подходит дедлайн, и надо успеть сделать сразу много всего.
✋Делать перерывы в работе каждый час, даже когда вы входите в состояние потока на часы.
В статье – еще несколько советов и ссылки на глубокие статьи и книги по теме.
Перевод на русский язык
6.8K
6 месяцев назад
Test Plans стали дефолтными в Xcode 14.3
Я совсем пропустил – в Xcode 11 появились Test Plans. По сути, это способ организовать вместе группы тестов, чтобы их удобно было запускать в Xcode или из консоли. Так вот, в новой версии Xcode Test plans – дефолтный способ организации тестов. Если вы еще не конвертнулись в них, сейчас самое время.
Перевод на русский язык
6.7K
7 месяцев назад
Логирование частоты рендера SwiftUI вьюх
DataTile – логгер, который умеет визуализировать серии данных. Один из примеров его использования – логирование того, насколько часто пересоздаются какие-то вьюхи. Для этого создается кастомный модификатор, который при каждом своем вызове логирует номер своего вызова с помощью os_log. Данные из os_log уже подхватываются и визуализируются DataTile.
Перевод на русский язык
6.6K
7 месяцев назад
Фильтрация логов дебаггера
Любой проект со временем обрастает различными логами – статус и содержание сетевых запросов, события жизненного цикла экранов, операции с базой данных. Такой шум в консоли может сильно мешать дебагу.
В Xcode есть возможность отфильтровать все, что падает в консоль, оставив только логи брейкпойнтов и то, что вы печатаете сами с помощью дебаггера.
5.9K
6 месяцев назад
Разбор неочевидных вопросов, связанных с релизами в App Store
Примеры вопросов:
- Какая версия приложения загружается теми, кто скачивает его в первый раз, если прямо сейчас раскатывается phased релиз?
- Можно ли катить новый релиз, пока предыдущий еще в процессе phased release?
- Можно ли обновить билд после того, как ревью пройдено, но до того, как релиз перешел в состояние Rwady for Sale?