개발노트

파일키위 개발에 관련된 이것 저것

개발목표

웹에서 파일전송을 완벽하게 구현하기. (아래 기능을 모두 제공하 서비스는 파일키위가 전세계에서 유일함)

  • 파일 용량무제한 ( 모바일에서는 기기한계로 대용량 권장하지 않음 )

  • 이어받기/ 이어올리기 ( 중간에 실패한경우)

  • end-to-end 암호화 지원

  • p2p (webrtc ) 가속

  • API 제공

  • 개발하는 동업자 구하기 ( 관심있으면 연락주세요)

히스토리

  • 2016년 ? - fipe 안드로이드앱 출시

  • 2019년 여름- fipe 앱 소스 날려먹음

  • 2019년 12월- 파일키위 서비스 시작

  • 2020년 - 파일키위 안드로이드앱 출시

도움 받은 오픈소스

사용한 오픈소스목록 (WEB)

//from package.json
"dependencies": {
"@cycjimmy/jsmpeg-player": "^5.0.1",
"@mattiasbuelens/web-streams-polyfill": "^0.3.2",
"@supabase/supabase-js": "^1.11.6",
"@tailwindcss/forms": "^0.2.1",
"@types/firebase": "^3.2.1",
"@types/simple-peer": "^9.6.2",
"@uppy/companion-client": "^1.9.0",
"@uppy/core": "^1.17.0",
"@uppy/dashboard": "^1.18.0",
"bitfield": "^4.0.0",
"bro-fs": "^0.6.0",
"broadcast-channel": "^3.4.1",
"buffer": "^6.0.3",
"core-js": "^3.10.1",
"csso-webpack-plugin": "^2.0.0-beta.1",
"dexie": "^3.0.3",
"ejs-loader": "^0.5.0",
"fast-text-encoding": "^1.0.3",
"favicon.js": "^1.0.0",
"favicons": "^6.2.1",
"favicons-webpack-plugin": "^5.0.2",
"fg-loadcss": "^3.1.0",
"file-loader": "^6.2.0",
"handlebars": "^4.7.7",
"handlebars-loader": "^1.7.1",
"html-loader": "^2.1.2",
"html-minifier-terser": "^5.1.1",
"iframe-lightbox": "^0.2.9",
"into-stream": "^7.0.0",
"is-ascii": "^1.0.0",
"license-webpack-plugin": "^2.3.15",
"load-js": "^3.0.3",
"loading-attribute-polyfill": "^1.5.4",
"mediasource": "^2.4.0",
"mp4box": "^0.4.1",
"multistream": "^4.1.0",
"nanoid": "^3.1.22",
"npm-check-updates": "^11.5.11",
"null-loader": "^4.0.1",
"optimize-css-assets-webpack-plugin": "^5.0.4",
"p-queue": "^7.1.0",
"path-browserify": "^1.0.1",
"postgres-date": "^2.0.1",
"process": "^0.11.10",
"pump": "^3.0.0",
"purgecss": "^4.0.2",
"qrcode": "^1.4.4",
"raw-loader": "^4.0.2",
"readable-stream": "^3.6.0",
"readable-web-to-node-stream": "^3.0.1",
"reload-html-webpack-plugin": "^0.1.2",
"rxfire": "^4.0.0",
"rxjs": "^6.6.6",
"safe-buffer": "^5.2.1",
"sass": "^1.32.8",
"setimmediate": "^1.0.5",
"sharp": "^0.27.2",
"shortid": "^2.2.16",
"string-replace-loader": "^3.0.1",
"string_decoder": "^1.3.0",
"style-loader": "^2.0.0",
"svgo-loader": "^3.0.0",
"terser": "^5.6.1",
"toastify-js": "^1.9.3",
"typedarray-to-buffer": "^4.0.0",
"url-loader": "^4.1.1",
"videostream": "^3.2.2",
"vue-svg-inline-loader": "^2.1.2",
"webpack-bundle-analyzer": "^4.4.0",
"webpack-plugin-modern-npm": "^0.1.0",
"webpack-pwa-manifest": "^4.3.0"
}
firefox send (현재종료) 오픈소스 프로젝트중 암호화 모듈.

안드로이드 앱

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation platform('com.google.firebase:firebase-bom:26.7.0')
implementation 'com.google.android.play:core:1.10.0'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.preference:preference:1.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'com.google.firebase:firebase-crashlytics'
implementation ('com.google.firebase:firebase-analytics') {
exclude module:"play-services-ads-identifier"
}
implementation 'com.google.firebase:firebase-dynamic-links'
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
implementation 'com.firebaseui:firebase-ui-database:6.3.0'
implementation 'com.firebaseui:firebase-ui-auth:6.4.0'
implementation "androidx.legacy:legacy-support-v4:1.0.0"
implementation "androidx.recyclerview:recyclerview:1.2.0"
implementation "io.reactivex.rxjava2:rxjava:2.2.17"
implementation "io.reactivex.rxjava2:rxandroid:2.0.2"
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
implementation 'com.google.android.material:material:1.4.0-alpha02'
implementation 'com.karumi:dexter:5.0.0'
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
implementation 'com.google.firebase:firebase-database'
implementation 'com.github.davidmoten:rxjava2-extras:0.1.38'
implementation 'com.google.crypto.tink:tink-android:1.5.0'
implementation 'com.google.firebase:firebase-crashlytics'
implementation 'com.google.firebase:firebase-functions'
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.android.gms:play-services-auth:19.0.0'
}