註:最新 3.4 版本已推出,文中有進行部分補充。
文前碎碎念
如果,你是個專業的工程師,在外面臨時遇到需要修改或測試專案的情況,但手邊又沒有電腦跟網路,你會怎麼選擇呢?
又或是,今天你臨時需要外出一陣子,但卻又放不下自己寫到一半的程式,你會怎麼辦呢?
我學習程式也有好一段時間了,也開了不少工作或課業以外的 Side Project 來練刀,平常進行開發時,也大多是依循正常的儀式標準,找把舒適的椅子,把電腦安置在一張合宜的桌子上,沖杯咖啡,開始奮戰(哪那麼多流程)。
不過總是會有不得不離開辦公桌,或是單純被棉被怪物困住,但卻依然手癢想繼續 Coding 下去的衝動(?)。
而為了解決這樣的煩惱,今天就來推坑一套能在 IOS 系統上運作,使用起來順手,功能也算齊全的 Python 開發 APP 給大家參考囉!
2023-04-28 補充
最新更新已經推出囉,內部支援的 Python 版本升級到 3.10,也預設支援資料科學及檔案處理常使用的 Pandas 等套件囉!
正文開始
現在有請今天的主角 Pythonista 登場!
Pythonista 是一套可以在iPhone / iPad 上進行 Python 程式開發、測試的 IDE 工具,目前(2023 / 2月)採用買斷制無內購項目,售價為 NT$ 330。
相遇契機
其實 Pythonista 已經存在數年,而且我也已經使用了好一陣子了,一開始是為了尋找一款能在行動設備上也能進行開發,並且不需要網路,不需額外訂閱也能運作的工具,才輾轉入坑的。
這套軟體的出現,也讓我就算出門在外,只要抄起手機或平板,隨時都能在煩悶的活動中,躲進自己的小天地,而它也就成為我後來在程式開發上,不可或缺的好伙伴之一。
至於今天為什麼會想再拿出來與大家分享的契機,是因為他的開發者,久違的在 Twitter 上
釋出下一版更新的預告,並同時提供 Beta 版本讓人參與測試
(開發者 Twitter)。
這對於一個已經兩年沒大更新的 APP 來說,無疑是個大新聞,除了期待未來版本,能再新增更多開發體驗以及效能改善外,也趁著這個機會,讓這款實用工具能被更多人知道。
功能介紹
註:為展示方便,以下使用 iPad 畫面作範例,iPhone 操作方式相似,僅介面位置稍作變動。
簡單來說,Pythonista 就是一套能讓你隨時隨地爆肝撰寫 Python 程式的編輯工具,因此進到 APP 後的畫面,也是不囉嗦的直接給你一個新增專案的選項。
選擇完要新增的檔案類型後,直接進入到編輯畫面,就可以開始編寫程式了。
寫完後,右上角有一個箭頭的標示,可以直接執行程式,或是長按選擇 Python 版本,而由於程式碼是在本機端執行,因此過程中完全不需要連線,十分方便。
如果有錯誤的話,它也會跳出通知,並詳細列出出錯的行數。
另外在撰寫過程中,編輯器也會提供快速完成選項可以使用。
檔案列表跟設定選單,是藏在左側側邊欄中,這裡可以進行新增資料夾、移動檔案,或釘選最愛捷徑等操作。
如果不喜歡預設編輯器的主題配色,在設定中也有提供不同的樣式可以替換。
另外,這套工具也針對 IOS 系統內建的功能(如鍵盤、捷徑、主畫面圖示、專屬鍵盤等)有一定程度的支援。
甚至在設定中,還可以選擇喜歡的程式檔作為 Tody Widget 使用,選好之後就可以在 Widget Page 看到執行效果。
註:這部分在之前 IOS 中可正常使用,但於最新版(16.3)暫時無法執行成功。
而雖然在剛安裝完畢的情況下,是無法直接下載額外 Python 套件,但透過這個
StaSh 外掛的幫助後,就能使用熟悉的 PIP 指令來新增。
不過要注意的是,由於 IOS 系統的限制,這裡所能安裝的套件,僅限於使用純 Python 寫成的,像是 Pandas、Numpy 這類底層使用 C 語言進行運算的常見資料處理套件,目前是無法安裝執行的。
更:最新 3.4 版已預設支援 Pandas,不用另外安裝。
另外,作者在 Pythonista 中,也提供許多因應行動設備所準備的套件包,以及介面編輯器,因此如果技術足夠,也可以用它來編寫手機端專用的工具或遊戲。
補充:近期更新後,看到網路上有使用者提出上文中介紹啟用 PIP 指令的工具失效的問題,可以參考這個討論板的方案解決。
優缺點整理
這裡就直接以條列式的方式,來整理這套 APP 在使用上的主要優點:
- 編輯器功能完整,並具有客制化的常用鍵盤列。
- 程式測試時不用連線,可完全在本機端執行。
- 包含客制化的套件包及範例,可以開發行動設備專用的程式(動畫、觸控、Widget、捷徑 等)。
- 透過外掛工具,可開啟額外套件安裝功能(即使用 pip 指令)。
- 除 .py 之外,亦支援 html、md、txt 等文字格式檔案編寫。
- 同一 APP 可通用於 iPhone(IOS) 以及 iPad(iPadOS)。
- 買斷制,一次付費後便沒有功能限制,或隱藏收費。
雖然以優點來看的話,他確實是一款好用且完整的 Python 開發工具,不過相對地,在好的東西,也都還是會有它的缺點存在:
- 無法支援核心為 C 語言所開發的套件(此為 IOS 系統限制)。
- 目前無法執行 Pandas、Numpy 等常見資料處理套件(理由同第一點,但作者預告下版更新會整合支援)。
- 目前版本無法直接用檔案 APP 管理匯入的專案(資料夾未顯示於檔案 APP 中)。
- 沒有版本管理,須自行做好處置。
- 內建手機專用程式套件的說明文件相對較少,需自行摸索。
- 作者應為獨立開發專案,因此更新速度相對較慢。
- 尚未支援最新系統部分功能(如桌面小工具等)。
使用情境
Pythonista 這款工具,是一套幾乎完整的 Python 工作環境,從檔案管理、文件編輯,一直到測試執行都能一手包辦。
我是一個喜歡在外出時,也能隨時完成自己作品的人,因此對我來說,一套能夠行動開發的工具是十分重要的。
而在我之前的使用情景中,我曾在這套工具上開發過聊天機器人程式,而在我使用 iPad 進行編輯的同時,我可以不用實際將專案上傳到最終部屬的伺服器上,也能實際看到執行後的結果。
又或是今晚,我想來點開發手機端 APP 的體驗(?),但好死不死自己的技能樹上,就只有點好 Python 分支,而且手邊又沒有 Mac 可以使用的話,也可以透過它所提供的相關工具寫出來(下面使用 APP 內建範例,手機專用程式這塊,我還沒太多研究)。
最後,就是如果哪天臨時在外,接到老闆或合作夥伴通知說專案有問題時,就可以及時拿出來修改測試,完成之後再搭配相關 Git 工具推送回工作群組裡,便能免掉底類後的一場腥風血雨。
結語
隨著時間推移,現在 APP Store 上其實也陸續出現許多功能強大的 Python 編輯工具,有些甚至還是免費的,但我依然認為 Pythonista 還是有它一定的魅力存在。
註:此部分具個人觀點,僅提供參考,實際情況請依個人需求進行選擇。
依計價來看,現行有不少工具是採取訂閱,或內購制(如 Pyto)才能解鎖全部功能,或是程式本身僅提供編輯功能,並在測試原始碼時,需要先將專案上傳到伺服器,並收取運算費用。
這樣對於非頻繁使用者來說,除了會增加臨時要使用的不便及成本外,於他人伺服器執行程式的模式,也可能造成資訊外流的風險。
而依作業環境來看,我個人在電腦上習慣於使用像是 Spyder 這種純文字開發環境,介面相對較單純,因此在行動設備上,也可以像是一般純文字編輯器一樣的執行任務。
而部分 APP 中 (如 Carnet、Juno) 所整合的,是如 Jupyter Notebook 這種視覺化操作的環境,介面大多以滑鼠操作為邏輯基礎,因此以觸控型操作的時候,常顯得有些卡手。
Carnet 中 Jupyter Notebook 環境
不過總歸來說,雖然我個人十分推崇這套軟體,但到頭來,它畢竟也就只是一個開發工具而已。
市面上功能相似,甚至超越的產品比比皆是,我寫了這篇介紹,也僅僅是希望能為各位看到這裡的朋友們一點做為參考的意見。
最重要的,還是謹慎的審視自己的需求,並選擇最對自己來說順手最有效的工具,才能事半功倍。
好啦,今天分享就到這裡,希望大家在開發的路上,都能有所成就!
《全文。終了》