TGViewer
Channel Public Channel
iOS Mobile | YeaHub

iOS Mobile | YeaHub

@yeahub_ios_mobile

Теория, подготовка к интервью и курсы для iOS разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Subscribers
248
Photos
405
Videos
36
Links
586

Showing posts older than #407 · Back to latest

Older Posts 14 shown
Post #405 75
#Собес #ios
🤔 Расскажите о паттернах MVP и MVVM.

MVP разделяет представление (View) и логику (Presenter), где Presenter обновляет View через интерфейс. MVVM добавляет слой ViewModel, связывающий Model и View через биндинги или реактивность (Combine), избавляя контроллер от логики и уменьшая тесную связанность.

👉Новости 👉База вопросов
Post #404 81
#полезное
😜 Совет по SwiftUI

Создайте и настройте пэйвол с помощью представлений StoreKit для SwiftUI

👉Новости 👉База вопросов
  • 👍 1
Post #403 72
#полезное
😘 Новое в SwiftUI

Используй GlassEffectContainer для группировки связанных элементов Liquid Glass в единую форму, что позволяет добиться плавного визуального смешивания

👉Новости 👉База вопросов
Post #397 70
#полезное
🛞 Swift concurrency. Executors, Actors и их связь с потокам
Полезная статья из серии Swift Concurrency, где автор разбирается в недрах:
🟠Как определяется поток, на котором будет выполняться Task?
🟠Почему в рамках одной Task поток может меняться?
🟠Что такое Executor и на какие типы он делится?
🟠За что отвечает TaskExecutor, а за что SerialExecutor?
🟠Как определить текущий Executor по коду?
🟠Как использовать свой самописный Executor?

Компоненты Swift Concurrency
🔎Task и child task — базовые единицы для асинхронных функций.
🔎Job — часть таски между точками прерываний.
🔎Executor — распределяет Job по потокам.
🔎Cooperative thread pool — пул потоков, равный количеству ядер устройства.

Типы Executor'ов
🔴Global concurrent executor — дефолтный планировщик, распределяет Job'ы конкуррентно.
🔴Serial executors — каждый actor имеет свой, выполняет джобы последовательно.
🔴Main Actor executor — выполняет джобы на main thread.

Понимание механизма работы swift concurrency помогает контролировать и прогнозировать использование инструментов.

👉Новости 👉База вопросов
Post #396 58
#Собес #ios
🤔 Как оптимизировать потребление памяти при загрузке изображений?

Для экономии памяти при загрузке изображений используют ленивую загрузку ( lazy loading ), масштабирование под размер экрана ( downsampling ), кеширование через NSCache или сторонние библиотеки и освобождение неиспользуемых ресурсов. При этом важно загружать изображения в фоновых потоках и отображать их уже готовыми.

👉Новости 👉База вопросов
Post #394 102
#статьи
🤯 Swift concurrency. Executors, Actors и их связь с потоками

Новая часть, в которой рассказывается про недра Swift Concurrency.

🟠Как определяется поток, на котором будет выполняться Task
🟠Почему в рамках одной Task поток может меняться
🟠Что такое Executor и на какие типы он делится
🟠За что отвечает TaskExecutor, а за что SerialExecutor
🟠Как определить текущий Executor по коду
🟠Как использовать свой самописный Executor
Читать

👉Новости 👉База вопросов
Post #393 150
#полезное
😎 Swift concurrency. Executors, Actors и их связь с потоками

Swift Concurrency включает в себя такие ключевые компоненты, как Task, Job и Executor, которые обеспечивают асинхронное выполнение кода и управление потоками.

Существуют различные типы Executors: Global concurrent executor, Serial executors и Main Actor executor, каждый из которых выполняет задачи по-разному, обеспечивая гибкость в управлении потоками.

🟠 Разработчики могут создавать свои собственные Executors, используя протоколы TaskExecutor и SerialExecutor, что позволяет им контролировать выполнение задач в своих приложениях.

🟠 Actors в Swift обеспечивают потокобезопасность, выполняя свои методы последовательно, что предотвращает гонки данных и обеспечивает целостность данных.

🟠 Используя функцию withUnsafeCurrentTask, разработчики могут определить, какой Executor используется в данный момент для выполнения асинхронной функции.

@available(iOS 18.0, *)
final class CustomExecutor: TaskExecutor {

func enqueue(_ job: consuming ExecutorJob) {
job.runSynchronously(on: asUnownedTaskExecutor())
}

func asUnownedTaskExecutor() -> UnownedTaskExecutor {
UnownedTaskExecutor(ordinary: self)
}
}


👉Новости 👉База вопросов
  • ❤ 2
Post #391 127
#полезное
📞 Lokilizer - open source инструмент для перевода строк. Работает на основе AI с поддержкой различных моделей

Уникальная фича - перевод с 2 языков на другие сразу. Например, с русского и английского.

Приложение разворачивается как сервер. Есть подробная инструкция и Docker образ

Автор описал больше про инструмент в статье

👉Новости 👉База вопросов
Post #390 170
#полезное
👨‍💻 Совместимость Swift и C++ на практике

Возможность полноценного взаимодействия с C++ была представлена в Swift 5.9.

Большое количество API на C++ можно вызывать непосредственно из Swift, а некоторые свифтовые API можно использовать из C++.

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

В этом посте Artur Gruchała показывает, как можно вызывать функции C++, оборачивать классы и передавать сложные типы данных.

А ещё можно познакомиться и с особенностями сборки: от карты модулей и работы с заголовками до твиков SwiftPM/Xcode и лучших опциях управления памятью и обработки ошибок.

А большой гайд со всеми деталями есть на официальном портале swift.

👉Новости 👉База вопросов
  • ❤ 1
Post #385 157
#полезное
👋 Руководство по промптингу FoundationModels
Создание эффективных управляемых подсказок для FoundationModels имеет свою специфику. Они обучены для работы на устройствах и взаимодействию со SwiftUI.

🟠Ограниченный размер контекста: 4096 токенов для ввода и вывода.
🟠Защита от небезопасного ввода и вывода, что может привести к ложным срабатываниям.
🟠Описание персонажа улучшает генерацию.
🟠Формулировка подсказок лучше работает при наличии четкой команды.
🟠Важно учитываеть ограничение пользовательского ввода для предотвращения неожиданных результатов.
🟠Важно обрабатывать ошибки, возникающие при неправильном вводе пользователя.
🟠LanguageModelSession выдает специализированные ошибки. Необходимо продумать, как справляться с этими ошибками в пользовательском интерфейсе.
🟠С помощью Generable, guided вывода и тестирования на устройстве можно экспериментировать.
🟠Не нужно беспокоиться о форматировании в формате JSON или особенностях удаленного API.

👉Новости 👉База вопросов
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →