作為一個設計師,我寫了一個七牛上傳的 App

2017-01-24 06:16:52 +08:00
 cctrv

作為一個設計師,我寫了一個七牛上傳的 App

其實也就是前端的工作居多。

某日,一友人因把文件上傳到 Dropbox 而引發眾怒。 然而,百度雲也越來越不好用了。

故之,我隨意吐槽之。 某日把七牛做一個右鍵服務而方便之。

於是乎,週六深夜見平日寫小程序已悶死,就想起答應友人的事情了。 選用 electron-vue 作為基礎框架開發。 雖然 nodejs 也就是學了 5 日, ES6 也才接觸 7 日, Electron 更不用提了,第一次用。 VUE 也是第一次用。 之前只有 jQuery 和 angularjs \ CSS3 \ HTML \ PHP \ SQL 這些基礎而已。

設計定稿

作為一個設計師,怎麼也要樣子好看,所以就以設計稿起步為先。

我把主界面畫了出來,確定好 UI 風格了。

代碼編寫

代碼是開始在週日凌晨 1 點多。 我選用了 electron-vue 作為解決方案。

不過,由於 VUE 不熟悉,也碰到了一些坑。

例如:

  1. 不知道如何引用文件(感覺以前的前端技能被殘廢了一樣)
  2. 寫完 CSS 才發現, A 頁面的 CSS 會干擾 B 頁面的 CSS (我還以為和小程序、 React 那樣)
  3. VUE 的路由我理解了好長時間才明白。

我以前一直寫 jQuery ,異步和 DOM 管理沒什麼問題。可是遇到 VUE ,我真的覺得腦子的思維要轉變了哦。 特別是路由,這個明明不就是後端的事情嗎?怎麼前端模板也有路由概念,我折騰了有 1 小時,才發現原來所謂路由不是跳轉 GET/POST 的意思,而是切換顯示的頁面。

Google 時候一直出現的 SPA 這個詞,其實我也沒理解。直到我剛才專門 Google 才知道了。大哭。

Electron 的坑

這貨坑也不少。

例如:

  1. 複製粘貼在 Build 后完全用不了。
  2. 一開始抓頭在思考怎麼做 GET 和 POST ……
  3. 背景模糊玻璃效果,還沒能實現,不過在 demo 的確能做到。
  4. 打包后,竟然找不到 modules ……

七牛的坑

七牛這個坑實在太大了。官方的 NODEJS SDK 雖然在 npm run dev 能用,在打包后,會開多個窗口,也上傳不了文件。

開發

總之而言,在我 App 編寫 6 個小時候之後,終於基本可以面世了。以 Electron 的方案來開發 App 的確比傳統要舒服和快,而且動畫效果寫起來不吃力(畢竟強大的 CSS3 動畫真厲害),所以我在 App 添加了比較多的動畫效果。

Electron 打包的確很大,也無解。經過 ZIP 壓縮后有 40 多 MB ,還算能接受。

後續想法

還有一些想加入來的東西還沒加,例如拖入文件上傳,以及顯示上傳時候的進度和網速。我相信顯示上傳進度應該沒可能了,但是網速我應該去 Google 找找解決方案。 Electron 如果有更多原生插件就好了。

界面

動畫效果

留給你們自己體驗看吧。

https://github.com/qoli/QiNA

8065 次点击
所在节点    分享创造
58 条回复
frozenthrone
2017-01-26 13:50:13 +08:00
好 6 的妹子
goldenlove
2017-01-26 14:37:48 +08:00
前来膜拜妹纸.... 居然繁体系统?港台朋友?
cctrv
2017-01-26 17:21:11 +08:00
@lijy91 反正用我那段就對了。簡單直接又方便。
還能開 asra 。
cctrv
2017-01-26 17:24:18 +08:00
@lijy91 不過現在 electron-vue 的作者弄壞了架手架。要等一段時間看看他,他更新了目錄結構。
lijy91
2017-01-26 23:59:44 +08:00
@cctrv 我也看到了 dev 分支的新目录结构
283810867
2017-01-27 08:38:23 +08:00
赞赞赞赞
meathill
2017-01-27 15:34:26 +08:00
感谢楼主,我也卡在七牛上传那里,折腾好几天了,这下能过个好年了
cctrv
2017-01-27 19:02:49 +08:00
@meathill

這個不是用來把 CDN 用的喔,這個是用來分享單個文件的。

你 CDN 的話最好用 七牛 那個 shell 同步工具配置一下。
接著在 nginx 配置一下就可以了。
echopan
2017-01-27 19:12:38 +08:00
我原来见过你啊
meathill
2017-01-27 23:19:27 +08:00
@cctrv 啊,不好意思,不是你的作品。我做了个静态网站工具,用到七牛和 Electron ,上传文件的时候就会启动新应用,查了很久,看到你的项目才算解决问题。
dreammes
2017-01-28 14:12:16 +08:00
UI 漂亮
cctrv
2017-01-28 18:47:25 +08:00
@meathill
哈哈哈。學會哪裡都寫 Log 的習慣就很快排查到原因了。
不過七牛這個 bug 我也覺得很坑人,我一開始也以為是 electron 的 bug 。
cctrv
2017-01-30 05:07:28 +08:00
@WittBulter 你說的方案可能無法完成。
七牛上傳我是調用了別人的庫。

不過還是要等我過完節回北京試試才知道。
youranus
2017-01-31 16:17:57 +08:00
作为一个美工渣我…
appstore001
2017-02-03 17:42:41 +08:00
真希望有一个平台,把每一个 SDK 或 API 都写一个 DEMO ,每一种语言都写一个,只要那种语言有人需要用这个 SDK ,官方就有义务提供一个这样的平台,我是这样觉的。官方懒不来写或写不了,那就有必要奖励现金或物质给提供该语言的开发者。
这就像是安卓系统一样,总是需要多种语言包的,中文,英文,日文等。假如 GOOGLE 霸道的说,只用一个英文版不就足够了,英文是全球通用语言?可现实中却是相反的,中国政府都规定,想要在中国销售外国产品,必须提供中文标识,中文说明书等。

我前几天在研究一个别人写的易语言的七牛分块上传,一个包 4M ,分多次上传,多个包再合并成一个大文件,一看代码一大片,看晕。还有前几天在玩百度语音识别 RST API ,就是 json 格式上传一个 WAV 录音,然后返回识别出来的文字,也花了一天时间,有时研究一些新东西挺费时间,也挺痛苦的,碰到问题没地方求助,自已胡乱测试,中间走了 N 多的弯路。
keelii
2017-02-04 11:44:00 +08:00
很漂亮, electron 就适合做这种小应用~
cctrv
2018-09-28 19:55:22 +08:00
一年了……
終於更新了。

2018 年 09 月 28 日 · 0.0.5 版本

添加

- 顯示上傳進度

修正

- 從 qn 庫轉移為 七牛官方 SDK
- 修正 npm run dev 問題
- 符合 eslint
- 修正 Mac 圖標陰影(設計稿不見了,所以簡單做了一個)
xbdsky
2018-09-30 10:53:08 +08:00
原来你就是作者啊。哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/336563

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX