База данных SQLite: Нативные кроссплатформенные приложения Swift

Введение

Привет всем 👋

Меня зовут Ведант, и сегодня я собираюсь показать вам, как интегрировать SQLite DB в мобильное приложение SCADE.

Нам часто нужно хранить данные локально, чтобы наше приложение могло их использовать. Если мы создаем мобильные приложения как для Android, так и для iOS, нам необходимо позаботиться о совместимости базы данных. SCADE помогает нам минимизировать усилия по интеграции локальной базы данных, чтобы мы могли сосредоточиться только на написании бизнес-логики, а не тратить время на настройку базы данных, совместимой с Android и iOS.

SCADE по своей природе использует минимальное количество оптимизированных строк кода и полностью совместим с обеими мобильными платформами. В этой статье мы узнаем, как использовать базу данных SQLite, предлагаемую SCADE SDK, и создадим демонстрационное приложение SCADE для демонстрации работы SQLite DB.

Персистентность базы данных

Для хранения данных в виде объектов база данных должна быть персистентной. Это необходимо для того, чтобы записи данных были долговечными при изменении устройства или программного обеспечения приложения. SCADE по умолчанию реализует персистентную обертку базы данных SQLite, чтобы данные оставались статичными и не зависели от времени, а значит, были согласованными. В SCADE мы используем идентичную кодовую базу приложения для iOS, чтобы запустить его на системе Android. В настоящее время SCADE предлагает пользователям базу данных SQLite, а RealmDB находится в разработке и скоро будет доступна в бета-версии.

Необходимые условия

Если вы еще не установили SCADE IDE, скачайте SCADE IDE и установите ее на систему macOS. Убедитесь, что версия Xcode меньше или равна 13.0, а версия Swift меньше или равна 5.4, иначе он не сможет работать на платформе Android. Поддержка Swift 5.5 будет выпущена в ближайшее время. Единственным необходимым условием для работы SQLite является знание языка Swift (хотя бы основ). Также убедитесь, что запущен эмулятор Android или физическое устройство, если вы хотите запустить приложения SCADE на устройстве android.

Интеграция SQLite

SCADE предоставляет пользователям все необходимые API, включая Swift foundation и object C libs, которые требуются для интеграции базы данных SQLite. Начнем с создания нового проекта, File -> New -> New Project. Затем выберите опцию SCADE, введите имя проекта и нажмите кнопку Create. Мы готовы интегрировать SQLite DB в приложение SCADE.

Теперь перейдите к файлу Package.swift и добавьте приведенную ниже зависимость SPM для базы данных SQLite.

  • URL GitHub: https://github.com/scadedoc/SQLite.swift
  • Связанная библиотека: SQLite

Теперь нажмите на Tools -> Clean & Build проекта, чтобы классы SQLite были доступны для использования. В качестве следующего шага мы включим необходимые библиотеки для поддержки SQLite для платформы Android.

Мы загрузим все файлы библиотек из этого репозитория Github и перенесем их в наш проект SCADE. Создайте папку lib на уровне проекта нашего приложения SCADE и переместите файлы, как показано на скриншоте ниже.

Операции CRUD

Давайте обсудим операции над БД (Create, Read, Update, Delete) по очереди для библиотеки SCADE SQLite. Сначала мы установим соединение с SQLite DB, а затем создадим базу данных в нужном месте.

Подключение к БД:

После успешного создания data.db мы приступим к созданию таблицы, передав имя таблицы, а затем несколько имен столбцов для создания колонок.

Чтобы вставить запись, нам нужно использовать встроенный метод insert() таблицы и передать параметры ключ-значение для столбцов, которые мы объявили выше. А затем использовать экземпляр базы данных для выполнения вставки записи. Обратите внимание, что это асинхронный вызов и его необходимо обрабатывать с помощью исключений Runtime.

Аналогично для операций Update и Delete нам нужно сначала отфильтровать строку записи, минуя идентификатор строки. После этого мы вызовем встроенные методы update() и передадим обновленные значения идентификаторам столбцов. Далее, для операции удаления, мы будем использовать встроенный метод delete() для отфильтрованной строки.

Создание приложения SCADE

Теперь мы разработаем приложение SCADE для демонстрации операций SQLite CRUD. Для этого создадим простой дизайн пользовательского интерфейса.

Пожалуйста, выберите нужный тип шрифта, размер и цвет из палитры дизайна.

  1. Ярлык: Нам понадобится метка для отображения текущих записей, существующих в БД.
  2. RowView: Перетащите rowView и поместите его в нижней части страницы, чтобы он содержал 4 кнопки.
  3. 4 кнопки: Нам понадобятся 4 кнопки, а именно: Create, Read, Update, Delete, чтобы продемонстрировать CRUD-операции по событиям нажатия.
  4. ToolBarItem Label: Перетащите элемент панели инструментов и установите текст «SQLite SCADE» для заголовка панели инструментов.

Теперь сохраните проект и перейдите к файлу main.page.swift для написания кода. Создайте несколько фиктивных данных, чтобы поиграть с операциями над БД.

  var tempData = [
    ["Vedant", "6vedant@gmail.com"], ["Sam", "sam@gmail.com"], ["Manisha", "mansiha@gmail.com"],
    ["Alice", "alice@gmail.com"],
  ]
Вход в полноэкранный режим Выход из полноэкранного режима

Вставить операцию:

Мы установим слушателя клика для кнопки Create и вставим данные из списка tempData. Мы будем использовать ключи «name» и «email» для сохранения значений с помощью встроенного метода insert. Если во время операции возникнет какое-либо исключение, обработаем его в методе catch.

Операция чтения:

Для чтения данных мы используем метод db.prepare() для поочередного перебора каждой строки и добавим значение в метку.

Операция обновления/удаления:

Для обновления существующих данных в строке мы используем метод filter экземпляра таблицы и передадим rowID для обновления/удаления конкретной строки.

Запуск приложения

Наконец, мы готовы запустить проект и протестировать его на симуляторе. Вы сможете увидеть работу приложения, как показано на скриншоте ниже.

iOS

Android

Вуаля🎊! Мы успешно интегрировали библиотеку SQLite в наше приложение SCADE. Интегрировать базу данных SQLite очень просто, так как SCADE работает гладко как на Android, так и на iOS без каких-либо проблем. Вам обязательно стоит попробовать библиотеку SCADE с базой данных SQLite.

Счастливого кодинга 😊

Оцените статью
Procodings.ru
Добавить комментарий