iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
12.5K subscribers
695 photos
65 videos
4.07K links
Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день.

Регистрация в РКН: https://gosuslugi.ru/snet/67b464d698a28c4e866d827a

Размещение рекламы: @tanyasanovna
Download Telegram
Изменения в прайсинге App Store раскатываются на все категории

В декабре Apple сильно улучшили механики прайсинга, добавив настройку цены с шагом в 10 центов. Теперь эти изменения доступны для всех типов продаж, включая платные приложения и единоразовые покупки.

Второй важный момент – вам надо вручную выбрать правильные цены для ваших товаров, иначе в мае Apple сделает это за вас.

Перевод на русский язык
🤡61👍1
Фильтрация логов дебаггера

Любой проект со временем обрастает различными логами – статус и содержание сетевых запросов, события жизненного цикла экранов, операции с базой данных. Такой шум в консоли может сильно мешать дебагу.

В Xcode есть возможность отфильтровать все, что падает в консоль, оставив только логи брейкпойнтов и то, что вы печатаете сами с помощью дебаггера.
🔥19🤡13👍1😁1
Советы по тому, как избежать выгорания

Несколько давно известных, но от этого не менее важных советов по тому, как программистам избегать выгорания:

🎯При работе над большими неопределенными задачами всегда разбивать их на понятные небольшие куски, которые можно завершить за обозримое время.
Управлять своей загрузкой, приоритизируя задачи, и уделяя внимание только важным.
☝️Стараться фокусироваться только на одной задаче, даже когда подходит дедлайн, и надо успеть сделать сразу много всего.
Делать перерывы в работе каждый час, даже когда вы входите в состояние потока на часы.

В статье – еще несколько советов и ссылки на глубокие статьи и книги по теме.

Перевод на русский язык
👍247🤡3🔥1
Copilot для Xcode

Для Xcode завезли неофициальную поддержку Copilot. Вы печатаете строку в редакторе, а в открытом рядом окне или в комментах показываются саджесты от Copilot.
🤔42🔥21🤡11👍6
Подкаст про мобильную разработку в Spotify

Если вы любите истории про сложности разработки огромных проектов, то подкаст для вас. Инженер из платформенной команды Spotify рассказывает про переезд на Bazel, подходы к уменьшению билд тайма с помощью ремоут кэшей, поддержку разработки в монорепе, и кучу других историй.
23🤡3
Performance тестирование с XCTest

У XCTest есть специальный API, который позволяет измерить время прохождения любого блока кода – среднее, минимальное и максимальное. В статье разбираются детали работы с ним и его дополнительные возможности.
👍165🤡2🌭2
Приключение на 20 минут, превратившееся в 1 месяц

Простой переезд со своего форка библиотеки скриншотного тестирования на ее официальную версию вылился в месяц расследования странных багов и обновления казалось бы не очень связанных с изначальной задачей частей проекта. Мемы, кровь и слезы.
😁17🤡12👍8🌚2
This media is not supported in your browser
VIEW IN TELEGRAM
Еще один пример работы ChatGPT

А вот это уже посложнее анимаций. За несколько промптов автор сгенерировал приложение, которое каждый день рекомендует пять новых фильмов, к каждому из них подтягивает обложку, трейлер и ссылки на стриминговые сервисы. Все API ChatGPT подобрал сам.
🤡50👍18🔥4👏3🌭2
Accessibility Inspector в macOS

В macOS предустановлено приложение Accessibility Inspector, которое позволяет на лету подключиться к любому приложению на компьютере или в симуляторе, и протестировать, как оно работает с доступностью.

Вот что оно умеет:

👉Смотреть настройки каждого элемента на экране
👉Запускать Voice Over для отдельных элементов
👉Проводить аудит экранов и выдавать список ворнингов по проблемам с доступностью
👉Динамически менять настройки доступности и смотреть, как приложение себя поведет
🔥22👍21
xcode-timing – CLI утилита для сбора статистики билдов

xcode-timing – скрипт, который логирует время прохождения каждого вашего билда в Xcode и сохраняет их в json файле. Умеет фильтровать по проектам и считать среднее время прохождения билдов.
👍15
Apple совсем забил на Catalyst

🐞Огромное количество багов, для решения которых нужны нетривиальные костыли.
🙅‍♀️Многие API, работающие и на iOS, и на macOS, недоступны в Catalyst.
🕵️‍♂️Системные приложения Apple, собранные на Catalyst, все еще очень плохо работают и выглядят.
😞Все эти проблемы не исправляются со временем, и в целом у технологии сильно ощущение заброшенности.
😢17👎12😁4
Новый способ привязывать действия к кнопкам в UIKit

Начиная с iOS 14, в UIKit появился новый API для привязки к кнопке действия. Вместо добавления таргета с селектором можно создать UIAction с нужным замыканием и передать его в конструкторе кнопки.
💅111🔥31👍17🤡10❤‍🔥62🤬1🕊1🎅1🎄1
Определение способности Core Data к легковесной миграции

При изменении модели данных в Core Data есть несколько вариантов развития событий:

- легковесная миграция, когда фреймворк сам все похэндлит
- полноценная миграция, которую надо писать вручную
- просто дропнуть все данные из базы, новые сохранять уже в новом формате

Второй способ самый трудозатратный, да еще и увеличивает размер бинаря со временем. Третий способ хорош для проектов, где в базе хранятся некритичные данные вроде кеша, но есть проблема. Если сбрасывать кеш при каждом обновлении, пользователи будут это замечать.

В статье разбирается, как с помощью приватного API можно получить доступ к русной проверке на возможность легковесной миграции, в результате чего можно дропать не весь кеш, а только ту его часть, которая не может быть автоматически смигрирована.
👍17🤡51🔥1💅1
История консоли предыдущих билдов

Фича, которая всегда перед глазами, но вообще не очевидна. В истории предыдущих билдов можно перечитать все содержимое консоли.
🔥32🤔63💅2🗿2
Как пробовать фичи новых версий Swift до их релиза

В Swift 5.8 появился новый компиляторный флаг -enable-upcoming-feature. С его помощью можно активировать еще не выпущенные языковые фичи и посмотреть, как себя будет вести ваша кодовая база.

Кроме того, эти фичи можно начать использовать, при этом сохраняя поддержку сборки проекта старым компилятором. Для этого вызов новых фичей надо оборачивать в директиву #if hasFeature().

Перевод на русский язык
🔥281
Все модификаторы, меняющие цвет текста в SwiftUI

В SwiftUI есть несколько модификаторов, которые изменяют цвет текста – foregroundColor, foregroundStyle, tint. В статье разбираются их отличия друг от друга и контекст применения.
👍24💅4🤯2🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
Реализация пикера эмодзи для iOS

Автор статьи рассказывает, как реализовывал аналог системного macOS пикера эмодзи для iOS.

- Получение списка доступных эмодзи
- Вопросы обратной совместимости
- Тон кожи и двусоставные эмодзи
- Локализация

Библиотека, получившаяся в результате
20👍7🔥2
Swift Package Index теперь спонсируется Apple

Автор рассылки iOS Dev Weekly помимо нее занимается проектом Swift Package Index – реестром Swift зависимостей с автогенерацией документации и проверкой их совместимости. Проект изначально разрабатывался силами комьюнити, но теперь приобрел более официальный статус и получил спонсорство от Apple. Ну круто же!
👍67💅10❤‍🔥3🤡1
Дайджест Swift Evolution за январь-февраль

Новый выпуск дайджеста, в котором автор подробно разбирает все языковые пропозалы, принятые за последнее время.

SE-0382: Expression Macros
SE-0383: Deprecate @UIApplicationMain and @NSApplicationMain
SE-0384: Importing Forward Declared Objective-C Interfaces and Protocols
6