TextView и что он скрывает
Уже более 9 лет Михаил Лапушкин работает над своим текстовым редактором. За это время он прошёл огромный путь, и в двух масштабных статьях делится тем, с какими подводными камнями ему пришлось столкнуться и, например, почему в приложении нет сторонних зависимостей.
📖 В первой части Михаил рассказывает свою увлекательную историю приложения (об архитектуре, релизах, дебаге и не только).
📖 А во второй делится хардкорными вещами: работой с атрибутами, стилями, перфомансом, математикой для отрисовки и многим другим.
😃 iOS Dev • 🐱 Узнать больше об архитектурах
Уже более 9 лет Михаил Лапушкин работает над своим текстовым редактором. За это время он прошёл огромный путь, и в двух масштабных статьях делится тем, с какими подводными камнями ему пришлось столкнуться и, например, почему в приложении нет сторонних зависимостей.
📖 В первой части Михаил рассказывает свою увлекательную историю приложения (об архитектуре, релизах, дебаге и не только).
📖 А во второй делится хардкорными вещами: работой с атрибутами, стилями, перфомансом, математикой для отрисовки и многим другим.
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
Meng To выпустил большое обучающее видео по работе со Spline.
📺 В этом видео можно узнать о следующих вещах:
1️⃣ Создание интерактивных 3D-сцен для приложений iOS и экспорт в Xcode 15+.
2️⃣ Работа над элементами для visionOS.
3️⃣ Пример создания 3D-иконок приложений и динамических анимаций интерфейса.
4️⃣ Расширенные возможности Spline, такие как частицы и физика для более реалистичных эффектов.
5️⃣ Введение в 3D-моделирование.
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
Посещение необычных или старых сторов эпл - одна из моих небольших традиций при поездках в другие страны.
📸 В этот раз делюсь фотосетом одного из флагманских магазинов компании в Великобритании.
Трехэтажный магазин, расположенный в здании, где раньше находился Rock Garden, привлекает огромное количество туристов.
Каждое помещение посвящено одной из линеек продукции Apple, а главный двор полностью отдан под большие дубовые столы с десятками планшетов iPad, которые покупатели смогут опробовать.
После оплаты они могут посетить «комнату настройки», где сотрудники Apple распакуют и настроят их новый гаджет.
Забавный факт, даже если у компании что-то пойдет не так, то на продаже этой недвижимости они смогут заработать невероятно крупную сумму денег, ведь адрес этого красивого здания - London, The Plaza, 1.
Около десяти лет назад в Ковент-Гардене было даже больше посетителей, чем на пятом авеню в Нью-Йорке!
Другие истории об эпл сторах:
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
Теперь разработчики могут выкладывать и такой тип приложений, а пользователи iPhone смогут устанавливать себе эмуляторы напрямую из App Store, а не использовать для этого сторонние магазины приложений, которые ранее разрешили в ЕС.
До этого любые эмуляторы игр были под запретом. Единственным вариантом было юзать джейлбрейк или искать альтернативные пути.
Важная деталь — эмуляторы должны соответствовать остальным правилам, включая запрет на пиратские игры.
📖 Детально изменения гайдлайнов здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Method swizzling в Swift: определение, примеры, плюсы и минусы
Method swizzling — это техника, которая позволяет изменять или заменять реализацию существующего метода в рантайме.
Она включает в себя обмен реализациями двух методов, обычно для добавления или изменения поведения без модификации исходного класса.
😎 Firebase, пожалуй, самый известный SDK, который юзает свиззлинг. Например, FirebaseAnalytics изменяет методы жизненного цикла в
Pulse изменяет инициализатор URLSession для трекинга сетевой активности, проходящей через URLSession.
А в целом, пул применения можно расширить до следующих примеров:
1️⃣ Расширение или изменение поведения существующих методов во фреймворках или сторонних либах.
2️⃣ Отладка или логирование, например, отслеживание вызовов или измерение производительности.
3️⃣ Аутентификация или кэширование, в нескольких методах или классах.
✅ В ноушне я добавил примеры кода, плюсы и минусы (и когда лучше избегать этого способа), а также несколько полезнейших источников для того, чтоб разобраться с Method Swizzling.
😃 iOS Dev
Method swizzling — это техника, которая позволяет изменять или заменять реализацию существующего метода в рантайме.
Она включает в себя обмен реализациями двух методов, обычно для добавления или изменения поведения без модификации исходного класса.
UIViewController
для отправки событий аналитики.Pulse изменяет инициализатор URLSession для трекинга сетевой активности, проходящей через URLSession.
А в целом, пул применения можно расширить до следующих примеров:
1️⃣ Расширение или изменение поведения существующих методов во фреймворках или сторонних либах.
2️⃣ Отладка или логирование, например, отслеживание вызовов или измерение производительности.
3️⃣ Аутентификация или кэширование, в нескольких методах или классах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Apple показал Ferret-UI для распознавания мобильных интерфейсов
После обучения на собранных массивах данных Ferret-UI демонстрирует отличное понимание интерфейса и способность выполнять открытые инструкции.
Ferret-UI не только превосходит большинство опенсорсных MLLM, но и превосходит GPT-4V по всем элементарным UI-задачам.
🔗 Целиком исследование доступно здесь.
Вероятно, как минимум, это расширит области по работе с доступностью для определённых групп пользователей, а как максимум, может приведёт нас к этому.
К слову, у гугла есть также есть объёмное исследование для работы с интерфейсом.
😃 iOS Dev
После обучения на собранных массивах данных Ferret-UI демонстрирует отличное понимание интерфейса и способность выполнять открытые инструкции.
Ferret-UI не только превосходит большинство опенсорсных MLLM, но и превосходит GPT-4V по всем элементарным UI-задачам.
Вероятно, как минимум, это расширит области по работе с доступностью для определённых групп пользователей, а как максимум, может приведёт нас к этому.
К слову, у гугла есть также есть объёмное исследование для работы с интерфейсом.
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
Производительность, безусловно, ключевая характеристика и для приложений, и для фреймворков.
Benchmark позволяет легко чекать множество показателей: загрузку процессора, ARC-трафика, использование памяти, ресурсов оси, таких как потоки и системные вызовы, а также полностью кастомные счетчики метрик.
Его основная функция - именно замер производительности, а другие средства (Instruments, DTrace, Heaptrack, Leaks, Sample) могут быть использованы для поиска причин.
🛠 Вот тут есть сылка на репозиторий и статья с примерами на сайте swift.org.
📖 А вот здесь в канале разбор инструмента от ETTrace от Emerge.
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
Во многих приложениях Apple для visionOS, таких как Music, Safari и Apple TV, также есть удобное поле поиска.
Но начиная с версии visionOS 1.1, повторить его визуальное исполнение непросто из-за отсутствия нужного API, хотя и все равно возможно!
📖 В этом материале разработчик объясняет, как можно для этих целей использовать UISearchBar из UIKit (и делится неочевидными сложностями).
Please open Telegram to view this post
VIEW IN TELEGRAM
Cтруктурные шаблоны (structural patterns) — шаблоны проектирования, в которых рассматривается вопрос о том, как из классов и объектов образуются более крупные структуры.
Проще говоря, этот вид паттернов связан с композицией объектов или тем, как сущности могут использовать друг друга.
Что к ним можно отнести?
- Адаптер.
- Мост.
- Компоновщик.
- Декоратор.
- Фасад.
- Flyweight (приспособленец/легковес).
- Прокси.
В iOS IQ я уже писал о том, почему удобная архитектура == более гибкий и лёгкий в поддержке код.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как быстро создать privacy manifest для приложения
Уже сейчас при заливке билдов в аппсторе есть соответствующее уведомление, а начиная с мая можно получить реджект, если не будет соответствующего манифеста.
Мик Бирн посчитал не слишком удобным, как это сделано сейчас в Xcode (поиск причин вручную) и реализовал собственную тулзу для генерации таких файлов (бесплатно и в открытом доступе).
🔗 Создать собственный манифест можно с помощью этого ресурса.
😃 iOS Dev
Уже сейчас при заливке билдов в аппсторе есть соответствующее уведомление, а начиная с мая можно получить реджект, если не будет соответствующего манифеста.
Мик Бирн посчитал не слишком удобным, как это сделано сейчас в Xcode (поиск причин вручную) и реализовал собственную тулзу для генерации таких файлов (бесплатно и в открытом доступе).
Please open Telegram to view this post
VIEW IN TELEGRAM
Блок вопросов: многопоточность (и бонус)
В iOS IQ на сегодня больше 10 крупных разделов (от алгоритмов до архитектур), каждый из которых постоянно обновляется, несколько сотен статей и множество реальных примеров кода.
На выходных я провёл редизайн некоторых секций, и теперь вопросы будут вынесены более явно.
Цель — собрать не только теорию, не только код, но и вопросы, которые требуют размышлений. Ведь все мы знаем, что правильно заданное направление (или вопрос) позволяет решить задачу уже на автоматизме.
Сейчас в этом разделе уже 20 вопросов, начиная от GCD и заканчивая async/await. А в разделе с вопросами на чтение кода ещё больше.
Каждая тема подкреплена материалами для изучения, с которых следует начать подготовку.
🍏 ➡️ Секретная ссылка со скидкой здесь (количество активаций ограничено). [UPDATE] Добавил несколько дополнительных после запросов
Скоро будет дополнительный анонс по развитию контента, рекомендую подписаться заранее, чтобы не пропустить.
😃 iOS IQ
В iOS IQ на сегодня больше 10 крупных разделов (от алгоритмов до архитектур), каждый из которых постоянно обновляется, несколько сотен статей и множество реальных примеров кода.
На выходных я провёл редизайн некоторых секций, и теперь вопросы будут вынесены более явно.
Цель — собрать не только теорию, не только код, но и вопросы, которые требуют размышлений. Ведь все мы знаем, что правильно заданное направление (или вопрос) позволяет решить задачу уже на автоматизме.
Сейчас в этом разделе уже 20 вопросов, начиная от GCD и заканчивая async/await. А в разделе с вопросами на чтение кода ещё больше.
Каждая тема подкреплена материалами для изучения, с которых следует начать подготовку.
Скоро будет дополнительный анонс по развитию контента, рекомендую подписаться заранее, чтобы не пропустить.
Please open Telegram to view this post
VIEW IN TELEGRAM