iOS生產(chǎn)力之小工具合集

初識iOS平臺已幾月有余,作為一個從windows平臺轉(zhuǎn)型過來的開發(fā)者,曾經(jīng)有人在微博煞有介事問我轉(zhuǎn)型體驗如何? 我想除了全新的平臺暂题、開發(fā)語言所帶更多的挑戰(zhàn)和新鮮感,如果能夠在不斷磨練技能中日益精進做出更好的產(chǎn)品,這未嘗不可是一件值得嘗試的事情.反言之如果能夠在一個合適時機把自己原來經(jīng)驗適當(dāng)?shù)摹跋窗住敝匦麻_始積累,我更愿意選擇iOS作為新的起點而不是Android,并非詆毀否定Android這個平臺,而是付諸同等成本來做一件事钓试,在我看來Android所能給我?guī)淼恼T惑(或者理解為附加值)遠比iOS帶來的要小的多.所以當(dāng)初在轉(zhuǎn)平臺之初,在這個問題上我并沒有做過過多的搖擺甚至可以說基本沒有考慮Android平臺裂垦,目標(biāo)很明確.?

當(dāng)然更沒有所謂“轉(zhuǎn)型陣通”這么一說.整個過程一切都是順其自然,所謂的不適應(yīng)也在比我預(yù)想更短時間很快被克服了.如果不去嘗試怎么能知道自己其實已經(jīng)手握通往另外一個世界鑰匙呢...

The Gate Via By Davide Bianchi [From 500px]

在windows平臺下強大的IDE-Visual Studio臃腫的身軀下姻乓,除了把開發(fā)人員變得更”懶"和不明就里之外,其實也不乏極具效率生產(chǎn)力工具的封裝.比如調(diào)試用如果用VS和Xcode對比那真的欺負小朋友嵌溢,至于Auto-Complete(自動完成)和Call Tip(聯(lián)想提示)那就更甩開幾條街了.VS可以從設(shè)計,開發(fā)蹋岩,到測試赖草,部署和維護的管理項目的整個生命周期。如果從這個角度來理解所謂的“集成開發(fā)環(huán)境 (IDE)”的話剪个,VS顯然比XCode先進太多了.問題是在Mac平臺上蘋果一直嘗試從編譯器層面上把控一切.換言之Xcode在這個諾大平臺上是沒有對手的.到了"獨孤求敗"的地步.反觀VS,在不同時期則完全不同.不知道是否有人記得很久之前VS有一個強勁的競爭對手-Borland出品的IDE環(huán)境秧骑,包括Delphi, Borland C++等等。這個對手促使Windows平臺的IDE理念不斷進化以便從競爭中勝出.才回有今天各位看到不斷進化的VS版本陸續(xù)發(fā)布.

Visual Studio Vs Xcode [via Binary Wasteland]

當(dāng)然在開發(fā)學(xué)習(xí)過程中其實并不妨礙用使用其他平臺積累的開發(fā)經(jīng)驗來做對比.從生產(chǎn)力角度來說扣囊,那些還停留在語言之爭而非如何更好使用好語言本身其實大多是徒勞無益的.工具意義在于從繁復(fù)和支系龐雜邏輯中解放出來乎折,能夠?qū)で笠粋€最快或者最直接解決問題的路徑,有人老是在爭論工具好壞與否侵歇,其實你可以理解每個工具都在嘗試用自己角度達到所謂“最優(yōu)解”笆檀,而人和使用成本以及生產(chǎn)力效率因素都可以使用者身上尋求變通得到一個平衡,比如善用Xcode中優(yōu)質(zhì)第三方插件和工具就是當(dāng)下面對所謂Xcode不完美是一個很好的嘗試.

1.Linguan

最近負責(zé)客戶端整個國際化模塊,對于整個應(yīng)用程序國際化它在技術(shù)實現(xiàn)其實并沒有難度,問題在于整個項目開發(fā)工作就像你在客廳羊絨地毯上吃面包盒至,而國際化就是你站在羊毛毯中間不斷掉落的面包屑-繁雜而瑣碎.

主要工作量在于Resource目錄下Localizable文件多語言文件支持的整理.而Localizable文件是純文本格式來存在國際化語言的數(shù)據(jù).如下:

Localizable文件

文本格式雖然簡單直接酗洒,但不利于再直接編輯后對錯誤標(biāo)示進行提示,而尋求比對缺失key上難度較大.最關(guān)鍵的問題是當(dāng)需要全新支持一門新的語言時,不得不生成一個新的String文件枷遂,給產(chǎn)品去翻譯,但這種做法無法保證在合并翻譯后的內(nèi)容一次性無錯情況下通過編譯.經(jīng)常出現(xiàn)的問題是翻譯回來因為一個字符因為產(chǎn)品翻譯采用編輯器不同導(dǎo)致編碼不一致或者在修改因為人工失誤導(dǎo)致缺失,這給翻譯后找錯過程增加了難度樱衷,而其實這個問題可以操作過程中就可以避免的,Xcode在項目資源協(xié)作較弱的問題相對于VS就凸顯出來了.而恰恰因為這點給了Linguan用武之地.

Linguan

Linguan的GUI確實非常接近VS中針對多語言支持Key-Value(鍵值對)編輯界面,而Linguan為Xcode項目中所有strings文件提供了智能化的編輯器。在你復(fù)制重復(fù)Key或者丟失翻譯的時候酒唉,Linguan會提示警告例如如下:當(dāng)兩個相同的Key采用不同的值就很明確給出警告:

重復(fù)Key提示

同時矩桂,你可以輸出針對某種語言丟失的Key發(fā)給你的產(chǎn)品去翻譯,產(chǎn)品當(dāng)然也可以同樣使用Linguan完成翻譯,這樣大大簡化國際化翻譯后糾錯編輯工作量.可謂一舉兩得.

2.SimPholders

iOS本地文件IO存儲上其實和WP平臺都是采用同樣沙盒機制-既應(yīng)用只能自己在存儲空間讀寫痪伦,且應(yīng)用與應(yīng)用之間彼此不可見的.如果在Debug時需要看本地存儲數(shù)據(jù)文件如何來做?常規(guī)方法是:

找到Finder前往文件夾輸入:

~/library/Developer/CoreSimulator/Devices/3CB828D3-9F35-4B23-B8D4-AC3B2CDC6F06/data/

這樣導(dǎo)致每次Type流程容易出錯且非常耗時.SimPholders可以讓你快速直接地訪問iPhone模擬器應(yīng)用的app文件所在目錄. 可以通過SimPholders找到數(shù)據(jù)庫文件侄榴、永久存儲以及緩存數(shù)據(jù):

SimPholders

在應(yīng)用Debug調(diào)試時非常實用,同時還可以離線使用.但問題是這就足夠了嗎?

我曾在Windows phone應(yīng)用開發(fā)[15]-輔助工具一文提到了WP平臺關(guān)于沙箱本地查看工具-IsostoreSpy

IsostoreSpy

IsostoreSpy能夠做到:

A:直接遍歷所有文件存儲子路徑.

B:直接查看文本、圖片网沾、語音等文件內(nèi)容不需要額外打開.

C:直接調(diào)試真機上傳癞蚕、下載、刪除沙箱中任何文件資源.

D:直接卸載&安裝應(yīng)用程序.

雖然SimPholders這個小工具很好解決了入口路徑過深打開不便的問題.但相比IsostoreSpy差距在與如果如上功能內(nèi)聚進來辉哥,不需要開發(fā)者直接訪問本地文件方式去操作沙箱文件.而是全部聚合到SimPholders工具本身不要兩邊來切則更方便了.

3.Unused

最近我們一直討論包大小太大的問題.包太大不利于分發(fā).其中就提到關(guān)于整個Project 廢棄的圖片資源剔除到應(yīng)用程序外做法.現(xiàn)在做法是檢索整個Project看圖片是否存在引用桦山,如果沒有則直接干掉,但如果整個Project圖片資源過多,這個方法顯得極為笨拙且效率底下.針對這個問題在github上花了點時間找到找到Unused這個小工具.Unused可以查找整個Project中對應(yīng)文件格式中未使用的圖片資源,最關(guān)鍵它是可視化的形式展現(xiàn)出來.支持查找格式也較為全面.如下是我run我們客戶端發(fā)現(xiàn)廢棄圖片資源的結(jié)果(不一定對僅供參考):

Unused運行廢棄圖片資源結(jié)果

其中涉及到廢棄資源內(nèi)容多達幾百項.留意一下注意到很多是因為版本迭代需求更改后對應(yīng)圖片資源也跟這廢棄了醋旦,但因為對應(yīng)廢棄代碼沒有刪除恒水,所以引用圖片資源一直存在導(dǎo)致的,還發(fā)現(xiàn)一種情況是整個project中出現(xiàn)重復(fù)圖片資源的情況.建議采用Unused針對指定對整個Project圖片重新梳理.特別提示一下很多首頁天氣動畫圖片引用是在Xml文件中.注意Unuserd目前還未支持xml格式.當(dāng)然有源碼饲齐,可以基于源代碼做一次擴展即可.

4.ImageOptim

上文提到關(guān)于Project中廢棄圖片資源剔除的問題.順便找到了一個關(guān)于圖片壓縮比率最高的圖片壓縮工具[ImageOptim].我一直以為png已經(jīng)是無損格式所以無法被壓縮.但沒想到壓縮比例依然很高,類似如下我放了三個png和一個jpeg文件壓縮比例對比:

壓縮比例對比結(jié)果

可見Png格式下可被壓縮比例還是很高的,基本都接近了50%左右.注意目前ImageOptim工具只支持壓縮JPEG和PNG兩種圖片格式. JPEG 與 PNG 的壓縮時間不等钉凌,JPEG 很快,差不多3- 7 秒;但 PNG 很慢捂人,差不多 30 秒御雕。只有左邊提示綠色對勾才表示壓縮成功.

這里有有幾個小技巧.為了提高 JPEG 的壓縮率其實可以將ImageOptim偏好設(shè)定中「JPEGOptim」最佳質(zhì)量從默認的 100% 調(diào)降為 80%:

JPEGOptim設(shè)置

原本設(shè)定質(zhì)量 100% 的情況下矢沿,JPEG文件差不多只能壓到 90%;調(diào)成 80% 之后文件可以壓到只有 40%.提高一倍左右.當(dāng)然如果PNG格式文件較大,壓縮PNG時間會很長.將ImageOptim偏好設(shè)定中「PNGOUT」的優(yōu)化類型,從默認的「極端」調(diào)降為「簡易」:

PNGOut設(shè)置

如此一來壓縮率不變饮笛,但壓縮時間卻可以減少二分之一.可以保證壓縮比最高的情況咨察,極大節(jié)約了壓縮時間.

關(guān)于這個工具有一個需要注意地方是當(dāng)把圖片拖入工具中就會立即開始壓縮.壓縮后的圖片會覆蓋原來的圖片.如果你要保留壓縮前的圖片最好在拖入壓縮前復(fù)制一份.

后面還有陸續(xù)有4個左右的工具還未介紹,本篇篇幅已經(jīng)很長.考慮到閱讀效率將剩下小工作放在下一個篇幅來介紹.當(dāng)然如果有你有更多關(guān)于IOS開發(fā)小工具和使用的奇淫技巧.不妨在評論提到.最后拓展閱讀有對應(yīng)工具下載地址和使用论熙,各取所需.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末福青,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子脓诡,更是在濱河造成了極大的恐慌无午,老刑警劉巖低淡,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乏悄,死亡現(xiàn)場離奇詭異,居然都是意外死亡树碱,警方通過查閱死者的電腦和手機交惯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門次泽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人席爽,你說我怎么就攤上這事意荤。” “怎么了只锻?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵玖像,是天一觀的道長。 經(jīng)常有香客問我齐饮,道長捐寥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任祖驱,我火速辦了婚禮握恳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捺僻。我一直安慰自己睡互,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布陵像。 她就那樣靜靜地躺著就珠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪醒颖。 梳的紋絲不亂的頭發(fā)上妻怎,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音泞歉,去河邊找鬼逼侦。 笑死匿辩,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的榛丢。 我是一名探鬼主播铲球,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晰赞!你這毒婦竟也來了稼病?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤掖鱼,失蹤者是張志新(化名)和其女友劉穎然走,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戏挡,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡芍瑞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了褐墅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拆檬。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖妥凳,靈堂內(nèi)的尸體忽然破棺而出竟贯,到底是詐尸還是另有隱情,我是刑警寧澤猾封,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布澄耍,位于F島的核電站,受9級特大地震影響晌缘,放射性物質(zhì)發(fā)生泄漏齐莲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一磷箕、第九天 我趴在偏房一處隱蔽的房頂上張望选酗。 院中可真熱鬧,春花似錦岳枷、人聲如沸芒填。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殿衰。三九已至,卻和暖如春盛泡,著一層夾襖步出監(jiān)牢的瞬間闷祥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工傲诵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凯砍,地道東北人箱硕。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像悟衩,于是被迫代替她去往敵國和親剧罩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 圖片通常是移動端流量耗費最多的部分座泳,并且占據(jù)著重要的視覺空間惠昔。合理的圖片格式選用和優(yōu)化可以為你節(jié)省帶寬、提升視覺效...
    傻傻小蘿卜閱讀 743評論 1 9
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,522評論 25 707
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議钳榨。它實...
    香橙柚子閱讀 23,730評論 8 183
  • 移動端圖片格式調(diào)研 圖片通常是移動端流量耗費最多的部分舰罚,并且占據(jù)著重要的視覺空間纽门。合理的圖片格式選用和優(yōu)化可以為你...
    AngeloD閱讀 1,234評論 0 5
  • 張萌 分享第三天 大學(xué)學(xué)的是旅游薛耻,大四下半在旅行社實習(xí)發(fā)現(xiàn)自己并不適合,過了幾個月就再也不想呆下去了赏陵,于是辭職走人...
    莫星月閱讀 186評論 0 0