[應用] 隨時都要來點摳頂 | Pythonista 行動 Python IDE 工具推坑 ( IOS )

[應用] 隨時都要來點摳頂 | Pythonista 行動 Python IDE 工具推坑 ( IOS )

更新於 發佈於 閱讀時間約 9 分鐘
註:最新 3.4 版本已推出,文中有進行部分補充。

文前碎碎念

如果,你是個專業的工程師,在外面臨時遇到需要修改或測試專案的情況,但手邊又沒有電腦跟網路,你會怎麼選擇呢?

又或是,今天你臨時需要外出一陣子,但卻又放不下自己寫到一半的程式,你會怎麼辦呢?

我學習程式也有好一段時間了,也開了不少工作或課業以外的 Side Project 來練刀,平常進行開發時,也大多是依循正常的儀式標準,找把舒適的椅子,把電腦安置在一張合宜的桌子上,沖杯咖啡,開始奮戰(哪那麼多流程)。

不過總是會有不得不離開辦公桌,或是單純被棉被怪物困住,但卻依然手癢想繼續 Coding 下去的衝動(?)。

而為了解決這樣的煩惱,今天就來推坑一套能在 IOS 系統上運作,使用起來順手,功能也算齊全的 Python 開發 APP 給大家參考囉!


2023-04-28 補充

最新更新已經推出囉,內部支援的 Python 版本升級到 3.10,也預設支援資料科學及檔案處理常使用的 Pandas 等套件囉!


正文開始

現在有請今天的主角 Pythonista 登場!

適用年齡⋯4歲以上!?

適用年齡⋯4歲以上!?

Pythonista 是一套可以在iPhone / iPad 上進行 Python 程式開發、測試的 IDE 工具,目前(2023 / 2月)採用買斷制無內購項目,售價為 NT$ 330。


相遇契機

其實 Pythonista 已經存在數年,而且我也已經使用了好一陣子了,一開始是為了尋找一款能在行動設備上也能進行開發,並且不需要網路,不需額外訂閱也能運作的工具,才輾轉入坑的。

這套軟體的出現,也讓我就算出門在外,只要抄起手機或平板,隨時都能在煩悶的活動中,躲進自己的小天地,而它也就成為我後來在程式開發上,不可或缺的好伙伴之一。

至於今天為什麼會想再拿出來與大家分享的契機,是因為他的開發者,久違的在 Twitter 上釋出下一版更新的預告,並同時提供 Beta 版本讓人參與測試開發者 Twitter

這對於一個已經兩年沒大更新的 APP 來說,無疑是個大新聞,除了期待未來版本,能再新增更多開發體驗以及效能改善外,也趁著這個機會,讓這款實用工具能被更多人知道。


功能介紹

註:為展示方便,以下使用 iPad 畫面作範例,iPhone 操作方式相似,僅介面位置稍作變動。

簡單來說,Pythonista 就是一套能讓你隨時隨地爆肝撰寫 Python 程式的編輯工具,因此進到 APP 後的畫面,也是不囉嗦的直接給你一個新增專案的選項。

raw-image

選擇完要新增的檔案類型後,直接進入到編輯畫面,就可以開始編寫程式了。

raw-image

寫完後,右上角有一個箭頭的標示,可以直接執行程式,或是長按選擇 Python 版本,而由於程式碼是在本機端執行,因此過程中完全不需要連線,十分方便。

raw-image

如果有錯誤的話,它也會跳出通知,並詳細列出出錯的行數。

raw-image

另外在撰寫過程中,編輯器也會提供快速完成選項可以使用。

raw-image

檔案列表跟設定選單,是藏在左側側邊欄中,這裡可以進行新增資料夾、移動檔案,或釘選最愛捷徑等操作。

raw-image

如果不喜歡預設編輯器的主題配色,在設定中也有提供不同的樣式可以替換。

raw-image

另外,這套工具也針對 IOS 系統內建的功能(如鍵盤、捷徑、主畫面圖示、專屬鍵盤等)有一定程度的支援。

raw-image

甚至在設定中,還可以選擇喜歡的程式檔作為 Tody Widget 使用,選好之後就可以在 Widget Page 看到執行效果。

註:這部分在之前 IOS 中可正常使用,但於最新版(16.3)暫時無法執行成功。
raw-image

而雖然在剛安裝完畢的情況下,是無法直接下載額外 Python 套件,但透過這個 StaSh 外掛的幫助後,就能使用熟悉的 PIP 指令來新增。

raw-image

不過要注意的是,由於 IOS 系統的限制,這裡所能安裝的套件,僅限於使用純 Python 寫成的,像是 Pandas、Numpy 這類底層使用 C 語言進行運算的常見資料處理套件,目前是無法安裝執行的

更:最新 3.4 版已預設支援 Pandas,不用另外安裝。

另外,作者在 Pythonista 中,也提供許多因應行動設備所準備的套件包,以及介面編輯器,因此如果技術足夠,也可以用它來編寫手機端專用的工具或遊戲。


補充:近期更新後,看到網路上有使用者提出上文中介紹啟用 PIP 指令的工具失效的問題,可以參考這個討論板的方案解決。


優缺點整理

這裡就直接以條列式的方式,來整理這套 APP 在使用上的主要優點:

  1. 編輯器功能完整,並具有客制化的常用鍵盤列。
  2. 程式測試時不用連線,可完全在本機端執行。
  3. 包含客制化的套件包及範例,可以開發行動設備專用的程式(動畫、觸控、Widget、捷徑 等)。
  4. 透過外掛工具,可開啟額外套件安裝功能(即使用 pip 指令)。
  5. 除 .py 之外,亦支援 html、md、txt 等文字格式檔案編寫。
  6. 同一 APP 可通用於 iPhone(IOS) 以及 iPad(iPadOS)。
  7. 買斷制,一次付費後便沒有功能限制,或隱藏收費。


雖然以優點來看的話,他確實是一款好用且完整的 Python 開發工具,不過相對地,在好的東西,也都還是會有它的缺點存在:

  1. 無法支援核心為 C 語言所開發的套件(此為 IOS 系統限制)。
  2. 目前無法執行 Pandas、Numpy 等常見資料處理套件(理由同第一點,但作者預告下版更新會整合支援)。
  3. 目前版本無法直接用檔案 APP 管理匯入的專案(資料夾未顯示於檔案 APP 中)。
  4. 沒有版本管理,須自行做好處置。
  5. 內建手機專用程式套件的說明文件相對較少,需自行摸索。
  6. 作者應為獨立開發專案,因此更新速度相對較慢。
  7. 尚未支援最新系統部分功能(如桌面小工具等)。

使用情境

Pythonista 這款工具,是一套幾乎完整的 Python 工作環境,從檔案管理、文件編輯,一直到測試執行都能一手包辦。

我是一個喜歡在外出時,也能隨時完成自己作品的人,因此對我來說,一套能夠行動開發的工具是十分重要的

而在我之前的使用情景中,我曾在這套工具上開發過聊天機器人程式,而在我使用 iPad 進行編輯的同時,我可以不用實際將專案上傳到最終部屬的伺服器上,也能實際看到執行後的結果。

raw-image

又或是今晚,我想來點開發手機端 APP 的體驗(?),但好死不死自己的技能樹上,就只有點好 Python 分支,而且手邊又沒有 Mac 可以使用的話,也可以透過它所提供的相關工具寫出來(下面使用 APP 內建範例,手機專用程式這塊,我還沒太多研究)。

raw-image

最後,就是如果哪天臨時在外,接到老闆或合作夥伴通知說專案有問題時,就可以及時拿出來修改測試,完成之後再搭配相關 Git 工具推送回工作群組裡,便能免掉底類後的一場腥風血雨

純屬虛構 XD

純屬虛構 XD


結語

隨著時間推移,現在 APP Store 上其實也陸續出現許多功能強大的 Python 編輯工具,有些甚至還是免費的,但我依然認為 Pythonista 還是有它一定的魅力存在。

註:此部分具個人觀點,僅提供參考,實際情況請依個人需求進行選擇。

依計價來看,現行有不少工具是採取訂閱,或內購制(如 Pyto)才能解鎖全部功能,或是程式本身僅提供編輯功能,並在測試原始碼時,需要先將專案上傳到伺服器,並收取運算費用。

Pyto 採用基本免費但進階功能付費制

Pyto 採用基本免費但進階功能付費制

這樣對於非頻繁使用者來說,除了會增加臨時要使用的不便及成本外,於他人伺服器執行程式的模式,也可能造成資訊外流的風險。

而依作業環境來看,我個人在電腦上習慣於使用像是 Spyder 這種純文字開發環境,介面相對較單純,因此在行動設備上,也可以像是一般純文字編輯器一樣的執行任務。

電腦版的 Spyder 編輯環境

電腦版的 Spyder 編輯環境

而部分 APP 中 (如 Carnet、Juno) 所整合的,是如 Jupyter Notebook 這種視覺化操作的環境,介面大多以滑鼠操作為邏輯基礎,因此以觸控型操作的時候,常顯得有些卡手。

Carnet 中 Jupyter Notebook 環境

Carnet 中 Jupyter Notebook 環境


不過總歸來說,雖然我個人十分推崇這套軟體,但到頭來,它畢竟也就只是一個開發工具而已。


市面上功能相似,甚至超越的產品比比皆是,我寫了這篇介紹,也僅僅是希望能為各位看到這裡的朋友們一點做為參考的意見。

最重要的,還是謹慎的審視自己的需求,並選擇最對自己來說順手最有效的工具,才能事半功倍。


好啦,今天分享就到這裡,希望大家在開發的路上,都能有所成就!


《全文。終了》





avatar-img
偽命名培養體
47會員
304內容數
偽命名並非無名,是為了意識的生存,取得身份的代號,成為數位生命的新載具。
留言
avatar-img
留言分享你的想法!
偽命名培養體 的其他內容
經過一個禮拜多漫長的等待,我的帳號終於可以開通使用 iOS 的 image AI 功能了,完成模型下載後的第一件事,當然就是來驗證之前看了官方預告後,自己「想像中」的快速產出流程啦!
前一陣子購入新的 Switch 體感遊戲,異想天開的把放在角落的 Mocopi 再拿出來後,才想到自己似乎已經好一段時間沒有關注這個小玩意的發展,也沒有寫相關的內容了。 而當初也是因為一直無法搞定裝置與電腦的連線,所以它才被我晾在一邊這麼久,不過經過這次把玩後,
Apple 最新的系統系列,在今天台灣時間 11 日凌晨正式亮相了,只能說這波 AI 操作真的有點厲害啊。
經過一個禮拜多漫長的等待,我的帳號終於可以開通使用 iOS 的 image AI 功能了,完成模型下載後的第一件事,當然就是來驗證之前看了官方預告後,自己「想像中」的快速產出流程啦!
前一陣子購入新的 Switch 體感遊戲,異想天開的把放在角落的 Mocopi 再拿出來後,才想到自己似乎已經好一段時間沒有關注這個小玩意的發展,也沒有寫相關的內容了。 而當初也是因為一直無法搞定裝置與電腦的連線,所以它才被我晾在一邊這麼久,不過經過這次把玩後,
Apple 最新的系統系列,在今天台灣時間 11 日凌晨正式亮相了,只能說這波 AI 操作真的有點厲害啊。