Шубин_942 (1232972), страница 3
Текст из файла (страница 3)
Класс редактирования записи. Методы данного класса должены вызываться из класса просмотра записей, принимать из него основную информацию, такую как порядковый номер и адрес выбранного объекта, и, передавая ее доступному удаленно php-сценарию, получать полную информацию из базы данных о выбранном объекте.
2.2.2 Проектирование пользовательского интерфейса мобильного приложения
Для реализации всего необходимого функционала необходимо создать приложение, имеющее несколько активностей с возможностью перехода из одной активности в другую. В целом приложение должно включать активности, реализующие следующие функции: ввод логина и пароля, визуализация главного меню, выбор типа недвижимости, визуализация окна создания записи о квартире, окна создания записи об офисном помещении, отображение списка всех ранее созданных записей в базе данных и отображение доступного лишь администратору окна регистрации нового пользователя.
Подробнее рассмотрим необходимые процесс проектирования необходимых активностей и визуального интерфейса их представлений.
С целью быстрого освоения программы пользователями было принято решение не загромождать ее визуальный интерфейс лишними функциями, кнопками и ярким фоном. Программа создавалась в строгом стиле, который не отвлекал бы пользователя от работы.
На рисунке 4 представлены схематические отображения представлений ввода логина и пароля и активности Главное меню. Очевидным образом в первом представлении пользователь должен ввести свои данные, присвоенные ему администратором системы, затем приложение проверит, совпадает ли введенная пара логин-пароль с уже имеющейся в базе данных. Если аутентификация пройдет успешно, пользователь получит доступ к приложению и перейдет к Главному меню, из которого обычный пользователь может перейти к процедуре создания новой записи или к просмотру списка всех, ранее им созданных записей в базе данных агентства. Администратору кроме этих возможностей, так же будет доступен переход к окну регистрации нового пользователя. Первоначально в системе будет зарегистрирован лишь один администратор, позже он сможет добавить новых пользователей.
Текстовое поле для ввода логина
Имя приложения
Текстовое поле для ввода пароля
Кнопка инициализирующая вход в приложение
Рисунок 4 – Схема окна ввода логина и пароля и главного меню
Окно создания новой записи в базе данных и окно отображения этих записей представлены на рисунке 5. Для создания новой записи пользователю необходимо ввести все основные характеристики объекта недвижимости, определяемые для квартир и офисных помещений отдельно, для избегания проблем с вводом данных разного формата в одно поле разными людьми, планируется предлагать пользователю не ввод, а выбор значений некоторых параметров. Например, в приложение будут загружены списки существующих улиц города, количество комнат в квартире, этаж, на котором может располагаться объект недвижимости, а также тип стен дома объекта недвижимости. Также должна осуществляться проверка формата введенных данных, и все ли необходимые поля заполнены. Завершается работа с данным окном нажатием кнопки, которое запускает процедуру отправления данных на удаленный сервер и добавления в базу данных.
Окно, в которое выводятся все ранее созданные пользователем записи, содержит список, в котором в отдельных строках представлены все записи с кратким содержанием о них. К краткому содержанию относятся адрес объекта недвижимости и его стоимость. По нажатию на строку с данными, пользователь переходит в окно редактирования информации о текущем объекте недвижимости, окно редактирования на самом деле является тем же самым окном добавления новой записи с некоторыми изменениями.
Рисунок 5 – Окно создания новой записи и окно списка записей
2.2.3 Проектирование сетевого взаимодействия программного комплекса
Как уже говорилось выше, для реализации круглосуточного доступа множества пользователей был выбран сетевой доступ к базе данных агентства недвижимости, схема которого представлена на рисунке 6.
Рисунок 6 – Сетевое взаимодействие с базой данных
В соответствии с рисунком 6 приложение и wеb-интерфейс могут осуществлять как запись данных в базу, так и их считывание посредством выполнения определенных запросов.
Для хранения информации в базе данных необходимо создать таблицы:
– homes: для хранения параметров квартир, с которыми работает данное агентство недвижимости;
– offices: для хранения параметров офисных помещений, с которыми работает данное агентство недвижимости;
– rules: для хранения данных обо всех пользователях системы.
3 Реализация программного комплекса для агентств недвижимости
3.1 Ключевые особенности реализации приложения для мобильного устройства
Приложения для устройств под управлением ОС Android состоят из слабосвязанных компонентов, которые собираются воедино с помощью программного манифеста. Манифест – файл, описывающий все компоненты приложения и способы их взаимодействия, а также метаданные, в том числе, требования к платформе и аппаратной конфигурации. Любое приложение, создаваемое для устройства под управлением ОС Android, содержит файл манифеста, AndroidManifest.xml, который хранится в корневом каталоге проекта.
Манифест включает перечень узлов (тегов) для каждого компонента (Активностей, Сервисов, Источников данных и Широковещательных приемников), которые приложение включает и с помощью Фильтров намерений (Intent Filters) и полномочий определяет, каким образом они взаимодействуют друг с другом и со сторонними программами. В манифесте предусмотрены атрибуты для указания метаданных (значков и визуальных стилей). Следует отметить, что дополнительные узлы верхнего уровня можно использовать для описания настроек безопасности, модульных тестов (юнит-тестов), аппаратных и системных требований. Манифест содержит корневой тег <manifest> с атрибутом package, который ссылается на пакет проекта. Как правило, этот тег также включает в себя атрибут xmlns:android, поддерживаемый системными узлами внутри файла.
Для разрабатываемой программы следует определить атрибут versionCode для задания текущей версии приложения в виде целого числа. Это внутреннее значение используется для сравнения версий программы. Применим атрибут versionName для указания публичной версии, которая выводится для пользователей [22].
Также, в файле манифеста определяются права, предоставляемые ОС приложению, а также активность, вызываемая при запуске.
Типичный тег <manifest> показан во фрагменте кода:
<manifest xmlns:android=http://schemas.android.com/apk/res/android
package="com.my_domain.my_app"
android:versionCode="1"
android:versionName="0.9 Beta">
[ ... вложенные узлы манифеста ... ]
</manifest>
Собственно функционал приложений для устройств, работающих под управлением операционной системы Android, представляет собой набор активностей (Activity), которые определяют как внешний вид представлений визуального пользовательского интерфейса программы – окна, так и функции и методы, выполняемые в процессе его работы. Как правило, окно полностью заполняет экран Android-устройства, но может иметь размеры меньше, чем у экрана. Activity может также использовать дополнительные окна, например, всплывающее диалоговое окно, которое запрашивает пользовательский ответ для основного Activity, или окно уведомления о каком-либо событии в приложении или системе [20]. Каждая активность представлена классом, реализованном на языке Java, хранящимся в одноименном с активностью файле с расширением .java. Также с активностью связывается xml- файл (eXtensible Markup Language), представляющий разметку окна приложения, т.е. взаимное расположение его графических элементов [21]. При запуске активности система Android распознает размер экрана мобильного устройства и в соответствии с заданной разработчиком разметкой масштабирует отображаемые представления. Таким образом, одна и та же активность определяет одинаково отображаемый графический интерфейс пользователя независимо от диагонали экрана его мобильного устройства и его разрешения [25].
Разработка оптимального графического интерфейса пользователя (graphic user interface, GUI), улучшение опыта взаимодействия (user experience, UX), повышение эффективности взаимодействия человека с компьютером (human computer interaction, HCI), юзабилити (usability) приложений и интерфейсов представляют собой весьма обширные направления исследований в области разработки программного обеспечения.
С появлением ОС Android введено несколько новых терминов для обозначения уже известных программных абстракций, которые будут подробно рассмотрены в следующих разделах.
Представления (View): базовый класс для всех визуальных элементов интерфейса (более известных как элементы управления или виджеты). Все элементы UI, включая разметку, являются производными от класса View.
Группа представлений (View Group): потомок класса View, который может содержать внутри себя несколько дочерних Представлений. Наследуется класс ViewGroup, чтобы создавать сложные Представления, состоящие из взаимосвязанных элементов. Класс ViewGroup также стал основой для менеджеров компоновки, которые помогают размещать элементы управления внутри Активностей.
Активности (Activity): эквивалент Формы приложения для устройств, работающих под управлением ОС Android. Для того, чтобы вывести на экран пользовательский интерфейс, необходимо определить для Активности хотя бы одно Представление (как правило, в форме разметки представления на экране)) [26].
Для реализации программного комплекса использовались такие инструменты.
-
Для создания, отладки и настройки Android-приложения – среда разработки Android Studio с подключенным плагином Genymotion, который эмулирует на компьютере работу Android-устройства. Использование эмулятора позволило, во-первых, избежать постоянного соединения с физическим устройством, во-вторых, выполнить тестирование работы приложения на устройствах с различным разрешением экрана, что помогло настроить интерфейс пользователя.
2. Для создания и настройки базы данных использван web-интерфейс phpMyAdmin, который обеспечивает удобную форму администрирования данных MySQL. phpMyAdmin позволяет во многих случаях обойтись без непосредственного ввода команд SQL. При этом наиболее часто используемые операции (управление базами данных, таблицами, полями, связями, ин-дексами и т.п.) поддерживаются с помощью пользовательского интерфейса,, что заметно облегчает и ускоряет работу разработчика [27]. На рисунке 7 представлено окно работы с полями таблицы в приложении phpMyAdmin.
Рисунок 7 – phpMyAdmin – окно редактирования полей таблицы.
Для реализации сетевого взаимодействия Android-приложения и базы данных MySQL используются написанные на языке php-файлы (php-сценарии), содержащие в себе процедуры подключения к базе данных и обработки запросов к ней.
3.2 Реализация базы данных
В базе данных были созданы рассмотренные на этапе проектирования таблицы homes, offices и rules. Поля таблиц с описанием приведены ниже (таблицы 3-5).
Таблица 3 – Поля таблицы homes
| Название поля | Тип данных | Описание |
| pid | varchar(100) | Идентификационный номер записи |
| type | int | Тип сделки (продажа/аренда) |
| street | varchar(100) | Название улицы |
| number | varchar(100) | Номер дома |
| rooms | int | Количество комнат |
| square | double | Общая площадь |
Продолжение таблицы 3
| floors | int | Этажность дома |
| floor | varchar(100) | Этаж квартиры |
| typehome | varchar(100) | Тип стен дома |
| ipoteka | int | Возможность ипотеки |
| price | float | Цена |
| owner | varchar(100) | Владелец |
| ownerphone | int | Телефон владельца |
| photo | varchar(100) | Путь к фотографиям |
| date | timestamp | Дата последнего обновления |
| rieltorID | varchar(100) | Логин пользователя добавившего запись |
Таблица 4 – Поля таблицы rules
| id | int | Порядковый номер |
| login | varchar(100) | Логин пользователя |
| password | varchar(100) | Пароль пользователя |
| name | varchar(100) | Имя пользователя |
| surname | varchar(100) | Фамилия пользователя |
Таблица 5 – Поля таблицы offices
| Название поля | Тип данных | Описание |
| pid_of | varchar(100) | Идентификационный номер записи |
| type_of | varchar(100) | Тип сделки (продажа/аренда) |
| street_of | varchar(100) | Название улицы |
| number_of | varchar(100) | Номер дома |
Продолжение таблицы 5
| square_of | float | Общая площадь |
| floors_of | int | Этаж |
| price_of | decimal(10,2) | Цена |
| owner_of | varchar(100) | Владелец |
| ownerphone_of | int | Телефон владельца |
| photo_of | varchar(100) | Путь к фотографиям |
| data_of | timestamp | Дата последнего изменения |
| rieltor_of | varchar(100) | Логин пользователя добавившего запись |
Некоторые поля, такие как: тип сделки и возможность покупки квартиры по ипотеке – хранят информацию в неявном виде. При этом вместо конкретных значений хранится число «0» или «1». Android-приложение, выполняя процедуру записи или чтения информации из базы данных, сравнивает значение поля, хранящего информацию о типе сделки (ипотеке) и определяет тип (возможность ипотеки):















