Fold All / Expand All

2016年7月9日 星期六

Using Electron to pack Lyric Get to Windows desktop app

奇怪的標題?

話說 Windows 版的 Lyric Get 荒廢一陣子了,上次打包的 binary 是 2015年3月7日
https://github.com/franklai/lyric-get/releases/tag/v4.6.1

陸續有收到說不能執行的問題,但是我的 Win10 32-bit 可以啊…

是說原本用的 Python GUI framework PythonCard 已經沒有在維護了,又懶的整個換。
(謎:不是要用 Kivy,結果 encoding 爆炸搞不定嗎…)

前陣子看到 Visual Studio Code 這套編輯器,是用 Type Script 加上 Electron 打包為 desktop app,原來用 Electron 的還有 Slack 的 desktop app,這聽起來還蠻厲害的啊

所以就來研究一下如何用 Electron 包 app 吧

咦…但是 lyric_engine 的 code 不是 Python 嗎?用 Electron 包怎麼跑

剛才搜尋一下,還真的有人提到這個組合,Electron 顯示網頁,發 request 到 Python based web server 處理,而 Python web server 哪來的?在 Electron main.js 起來的時候 launch,聽個 localhost

Electron as GUI of Python Applications
https://www.fyears.org/2015/06/electron-as-gui-of-python-apps.html

好吧,這可能也是個選擇,不過還要抓個 localhost port 有點煩

目前的想法是把 lyric_engine 的邏輯換成 JS,是說之前 PHP, Python 在轉都沒什麼問題了,把 common function 都準備好,剩下都大同小異吧…除了 asynchronous 寫法要調整一下

不過第一步,先用 Electron 包個東西出來,仍舊發 request 到  lyric get on GAE

Electron 有 electron-builder 提供可以包出 installation exe,不過不知道是設定有誤還是怎樣,安裝程式怪怪的…所以還是先用傳統的打包 zip

Source 和 zip 放在 GitHub 上了
https://github.com/franklai/lyric-get/releases/tag/v0.1.0-alpha

使用方法:解壓縮後,執行「Lyric Get.exe」

接下來是研究 lyric_engine 搬成 JS 啦

是說要不要考慮開始寫 Type Script 呢?

沒有留言: