Тип работы:
Предмет:
Язык работы:


Реализация мультиплатформенного доступа к файловым хранилищам на языке Kotlin

Работа №142503

Тип работы

Бакалаврская работа

Предмет

прикладная информатика

Объем работы51
Год сдачи2022
Стоимость4700 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
43
Не подходит работа?

Узнай цену на написание


Введение 4
Постановка задачи 5
1. Обзор 6
1.1. Предметная область 6
1.2. Существующие решения 6
1.2.1 Решения, предоставляющие интерфейс виртуальных фай­ловых систем 7
1.2.2 Key-value решения 9
1.2.3 Решения для мультиплатформенного ввода-вывода (IO) 11
1.2.4 Вывод 12
2. Презентация решения 13
2.1. Архитектура библиотеки 13
2.1.1 Обзор функциональности и особенностей файловых хра­нилищ 14
2.1.2 Базовые интерфейсы виртуальной файловой системы . 16
2.1.3 Расширения 19
2.1.4 Инварианты и гарантии 21
2.1.5 Преимущества и недостатки выбранного подхода . ... 22
2.2. Файловые хранилища, поддержанные библиотекой 23
2.2.1 SystemFS 23
2.2.2 GoogleDriveFS 24
2.2.3 SqliteFS 26
2.3. Используемые зависимости 27
2.3.1 Ktor 27
2.3.2 Зависимости на платформе Android 27
3. Детали реализации 28
3.1. Структура проекта 28
3.2. GoogleDriveFS 28
3.2.1 GoogleDriveAPI 28
3.2.2 GoogleAuthorizationRequester и его реализации . . . 30
3.3. SqliteFS 32
3.4. Тестирование 34
3.5. Прочее 34
4. Примеры использования библиотеки 35
4.1. Сборка проекта 35
4.2. Multieditor 35
4.2.1 Подключение библиотеки 35
4.2.2 Реализация бизнес-логики в общем модуле приложения 35
4.2.3 Определение списка доступных хранилищ на каждой из
целевых платформ 37
4.2.4 Реализация клиентских приложений на разных плат­формах 40
4.3. gdrive-cli 44
4.3.1 Написание логики приложения с учетом нескольких ти­повых ограничений на функциональность VFS 44
Заключение 46
Ссылки 47

Современный рынок разработки ИТ-продуктов чрезвычайно конкурен­тен. От скорости создания минимального жизнеспособного продукта (MVP) может зависеть положение на этом рынке и пользовательский охват. В по­следнее время популярность набирают языки и инструменты, позволяющие создавать приложения из единой кодовой базы под множество целевых плат­форм: начиная от настольных компьютеров под управлением операционных систем Windows, Linux и Mac OS X, и заканчивая умными часами (watchOS) или умными телевизорами (tvOS). Такими, например, являются фреймворк Flutter, который написан на языке Dart, а также Kotlin Multiplatform, который является инструментом языка Kotlin. Оба этих инструмента относительно новые — первые публичные версии стали доступны в 2017 году, — и поэтому имеют недостаток в виде отсутствия большого набора готовых библиотек для разных нужд. Одним из недостатков подобных инструментов является также ограниченность доступной из общего кода функциональности, поскольку вся такая функциональность должна иметь реализацию на всех целевых платфор­мах.
Примером такой функциональности является работа с файлами и фай­ловыми системами. В частности, для Kotlin Multiplatform нет стандартного способа работы с файловыми хранилищами из общего кода, а значительным недостатком многих существующих решений является отсутствие поддерж­ки браузерной платформы. Запрос от сообщества разработчиков на подобные решения подтверждается вопросами по этой теме на популярных интернет- площадках[1, 2, 3, 4, 5]. В данной работе изучается изложенная проблема и представляется решение в виде мультиплатформенной Kotlin-библиотеки, предоставляющее доступ к файловым хранилищам и поддерживающее в том числе браузерную платформу.
Структура работы. В разделе 1 осуществлен разбор предметной области и альтернативных решений данной проблемы. В разделе 2 представлена ре­ализованная мультиплатформенная библиотека. В разделе 3 рассказывается о технических деталях её реализации. В разделе 4 представлены примеры приложений, созданных на базе данной библиотеки.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


Проведено исследование существующих решений и выявлены их до­стоинства и недостатки.
Основным результатом данной работы является реализованная мульти- платформенная Kotlin-библиотека multifs, позволяющая описывать логику работы с виртуальной файловой системой в общем коде. Данная библиоте­ка предоставляет поддержку трех файловых хранилищ, среди которых одно облачное, доступное на платформах JVM, Android и JS (browser). Наличие поддержки браузерной платформы является существенным преимуществом разработанного решения.
На базе созданной библиотеки реализовано два приложения, одно из которых мультиплатформенное с клиентами на трёх перечисленных плат­формах и поддерживающее все три файловых хранилища. Данное приложе­ние демонстрирует возможности и процесс использования multifs с точки зрения разработчика.


[1] File IO with Kotlin multiplatform - Stack Overflow. URL: https : //st ackoverflow.com/q/68191209. (дата обращения 04.05.2022).
[2] Read/Writefile in kotlin native - IOS side - Stack Overflow. URL: https: //stackoverflow.com/q/61078285. (дата обращения 04.05.2022).
[3] Multiplatform File I/O - r/Kotlin (reddit). URL: https : //www. redd it. com/r/Kotlin/comments/g0hjsw/multiplatform_file_io/. (дата обращения 04.05.2022).
[4] Kotlin/native: library for file io? - r/Kotlin (reddit). URL: https : //ww w.reddit.com/r/Kotlin/comments/s3wzmt/kotlinnative_libr ary_for_file_io/. (дата обращения 04.05.2022).
[5] Looking for a library or an alternative for basic multiplatform File I/O - Kotlin Discussions. URL: https://discuss.kotlinlang.org/Vl ooking-for-a-library-or-an-alternative-for-basic-multip latform-file-i-o/21472. (дата обращения 04.05.2022).
[6] Kotlin Multiplatform. URL: https : //kotlinlang. org/docs/multi platform.html. (дата обращения 13.05.2022).
[7] Kotlin for JavaScript. URL: https : //kotlinlang. org/docs/js-ov erview.html. (дата обращения 13.05.2022).
[8] Differences between Node.js and the Browser. URL: https : //nodej s. dev/learn/differences-between-nodejs-and-the-browser. (дата обращения 13.05.2022).
[9] Virtual file system. URL: https : //en. wikipedia. org/wiki/Virtu al_file_system. (дата обращения 11.05.2022).
[10] StackOverflow. URL: https : //stackoverflow. com. (дата обраще­ния 04.05.2022).
[11] GitHub. URL: https://github.com. (дата обращения 04.05.2022).
[12] Kotlin Multiplatform Libraries. URL: https://github.com/AAkira/ Kotlin-Multiplatform-Libraries. (дата обращения 04.05.2022).
[13] kile. URL: https : //github . com/realad/kile. (дата обращения 04.05.2022).
[14] File Transfer Protocol - Wikipedia. URL: https://en.wikipedia. or g/wiki/File_Transfer_Protocol. (дата обращения 04.05.2022).
[15] aSoft-Ltd/files. URL: https : / /github . com/aSoft - Ltd/files. (дата обращения 04.05.2022)....57


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ