Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Висновки. На основі аналізу предметної області в даному розділі дипломної роботи була розроблена функціональна схема додатку
На основі аналізу предметної області в даному розділі дипломної роботи була розроблена функціональна схема додатку, що використовує хмарні сховища даних. Представлена модель організації діяльності залізничних кас. Зроблено обґрунтування про доцільність автоматизувати систему саме засобами розробки платформи iOS в середовищі xCode мовою Objective-C.
Розділ 3 Програмна реалізація
3.1. Структура і функціональне призначення модулів системи Модуль - функціонально закінчений фрагмент програми, оформлений у вигляді окремого файлу з вихідним кодом або пойменованої безперервної її частини (наприклад, Активний Оберон), призначений для використання в інших програмах. Модулі дозволяють розбивати складні завдання на більш дрібні відповідно до принципу модульності. Зазвичай проектуються таким чином, щоб надавати програмістам зручну для багаторазового використання функціональність (інтерфейс) у вигляді набору функцій, класів, констант. Модулі можуть об'єднуватися в пакети і, далі, в бібліотеки. Зручність використання модульної архітектури полягає в можливості поновлення (заміни) модуля, без необхідності зміни іншої системи. У більшості випадків різні модулі можуть запускатися як на одному сервері, так і на різних, для розподілу навантаження і створення розподіленої архітектури. Під час розробки було створено декілька модулів для кращої роботи мобільного додатку: - модуль запитів; - модуль web-браузеру; - основний модуль.
Модуль запитів – набір класів, які виконують запити до API хмарних сховищ даних. Рис. 3.1 Список класів модуля запитів Модуль web-браузеру – клас який відповідає за можливість авторизації користувача хмарного сховища, та налаштування web-браузеру додатку. Рис. 3.2 Модуль web-браузеру Основний модуль - використовує патерн проектування MVC, що містить у собі: - три моделі (папки, файли, поле); - два контролери (головний контролер, контролер таблиці) - два уявлення (головний екран, поле).
Рис. 3.3 Основний модуль Усі модулі взаємодіють між собою через основний модуль Рис. 3.4 Зв’язок модулів системи
3.2. Розробка програмних модулів Об’єктно-орієнтоване програмування (ООП) — одна з парадигм програмування, яка розглядає програму як множину «об'єктів», що взаємодіють між собою. Основу ООП складають три основні концепції: інкапсуляція, успадкування та поліморфізм. Одною з переваг ООП є краща модульність програмного забезпечення (тисячу функцій процедурної мови, в ООП можна замінити кількома десятками класів із своїми методами). Попри те, що ця парадигма з'явилась в 1960-тих роках, вона не мала широкого застосування до 1990-тих, коли розвиток комп'ютерів та комп'ютерних мереж дозволив писати надзвичайно об'ємне і складне програмне забезпечення, що змусило переглянути підходи до написання програм. Сьогодні багато мов програмування або підтримують ООП (Lua) або ж є цілком об'єктно-орієнтованими (зокрема, Java, C#, C++, Python, PHP, Ruby та Objective-C, ActionScript 3, Swift, Vala). Клас поряд з поняттям «Об'єкт», є важливим поняттям об'єктно-орієнтованого підходу в програмуванні (хоча існують і беcклассовие об'єктно-орієнтовані мови, наприклад, JavaScript). Під класом розуміється якась сутність, яка задає деякий загальна поведінка для об'єктів. Таким чином, будь-який об'єкт може належати або належати певного класу, тобто володіти або з мати поведінкою, яка даний клас увазі. Клас визначає для об'єкта контракт, тобто правила, за допомогою яких з об'єктом можуть працювати інші об'єкти (зазвичай це робиться за допомогою визначення методів класу). Крім того класи можуть перебувати один з одним в різних відносинах, таких як Спадкування або Агрегація. Для створення додатку мною було створено дванадцять класів, які виконують ролі: - три моделі; - два контролери; - шість класів які виконують запити. Рис. 3.5 Діаграма класів RDFolderModel -клас, який відіграє роль моделі для створення об’єкту папок, що знаходяться на сервері. Атрибути: · ‘title’ – заголовок; · ‘uuid’ – унікальний ідентифікатор; · ‘parent’ – ідентифікатор батьківської папки. Операції: · ‘jsonConvert’ – приватний метод, який перетворює вхідні дані у потрібний формат; · ‘initWithJson’ – ініціалізація об’єкту через вхідні дані. RDItemModel - клас, який відіграє роль моделі для створення об’єкту файла, що знаходяться у папці на сервері. Атрибути: · ‘uuid’ – унікальний ідентифікатор; · ‘title’ – заголовок файлу; · ‘size’ – розмір файлу; · ‘parentId’ – ідентифікатор батьківської папки; · ‘icon’ – іконка файлу; · ‘isFolder’ – тип - папка; · ‘downloadUrl’ – url для завантаження. Операції: · ‘jsonConvert’ – приватний метод, який перетворює вхідні дані у потрібний формат; · ‘initWithJson’ – ініціалізація об’єкту через вхідні дані. RDDeleteRequst – клас, який відповідає за відправку запиту до серверу с командою на видалення файлу. Операції: - ‘deleteItems’ – публічний метод видалення файлу. RDGetItemSender - клас, який відповідає за відправку запиту до серверу с командою на отримання інформації о файлі. Операції: - ‘getItemWithCompletionHandler’ – публічний метод класу на отримання інформації о файлі. RDgetAccessToken – клас, отримання коду доступу до API. Протокол: - ‘refresh’ – протокол оновлення даних. Операції: - ‘getAccessToken’ – метод отримання коду доступу. RDInsertRequest - клас, який відповідає за відправку запиту до серверу с командою на відправку файлу. Операції: - ‘uploadFileForImage’ – метод відправки зображення з телефону. RDSaveRequest - клас, який відповідає за відправку запиту до серверу с командою на збереження файлу. Операції: - ‘saveItems’ – метод збереження файлу. RDRootFolder - клас, який відповідає за відправку запиту до серверу с командою на отримання списку файлу. Атрибути: - ‘folderObjectsArray’ – масив папок; - ‘itemsObjectsArray’ – масив файлів. Операції: - ‘getChaildsWithCompletionHandler’ – метод класу, що виконує запит на список файлів. RDTableViewCell – модель поля таблиці. Атрибути: - ‘icon’– зображення файлу; - ‘title’ – зоголовок файлу; - ‘size’ – розмір файлу. RDTableViewController - клас, контролер, який відповідає за роботу таблиці файлів сховища. Атрибути: - ‘tableView' – підключення компоненту таблиці; - ‘folders’ – масив папок; - ‘items’ – масив файлів. Операції: - ‘setup’ – метод запуску таблиці; - ‘reloadWithFolder’ – перезавантаження таблиці через папку. RDWebView – клас, що надає змогу роботи компонента WebView. Атрибути: - ‘webView’ – підключення компоненту webView; - ‘getAccessToken’ – підключення класу RDgetAccessToken; - ‘authCode’ – код авторизації; - ‘previousTime’ – час виклику web-браузеру. Операції: · ‘authCodeWithId’ – метод авторизації в хмарному сховищі. MainViewController – клас, відіграє роль головного контролеру. Атрибути: - ‘editButton' – підключення кнопки редагування; - ‘webViewController’ – підключення класу web-браузера; - ‘tableViewController’ – підключення контролеру таблиці; - ‘prethentView’ – підключення стартового вікнв; - ‘googleButton’ – підключення кнопки google; - ‘startViewButton’ – кнопка повернення до головного екрану; - ‘refreshButton’ – кнопка оновлення списку файлів таблицці; - ‘logOut’ – кнопка виходу з акаунту; - ‘dropBoxButton’ – кнопка DropBox; - ‘folder’ – масив папок; - ‘deleteRequest’ – підключення класу видалення; - ‘selectedItemsId’ – ідентифікатор обраного файлу; - ‘selectedItemsTitle’ – заголовок обраного файлу; - ‘selectedItemsDownload’ – адреса завантаження; - ‘saveRequst’ – підключення класу, що дозволяе завантажети файл в телефон; - ‘insertRequest’ – підключення класу, що дозволяе завантажети файл в хмарне сховище; - ‘step’ – крок каталогу. Операції: - ‘googleAction’ – метод запуску даних Google диску; - ‘back’ – метод повернення до попередньої папки; - ‘dropBoxAction’ – метод запуску даних DropBox; - ‘editButton’ – метод, який викликає меню редагування; - ‘toStartView’ – метод повернення до головного екрану; - ‘refreshAction’ – метод оновлення списку файлів; - ‘logOut’– метод виходу з хмарних сховищ. 3.3. Вимоги до технічних засобів Додаток розроблений для смартфонів компанії Apple – iPhone. Смартфон повинен мати операційну систему iOS 8.0 та вище, а також підключення до інтернету зі швидкістю не менше 10 МБ/с.
Розділ 4 ВПРОВАДЖЕННЯ ТА ЕКСПЛУАТАЦІЯ
4.1. Інструкція користувача системи Щоб встановити будь-який додаток з магазину App Store, навіть безкоштовне, необхідно насамперед зареєструватися в App Store (зареєструвати аккаунт). Після цього ви зможете встановити будь-які додатки для вашого пристрою з офіційного магазину Apple. Як це можна зробити, є два варіанти:
|