一次 Cocoa App(macOS App)開發嘗試

「咱們從小就聽長輩們提及過懶漢,彷彿懶惰很不體面。實際上,沒有咱們的這些懶漢,恐怕就沒有社會的進步;沒有咱們的這些懶漢,勤勞的人面對的恐怕只會是單調乏味的勞做。」這裏引入小學課本學過的文章《懶惰的智慧》中的一句話,深覺得這句話就是對咱們程序員羣體的真實寫照,促進社會進步說的有點誇張,可是提升生產效率仍是不在話下的,這也是我本次紀錄的一點兒動力。vue

好好的開發 iOS,爲何要玩玩 macOS 呢?自我揣測每一位 iOS Developer(如下簡稱 iOSer) 的心裏中都有一個開發 macOS 的衝動,畢竟工具(mac + Xcode)和基礎技術(Objective-C, Swift)都是現成的,iOS 開發的應用須要上架才能使用,而 mac App 甚至均可以省略上架這一步,在朋友間傳播起來也方便得多。python

閒話少說,今天談談最近一次開發的 macOS App 開發者之刃 App Store開發者之刃 首頁git

App Store 頁介紹

功能包括:程序員

  • 色盤(存儲配色方案)
  • 圖標生成器(生成 iOS/macOS/Android 多尺寸圖標文件)
  • 圖像壓縮(基於 TinyPng
  • json 轉模型(json 字符串轉成 swift 模型對象)
  • 開源庫集(github 開源庫分類整理)等功能
  • 支持開機自啓動、全局快捷鍵、自動檢查更新等。

1. 從技術的角度談談作了什麼

1.1 開發了一款 macOS App

主要採用 Swift4.2 編寫「開發者之刃」,相比於 OC,Swift 的優點想必用過的朋友們都知道。github

「開發者之刃」的技術點大概以下:web

對於沒有開發mac 經驗的同窗,推薦劍指人心的 《macOS 應用開發基礎教程》,入門是完徹底全沒有問題的。「開發者之刃」裏面用到的技術基本上都能在這本書中找到,並且從徹底沒有 mac App 開發經驗到上架一個完整的 App,本人是照着書中內容一步步走下來的,這裏也一併感謝下做者。sql

1.2 順手擼了個服務端

採用 Python 的 Flask 庫搭建的服務端,操做簡單,功能全面。IDE 用的是 PyCharm數據庫

這裏爲何要用「順手」二字呢?實實在在是沒有服務端的開發經驗,在網易雲課堂上看了一個教程,操起鍵盤就是幹。中間遇到問題就 Google 一下,不能解決的就直接繞過去了,因此到最後功能既不完善,也不繫統,但也勉強夠用。畢竟精力有限,以完善功能爲主,系統性的學習還任重而道遠。json

服務端的技術點大概以下:flask

  • pip: 包管理工具
  • http 請求、web 頁面:Flask 很容易實現
  • Vue: 漸進式 JavaScript 框架,快速構建 web 頁面

半吊子都算不上的服務端開發,這裏就不班門弄斧了,基本功能大概如上所訴。照着網易雲上的視頻 Python Flask系列(1)——基礎 學習的 Flask 基礎,感受講的挺好,淺顯易懂,寫個簡簡單單的頁面是徹底足夠了。

1.3 切了幾張圖

圖能夠切,審美就不沒必要較真了。

技術呢也沒有用到什麼技術(主要是我都不知道有啥技術,徹底兩眼一抹黑),這裏就簡單介紹下用的工具吧。

  • Sketch:輕量易用的矢量設計工具。易用易用,誰用誰知道。
  • iconfont:矢量圖標管理、交流平臺。免費圖標多種多樣,可下載源文件,也可指定顏色、大小下載。
  • tinypng: 智能有損壓縮圖片。「開發者之刃」中的圖片壓縮功能核心就是用的它的服務,壓縮率高,壓縮後的圖像幾乎肉眼看不到失真。

2. 談談爲何要作這個 App

前面提到了,每一個 iOSer 的心裏中都有一顆開發 mac App 的心,其實說白了,每個程序員的心裏中都有嘗試新事物的衝動。

確確實實解決開發中的一些痛點。服務端甩給客戶端一大串 json,咱們每次構建對象時煩不勝煩,機械重複的代碼只是在浪費咱們有限的生命與激情,因此有了《json 轉模型》的想法。設計給的色值一天三變,背景色、基礎字體顏色不統一,被他們一句「這個顏色就是以前用的」弄得痛不欲生,本身設計個玩意後,色值轉身就忘,因此有了《色盤》的想法。github 看到優秀的倉庫也不太想 star,實在是 star 的數量過多,想用的時候像是大海撈針,因此有了《開源庫集》的想法。本身寫個 App,要被切各個尺寸的圖弄瘋,切完還得一張張拖到 Assets 中合適的坑中,總之開發中總會遇到一些重複的工做,大概是能夠經過代碼處理的吧。

學習真的會令人快樂。當剛開始接觸一個新的技術時,汲取知識的快感是強烈的,不管是純粹的學習仍是單純想炫技,能學到東西總歸是一個很是好的結果。固然要深挖技術時的確會有痛苦,痛並快樂着吧。

3. 做一個簡單的總結

技術:

  • mac App 開發:Swift + Xcode
  • web 開發:Python + PyCharm
  • 切圖:iconfont + Sketch

資源:

相關文章
相關標籤/搜索