Telegram Web Link
TextView и что он скрывает

Уже более 9 лет Михаил Лапушкин работает над своим текстовым редактором. За это время он прошёл огромный путь, и в двух масштабных статьях делится тем, с какими подводными камнями ему пришлось столкнуться и, например, почему в приложении нет сторонних зависимостей.

📖 В первой части Михаил рассказывает свою увлекательную историю приложения (об архитектуре, релизах, дебаге и не только).

📖 А во второй делится хардкорными вещами: работой с атрибутами, стилями, перфомансом, математикой для отрисовки и многим другим.

😃 iOS Dev🐱 Узнать больше об архитектурах
Please open Telegram to view this post
VIEW IN TELEGRAM
Создание 3D-элементов для iOS и VisionOS

Meng To выпустил большое обучающее видео по работе со Spline.

📺 В этом видео можно узнать о следующих вещах:

1️⃣ Создание интерактивных 3D-сцен для приложений iOS и экспорт в Xcode 15+.

2️⃣ Работа над элементами для visionOS.

3️⃣ Пример создания 3D-иконок приложений и динамических анимаций интерфейса.

4️⃣ Расширенные возможности Spline, такие как частицы и физика для более реалистичных эффектов.

5️⃣ Введение в 3D-моделирование.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Шаринг файлов с кастомными типами в iOS

📁 Если вы планируете использовать не только стандартные типы файлов на iOS, но и заставить систему распознать файл и открыть его в вашем приложении, вы можете использовать типы документов и идентификаторы экспортируемых типов.

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

📖 Вот тут есть инструкция с примером кода, как это сделать.

🐱 А в ноушне добавил пост, как можно переносить данные между своими приложениями в целом (около десятка вариантов).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Apple Store Ковент-Гарден (Лондон)

Посещение необычных или старых сторов эпл - одна из моих небольших традиций при поездках в другие страны.

📸 В этот раз делюсь фотосетом одного из флагманских магазинов компании в Великобритании.

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

Каждое помещение посвящено одной из линеек продукции Apple, а главный двор полностью отдан под большие дубовые столы с десятками планшетов iPad, которые покупатели смогут опробовать.

После оплаты они могут посетить «комнату настройки», где сотрудники Apple распакуют и настроят их новый гаджет.

Забавный факт, даже если у компании что-то пойдет не так, то на продаже этой недвижимости они смогут заработать невероятно крупную сумму денег, ведь адрес этого красивого здания - London, The Plaza, 1.

Около десяти лет назад в Ковент-Гардене было даже больше посетителей, чем на пятом авеню в Нью-Йорке!

Другие истории об эпл сторах:

🍏 Apple Store Marunouchi в Токио.

🍏 Apple Store в Купертино.

🍏 Apple Tower Theater в Лос-Анджелесе.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🕹 В App Store разрешили эмуляторы ретро-игр

Теперь разработчики могут выкладывать и такой тип приложений, а пользователи iPhone смогут устанавливать себе эмуляторы напрямую из App Store, а не использовать для этого сторонние магазины приложений, которые ранее разрешили в ЕС.

До этого любые эмуляторы игр были под запретом. Единственным вариантом было юзать джейлбрейк или искать альтернативные пути.

Важная деталь — эмуляторы должны соответствовать остальным правилам, включая запрет на пиратские игры.

📖 Детально изменения гайдлайнов здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Method swizzling в Swift: определение, примеры, плюсы и минусы

Method swizzling — это техника, которая позволяет изменять или заменять реализацию существующего метода в рантайме.

Она включает в себя обмен реализациями двух методов, обычно для добавления или изменения поведения без модификации исходного класса.

😎 Firebase, пожалуй, самый известный SDK, который юзает свиззлинг. Например, FirebaseAnalytics изменяет методы жизненного цикла в UIViewController для отправки событий аналитики.

Pulse изменяет инициализатор URLSession для трекинга сетевой активности, проходящей через URLSession.

А в целом, пул применения можно расширить до следующих примеров:

1️⃣ Расширение или изменение поведения существующих методов во фреймворках или сторонних либах.

2️⃣ Отладка или логирование, например, отслеживание вызовов или измерение производительности.

3️⃣ Аутентификация или кэширование, в нескольких методах или классах.

В ноушне я добавил примеры кода, плюсы и минусы (и когда лучше избегать этого способа), а также несколько полезнейших источников для того, чтоб разобраться с Method Swizzling.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Apple показал Ferret-UI для распознавания мобильных интерфейсов

После обучения на собранных массивах данных Ferret-UI демонстрирует отличное понимание интерфейса и способность выполнять открытые инструкции.

Ferret-UI не только превосходит большинство опенсорсных MLLM, но и превосходит GPT-4V по всем элементарным UI-задачам.

🔗 Целиком исследование доступно здесь.

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

К слову, у гугла есть также есть объёмное исследование для работы с интерфейсом.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Benchmark - инструмент для измерения производительности Swift

Производительность, безусловно, ключевая характеристика и для приложений, и для фреймворков.

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

Его основная функция - именно замер производительности, а другие средства (Instruments, DTrace, Heaptrack, Leaks, Sample) могут быть использованы для поиска причин.

🛠 Вот тут есть сылка на репозиторий и статья с примерами на сайте swift.org.

📖 А вот здесь в канале разбор инструмента от ETTrace от Emerge.

А в iOS IQ есть огромный раздел c советами по повышению производительности приложений (как бороться с лагами, шаги по поиску утечек и многое другое).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Создание серчбара в стиле Apple

⭐️Каждый, кто работал с эпловским серчбаром, знает, как сложно было хэндлить разные кейсы до выхода последних версий iOS, особенно если используется непростая кастомизация.

Во многих приложениях Apple для visionOS, таких как Music, Safari и Apple TV, также есть удобное поле поиска.

Но начиная с версии visionOS 1.1, повторить его визуальное исполнение непросто из-за отсутствия нужного API, хотя и все равно возможно!

📖 В этом материале разработчик объясняет, как можно для этих целей использовать UISearchBar из UIKit (и делится неочевидными сложностями).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🍏 Структурные паттерны проектирования в Swift

Cтруктурные шаблоны (structural patterns) — шаблоны проектирования, в которых рассматривается вопрос о том, как из классов и объектов образуются более крупные структуры.

Проще говоря, этот вид паттернов связан с композицией объектов или тем, как сущности могут использовать друг друга.

Что к ним можно отнести?

- Адаптер.
- Мост.
- Компоновщик.
- Декоратор.
- Фасад.
- Flyweight (приспособленец/легковес).
- Прокси.

В iOS IQ я уже писал о том, почему удобная архитектура == более гибкий и лёгкий в поддержке код.

➡️Сегодня вышло большое обновление, в котором я добавил примеры по каждому виду таких паттернов (с кодом, разбором и реальными кейсами, а также видео).

Присоединяйтесь, здесь вся база, алгоритмы и архитектура без лишнего флуда.

😃 iOS IQ
Please open Telegram to view this post
VIEW IN TELEGRAM
Как быстро создать privacy manifest для приложения

Уже сейчас при заливке билдов в аппсторе есть соответствующее уведомление, а начиная с мая можно получить реджект, если не будет соответствующего манифеста.

Мик Бирн посчитал не слишком удобным, как это сделано сейчас в Xcode (поиск причин вручную) и реализовал собственную тулзу для генерации таких файлов (бесплатно и в открытом доступе).

🔗 Создать собственный манифест можно с помощью этого ресурса.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Блок вопросов: многопоточность (и бонус)

В iOS IQ на сегодня больше 10 крупных разделов (от алгоритмов до архитектур), каждый из которых постоянно обновляется, несколько сотен статей и множество реальных примеров кода.

На выходных я провёл редизайн некоторых секций, и теперь вопросы будут вынесены более явно.

Цель — собрать не только теорию, не только код, но и вопросы, которые требуют размышлений. Ведь все мы знаем, что правильно заданное направление (или вопрос) позволяет решить задачу уже на автоматизме.

Сейчас в этом разделе уже 20 вопросов, начиная от GCD и заканчивая async/await. А в разделе с вопросами на чтение кода ещё больше.

Каждая тема подкреплена материалами для изучения, с которых следует начать подготовку.

🍏➡️Секретная ссылка со скидкой здесь (количество активаций ограничено). [UPDATE] Добавил несколько дополнительных после запросов

Скоро будет дополнительный анонс по развитию контента, рекомендую подписаться заранее, чтобы не пропустить.

😃 iOS IQ
Please open Telegram to view this post
VIEW IN TELEGRAM
2024/11/15 18:10:10
Back to Top
HTML Embed Code: