Добавить объявление

SQLiteData: элегантная альтернатива SwiftData для работы с базой данных

Всем привет! Сегодня поговорим про библиотеку для работы с данными - SQLiteData, которая сочетает проверенную надежность SQLite с современным Swift-подходом. В основе библиотеки лежит идея предоставить разработчикам привычные инструменты, подобные тем, что есть в SwiftData, но с более предсказуемым поведением.

Модели данных:


Модели данных описываются с помощью структур и перечислений, что делает код интуитивно понятным и соответствующим духу Swift. Это обеспечивает:

  • Естественную работу с типами данных.

  • Безопасность на этапе компиляции.

  • Простоту в сопровождении и расширении.

Работа с запросами:


Для выборки данных предлагаются типобезопасные запросы, которые интегрируются в интерфейс через property wrappers. Важно, что эти обертки работают не только в SwiftUI, но и в любых @Observable моделях, а также в контроллерах UIKit, что обеспечивает универсальность подхода.

Интеграция с CloudKit:


Библиотека включает прямой доступ к возможностям CloudKit, обеспечивая:

  • Синхронизацию данных между устройствами.

  • Функцию совместного использования с другими пользователями.


Это избавляет от необходимости самостоятельной интеграции сторонних решений.

Технологическая основа:


В качестве основы используется SQLite через драйвер GRDB, что гарантирует высокую производительность и отказоустойчивость. Такой выбор технологии означает полный контроль над схемой данных и процессами миграции.

Пример:


// Модель
@Table
struct Task: Identifiable {
let id: UUID
var title: String
var isCompleted: Bool
}

struct TasksView: View {
// Запрос
@FetchAll(Task.where { !$0.isCompleted })
var pendingTasks

var body: some View {
List(pendingTasks) { task in
Text(task.title)
}
}
}

Вывод:


SQLiteData позиционируется как готовое решение для проектов, где важны стабильность, прозрачность работы с данными и современный подход к их обработке. Библиотека предлагает оптимальное сочетание надежности SQLite и современных Swift-практик.
27.11.2025 32 510