目前分類:肉體打字機 (13)

瀏覽方式: 標題列表 簡短摘要

撰寫「具備用戶介面(User Interface)」的應用程式,對於我這種依賴 IDE 開發工具(Integrated Development Environment,整合開發環境)的碼農來說,就像吃飯喝水那樣的直覺,甚至於忘了第一支 Hello world 的用戶介面是怎麼做出來的。這些年來寫過 Windows、macOS、iOS(iPhone/iPad/Apple Watch/Apple TV)、Android 等平台的應用程式,早期的 Windows CE(PDA 裝置)程式開發也接觸過一段時間。然而,有個地方一直都沒碰觸,對我而言也是未知的領域,那就是 Linux 平台的用戶介面應用程式。

大致說來,每個平台都有一套最知名、最強大、最多人使用、教學資源最豐富的 IDE 工具,例如 Windows 平台有微軟官方的 Visual Studio,macOS 有蘋果官方的 Xcode,Android 平台有 Google 官方的 Android Studio。然而在 Linux 上,似乎就少了一套強而有力、專門針對 Linux 視窗環境的 IDE 工具,所以就一直不清楚,如何在 Linux 上寫一支具有用戶介面的應用程式(這裏不談 Linux 系統的瀏覽器運作 HTML5 網頁)。

前陣子工作上接手一份來自古老時代的程式碼,是用 PyQt4 寫的,功能是提供一個使用者操作介面,讓樹莓派主機透過主板 GPIO 介面去控制幾個周邊設備。原作者早已失聯,不過有留著當時的開發筆記重點。順著考古的遺跡,意外讓我補足這一塊技能,原來透過 Python + Qt,也能輕鬆寫出對應 Linux 桌面版的用戶介面應用程式。

然而,使用 PyQt 開發 Linux 版的用戶介面,依然無法像 Visual Studio、Xcode 那麼方便,中間的過程還是有些需要手動生成操作的步驟,決定開一篇文章來記錄。所以了,若是您對「開發 Linux 環境的 UI 應用」感興趣,或是想知道如何寫出「UI 介面控制樹莓派 GPIO 周邊的應用程式」,可以參考這篇文章的內容。

文章標籤

benjenq 發表在 痞客邦 留言(0) 人氣()

出社會這些年寫過的程式語言也算不少,第一份工作就是 Oracle / D2K / Form 6i,用過的人都說讚!這玩意寫 Oracle 資料庫交易功能簡直是神器,寫一支具備新增修改刪除加上各欄位查詢功能的表單,只需要用滑鼠拉一拉就完成了。早期就曾經有人靠 Oracle / D2K 開發工具,大肆宣稱半年內寫出五百多支程式,績效斐然,因此成功搏得上市電子廠高階經理人上位,掙得每年數百張配股分紅,著名口頭禪「一天賣一張,一年也賣不完」,在軟體業界成為經典的傳奇故事(再繼續講下去,就知道我在講誰了)。由此可知,碼農們選對開發工具是非常重要的事,甚至有機會翻轉身人生,賺進大把鈔票... 扯遠了,後來我換了幾次工作,用 Visual Studio 寫 ASP.NET,用 Xcode 寫 Object-C,特定的程式語言用特定的開發工具,做出一整套完整功能的應用程式專案,似乎是理所當然的事。

然而在江湖上卻不一定事事都理所當然。比如 PHP 這玩意,很多年前就接觸了,功力一直以來都是寫幾隻小程式、做幾件小事的程度。原因是很久以前忘了在哪個網站上看到一句話:PHP 要用文字編輯器來寫。於是種下了我對開發 PHP 方法的錯誤認知。

最近手邊有個專案,對我來說, VS 寫後端, Xcode 寫前端,輕鬆達陣不難, 但是要改用 HTML5 + CSS3 + jQuery + PHP 來寫,這就令我開始頭疼了。

用文字編輯器撰寫 HTML5 + CSS3 + jQuery + PHP 程式,開發出專案級別的功能,可行嗎?對資質愚笨的小弟我來說,幾乎不可行!我需要一套如同 D2K / Visual Studio / Xcode 那種強大的開發工具來撰寫 PHP 程式。

於是我開始求助 Google 大神,甚至上網 PTT 徵求技術交流 / 技術交換討論等,最後選擇了 Brackets +PHP 外掛來開發。Brackets 功能強大,但那是指前端而言,撰寫 PHP 後端則顯得十分雞肋,試了各種外掛,頂多只會提示 PHP 的內建指令,無法偵錯,寫起 PHP 還是舉步艱難。隨著程式碼越來越多,感覺越來越吃力,覺得自己沒有用對方法。

最終讓我用對了關鍵字,找到我認為最適合的 PHP 開發工具:

文章標籤

benjenq 發表在 痞客邦 留言(0) 人氣()

CSharp_ObjC

最近手邊進行一項工程,要將 Object-C 的程式碼「移植」到 C# 的機器上。Object-C 是拿手的,但 C# 完全不熟啊~於是上網找了一些資料,練習嘗試設計一個小範例,用Object-C 與 C# 各寫了一份,體會其中的奧妙。

benjenq 發表在 痞客邦 留言(0) 人氣()

iOS9_10_TodayExtChanged

最近因為某支螢幕錄影程式在 iOS 9 發生錄影不能的問題,於是掐一下把手機版本升到 iOS 10,一堆掛載在通知中心的小工具都得因應修正,然後就陷入程式改版的輪迴了。

首先是 iOS 10 通知中心多了一種叫做 NCWidgetDisplayMode 的顯示屬性,分成兩種:

  • NCWidgetDisplayModeCompact:用 Xcode 8 重新編譯之後預設是這種,也就顯示範圍不能變動大小,因此本來計算顯示大小的程式碼,在重編後會失效。
  • NCWidgetDisplayModeExpanded:可以透過顯示區塊右上方的「顯示更多/顯示更少」按鈕來切換大小。按鈕只能由用戶去點擊,開發者無法操控。

換言之,程式用 Xcode 8 編譯支援 iOS 10 之後,得加入這個新功能,否則全部內容不會顯示出來。

文章標籤

benjenq 發表在 痞客邦 留言(0) 人氣()

926225-110a4d60ff64440a  

近年物件導向程式設計中有個常見的名稱:Delegate(委派)。假設有個主要物件 A ,需透過某物件 B 處理一些事情(例如解壓縮、網路下載...等工作),視 B 處理到某些情況時將狀況回報給 A 之後,A 再進行後續處理,那麼就會設定 B 的委派角色為 A。A 多半是應用程序中主要的畫面,B 則是自定的程序,在開發應用的實例上,類似 B 的角色有很多個在同時運作,按照一般教學的寫法,主畫面 A 就會負責接收一大堆委派結果,程式就會顯得又臭又長。

文章標籤

benjenq 發表在 痞客邦 留言(0) 人氣()

pokemon-go-banner

自從 Pokémon Go 在台灣上架並形成一股全名抓寶的風潮以來,一直很好奇第三方的 Pokémon Go 雷達是怎麼生出來的,後來無意間搜尋到一些資料,自己跟著做,然後就莫名其妙成功了。

文章標籤

benjenq 發表在 痞客邦 留言(1) 人氣()

TNDengueMain

來台南吃喝玩樂的朋友,您是否知道自己正身處登革熱疫情熱區,應該要提高警覺呢?
 
住台南的朋友,您是否能及時發現住家附近發生通報疫情,可能不久之後要被室內噴藥呢?
 
您希望多瞭解自己的居住的鄰里,最近的登革熱疫情是否逐漸趨緩了呢?
 
您是否覺得官方媒體公佈的登革熱資訊不夠清楚、不夠公開透明,有看沒有懂?
 
以上這些問題,現在都不是問題了。
 
面對疫情,現在您有更方便掌握資訊的方法,只需滑動您的手機!
 
App 下載網址:appstore
文章標籤

benjenq 發表在 痞客邦 留言(2) 人氣()

有在持續關注黑蘋果議題的用戶應該可以觀察到,用黑蘋果的人越來越多了,連某熱門的屋賣場甚至還開設「黑蘋果套餐」來減少用戶選購時的麻煩。這代表安裝黑蘋果的難度越來越低,依 ING 原則選購硬體之後,再找台 OS X 電腦搞定一支 USB 安裝碟,就差不多可以開始啃黑蘋果了。網路上的黑資源越來越多,也不缺我個人寫黑專題,所以現在來換換口味,聊聊目前軟體開發界最夯的話題:Apple Watch 的 APP 開發。

Watch_iPhone      

最早大家的猜測是,Apple Watch 的 APP 可能是一個獨立的平台,也有人猜測 Apple Watch APP 可能有專屬的 Watch APP Store,不過直到相關細節正式公開介紹,大家才漸漸得知 Apple Watch 只是 iPhone 的一項附屬型的產品。可是,到底是怎樣的附屬方式呢?其實從開發者的角度,來嘗試開發 Apple Watch APP ,就能很快地理解了。

文章標籤

benjenq 發表在 痞客邦 留言(1) 人氣()

IMG_0001.PNG    

不眠不休,棄而不捨的搞了好多天,終於把In-App Purchase的問題搞定了,嚴格說來啟用In-App不難,但難的是一旦有問題時不容易了解問題出在哪,得花很大的精神去檢查,所以趁剛搞定時趕緊來寫個簡單的心得。希望和我一樣的有志一同,想上AppStore用IAP賺錢的iOS開發者,可以少走一點冤枉路...

首先是設定的部份,步驟相當的複雜且煩瑣,但是可以參考底下這篇文章,它把整個設定和程式碼的部份交代得非常詳細,請務必照這篇文章來試做,且每一個環節都不能疏忽,所以我這邊就不再重複了。

benjenq 發表在 痞客邦 留言(2) 人氣()

2016.09.26 最新五碼達人於 2010 年當時的時空背景條件下,分成免費 (Free) 與付費 (Pro / HD+) 兩種版本,隨後 iPad 在台上市時便第一時間支援 iPad 版,並區分不同的功能限制。時至今日,已將付費版的功能下放到免費版中,免費版只需透過內購功能 (In-app Purchased) 即可享受付費版的全部功能,因此再各自更名為「五碼達人」(免費版)與「五碼達人 Pro」(付費版)。

換言之,免費版 + In-app (NT$ 30元)= 付費版(NT$ 30元),兩者的功能全部都一樣,僅僅只是顯示的 icon 跟名稱的不同。大家可以先下載免費版。若真的需要全部功能的話,在免費版內透過內購解鎖,或是直接購買付費版,兩者則一即可。

Free_Pro_Logo


五碼達人軟體發展至今,差異列表如下(2016.09.26): 

  五碼達人 Pro (付費版) 五碼達人 (免費版) 
地段及郵遞區號查詢
支援六都新制
地址中翻英
地圖定位
手動拖曳定位
支援 iPad
E-Mail寄出中英文地址 需解鎖
更新聯絡人地址
需解鎖
SMS簡訊/iMessage 需解鎖
剪貼簿功能

需解鎖
常用項目(歷史紀錄) 需解鎖
支援環境 iOS 5.1.1 以上,相容 iOS 10 iOS 5.1.1 以上,相容 iOS 10
支援語系 繁體中文

繁體中文

 


benjenq 發表在 痞客邦 留言(0) 人氣()

身為一個程式設計者,寫過那麼多支程式都是為了應付老闆或客戶需求,難免希望有一支程式作品可以代表自己,讓大家因為使用這支程式而認識你,看到你的價值。而 AppStore 提供了這個平台,幾十萬支程式就在這平台上流傳著,只要有心成為一員,你也可以在這平台上發表自己的程式,供全世界的人下載使用,甚至付費,賺錢多一筆額外收入。

就某些程度來說,AppStore 平台的確滿足許多程式設計師多年來的夢想,對於有心想嘗試人來說,我個人有一句體驗深刻的話,那就是:

「有 Hello World,就有 Hello AppStore」

IMG_1982.PNG

 

benjenq 發表在 痞客邦 留言(5) 人氣()

隨著「五碼達人」在AppStore的排名漸漸滑落,除非有人特別推薦,我想應該不會再有「出乎意料之外」的情況了。現在可以和靜下心來,和各位初步分享這段時間之內的心得。

我用「出乎意料」來形容,的確,這次「五碼達人」的AppStore上架之旅,給我太多當初原本想無法想像的過程和體驗。

免費版上架第二天就站上台灣不分區免費軟體第一名,晚一天才上架的Pro版更於免費時段內,短短12小時內就把已經第一名的Free免費版幹掉,造就了同款工具軟體分佔1.2名的奇妙現象。Pro版第二天開始收費之後,也隨後站上台灣付費不分區軟體第三名。

IMG_1982.PNG

這些現象全都超乎我當初的預期,只因為這才只是我的第一次,我的第一次將自己新手打造的iPhopne軟體,推上AppStore的經驗。

benjenq 發表在 痞客邦 留言(1) 人氣()

(2016.09.26 更新) 五碼達人已經六年了!為因應這六年來太多的環境變遷(如五都 + 桃園縣升格、教育部「台」字用法修正公告、iOS 版本演變、蘋果產品的分歧與多樣化...),所以五碼達人也必須再改版了。雖然畫面和功能大同小異,但骨子裡的程式,已經是全部重寫了。

  • 更新至民國 105 年資料,即直轄六都版。
  • 強化關鍵字搜尋功能,支援多關鍵字搜尋,如輸入「中和 永和」(中間用空白隔開),可查詢得到如同繞口令的結果。
  • 搜尋邏輯加入「台」與「臺」相互識別的功能,不用再為了搞清楚到底是台還是臺而傷透腦筋!
  • 修正大量操作可能發生的錯誤結果。
  • 相容 iOS 5.1.1 ~ 10。
  • 程式碼全部重寫,並致力於保留彩蛋功能和舊版地段資料。

也因為程式重寫了,所以也把先前 免費/付費/iPhone/iPad 各種版本對應不同功能項目的紊亂情況重新整理過。現在區分版本的方式簡單了,免費版提供內購解鎖功能,購買解鎖功能之後就擁有所有的功能,等同於付費版。但付費版也不會下架,畢竟當初也有不少用戶是用購買支持小弟的,除非 Apple 依審查規範「相同功能不得另開 APP 上架」的規定,萬一發生也只好跟付費版用戶說聲抱歉了,

在 iOS 7 的扁平化 UI 之後,為了保持一貫的使用感受與追求最大相容性,要維持舊版樣式反而是一件超級麻煩的事,所以現在幾乎所有的應用型 App 全都放棄 iOS 7 以前的支援。不過我對擬物化風格有執念,所以特別想維持原來的擬物風格,尤其是主畫面的滾輪選擇器,得用盡各種障眼法,才能讓新的滾輪物件,看起來像原來一樣有擬物化的感覺,

已經在 iPhone 7 Plus (iOS 10.1 Beta) 與 iPhone 4 (iOS 5.1.1) 和各種不同版本的 iPhone / iPad 上測試過,皆能正常運行無誤。尤其是 iPhone 7 (Plus) 的觸覺回饋機制,搭配精心還原的擬物化風格介面,讓主畫面選擇器操作感相當的逼真,有機會一定要感受一下,真的很屌、很難形容!

Screen Shot 2018-01-02 at 上午9.42.46

benjenq 發表在 痞客邦 留言(14) 人氣()