iOS Broadcast – Telegram
iOS Broadcast
3.46K subscribers
1.85K photos
86 videos
1.04K links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
🔥 Apple создала ИИ, который генерирует тексты в 128 раз быстрее аналогов
Исследователи Apple представили диффузионную модель, записывающую данные в 128 раз быстрее аналогов. Модель называется Few-Step Discrete Flow-Matching (FS-DFM).
🟢LLM, такие как ChatGPT, генерируют текст последовательно по одному токену.
🟢Диффузионные модели генерируют несколько токенов параллельно и уточняют их в несколько шагов.
🟢Модели с согласованием потока генерируют конечный результат за один раз.
🟢Согласно исследованию, FS-DFM способна записывать полные текстовые фрагменты всего за восемь быстрых шагов уточнения.
🟢Для получения аналогичного результата по записи текстового фрагмента другим моделям диффузии требуется более тысячи шагов.
🟢По сравнению с более крупными моделями диффузии, FS-DFM показала хорошие результаты по двум важным метрикам: перплексии и энтропии.
🟢Показатель перплексии отражает качество текста в языковых моделях. Чем он ниже, тем точнее и естественнее звучит текст.
🟢Энтропия отражает, насколько уверенно модель выбирает каждое слово. Если энтропия слишком низкая, текст может стать повторяющимся или предсказуемым, но если она слишком высокая, он может выглядеть бессвязным со случайным набором слов.

Это исследование раскрывает нам вектор развития AI в Apple. Явное отставание и партнерства с Anthropic и OpenAI это ситуационные шаги, а стратегия все еще включает запуск моделей локально на девайсах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍4
⚡️ Apple без презентации обновила MacBook Pro - доступен чип M5
🟢До 3,5 раза быстрее, чем прошлое поколение в AI
🟢В 1,6 раза выше производительность графики
🟢Производительность SSD в 2 раза выше
🟢Время автономной работы до 24 часов
🟢12-мегапиксельная камера.
🟢от 1599$ в Америке за 14 дюймов
🟢16 RAM 10 ядер, 512 SSD в базе
🟢1999$ за 24 RAM и 1 TB SSD
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
🐥 Быстрое создание миниатюр с помощью CGImageSource
При работе с изображениями нам редко нужно показывать их в полном размере — чаще всего это миниатюры или превью. Использование для этого полностью загруженных изображений не эффективно, поэтому мы часто прибегают к кешированию миниатюр. Тестирование производительности:
🔴Создание миниатюры 12-мегапиксельного JPEG на Mac M4 Pro занимает 710 мс
🟢На симуляторе iOS с UIGraphicsImageRenderer это занимает 210 мс
🟢Функция UIImage.prepareThumbnail() для iOS уменьшает время до 130 мс
🟢На macOS такой функции нет. Но есть CGImageSourceCreateThumbnailAtIndex() - время создания миниатюры на macOS сократилось до 26 мс
🟢UIImage имеет две реализации миниатюр: одна для CGImage, другая для CGImageSource
🟢CGImageSource работает быстрее, чем CGImageCreateThumb()

Если в вашем проекте есть создание миниатюр, проверьте что используете эффективные методы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
🔨 WEDO 2.0 45300
Экспериментальная рубрика про проекты из реальной жизни. Долго думал, стоит ли делиться не iOS темами в канале и решил делиться с вами тем что связано с инженерией и программированием. Сегодня хочу поделиться первым опытом взаимодействия с набором для робототехники. Изначально это проект Lego, я купил аналог, который совместим с оригинальным ПО. Суть проекта была найти общее хобби с ребенком 6 лет. Я сам люблю программирование и конструкторы, а дочь хотела пойти на кружок робототехники. Мой опыт:
🟢Простой WYSIWYG редактор для создания программ.
🟢Обучающее приложение есть под iPad, Mac OS, Windows, Android
🟢Есть все необходимые конструкции для обучения: переменные, циклы, ветвления
🟢В комплекте кроме самого ресурсного набора (конструктора):
🟣CмартХаб-контроллер, подключается по Bluetooth, питается от батареек, имеет управляемый светодиод и 2 разъема
🟣Мотор
🟣Датчик наклона
🟣Датчик приближения
🟢Для старта в оригинальном приложении множество уроков с подробными инструкциями и открытыми заданиями, погружающие в основы доступных механизмов
🟢Очень интересно сделана интеграция с микрофоном и динамиком. IDE использует микрофон и динамик ноутбука, а не робота, что позволяет реализовать управление голосом и воспроизведение любых звуков
🟢Огромная библиотека с инструкциями для создания 583 роботов и механизмов
🟢За счет того что это Lego (или копия lego) можно использовать любой конструктор lego для роботизации, например моторизировать наборы серии technic
🟢Возможно подключить несколько хабов и моторов и взаимодействовать в рамках одной программы

Как вам подобная рубрика? 👍 / 🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍245🔥1🤔1
📱 Проблема: Растущий объем View
По мере роста проектов SwiftUI элементы View становятся длинными и сложными. Простой экран быстро превращается в десятки вложенных VStack, HStack и пользовательских модификаторов.

Искушение: extension-ы и вычисляемые свойства
🔵Многие разработчики пытаются уменьшить размер кода, перемещая его части в расширения.
🔵Это улучшает удобочитаемость тела, но не решает проблему повторного использования и сопровождения.

Альтернативный подход: извлечение и повторное использование
🔵Извлекайте специальные SwiftUI View для каждой части с четкой ответственностью.
🔵Создавайте повторно используемые модификаторы View для согласованности и простоты тестирования.
🔵Используйте общие расширения для просмотра для часто используемых макетов.

Эмпирическое правило для хорошей архитектуры SwiftUI:
🔵Если элемент пользовательского интерфейса имеет четкое назначение и потенциал для повторного использования, извлекайте его.
🔵Если нет, сохраняйте его локальным или используйте вычисляемое свойство.
🔵Разбивайте код на чистые, композиционные и тестируемые компоненты для улучшения архитектуры.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍86
🐥 Важный нюанс при работе с taskGroup
Интересная особенность работы taskGroup которая не вызывает удивления если уже знаешь о ней, но может привести к неожиданным результатам, если написать похожий код не сильно задумавшись. Суть особенности отлично представлена в примере:
🔵Сниппет кода имитирует сценарий использования withTaskGroup, метод fetchData заменяет сетевой запрос случайной длительности
🔵В taskGroup добавляются задачи по вызову метода fetchData
🔵В конце результат выполнения методов fetchData cсобираются в итоговый массив results
🔵results в том порядке, в котором они были возвращены задачами, а не в том порядке, в котором они были созданы
🔵Чтобы восстановить исходный порядок, требуется добавить индексы в кортеж
В целом, не на столько важно сохранять исходный порядок, важно понимать что порядок будет случайным и не стоит надеяться на сохранение исходного порядка.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🔨 Combine – швейцарский нож iOS-разработчика. Или нет?
Несмотря на то что я чаще привожу примеры статей про Swift Concurrency, в сердечке все равно Combine. И вот отличная статья для всех, кто еще не использует Combine и сомневается в его полезности.
🔵Combine - швейцарский нож iOS-разработчика для работы с асинхронными событиями в декларативном стиле.
🔵Combine помогает разработчикам управлять потоками данных, избавляя от множества колбэков и ручного управления очередями.
🔵Combine состоит из трех сущностей: Publisher, Operator и Subscriber.
🔵Publisher генерирует значения или ошибки и отправляет их Subscriber.
🔵Operator фильтрует или комбинирует значения между Publisher и Subscriber.
🔵Subnoscription управляет передачей данных от Publisher к Subscriber и контролирует объем запрошенных данных.
🔵Subscriber является получателем данных от Publisher и обрабатывает их.
🔵Combine интегрируется в SwiftUI через @Published, @ObservedObject, @StateObject, .onReceive(_:) и @EnvironmentObject

Прелесть Combine в том, что его можно объяснить объяснить за несколько часов, за несколько дней по-настоящему освоить и больше никогда не быть прежним
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41👍1🤔1