Исследование продуктовых дизайнеров
Я периодически провожу исследования различных областей разработки. Например, вот уже много лет подряд я опрашиваю кучу людей, чтобы понять, а что там происходит у айосеров и андроидщиков.
Вот прямо сейчас мы заканчиваем наш первый опрос продуктовых дизайнеров про то, чем они занимаются на работе, какие навыки прокачивают, как используют AI и за кем в сообществе следят. Чтобы результаты были репрезентативными, хочется получить как можно больше ответов. Если в вашей текущей или бывшей команде есть продуктовые дизайнеры – я буду очень благодарен, если вы пошарите им ссылку на опрос! Результаты я потом тоже обязательно в канал выложу.
Я периодически провожу исследования различных областей разработки. Например, вот уже много лет подряд я опрашиваю кучу людей, чтобы понять, а что там происходит у айосеров и андроидщиков.
Вот прямо сейчас мы заканчиваем наш первый опрос продуктовых дизайнеров про то, чем они занимаются на работе, какие навыки прокачивают, как используют AI и за кем в сообществе следят. Чтобы результаты были репрезентативными, хочется получить как можно больше ответов. Если в вашей текущей или бывшей команде есть продуктовые дизайнеры – я буду очень благодарен, если вы пошарите им ссылку на опрос! Результаты я потом тоже обязательно в канал выложу.
survey.alchemer.eu
Исследование рынка продуктовых дизайнеров, 2023
Исследование рынка продуктовых дизайнеров, 2023.
Законы UX
Список из 21 правила, которых стоит придерживаться при разработке интерфейсов. Каждое подкреплено ссылками на исследования.
🏎️Doherty Threshold – Пользователь воспринимает свою производительность оптимальной, если реакция на его действия не превышает 400мс.
🎯Fitt's Law – Время на то, чтобы прицелиться во что-то – функция от размера и удаленности цели.
🤔Jakob's Law – Пользователь проводит большую часть времени в других приложениях, поэтому для него будет идеально, если ваше приложение не будет от них отличаться.
⛰️Peak-End rule – Люди запоминают не весь опыт работы с чем-то, а его самый пиковый момент и самый последний.
Список из 21 правила, которых стоит придерживаться при разработке интерфейсов. Каждое подкреплено ссылками на исследования.
🏎️Doherty Threshold – Пользователь воспринимает свою производительность оптимальной, если реакция на его действия не превышает 400мс.
🎯Fitt's Law – Время на то, чтобы прицелиться во что-то – функция от размера и удаленности цели.
🤔Jakob's Law – Пользователь проводит большую часть времени в других приложениях, поэтому для него будет идеально, если ваше приложение не будет от них отличаться.
⛰️Peak-End rule – Люди запоминают не весь опыт работы с чем-то, а его самый пиковый момент и самый последний.
Laws of UX
Home | Laws of UX
Laws of UX is a collection of best practices that designers can consider when building user interfaces.
Какие API теперь нельзя использовать без разрешения от Apple
Apple закручивают гайки для приложений, которые пытаются использовать различные косвенные признаки, чтобы идентифицировать пользователя или его девайс. Начиная с этой осени, нельзя использовать следующие API без объяснения причин:
- UserDefaults
- File timestamp
- System boot time
- Disk space
- Active keyboard
Конечно, горит у всех именно от первого пункта – запретить использовать UserDefaults, которые есть в каждом приложении, это сильно.
Список еще не финальный и будет постепенно пополняться🤷♂️
Apple закручивают гайки для приложений, которые пытаются использовать различные косвенные признаки, чтобы идентифицировать пользователя или его девайс. Начиная с этой осени, нельзя использовать следующие API без объяснения причин:
- UserDefaults
- File timestamp
- System boot time
- Disk space
- Active keyboard
Конечно, горит у всех именно от первого пункта – запретить использовать UserDefaults, которые есть в каждом приложении, это сильно.
Список еще не финальный и будет постепенно пополняться🤷♂️
Интересные решения Swift Runtime
Swift Runtime – это С++ библиотека, которая реализует внутренние механизмы работы языка. Например, логику управления памятью и работы с типами. В статье разбирается, в какой момент и какие выховы к ней появляются в вашем проекте, и то, как реализованы некоторые интересные фичи в ней.
Swift Runtime – это С++ библиотека, которая реализует внутренние механизмы работы языка. Например, логику управления памятью и работы с типами. В статье разбирается, в какой момент и какие выховы к ней появляются в вашем проекте, и то, как реализованы некоторые интересные фичи в ней.
Хабр
Раскладываю Swift Runtime на детали
Что такое Runtime? Наверное, вы уже использовали словосочетание «Библиотека Runtime». Можно предположить, что это и есть какая-то библиотека, а значит — у неё есть исходный код. Очевидно, что он...
TipKit – фреймворк для организации онбординга
В новой бете Xcode появился фреймворк TipKit, про который была ровно одна сессия на WWDC. С его помощью можно создавать подсказки по использованию вашего приложения. Работает на всех платформах, а статус просмотра подсказок синкается через iCloud. В статье разбирается, как верстать подсказки, настраивать правила отображения и дебажить их.
В новой бете Xcode появился фреймворк TipKit, про который была ровно одна сессия на WWDC. С его помощью можно создавать подсказки по использованию вашего приложения. Работает на всех платформах, а статус просмотра подсказок синкается через iCloud. В статье разбирается, как верстать подсказки, настраивать правила отображения и дебажить их.
Почему рендеринг текста – это сложно
Отличная статья, про то, из каких элементов вообще состоит текст, почему все браузеры и другие графические движки чаще всего рендерят его неправильно, и с какими эзотерическими проблемами можно столкнуться.
Отличная статья, про то, из каких элементов вообще состоит текст, почему все браузеры и другие графические движки чаще всего рендерят его неправильно, и с какими эзотерическими проблемами можно столкнуться.
Faultlore
Text Rendering Hates You - Faultlore
Оптимизация памяти при работе с JPEG
При работе с растровыми изображениями можно сэкономить объем потреьляемой памяти путем конвертации RGB в YUV и последующих оптимизаций. Проблема в том, что UIImage не дает из коробки всех нужных API. Разработчик Телеграма рассказывает в статье о том, как обойти ограничения и сэкономить 50% потребляемой памяти.
При работе с растровыми изображениями можно сэкономить объем потреьляемой памяти путем конвертации RGB в YUV и последующих оптимизаций. Проблема в том, что UIImage не дает из коробки всех нужных API. Разработчик Телеграма рассказывает в статье о том, как обойти ограничения и сэкономить 50% потребляемой памяти.
Как настроить CodeQL для Swift на GitHub
С недавних пор встроенный в GitHub сканер уязвимостей CodeQL поддерживает и Swift. Если в вашей кодовой базе появляются какие-то проблемы вроде потенциальных SQL инъекций, сканер предупредит об этом на PR. В заметке – инструкция, как его правильно настроить.
С недавних пор встроенный в GitHub сканер уязвимостей CodeQL поддерживает и Swift. Если в вашей кодовой базе появляются какие-то проблемы вроде потенциальных SQL инъекций, сканер предупредит об этом на PR. В заметке – инструкция, как его правильно настроить.
Серия статей про кишки Objective-C
Отличные статьи про дизайн и реализацию некоторых особенностей Objective-C. Например, про tagged pointers, non-fragile instance variables и associated references.
Отличные статьи про дизайн и реализацию некоторых особенностей Objective-C. Например, про tagged pointers, non-fragile instance variables и associated references.
Примеры использования TipKit
Опенсорсное приложение, в котором реализованы разные виды подсказок на TipKit.
Опенсорсное приложение, в котором реализованы разные виды подсказок на TipKit.
Шифрование файлов в бандле с помощью Swift плагина
В статье разбирается, как написать простой Swift плагин, который будет шифровать все файлы в определенной папке с помощью уникального ключа, усложняя доступ к ним для тех, кто решит разобрать ipa файл.
В статье разбирается, как написать простой Swift плагин, который будет шифровать все файлы в определенной папке с помощью уникального ключа, усложняя доступ к ним для тех, кто решит разобрать ipa файл.
Medium
Crafting a Swift Package Plugin for App Data Protection
From encryption to runtime
Composable Architecture 1.0
Спустя три года разработки и 983 PR'а вышла первая версия TCA. Ключевое изменение, в результате которого библиотека стала стабильной – добавление навигации. В дальнейших планах – интеграция новых фичей Swift 5.9, включая макросы и Observable.
Спустя три года разработки и 983 PR'а вышла первая версия TCA. Ключевое изменение, в результате которого библиотека стала стабильной – добавление навигации. В дальнейших планах – интеграция новых фичей Swift 5.9, включая макросы и Observable.
www.pointfree.co
Composable Architecture 1.0
1.0 of the Composable Architecture is finally here! 🎉
Как SwiftData сохраняет изменения
Одно из отличий SwiftData от Core Data – то, что изменения сохраняются автоматически. Это происходит либо по событиям изменения жизненного цикла приложения, либо по таймеру. В остальном ручное сохранение изменений и индикация об изменениях в объектах работают похожим на Core Data образом.
Одно из отличий SwiftData от Core Data – то, что изменения сохраняются автоматически. Это происходит либо по событиям изменения жизненного цикла приложения, либо по таймеру. В остальном ручное сохранение изменений и индикация об изменениях в объектах работают похожим на Core Data образом.
Use Your Loaf - iOS Development News & Tips
SwiftData Saving Changes
How does SwiftData decide when it needs to save an object?
HuggingFace выпустили инструменты для запуска LLM на Apple девайсах
HuggingFace, GitHub в мире машинного обучения, выпустили набор инструкций и инструментов для запуска LLM вроде Llama 2 на macOS и iOS.
👉Семпловое приложение swift-chat
👉swift-transformers, библиотека для реализации трансформеров
👉exporters, пакет для конвертации моделей в CoreML
А по ссылке – подробный гайд по тому, как запустить модель на своем девайсе.
HuggingFace, GitHub в мире машинного обучения, выпустили набор инструкций и инструментов для запуска LLM вроде Llama 2 на macOS и iOS.
👉Семпловое приложение swift-chat
👉swift-transformers, библиотека для реализации трансформеров
👉exporters, пакет для конвертации моделей в CoreML
А по ссылке – подробный гайд по тому, как запустить модель на своем девайсе.
KeyboardKit – библиотека для разработки кастомных клавиатур
KeyboardKit – опенсорсная библиотека, с помощью которой можно делать кастомные Keyboard Extensions для всех Apple платформ. Основная ценность проекта – куча готовых компонентов для создания клавиатуры, потому что системный API довольно примитивный. Из фичей:
👉61 локаль для клавиатур.
👉Системные кнопки с возможностью переопределить их логику.
👉Поддержка тем.
👉Автокомплит, эмодзи, голосовой ввод и куча чего еще.
KeyboardKit – опенсорсная библиотека, с помощью которой можно делать кастомные Keyboard Extensions для всех Apple платформ. Основная ценность проекта – куча готовых компонентов для создания клавиатуры, потому что системный API довольно примитивный. Из фичей:
👉61 локаль для клавиатур.
👉Системные кнопки с возможностью переопределить их логику.
👉Поддержка тем.
👉Автокомплит, эмодзи, голосовой ввод и куча чего еще.
Поддержка загружаемых ресурсов
Если вам приходится часто обновлять конфиги экспериментальных фичей, небольшие кусочки бизнес-логики, то проще всего подгружать их в приложение в обход обычной схемы релизов. В статье разбирается, как реализовать весь механизм загрузки и обновления ресурсов, с учетом эдж-кейсов вроде обновления версии приложения и риалтайм обновления в режиме разработчика.
Если вам приходится часто обновлять конфиги экспериментальных фичей, небольшие кусочки бизнес-логики, то проще всего подгружать их в приложение в обход обычной схемы релизов. В статье разбирается, как реализовать весь механизм загрузки и обновления ресурсов, с учетом эдж-кейсов вроде обновления версии приложения и риалтайм обновления в режиме разработчика.
WWDC 2023 Notes
Дежурное напоминание про то, что для тех, кто не хочет тратить время на просмотр всех сессий прошедшего WWDC, есть коммьюнити-проект с расшифровкой и основными тезисами всех записей.
Дежурное напоминание про то, что для тех, кто не хочет тратить время на просмотр всех сессий прошедшего WWDC, есть коммьюнити-проект с расшифровкой и основными тезисами всех записей.
Применение шейдеров к тексту
Туториал по тому, как написать простой шейдер на Metal и применить его к тексту на SwiftUI.
Туториал по тому, как написать простой шейдер на Metal и применить его к тексту на SwiftUI.
Swift на сервере в 2023
Рабочая группа, занимающаяся развитием Swift на сервере, делится своим прогрессом за год. Из самого интересного:
👉Куча новых библиотек: Kafka, Cassandra, GraphQL и RabbitMQ.
👉Swift concurrency продолжает адоптиться значимыми библиотеками.
👉Тулинг: 1.0 версия расширения для VSCode, Swiftly для менеджмента версий Swift на Linux.
👉Улучшился билдтайм в специфичных для серверсайда кейсах.
Цели на 2023 практически такие же: рост экосистемы, адопшн concurrency, улучшение тулинга и документации.
Рабочая группа, занимающаяся развитием Swift на сервере, делится своим прогрессом за год. Из самого интересного:
👉Куча новых библиотек: Kafka, Cassandra, GraphQL и RabbitMQ.
👉Swift concurrency продолжает адоптиться значимыми библиотеками.
👉Тулинг: 1.0 версия расширения для VSCode, Swiftly для менеджмента версий Swift на Linux.
👉Улучшился билдтайм в специфичных для серверсайда кейсах.
Цели на 2023 практически такие же: рост экосистемы, адопшн concurrency, улучшение тулинга и документации.
Swift.org
SSWG 2023 Annual Update
Once a year, the Swift Server workgroup (SSWG) reflects on recent community accomplishments and lays out focus areas for the year ahead.