Введение
Основные понятия предметной области 8
1 Анализ существующих решений 9
1.1 Обзор приложений для удаленной передачи файлов 9
1.1.1 PushBullet 9
1.1.2 Airdroid 10
1.1.3 SHAREit 12
1.1.4 Resilio Sync 13
2 Планирование 14
2.1 Сценарии использования 14
2.2 Требование к операционной системе 19
2.3 Требования к среде эксплуатации 19
2.4 Обоснование выбора платформ 19
2.5 Обоснование выбора ОС Windows, Linux, OS X 20
2.6 Обоснование выбора платформы Android 20
2.7 Обоснование выбора сред разработки 21
2.8 Обоснование выбора СУБД 22
3 Проектирование системы 23
3.1 Проектирование архитектуры приложения 23
3.2 Проектирование платформонезависимой библиотеки ...24
3.3 Архитектура под Android, Windows, Linux, OS X 25
4 Реализация 26
4.1 Реализация платформонезависимой библиотеки 26
4.1.1 Внутренняя архитектура библиотеки 30
4.2 Реализация серверной части 39
4.3 Реализация клиентской части приложения для ПК 42
4.3 Реализация клиентской части приложения для ПК 43
5 Функциональное тестирование 48
5.1 Тест 1 - Регистрация и авторизация пользователя 48
5.2 Тест 2 - Подключение к устройству 49
5.3 Тест 3 - Навигация по файловой системе устройства....50
5.4 Тест 4 - Просмотр списка друзей и добавление новых
друзей 51
5.5 Тест 5 - Отправка и прием файлов 52
5.6 Тест 6 - Манипуляция с файлами и папками 54
5.7 Тест 7 - Работоспособность программного продукта на
разных операционных системах 54
6 Руководство пользователя 58
6.1 Назначение разработки 58
6.2 Подготовка к работе 58
Заключение 59
Библиографический список 60
Стремительное развитие вычислительной и телекоммуникационной техники привело к тому, что большинство людей обладает двумя и более устройствами. По данным исследования Яндекс[1] 84% пользователей интернета в течение месяца используют для выхода в сеть больше одного устройства - например, рабочий и домашний компьютеры или компьютер и мобильное устройство. Операционные системы у этих устройств, как правило, разные. Поэтому возникает проблема совместимости программного обеспечения. Кроссплатформенность решает эту проблему. Ведь в рамках одного программного продукта пользователю не придется устанавливать дополнительное программное обеспечение, чтобы передать данные на другие операционные системы. По данным аналитического сервиса StatCounter за 2017 год [2] самой популярной системой стал Android, с небольшим отрывом второе место занимает Windows, а последние места делят ОС семейства Linux и OS X. И именно на эти платформы делается упор в разработке кроссплатформенного приложения.
В настоящее время существует множество различных программ для передачи файлов. Однако ни одна из них не предоставляет того набора функций, которые бы заметно увеличили возможности пользователя при работе с файлами, а также избавили от установки дополнительных программных продуктов. Поэтому возникает потребность в написании программного обеспечения, которое бы решило существующие проблемы и повысило удобство и эффективность в области удаленной передачи файлов.
Актуальность и необходимость создания такой программы, которая бы значительно облегчила дистанционную работу с файлами и их отправку, как при домашнем использовании, так и на предприятии, повысив качество работы, а также снизив труд человека, обусловлена следующими аспектами:
1. возможностью передачи файлов, как через интернет, так и через локальную сеть для снижения расходов, например, в мобильной сети интернет.
2. наличием двухпанельного файлового менеджера для работы с файлами на удаленном устройстве
3. полным доступом к файловой системе ваших устройств, а также возможностью настроить и предоставить общий доступ к файлам и папкам для устройств друзей.
4. кроссплатформенность - приложение может быть запущено на всех популярных ОС: Windows, Linux, macOS, Android.
Цели и задачи
Цель работы - разработка кроссплатформенного сетевого файлового менеджера, позволяющего осуществить удаленную передачу файлов и папок, настроить общий доступ, а также получить полный доступ к файловой системе на своих устройствах.
Для осуществления поставленной цели необходимо реализовать следующие задачи:
а) исследовать существующие программные продукты для передачи файлов;
б) изучить проблемы удаленной передачи файлов и выделить функциональные возможности приложения;
в) исследовать область разработки десктопных и мобильных приложений;
г) выделить ядро программы и реализовать его в виде кроссплатформенной библиотеки;
д) спроектировать серверную часть: сервер, базу данных и настроить шифрование.
е) написать front-end для персональных компьютеров и мобильных устройств
ж) создать простой и удобный инсталлятор, который включает в себя все
необходимые файлы (библиотеки, расширения)
з) протестировать разработанный программный продукт
В данном проекте был разработан продукт, предназначенный для удаленной работы с файлами и папками, и их передаче на другое устройство. Простой интерфейс программы не вызовет трудности для начинающего пользователя. Набор функций позволяет использовать приложение на предприятии для обмена документами между рабочими в офисе и на выезде, есть возможность получить доступ к необходимым файлам, которые находятся в общей папке.
В ходе выполнения работы решены следующие задачи:
1) проведен анализ существующего программного обеспечения для удаленной работы с файлами и папками;
2) спроектирована структура приложения;
3) реализован кроссплатформенный программный продукт для удаленной передачи файлов и папок;
4) проведено тестирование программного продукта;
Результат работы - программный продукт, который позволяет загружать, выгружать, делиться и работать с файлами и папками на удаленном устройстве.