Мобільний додаток підтримки ведення нотаток путівника
Опис та аналіз діаграм компонентів, послідовності, розгортання. Опис NoSQL бази даних. Архітектура програмної системи та обрані технології. Мова програмування Kotlin. Структури обміну даними. Патерн проектування MVP. Тестування мобільних пристроїв.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 19.08.2016 |
Размер файла | 8,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Відкриється сторінка з полями для вводу, кнопками вибору картинки, місцеположення та підтвердження про додавання.
Натиснути на місце для вибору картинки.
Відкриється галерея пристрою.
Вибрати картинку.
Відкриється сторінка для додавання з вибраною картинкою.
Натиснути на кнопку з вибором місцеположення.
Відкриється сторінка з картою та кнопкою підтвердження про вибране місцеположення.
Натиснути на карті.
Ставиться позначка, що відображає місцеположення об'єкту.
Натиснути на кнопку підтвердження місцеположення.
Відкриється сторінка для додавання з вибраним місцеположенням.
Заповнити поля для назви та опису і натиснути кнопку «Addplace».
Відкриється сторінка з туристичними місцями з доданим елементом до списку.
2
Редагування туристичного місця
Натиснути на елемент списку на сторінці з туристичними місцями.
Відкриється стрінка с детальним описом туристичного місця.
Натиснути на іконку із зображенням блакитного олівця.
Відкриється сторінка для редагування туристичного місця і заповниться даними із сторінки детального опису місця.
Змінити назву туристичного місця на іншу та натиснути на кнопку «Editplace»
Відкриється сторінка з туристичними місцями. Назва елементу, що був вибраний повинна бути змінена.
3
Неможливість створення місця без назви
Натиснути на кнопку «+» на верхній панелі меню на сторінці з туристичними місцями.
Відкриється сторінка з полями для вводу, кнопками вибору картинки, місцеположення та підтвердження про додавання.
Заповнити дані про об'єкт крім назви.
Кнопка «Add place» повинна бути заблокована.
Тестування сценаріїв є найбільш необхідним видом тестування. Призначення програми полягає в виконанні тих чи інших наведених операцій. В даному випадку перевіряється правильність переходу програми між внутрішніми станами при виконанні певних операцій (тобто за певних вхідних даних). При тестуванні додатку всі сценарії були успішно пройдені.
ВИСНОВКИ
Під час написання атестаційної роботи бакалавра було спроектовано та реалізовано мобільний додаток для управління нотатками туристів на мовах програмування Java, Kotlin у зв'язку с сервісом Firebase та NoSQL базою даних. У ході розробки дотримувалися всі правила написання «чистого коду», а також всі рекомендації до проектування архітектури системи.
Було оглянуто загальні принципи роботи сервісів для туристів, а також існуюче програмне забезпечення для створення, редагування нотаток, проаналізовані функціональні можливості та недоліки кожного з них.
Особливостями додатку являються створення та редагування нотаткок для туристичних місць з можливістю просмотру на карті, швидка та надійна синхронізація даних в режимі реального часу, зручний інтерфейс користувача, що відкидає необхідність у додатковому навчанні користування системою. Також перевагою є те, що сервіс працює за технологією REST API, що дозволяє легко змінювати програмні засоби та рішення.
В подальшому розвиток системи можливий у декількох напрямках: додавання нового функціоналу аналізом створених нотаток згідно місцезнаходження; поглиблена соціалізація - спілкування з користувачами, що відвідали однакові туристичні місця; використання нейронних мереж для валідації місць, що були додані; створення рейтингу з найбільшою кількістю відвіданих об'єктів; створення веб-клієнту, а також можливість інтеграції з іншими сервісами.
ПЕРЕЛІК ПОСИЛАНЬ
1. Гэлбрейт Д. Новое индустриальное общество. [Текст] - Пер. с англ./ Гэлбрейт Д.: АСТ, 2004. - 608с.
2. Мобільний додаток Evernote [Електронний ресурс]: ? портал https://play.google.com/store/apps Ошибка! Недопустимый объект гиперссылки.? Режим доступу: https://play.google.com/store/apps/details?id=com.evernote- 10.05.2016 г. - Загл. с экрана.
3. Мобільний додаток WorldTourism [Електронний ресурс]: ? портал https://play.google.com/store/apps ? Режим доступу: https://play.google.com/store/apps/details?id=com.tour.ash- 10.05.2016 г. - Загл. с экрана.
4. Фаулер М. UML Основы. [Текст] - Пер. с англ./ Фаулер М., Скотт К.: Символ-Плюс, 2002. - 192с.
5. Діаграма послідовності - Вікіпедія [Електронний ресурс]: ? портал wikipedia.org ? Режим доступу: https://uk.wikipedia.org/wiki/Діаграма_послідовності/ - 10.05.2016 г. - Загл. с экрана.
6. Friesen J. Learn Java for Android Development (2nd edition) [Text]/ Friesen J. - Apress,2013. - 780p.
7. Wei-Megl Lee. Beginning Android 4 application development [Text] / Wei-Megl Lee. - John Wiley & Sons Inc., 2012. - 533 p.
8. Hodson.R. Android Programming Succinctly [Text] / Hodson R. -Syncfusion Inc., 2014 - 113p.
9. Мова програмування Kotlin [Електронний ресурс]: ? портал https://kotlinlang.org? Режим доступу: https://kotlinlang.org/docs/reference/ - 10.05.2016 г. - Загл. с экрана.
10. Сервіс Firebase [Електронний ресурс]: ? портал https://www.firebase.com/Ошибка! Недопустимый объект гиперссылки.? Режим доступу: https://www.firebase.com/docs/android/ - 10.05.2016 г. - Загл. с экрана.
11. Хашими С. Разработка приложений для Android [Текст] / Хашими С., Коматинени С., Маклин Д. - СПб.:Питер, 2011. - 736 с.
12. Коматинени C. Android 4 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов [Текст] / Коматинени С., Маклин Д. - ИД «Вильямс», 2012. - 880 с.
13. Android API Guides [Електронний ресурс]: ? портал https://developer.android.com/guide ? Режим доступу: https://developer.android.com/guide/index.html?hl=fa - 10.05.2016 г. - Загл. с экрана.
14. Фримен Э. Паттерны проектирования [Текст] - Пер. с англ. / Фримен Э., Сьерра К., Бейтс Б. - СПб.: Питер, 2011. - 656 с.
15. ФаулерМ. Архитектура корпоративных программных приложений [Текст]/ Фаулер М., Райс Д.: Вильямс, 2007 - 544 с.
16. Мартин Р. Чистый код: создание, анализ и рефакторинг. Библиотека программиста [Текст]/ Мартин Р. - Спб.: Питер, 2010. - 464с.
17. Knott D. Hands-On Mobile App Testing: A Guide for Mobile Testers and Anyone Involved in the Mobile App Business [Text] / Knott D. - Addison-Wesley: 2015 - 211 p.
18. Beizer B. Black-Box Testing: Techniques for Functional Testing of Software and Systems [Text] /Beizer B. - John Wiley & Sons, Inc: 1995 - 279 p.
19. Канер К. Тестування програмного забезпечення. Фундаментальні концепції менеджменту бізнес-додатків [Текст] / Канер К., Фолк Дж., НгуєнЕ. К. - К.: ДіаСофт - 2001. - 544 с.
20. Fournier G. Essential Software Testing: A Use-Case Approach [Text] / Fournier G. -Taylor & Francis Group: 2009 - 251 p.
Додаток А
Фрагмент текста програми
AddPlaceLocationActivity (Java code):
public class AddPlaceLocationActivity extends BaseActivity implements OnMapReadyCallback, View.OnClickListener {
private static final int MAX_RESULTS = 1;
private static final String PLACE = "PLACE";
private static final String LATITUDE = "latitude";
private static final String LONGITUDE = "longitude";
private static final String COUNTRY_TITLE = "countryTitle";
private static final String TITLE_DIVIDER = " : ";
private GoogleMap mMap;
private SupportMapFragment mapFragment;
private Button addButton;
private double latitude;
private double longitude;
private Place place;
@SuppressWarnings("UnnecessaryLocalVariable")
public static Intent getLaunchIntent(Context context) {
return new Intent(context, AddPlaceLocationActivity.class);
}
@SuppressWarnings("UnnecessaryLocalVariable")
public static Intent getLaunchIntent(Context context, Place place) {
Intent intent = new Intent(context, AddPlaceLocationActivity.class);
intent.putExtra(PLACE, place);
return intent;
}
@Override
protected int getContentView() {
return R.layout.activity_add_place_location;
}
@Override
void attachActivityViews() {
super.attachActivityViews();
addButton = (Button) findViewById(R.id.addButton_AddPlaceLocationActivity);
mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
}
@Override
void initActivityViews() {
super.initActivityViews();
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
place = bundle.getParcelable(PLACE);
}
addButton.setOnClickListener(this);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
if (place != null) {
LatLng latLng = new LatLng(place.getLatitude(), place.getLongitude());
MarkerOptions markerOptions = getMarkerOptions(latLng);
markerOptions.icon(getIconMarker(place));
addMarkerToMap(latLng, markerOptions);
}
googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
MarkerOptions markerOptions = getMarkerOptions(latLng);
if (place != null) {
markerOptions.icon(getIconMarker(place));
}
addMarkerToMap(latLng, markerOptions);
}
});
}
private MarkerOptions getMarkerOptions(LatLng latLng) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(latLng);
latitude = latLng.latitude;
longitude = latLng.longitude;
markerOptions.title(latitude + TITLE_DIVIDER + longitude);
return markerOptions;
}
private BitmapDescriptor getIconMarker(Place place) {
BitmapDescriptor bitmapDescriptor = null;
if (place.isHere()) {
bitmapDescriptor = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN);
} else {
bitmapDescriptor = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED);
}
return bitmapDescriptor;
}
private void addMarkerToMap(LatLng latLng, MarkerOptions markerOptions) {
mMap.clear();
mMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
mMap.addMarker(markerOptions);
}
private String getAddress(double lat, double lng) {
String country = null;
Geocoder geocoder = new Geocoder(this, Locale.ENGLISH);
try {
List<Address> addresses = geocoder.getFromLocation(lat, lng, MAX_RESULTS);
Address address = addresses.get(0);
country = address.getCountryName();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
return country;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.addButton_AddPlaceLocationActivity:
Intent intent = new Intent();
intent.putExtra(LATITUDE, latitude);
intent.putExtra(LONGITUDE, longitude);
intent.putExtra(COUNTRY_TITLE, getAddress(latitude, longitude));
setResult(RESULT_OK, intent);
finish();
break;
}
}
}
PlacesActivity (Kotlin code):
override fun onChildAdded(dataSnapshot: DataSnapshot, s: String) {
try {
places.addAll(getAllPlaces(dataSnapshot))
placesAdapter!!.setPlaces(places)
} catch (exception: FirebaseException) {
Toast.makeText(this, FIREBASE_ERROR, Toast.LENGTH_SHORT).show()
}
}
@Throws(FirebaseException::class)
private fun getAllPlaces(dataSnapshot: DataSnapshot): List<Place> {
val places = ArrayList<Place>()
stringCountriesMap.put(dataSnapshot.child(TITLE).value as String, dataSnapshot.key)
for (placesDataSnapshot in dataSnapshot.child(PLACES).children) {
val place = placesDataSnapshot.getValue(Place::class.java)
places.add(place)
stringPlacesMap.put(place.title, placesDataSnapshot.key)
}
return places
}
Додаток Б
Слайди презентації
Размещено на Allbest.ru
Подобные документы
Характеристика категорій користувачів баз даних. Проектування інформаційної системи: концептуальне (інфологічне), даталогічне та фізичне. Опис бази даних "Каталог мобільних телефонів": принципи створення таблиць, запитів та форм. Інструкція користувача.
курсовая работа [63,2 K], добавлен 14.12.2010Теоретичні відомості про пакет ІЗВП Borland Delphi та СУБД MS Access, оцінка їх функціональних особливостей. Опис структури бази даних. Проектування інтерфейсу програми, опис її логічної структури та функцій. Контроль коректності вхідних, вихідних даних.
курсовая работа [4,5 M], добавлен 03.01.2014Аналіз предметної галузі, постановка задачі, проектування бази даних. UML-моделювання, побудова ER-діаграми, схеми реляційної бази даних у третій нормальній формі. Призначення і логічна структура. Опис фізичної моделі бази даних, програмної реалізації.
курсовая работа [3,5 M], добавлен 28.11.2011Android, iOS та Windows як основні платформи для розробки додатків для мобільних пристроїв. Перелік вимог до програмної системи. Основні вимоги, які є критичними для працездатності мобільного додатку. Аналіз основних напрямків розвитку системи.
курсовая работа [1,1 M], добавлен 19.08.2016Основи проектування мобільного додатку для операційної системи Android з використанням хмарної бази даних Cloud Firestore. Аналіз основних труднощів, які виникають під час розробки додатків. Визначення основних переваг та недоліків хмарних баз даних.
статья [195,3 K], добавлен 07.02.2018Виявлення основних сутностей предметної області. Побудова схеми реляційної бази даних. Вбудовані процедури і тригери. Опис архітектури програмної системи і концептуальної моделі бази даних, програмної реалізації та інтерфейсу користувача додатку.
курсовая работа [4,3 M], добавлен 05.12.2012Коротка характеристика об’єктів управління "Nix Solutions". Розроблення варіантів використання, специфікація функціональних та не функціональних вимог. Проектування структури бази даних, елементи. Тестування додатку та розгортання програмного продукту.
дипломная работа [1,5 M], добавлен 01.07.2015Опис основних етапів розробки архітектури програмної системи: структурування системи, моделювання управління, декомпозиція підсистем. Ознайомлення із кроками створення інтерфейсу користувачів як однієї із фаз проектування програмного забезпечення.
реферат [20,7 K], добавлен 24.11.2010Поняття та переваги реляційної бази, автоматизація аналізу даних. Опис основних компонентів сховища даних AS/400. Процес перетворення оперативних даних в інформаційні. Багатовимірні бази даних (MDD). Опис даних і створення файлів в інтеграційних базах.
реферат [36,8 K], добавлен 14.01.2012Створення інформаційної системи для спортивного магазину харчування. Обґрунтування вибору мови програмування. Текстуальний опис алгоритму. Проектування бази даних. Комп'ютеризація торгівельних закладів, отримання необхідних даних в автоматичному режимі.
дипломная работа [1,3 M], добавлен 12.05.2015