Разработка мобильного приложения расчета и учета оплаты коммунальных услуг

Разработка программы, позволяющей вести учет платежей. Виды и особенности операционных систем для смартфонов. Проектирование интерфейса программы и порядок её взаимодействия с пользователем. Основные компоненты и средства разработки мобильных приложений.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.05.2016
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

android:id="@+id/linearLayout"

android:layout_alignParentBottom="true"

android:layout_alignParentRight="true"

android:layout_alignParentEnd="true">

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Сохранить"

android:id="@+id/btnUserSave"

android:onClick="btnUserSave_OnClick"/>

</LinearLayout>

</RelativeLayout>

Все элементы имеют атрибуты, позволяющие управлять их размерами или расположением. Рассмотрим атрибуты, представленные в примере.

Поскольку RelativeLayout является корнем в макете, он должна заполнить всю область экрана, которая доступна в приложении, установив ширину (layout_width) и высоту (layout_height) "match_parent". Это значение указывает, что вид должен расширить свою ширину или высоту, чтобы соответствовать ширине или высоте родительского вида. Атрибут android:layout_margin определяет отступ элемента от соседних элементов(или от родительского). В нашем примере значение этого элемента 15dp. Dp - абстрактная единица, основанная на плотности экрана. Атрибут tools:context позволяет определить связь между макетом и классом активности, в которой данный макет будет реализован.

Теперь рассмотри атрибуты ScrollView. Атрибута определяющий ширину имеет размер такой же, как и родительский элемент (fill_parent), а атрибут определяющий длину - по своему содержимому (wrap_content). Следующий атрибут обозначает то, что элемент располагается выше элемента, указанного в значении, т.е. выше LinearLayout, содержащего кнопки. И последний атрибут обозначает, что верхняя граница нашего элемента, располагается на верхней границу RelativeLayout.

Следующий элемент LinerLayout имеет такие же значения атрибутов, описывающих высоту и ширину. У этого элемента следует указывать ориентацию, в примере значение этого атрибута "vertical".

Дальше представлены элементы TextView и EditText (по одному элементу в качестве примера). Здесь появляются новые атрибуты. В TextView - это размер текста и строка отображаемая в этом элементе. В EditText добавляется значение идентификатора, для дальнейшего использования этого элемента.

У элемента Button инициализируется событие on_Click (нажатие кнопки), которому присваивается имя. Это событие описывается в соответствующем Java-классе.

3.3 Реализация базы данных

Для создания таблиц базы данных, структура которой представлена на рис. 21 в программе использовались следующие запросы:

CREATE TABLE tariffs (

tariff_id integer primary key autoincrement,

tariff_name text,

tariff_tariff real);

CREATE TABLE info_user (

info_id integer primary key autoincrement,

info_full_name text,

info_address text,

info_home_phone text,

info_mobile_phone text);

CREATE TABLE history (

history_id integer primary key autoincrement,

history_name text,

history_date text,

history_previous_value integer,

history_present_value integer,

history_tariff real,

history_total real,

history_info_user text);

CREATE TABLE reminders (

reminder_id integer primary key autoincrement,

reminder_title text,

reminder_text text,

reminder_date text);

CREATE TABLE selected_user (

id integer primary key autoincrement,

user_id integer);

// создаём объект db класса SQLiteDatabase для изменения нашей базы данных

SQLiteDatabase db = new DBCourseWork.getWritableDatabase();

//открываем транзакцию db.beginTransaction();

try {

// удаление строки, в качестве параметров передается название таблицы и оператор WHERE db.delete("reminders", "reminder_id = " + id, null);

// транзакция прошла успешно db.setTransactionSuccessful(); }

// гарантированное закрытие транзакции finally {

db.endTransaction();

3.4 Реализация напоминаний

Первым делом следует построить уведомление, т.е. описать как оно будет выглядеть, что будет происходить при взаимодействии пользователя с ним. Ниже представлена часть кода из файла "ReminderNotification".

// Создаём переменную типа NotificationManager

NotificationManager manager;

public void onReceive(Context context, Intent intent) {

// Получаем id напоминания

String id = intent.getAction();

// Проверяем является ли полученный id числом

if (TextUtils.isDigitsOnly(id)) {

// Извлекаем заголовок напоминания и текст

String title = intent.getStringExtra("title");

String text = intent.getStringExtra("text");

// Создаём объект NotificationManager

manager = (NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);

// Указываем какое Activity будет открываться при нажатии на уведомление

Intent i = new Intent(context, Main.class);

PendingIntent pIntent = PendingIntent.getActivity(context, 0, i, 0);

// Строим уведомление

Notification notification = new Notification.Builder(context)

.setContentTitle(title)// Заголовок

.setContentText(text)// Текст

.setSmallIcon(android.R.mipmap.sym_def_app_icon)// Иконка

.setContentIntent(pIntent)// Activity при нажатии

.setPriority(Notification.PRIORITY_DEFAULT)// Приоритет уведомления по умолчанию

// Все настройки уведомления по умолчанию (вибрация, звук и т.д.)

.setDefaults(Notification.DEFAULT_ALL)

.build();// Строим уведомление

//Указываем, что при нажатии на уведомление оно должно удалиться из строки состояния

notification.flags |= Notification.FLAG_AUTO_CANCEL;

// Вызываем уведомление

manager.notify(Integer.parseInt(id), notification);}

После того, как уведомление построено, необходимо реализовать вызов этого уведомление в нужное время. Ниже представлена часть кода из файла "BootLoad".

public void onReceive(Context context, Intent intent) {

// Получаем нашу БД для чтения

SQLiteDatabase db = new DBCourseWork(context).getReadableDatabase();

// Через запрос получаем все уведомления

Cursor c = db.query("reminders", null, null, null, null, null, null);

// Создаём объект AlarmManager, который по истечению указанного времени вызовет уведомление

AlarmManager alarmManager = (AlarmManager)context.getSystemService(context.ALARM_SERVICE);

if (c != null) {

if (c.moveToFirst()) {

do {

String id = c.getString(c.getColumnIndex("reminder_id"));

String title = c.getString(c.getColumnIndex("reminder_title"));

String text = c.getString(c.getColumnIndex("reminder_text"));

// Создаём BroadcastReceiver, который сработает при истечении времени (в данном случае это будет уведомление), и заносим в него данные (id, title и text)

Intent i = new Intent(context, ReminderNotification.class);

i.setAction(id);

i.putExtra("title", title);

i.putExtra("text", text);

PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, i, PendingIntent.FLAG_CANCEL_CURRENT);

// Создаем наше напоминание, которое сработает независимо от того, находится ли телефон в спящем режиме или нет, в указанную дату и что должно будет вызвано по истечению времени

alarmManager.set(AlarmManager.RTC_WAKEUP, c.getLong(c.getColumnIndex("reminder_date")), pendingIntent);

} while (c.moveToNext()); }}}

3.5 Резервное копирование данных

public void btnBackup_OnClick(View view) throws IOException {

// Получаем путь к нашей БД (/data/data/course.utilities/databases/)

final String source = getDatabasePath("CourseWorkDB").getPath();

InputStream is = null;

OutputStream os = null;

try {

// Создаём объект FileInputStream с указанием пути к нашей БД

is = new FileInputStream(source);

// Получаем путь к внешней памяти телефона

File sdPath = Environment.getExternalStorageDirectory();

// Создаем папку

sdPath = new File(sdPath.getAbsolutePath() + "/CourseWork");

sdPath.mkdirs();

// Создаем файл

File file = new File(sdPath, "CourseWorkDB_backup");

os = new FileOutputStream(file);

// Пачками по length байт считываем из is в os

byte[] buffer = new byte[1024];

int length;

while ((length = is.read(buffer)) > 0) {

os.write(buffer, 0, length);}

// Сообщаем об успешности

Toast.makeText(getBaseContext(), "Backup прошел успешно", Toast.LENGTH_SHORT).show();}

catch (Exception ex) {

// Или об ошибке

Toast.makeText(getBaseContext(), ex.getMessage(), Toast.LENGTH_SHORT).show();}

finally {

// Закрываем потоки

os.close();

is.close();}}

3.6 Тестирование разработанного приложения

Тестирование производилось на встроенном в Android Studio эмуляторе Nexus One версии API 19. Для тестирования разработанного приложения были проведены следующие тесты (скриншоты экранов во время тестирования, приведены в приложении):

Добавление показаний счетчиков электроснабжения и водоснабжения;

Создание учетной записи

Выбор учетной записи

Добавление показаний счетчиков электроснабжения и водоснабжения

Просмотр истории

Фильтрация истории

Удаление записей в истории

Добавление напоминания

Удаление напоминания

Скриншоты экранов во время тестирования представлены в приложении. В связи с тем, что эмулятор не поддерживает русскую раскладку клавиатуры, все данные записываются на английском языке. На всех проведенных тестах результаты совпали с ожидаемыми.

Заключение

смартфон интерфейс мобильный приложение

В результате проведенной работы были рассмотрены существующие мобильные ОС и изучены особенности и архитектура платформы Android, так же были проанализированы аналоги разработанного приложения, которые позволили разработать требования к функциональности программы расчета и учета оплаты коммунальных услуг. Так же были рассмотрены основные компоненты и средства разработки мобильных приложений.

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

Актуальность данной работы подтверждается возможностью дальнейшего развития приложения. Это развитие может идти в разных направлениях. Одним из них является усовершенствование и расширение функциональных возможностей, например, отправка показаний через СМС или электронную почту, расширенные настройки тарифов, визуальное представление данных.

Список использованных источников

1. Рейтинги и рекорды: http://topmira.com/

2. Intel Developer zone: https//software.intel.com

3. Блог "Программирование под Android": http://pr0andr0id.blogspot.ru/

4. Национальный Открытый Университет "ИНТУИТ": http://www.intuit.ru/

5. Магазин мобильных приложений GooglePlayMarket: https://play.google.com/

6. http://android-shark.ru/

7. Дейтел П., Дейтел Х., Дейтел Э.А Android для разработчиков. - СПб.: Питер, 2015. - 384 с.: ил. - (Серия "Библиотека программиста").

8. http://androidfanclub.ru/

9. Баканов А.С., Обознов А.А. Проектирование пользовательского интерфейса: эргономический подход - М.: Изд-во "Институт психологии РАН", 2009.

Размещено на Allbest.ru


Подобные документы

  • Современное состояние рынка мобильных приложений. Основные подходы к разработке мобильных приложений. Обоснование выбора целевой группы потребителей приложения. Этапы проектирования и разработки мобильного приложения для операционной системы Android.

    курсовая работа [987,1 K], добавлен 27.06.2019

  • Разработка программного решения по созданию мобильного приложения. Изучение технологий для разработки приложений. Анализ работы торговых агентов. Обоснование выбора языка программирования. Проектирование интерфейса структуры и верстка, листинг программы.

    дипломная работа [2,2 M], добавлен 08.06.2017

  • Мобильные операционные системы. Основные характеристики систем iOS и Android, их достоинства, недостатки и индивидуальные возможности. Анализ преимуществ лидирующих мобильных платформ для разработки приложения. Основные различия в механизмах безопасности.

    дипломная работа [806,5 K], добавлен 01.01.2018

  • Средства разработки развивающих и обучающих игр и используемой программы. Среда выполнения и Dalvik. Разработка приложения для платформы Android. Графический интерфейс и обработка касаний экрана. Разработка экранов приложения и их взаимодействия.

    дипломная работа [2,1 M], добавлен 18.01.2016

  • Характеристика информационных систем учета медицинских услуг, представленных на современном рынке. Разработка приложения "Учет услуг в спортивном клубе "Т-Фитнес": средства управления графического интерфейса пользователя, создание меню и основные формы.

    дипломная работа [1,8 M], добавлен 14.10.2010

  • Проведение исследования опыта взаимодействия в сети. Методы улучшения согласования с пользователем web-сервиса. Особенность проектирования онлайн-приложения. Изучение разработки контроллеров и моделей. Характеристика создания интерфейса программы.

    дипломная работа [1,3 M], добавлен 11.08.2017

  • Теоретические основы разработки приложения, реализующего подсвечивание ключевых слов. Описание используемых процедур и функций, структуры программы, интерфейса пользователя. Системные требования для работы приложения, анализ результаты его тестирования.

    курсовая работа [1,2 M], добавлен 07.07.2012

  • Обзор подходов к разработке музейных приложений с элементами дополненной реальности, формирование требований к ним. Выбор методов разработки приложения, разработка пользовательского интерфейса. Принципы тестирования. Реализация раздела "Распознавание".

    дипломная работа [2,8 M], добавлен 03.07.2017

  • Выбор состава технических и программных средств для создания данного приложения "Экзаменатор", использование среды разработки Borland Delphi. Основные компоненты и спецификация программы. Используемые технические средства, описание и запуск программы.

    курсовая работа [540,8 K], добавлен 18.07.2012

  • Анализ российского рынка мобильных приложений. Мобильное приложение как новый канал коммуникации с целевой аудиторией. Этапы создания мобильного приложения. План продвижения мобильного приложения в сети Интернет. Бесплатные инструменты продвижения.

    дипломная работа [1,6 M], добавлен 23.06.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.