iOS Swift Developer + Web(GCDWebServer) (offline)

Шукаємо розробника на невеликий разовий проєкт, але з можливістю підтримки у майбутньому. 

Потрібно реалізувати аналог GCDWebServer. Дозволяє передавати файли по Wi-Fi на iPhone.

 

Оригінал - https://github.com/swisspol/GCDWebServer 

Наразі використовуємо цей форк https://github.com/ufogxl/GCDWebServer 

 

Загальний опис роботи фреймворка:

 

  • У застосунку iOS запускається локальний сервер, який працює лише в межах локальної Wi-Fi.
  • Сервер надає(наприклад 192.168.1.208) веб-інтерфейс для перегляду та керування файлами, а також передачі файлів з комп'ютера (через браузер) на телефон.
  • Користувач обирає або перетягує файли/папки з комп'ютера у веб-інтерфейсі браузера, після чого файли завантажуються через Wi-Fi у застосунок та зберігаються на телефоні.

 

Нам потрібен новий фреймворк, написаний з нуля(використовувати сучасні технології по можливості), який має ті ж самі функції що і GCDWebServer(основне що нас цікавить, це передача файлів), але з додатковою функціональністю та нашим дизайном UI для веб.

 

Короотка інформація по завданню:

 

  • Мінімальна версія проєкту: iOS 16
  • Використовуються тільки Swift та під SwiftUI
  • Підтримка передачі папок з файлами з збереженням їх файлової структури (чого зараз не вміє GCGWebServer)
  • Передача великих файлів 100-500Мб+
  • Опціонально (на майбутнє): підтримка QR-коду та/або вводу паролю для аутентифікації

 

Для веб-сервера теоретично підійде https://github.com/envoy/Embassy, простий і компактний. Проте можна також використовувати, наприклад Vapor, розглядаючи зв’язку Vapor + Leaf. 
Або обрати інший сервер, який краще підійде під цю задачу. 

Також варто подивитися, як це працює в іншому застосунку: Documents https://apps.apple.com/us/app/documents-file-manager-docs/id364901807 (створення підключення до комп’ютера).

 

Загалом, більшість роботи по цій задачі - це робота з веб, але звісно, основну частину потрібно буде реалізувати на Swift, тому потрібна людина яка має досвід iOS Swift + basic web/html/javascript.

 

Як результат, це має бути SPM Package на Swift, та демка його роботи у мінімальному iOS проєкті.