Диплом: Повышение удобства учета выдачи и хранения книг в библиотеке за счет автоматизации с применением мобильных устройств компании Apple

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
35
отображаются в реальном времени по мере написания кода программистом. Мы
используем Playground для описания основного синтаксиса языка Swift.
Левая часть окна Playground предназначена для написания кода, в
правой части отображаются вычисления выражений, а снизу находится консоль
для вывода сообщений.
Рисунок 2 – Окно Playground
Рассмотрим создание переменных, констант, функций, классов,
условных операторов и циклов.
Переменные и константы
Переменную можно задать несколькими способами.
С присваиванием ей значения при создании:
Или обозначить тип переменной, а значение присвоить позднее:
Константа создается так же, как и переменная, только вместо ключевого
слова «var» используется «let».
На рисунке ниже мы видим на примере функцию языка Swift
«выведение типа». Даже если при создании переменной ее тип не был задан,
среда программирования самостоятельно присваивает переменной
36
необходимый тип. В этом можно убедиться, нажав на переменную левой
кнопкой мыши, удерживая клавишу Alt.
Поскольку язык Swift обладает строгой типизацией, среда
программирования не позволит совершать операции над переменными с
разными типами. Например, при попытке сложить переменную типа String и
переменную типа Integer, Xcode выдаст ошибку и не будет компилировать код
пока ошибка не будет исправлена.
Типы данных
Основные типы данных Swift:
- Строка (String)
- Целочисленное значение (Int)
- 32-битное число с плавающей запятой (Float)
- 64-битное число с плавающей запятой (Double)
- Логическое значение «истина» или «ложь» (Bool)
Коллекционные типы:
- Массив (Array)
- Множество (Set)
- Ассоциативный массив или словарь (Dictionary)
Опционалы (Optionals)
Опционал – это тип данных, при помощи которого в Swift обозначается
наличие или отсутствие значения у переменной.
Функция
Функция задается при помощи ключевого слова «func».
37
После ключевого слова следует название функции, далее в скобках
располагаются аргументы функции с обязательным обозначением их типа,
после скобок указывается тип возвращаемого значения, а в фигурных скобках
находится тело функции.
Вызвать функцию можно написав ее имя и указав значения аргументов:
После выполнения функция будет содержать значение: «Это строка,
созданная функцией».
Классы и структуры
Класс относится к ссылочным типам данных, а структура к типу
значений.
Ключевым словом для создания класса является «class». Далее следует
имя класса с заглавной буквы, для того, чтобы проще было отличить класс от
переменной. После имени класса, в фигурных скобках, создается тело класса.
Переменные и функции, принадлежащие классу, называют параметрами
и методами соответственно.
При условии, что параметрам не было присвоено значение при их
создании, необходимо использовать инициализатор. Это своего рода функция,
которая срабатывает при создании нового объекта класса.
Объект класса создается следующим образом:
38
Структура объявляется с помощью ключевого слова «struct». Синтаксис
структуры схож с классом. Структуры в отличие от классов обладают
автоматически создаваемым инициализатором.
Условные операторы
В Swift существует три оператора условия, при помощи которых
осуществляется контроль выполнения программного кода.
При помощи каждого из трех операторов проверим, является ли
значение константы с именем «constant», которую мы обозначили ранее,
положительным числом.
1. Оператор условия «if»
После ключевого слова «if» пишется условие, если условие истинно, то
выполняется код расположенный в фигурных скобках после условия. В
противном случае будет выполнен код после ключевого слова «else».
2. Оператор условия «guard»
39
Отличие данного оператора от «if» заключается в том, что в случае
невыполнения условия код, написанный далее, не будет выполнен.
3. Оператор условия «switch»
После ключевого слова «switch» располагается значение, которое
необходимо исследовать. После «case» пишется предполагаемое значение или
диапазон значений, далее после двоеточия пишется код, который будет
выполнен, если исследуемое значение будет равно предполагаемому.
Циклы
Для написания циклов используются операторы «for-in» и «while».
Создадим переменную, которая содержит массив строк.
Используем операторы циклов, чтобы вывести по очереди элементы массива в
консоль.
После ключевого слова «for» располагается константа с произвольным
именем, в которую по очереди сохраняются элементы массива. При помощи
функции print выводим значение константы в консоль.
Далее рассмотрим оператор «while».
40
Цикл будет выполняться, пока соблюдается условие. Если цикл
составлен неверно, то велика вероятность, что он будет выполняться до
бесконечности. Остановить процесс можно будет, только завершив работу
Xcode.
2.2 Выбор базы данных для приложения
Существуют различные механизмы для сохранения данных на iOS-
устройствах. Рассмотрим основные инструменты, помогающие обеспечить
долговременное хранение данных в файловой системе iOS:
- UserDefaults
- SQLite3
- Core Data
- Realm
UserDefaults это встроенная в каждое приложение база данных,
информация в которой хранится в виде ассоциативного массива. Она
предназначена для хранения небольших объемов данных, поскольку вся
информация, содержащаяся в UserDefaults, загружается при запуске
приложения, при большом объеме сведений значительно увеличивается время
его загрузки. Также в UserDefaults можно сохранять данные строго
определенных типов.
SQLite – это встроенная в iOS реляционная база данных. Если требуется
хранение большого объема данных, то SQLite отлично для этого подойдет. В
этой базе данных используется язык структурированных запросов (Structured
Query Language - SQL). SQL - язык программирования, используемый для
взаимодействия с реляционными базами данных. Объектно-ориентированные
языки программирования и реляционные базы используют фундаментально
41
различные подходы к хранению и организации данных. Для преобразования
данных между ними было разработано большое количество методов, библиотек
и прочих инструментов, которые называют объектно-реляционным
отображением (object-relational mapping - ORM). Одним из таких ORM-
решений, созданных компанией Apple, является Core Data.
Core Data – это инфраструктура разработки приложений (framework),
для работы с данными, которая позволяет выполнять действия с сущностями и
их связями, а также атрибутами в том виде, который напоминает работу с
объектным графом в обычном объектно-ориентированном программировании.
Realm представляет собой объектно-ориентированную,
межплатформенную базу данных, созданную специально для использования на
мобильных устройствах. Основное отличие Realm от других баз данных
заключается в том, что она рассматривает объекты данных, как живые объекты.
Это означает, что она синхронизирует данные в реальном времени без
необходимости программирования сетевых задач и без необходимости
написания кода для преобразования данных «сериализации» и объектно-
реляционного отображения.
Выбор способа для долговременного хранения данных на устройстве
является важной составляющей при создании приложения, поскольку скорость
его работы во многом от этого зависит.
Проведем анализ описанных выше инструментов, позволяющих
обеспечить долговременное хранение информации при работе нашего
приложения.
Встроенная база данных UserDefaults в данном случае не актуальна,
поскольку в приложении подразумевается хранение большого количества
данных. Далее рассмотрим три оставшихся инструмента – SQLite, Core Data и
Realm.
На следующих графиках приведены сравнительные характеристики
работы нескольких баз данных.
42
Рисунок 3 – Число записей соответствующих запросу
Рисунок 4 – Единовременное количество записей в БД
43
Рисунок 5 – Поиск записей соответствующих запросу
Проанализировав данные графиков, делаем вывод, что наиболее
подходящей базой данных для нашего приложения является Realm, поскольку
она значительно превосходит SQLite и CoreData по скорости работы с данными.
Количество единовременно записываемой информации в SQLite выше, чем в
Realm, но поскольку мы не планируем записывать большой объем информации
в базу данных единовременно, этот показатель не повлиял на наш выбор.
Кроме скорости работы значительным плюсом для выбора Realm
является простота в использовании и меньшее количество строк кода по
сравнению с CoreData и SQLite.
2.3 Описание базы данных Realm
Еще несколько лет назад стандартом для создания мобильных
приложений на iOS и Android был SQLite: быстрый, но универсальный формат
базы данных SQL. SQLite обладает рядом достоинств, например, написан на C,
что делает его быстрым, переносимым практически на любую платформу и
полностью соответствующим стандарту SQL.
С другой стороны, Realm - это современное решение для баз данных,
которое ориентировано на потребности современных приложений. В этом
смысле это не универсальная база данных. Realm действительно эффективен
44
для скоростного чтения и записи данных, но требует освоения прикладного
программного интерфейса «API Realm», поэтому невозможно просто
использовать свои навыки работы с базами данных SQL.
API Realm, созданный с использованием современного передового кода,
гораздо проще в использовании, чем работа с C API SQLite от Swift.
Разработчик может начать с основ, даже если никогда ранее не использовал
Realm. Ниже следует пример кода:
Этот код Swift определяет новый класс, создает экземпляр, устанавливает
свойства объекта Person и, наконец, пытается добавить новый объект в область
в транзакции записи. Объекты получаются обратно из базы данных следующим
образом.
Этот код Swift запрашивает у Realm все сохраненные объекты типа
Person, фильтрует их по возрасту 18 или более и, наконец, сортирует
результаты.
Одним из краеугольных камней философии базы данных Realm является
то, что современные приложения работают с объектами. Большинство
постоянных решений извлекают данные в виде общих словарей, которые не
являются строго типизированными, и загрязняют код приложения чрезмерной

Смотрите также:

«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран
Work-life balance подход в управлении рабочим временем молодых сотрудников (на примере ООО «МГТ-сервис»)
Актуализация контента, отражающего концепцию «диалога культур», при освоении английского языка взрослыми обучающимися
Актуализация приемов инсценирования и драматизации в рамках интерактивной модели обучения английскому языку в старших классах
Актуальные подходы в построении внутреннего pr строительной компании (на примере ООО "Ренессанспроект")
Анализ деловой активности и экономической эффективности деятельности организации (на примере АО «СГ-Транс»)