bootg.com »
United States »
iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT » Telegram Web
Swift Macro Toolkit
Набор хелперов, которые упрощают написание макросов. Например, позволяют не писать вручную обработку всех возможных представлений чисел с плавающей точкой (вдруг в макросе кто-то захочет использовать число
Набор хелперов, которые упрощают написание макросов. Например, позволяют не писать вручную обработку всех возможных представлений чисел с плавающей точкой (вдруг в макросе кто-то захочет использовать число
-0xF_ep-0_2
).🔥6👍1
Исследование продуктовых дизайнеров
Я периодически провожу исследования различных областей разработки. Например, вот уже много лет подряд я опрашиваю кучу людей, чтобы понять, а что там происходит у айосеров и андроидщиков.
Вот прямо сейчас мы заканчиваем наш первый опрос продуктовых дизайнеров про то, чем они занимаются на работе, какие навыки прокачивают, как используют AI и за кем в сообществе следят. Чтобы результаты были репрезентативными, хочется получить как можно больше ответов. Если в вашей текущей или бывшей команде есть продуктовые дизайнеры – я буду очень благодарен, если вы пошарите им ссылку на опрос! Результаты я потом тоже обязательно в канал выложу.
Я периодически провожу исследования различных областей разработки. Например, вот уже много лет подряд я опрашиваю кучу людей, чтобы понять, а что там происходит у айосеров и андроидщиков.
Вот прямо сейчас мы заканчиваем наш первый опрос продуктовых дизайнеров про то, чем они занимаются на работе, какие навыки прокачивают, как используют AI и за кем в сообществе следят. Чтобы результаты были репрезентативными, хочется получить как можно больше ответов. Если в вашей текущей или бывшей команде есть продуктовые дизайнеры – я буду очень благодарен, если вы пошарите им ссылку на опрос! Результаты я потом тоже обязательно в канал выложу.
survey.alchemer.eu
Исследование рынка продуктовых дизайнеров, 2023
Исследование рынка продуктовых дизайнеров, 2023.
💅7🔥2🫡2❤1👍1
Законы 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.
💅15👍14❤8
Какие 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, которые есть в каждом приложении, это сильно.
Список еще не финальный и будет постепенно пополняться🤷♂️
🗿40🤡12👍3🤬2☃1🤯1😢1
Интересные решения Swift Runtime
Swift Runtime – это С++ библиотека, которая реализует внутренние механизмы работы языка. Например, логику управления памятью и работы с типами. В статье разбирается, в какой момент и какие выховы к ней появляются в вашем проекте, и то, как реализованы некоторые интересные фичи в ней.
Swift Runtime – это С++ библиотека, которая реализует внутренние механизмы работы языка. Например, логику управления памятью и работы с типами. В статье разбирается, в какой момент и какие выховы к ней появляются в вашем проекте, и то, как реализованы некоторые интересные фичи в ней.
Хабр
Раскладываю Swift Runtime на детали
Что такое Runtime? Наверное, вы уже использовали словосочетание «Библиотека Runtime». Можно предположить, что это и есть какая-то библиотека, а значит — у неё есть исходный код. Очевидно, что он...
👍13👎5❤3
TipKit – фреймворк для организации онбординга
В новой бете Xcode появился фреймворк TipKit, про который была ровно одна сессия на WWDC. С его помощью можно создавать подсказки по использованию вашего приложения. Работает на всех платформах, а статус просмотра подсказок синкается через iCloud. В статье разбирается, как верстать подсказки, настраивать правила отображения и дебажить их.
В новой бете Xcode появился фреймворк TipKit, про который была ровно одна сессия на WWDC. С его помощью можно создавать подсказки по использованию вашего приложения. Работает на всех платформах, а статус просмотра подсказок синкается через iCloud. В статье разбирается, как верстать подсказки, настраивать правила отображения и дебажить их.
🔥44👍9🤡5❤3
Почему рендеринг текста – это сложно
Отличная статья, про то, из каких элементов вообще состоит текст, почему все браузеры и другие графические движки чаще всего рендерят его неправильно, и с какими эзотерическими проблемами можно столкнуться.
Отличная статья, про то, из каких элементов вообще состоит текст, почему все браузеры и другие графические движки чаще всего рендерят его неправильно, и с какими эзотерическими проблемами можно столкнуться.
Faultlore
Text Rendering Hates You - Faultlore
👍19❤4🔥4
Оптимизация памяти при работе с JPEG
При работе с растровыми изображениями можно сэкономить объем потреьляемой памяти путем конвертации RGB в YUV и последующих оптимизаций. Проблема в том, что UIImage не дает из коробки всех нужных API. Разработчик Телеграма рассказывает в статье о том, как обойти ограничения и сэкономить 50% потребляемой памяти.
При работе с растровыми изображениями можно сэкономить объем потреьляемой памяти путем конвертации RGB в YUV и последующих оптимизаций. Проблема в том, что UIImage не дает из коробки всех нужных API. Разработчик Телеграма рассказывает в статье о том, как обойти ограничения и сэкономить 50% потребляемой памяти.
🔥41👍7🤯2🤡2❤1
Как настроить CodeQL для Swift на GitHub
С недавних пор встроенный в GitHub сканер уязвимостей CodeQL поддерживает и Swift. Если в вашей кодовой базе появляются какие-то проблемы вроде потенциальных SQL инъекций, сканер предупредит об этом на PR. В заметке – инструкция, как его правильно настроить.
С недавних пор встроенный в GitHub сканер уязвимостей CodeQL поддерживает и Swift. Если в вашей кодовой базе появляются какие-то проблемы вроде потенциальных SQL инъекций, сканер предупредит об этом на PR. В заметке – инструкция, как его правильно настроить.
👍15😱1
Серия статей про кишки Objective-C
Отличные статьи про дизайн и реализацию некоторых особенностей Objective-C. Например, про tagged pointers, non-fragile instance variables и associated references.
Отличные статьи про дизайн и реализацию некоторых особенностей Objective-C. Например, про tagged pointers, non-fragile instance variables и associated references.
🔥29👍10🤡6❤4
Примеры использования TipKit
Опенсорсное приложение, в котором реализованы разные виды подсказок на TipKit.
Опенсорсное приложение, в котором реализованы разные виды подсказок на TipKit.
👍24🔥1
Шифрование файлов в бандле с помощью Swift плагина
В статье разбирается, как написать простой Swift плагин, который будет шифровать все файлы в определенной папке с помощью уникального ключа, усложняя доступ к ним для тех, кто решит разобрать ipa файл.
В статье разбирается, как написать простой Swift плагин, который будет шифровать все файлы в определенной папке с помощью уникального ключа, усложняя доступ к ним для тех, кто решит разобрать ipa файл.
Medium
Crafting a Swift Package Plugin for App Data Protection
From encryption to runtime
🔥24👍3❤🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥41🤡24👍9💅7👎6🗿6🤩3😁2
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! 🎉
🤡56👍20💅10❤5👎3🔥1
Как 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?
👍16🤡5
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
А по ссылке – подробный гайд по тому, как запустить модель на своем девайсе.
🔥30👍3❤1
KeyboardKit – библиотека для разработки кастомных клавиатур
KeyboardKit – опенсорсная библиотека, с помощью которой можно делать кастомные Keyboard Extensions для всех Apple платформ. Основная ценность проекта – куча готовых компонентов для создания клавиатуры, потому что системный API довольно примитивный. Из фичей:
👉61 локаль для клавиатур.
👉Системные кнопки с возможностью переопределить их логику.
👉Поддержка тем.
👉Автокомплит, эмодзи, голосовой ввод и куча чего еще.
KeyboardKit – опенсорсная библиотека, с помощью которой можно делать кастомные Keyboard Extensions для всех Apple платформ. Основная ценность проекта – куча готовых компонентов для создания клавиатуры, потому что системный API довольно примитивный. Из фичей:
👉61 локаль для клавиатур.
👉Системные кнопки с возможностью переопределить их логику.
👉Поддержка тем.
👉Автокомплит, эмодзи, голосовой ввод и куча чего еще.
👍22👎1
Поддержка загружаемых ресурсов
Если вам приходится часто обновлять конфиги экспериментальных фичей, небольшие кусочки бизнес-логики, то проще всего подгружать их в приложение в обход обычной схемы релизов. В статье разбирается, как реализовать весь механизм загрузки и обновления ресурсов, с учетом эдж-кейсов вроде обновления версии приложения и риалтайм обновления в режиме разработчика.
Если вам приходится часто обновлять конфиги экспериментальных фичей, небольшие кусочки бизнес-логики, то проще всего подгружать их в приложение в обход обычной схемы релизов. В статье разбирается, как реализовать весь механизм загрузки и обновления ресурсов, с учетом эдж-кейсов вроде обновления версии приложения и риалтайм обновления в режиме разработчика.
👍13
WWDC 2023 Notes
Дежурное напоминание про то, что для тех, кто не хочет тратить время на просмотр всех сессий прошедшего WWDC, есть коммьюнити-проект с расшифровкой и основными тезисами всех записей.
Дежурное напоминание про то, что для тех, кто не хочет тратить время на просмотр всех сессий прошедшего WWDC, есть коммьюнити-проект с расшифровкой и основными тезисами всех записей.
👍30🤯7❤2
Применение шейдеров к тексту
Туториал по тому, как написать простой шейдер на Metal и применить его к тексту на SwiftUI.
Туториал по тому, как написать простой шейдер на Metal и применить его к тексту на SwiftUI.
💅23👍6