2016-08-21

在 IDE 編輯器前面出現的 Entry Types

前文: 簡碼到用時方恨少

從 Xcode 的 Code Autocomplete 出現的提示畫面前都有個小圖示的符號,像這樣
C 你應該曉得是 Class,那麼 # 字號呢?你用過 NSDictionaryOfVariableBindings 應該知道是 Macro,但是你有沒有想過去那裡查詢嗎?

這裡是 iOS、OS X 的代碼


以及 Swift 的代碼


希望對你有所幫助

.

2015-04-02

React Native: Web 前端設計師開發原生 OS App 的最佳選擇

幾年前 PhoneGap 剛出爐時,我評估過這個號稱可以跨平台的開發工具,它可以用 HTML+Javascript 編寫 App。

不過,實際使用上並不是很能接受它的效能。



這幾天 Facebook 發佈(註1)的 React Native 很有意思,會讓喜好 Native iOS App 的 Objective-C 或是 Swift 的設計師出現挑戰,這會是另一個 Native iOS App 的選擇!


它讓熟悉 HTML+Javascript 的前端設計師也可以寫出有效能的原生 App。



一般人理解的跨平台開發,通常是寫一套程式,可以在所有平台編譯執行,可是實際上還是有很多小細節需要調整;React Native 切入點有意思的不是號稱跨平台,而是只要學會一種程式語言 (如 Javescript) 就可以在各個平台編譯執行。


更有趣的是,它還可以與現有的 Project 結合,透過 Protocol interface 連結。



只要你會一些 Javascript/jQuery,有興趣的話,可以花個 30 分鐘就能完成一個非同步傳輸的 App!


1.照著這裡 http://facebook.github.io/react-native/ 了解一下。(5 分鐘)

2.進入 [Get started with React Native] 安裝。(5 分鐘)
3.進入右下角的 [Next->] 按著步驟實作。(20 分鐘)
目前 React Native 只有 iOS,為了一定也會有 Android 或是 Windows Phone,您可以先來試看看。


**註1: 這個 React Native 是 Facebook 公司發行。


**註2: 我再進一步介紹:
我一直說「全民程式語言」泛指的是網頁 html+Javascript+css 的語言設計。

只要你學會了 html+Javascript+css 就有機會寫 APP。

那為什麼要「Native 原生」呢?
原生程式的意思是設計後,軟體開發工具提供我們編譯製造後,直接與作業系統溝通的機械碼,大家所認知的「執行檔」。

於是,寫 iOS APP 就要會 Objective-C 或 Swift,寫 Android APP 就要會 Java,才會製作出符合各 OS 的原生執行檔。

雖然這幾年有一些跨平台的開發工具可以使用 html+Javascript+css 來設計 APP,但是是透過「翻譯處理」。
這些跨平台的開發工具因為加上一層「翻譯處理」,所以在效能上與操作上會有些不順手。

很多幾年前使用跨平台開發工具的軟體公司,最後還是選擇 Xcode 或是 Eclipse ADT 開發 iOS 與 Android 的 APP。

而這個由 Facebook 發行的 React Native 試圖要突破這個學習門檻,你只要會 html+Javascript+css 一樣可以寫原生 APP。



**延伸閱讀
http://www.raywenderlich.com/99473/introducing-react-native-building-apps-javascript

.

2015-01-07

OS X 與 iOS 的「接續互通」之「Handoff」

OS X Yosemite 與 iOS 8 有個 [Continuity](接續互通) 的特點,你可以參考官方網址

其中的 [Handoff] 可以讓你將工作從電腦與行動裝置之間無痛接續,WWDC 2014 也有指導你如何加入這樣的機制。

基本上需要這兩項:

  1. BTLE
  2. NSUserActivity

你可以參考 Handoff Programming Guide
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/Handoff/HandoffFundamentals/HandoffFundamentals.html

也可以參考 WWDC 2014
https://developer.apple.com/videos/wwdc/2014/?id=219

著名的 Raywenderlich 也有教學 iOS 8 Handoff Tutorial
http://www.raywenderlich.com/84174/ios-8-handoff-tutorial


其他參考資源:

Tutorial: A Step-By-Step Guide To Programming The Handoff Feature In iOS 8
https://maniacdev.com/2014/12/tutorial-a-step-by-step-guide-to-programming-the-handoff-feature-in-ios-8

Working with Handoff in iOS 8
http://www.appcoda.com/handoff/

Working with iOS 8 Handoff Part 2: Using Continuation Streams
http://www.appcoda.com/handoff-continuation-streams/

.

2014-11-14

Xcode 6 在模擬器 iPhone 5 + iOS 7 的版面上下黑邊

如果您在 Xcode 6 發現了模擬器以 iPhone 5 執行 iOS 7 時,是以 320x480 的版面而非 320x568 時,應該如何排解?
Xcode 6 執行選擇 iPhone 5/5s + iOS 7.1

iPhone 5 + iOS 7 不應該上下有黑邊
照理說,iPhone 5 應該是 4 吋 Retina 的解析度 320x568 不應該成為 320x480 而讓畫面留下上下的黑邊。

原因是這樣:

原來是在 4 吋 Retina 的設備,少了 Default-568h@2x.png 的啟始畫面。

註:在 iOS 7.1 以前需要的啟始畫面檔案
  • Default.png - 320 x 480 pixels (standard resolution iPhone)
  • Default@2x.png - 640 x 960 pixels (high resolution iPhone 4)
  • Default-568h@2x.png - 640 x 1136 pixels (iPhone 5)



所以,如果您的 App 專案有這樣的設定時:

解決的方式,除了可以加入一個 640 x 1136 的 Default-568h@2x.png 檔案之外,可以在 Project 的 TARGETS 設定內,從 General 頁面內的 App Icons and Launch Images 將 Launch Images Source,按下「Use Asset Catalog」


您再執行看看,結果就不會在 iPhone 5/5s + iOS 7.1 的畫面上下出現黑邊了。

.

2014-10-21

Mac OS X Yosemite 優勝美地 - Mail 郵件內的附件標示

您的 Mac 升級 OS X 10.10 Yosemite 優勝美地了嗎?
先來介紹 Mail 的標示功能給您。

新增 mail 郵件,您可以在附件的 PDF 或是圖片上標示。

比如說,要約定哪個地點碰面,從地圖上找好了位置,可以分享到 mail 新增郵件,這時候地圖的畫面會截取在郵件內文。

在圖片右上角可以看到有個下拉功能表
你可以在圖片右上角看到有個可以下拉的功能表,按下這個功能表,可以看到「標示」的功能。

這時候會出現標示的工具列。
標示工具列
看了你就會使用,是不是很方便呢! 
這樣就標定好位置

.

2014-07-09

Mac App 的 NSTextField Number Formatter - 處理小數點位數

前陣子為了解決 MacBook 畫面頂端功能表,因為程式的不同而有項目多寡,導致常駐程式被隱藏起來,像這樣:
Finder,有些常駐程式看不到


Xcode,常駐程式看到更少



於是做了一個 Mac App 叫做 M。
常駐程式全部都出來了吧

畫面很簡單:只有留一個 M 的程式名
後來加了「度分秒」與「度數」轉換,在查閱 Google 地圖時可以換算。
但是習慣小數點後面 4 位數,於是就找了一下:



按照這 4 個步驟,Xcode 夠可愛吧,簡單!

於是,小數點位數也正確了。


如果你有需要的朋友,可以免費下載使用

.

2014-04-17

2014 年 The Future Of Mobile! 報告 (ref from Business Insider)

三月21日,美國網路媒體 Business Insider 總編輯 & CEO Henry Blodget 發布了 2014 年 The Future Of Mobile! 的報告。

原文網址在此:The Future Of Mobile! [SLIDE DECK] (2014)


對於研究智慧型行動運算設備很有參考價值。


2013 年,智慧型手機已經大幅領先個人電腦
2012 年,智慧型手機與平板將近是個人電腦的兩倍
2011 年,智慧型手機數量已經接近個人電腦了

那麼,來看看開發者吧!先來看 Android 在全球的市場佔有率,的確是多到不可想像。


有 80% 的智慧型手機都是 Android
有 60% 的平板都是 Android
全球將近有 60% 的設備執行 Android
但是,開發時的碎片化問題還是存在!
Android 在開發設計或是使用上,還是 KitKat 4.4 比較成熟,也可以支援藍牙 4.0 BTLE (Bluetooth Low-Energy 4.3 版以後才有加入),雖然 Jelly Bean 有 61%,但是 Jelly Bean 又有區分 4.2 與 4.3 版,如果要採用藍牙 4.0 的應用,還要等一段換機潮。

而且 GingerBread 2.3 版大概只適合拿來講電話,很多 App 都不適用了。
另外 Ice Cream Sandwich 4.0 也是過度未來平板而生,這裡碎片最嚴重了。
KitKat 只有 2%
那麼在簡單使用、優質體驗的結果,也是要等一段時間,多久?你看看 GingerBread 2.3 版有 20% 的使用者都不願意換機了,你要如何在 Android 的設備提供藍牙 4.0 BTLE 的應用?


至於美國的市場狀況:

Apple iOS 的佔有率還是很強!

iOS App 的收入還是比 Android 多

iOS 的收入還是比 Android 多
在電子商務網站的交易,還是 iOS 設備可以信賴
應該是 iOS 比較安全,所以才敢在手機消費

無論如何,很明顯地從這張圖表可以看到,行動運算的使用率與去年相較,從 7% 的時間增加為 15%,明年還會增加嗎?

會哦!




簡體中文分析:

【重磅】86页PPT:美国发布移动互联网未来报告!
(ref from 織田紀香 超重量級市場分析報告)


如果,您要參考 2013 與 2012 年的報告,原文網址在此:

The Future Of Mobile! [SLIDE DECK] (2013)

.

2014-03-01

Xcode 使用 /* ... */ 的快速鍵

大部份的朋友都知道 ⌘ + / 可以加上單行註解,或是將程式碼選取的那幾行註解。
可是,Xcode 是加上 // 的註解,如果你需要的是區塊註解「/* ... */」的話,那麼要用哪個快速鍵呢?

善用 Mac 的 Automator 吧!


做法可以參考 WWDC 2012 Session 402 - Working Efficiently with Xcode,在 6 分鐘處。


使用 Automator 加入 Service 服務,指令如下:


awk 'BEGIN{print "/*"}{print $0}END{print "*/"}'



然後在你的 Xcode 內就可以在選取的區塊,按下右鍵(或是 Ctrl+Click) 在 Service 選取你設定的 Service 名稱。




WWDC 2012 Session 402 - Working Efficiently with Xcode 

https://developer.apple.com/videos/wwdc/2012/


圖解可以參考 行動開發學院

.

2014-01-12

螢幕解析度筆記

Graphics display resolution

這裡敘述螢幕顯示比例的衍進,從 4:3、16:10 到 16:9 的過程。

最早是電視娛樂產業主導的 4:3 比例,接著因應寬螢幕的市場需求,有電腦產業主導的 16:10 與娛樂界的 16:9 在市場上大混亂。

16:10 就在 1995–2010 大放異彩。

直到 2011 市場上逐漸都以 Full HD 1920x1080 為標準了。

從 2013 進入的 Ultra HD (俗稱 4K) 3840x2160 將會成為下一代的標準。


Aspect ratio 常用的比例如下:

Video Graphics Array (VGA 640x480)
Extended Graphics Array (XGA 1024x768)
Quad Extended Graphics Array (QXGA 2048x1536)
Hyper Extended Graphics Array (HXGA 4096x3072)

High-Definition (高解析畫質)
  • HD (1280x720)
  • FHD (1920x1080)
  • UHD (4K) (3840x2160)
.

2013-10-31

一套 App 幫你快速建立 Icons 的軟體 IconFly

我一直在找一套可以幫我快速產生 Icon 的 App,剛好在 Mac OS 的 App Store 看到:
https://itunes.apple.com/tw/app/iconfly/id556381974?l=zh&mt=12


它可以很快幫我們產生 Mac App Icon、iOS App Icon,甚至連 Web 的 Icon 都可以,你不用再查表問格式、檔名... 

只要將 1024x1024 的檔案準備好就可以。



除此之外,還可以幫我們的 Folder 檔案夾的 Icon 置換成自己設計的 Icon

ps.感謝魏巍書本封面借我說明。

.

2013-09-11

簡碼到用時方恨少

需要時可以查閱。


在這裡,看到了吧!


編輯器輸入點移到關鍵字後面,按下 ESC 按鍵,就可以看到。

.



2013-09-08

電腦儲存空間怎麼消失那麼快?

MacBook Pro 或 MacBook Air 使用 SSD 的儲存硬碟,大多數的人會覺得,怎麼空間那麼快就不夠使用?到底哪些檔案佔用硬碟儲存空間?

我從 Slackware Linux 時也曾有過這樣的問題,發現 Unix 指令檢查很方便,於是到了 Mac OS X 也就一直這樣查:

-m 是以 mega bytes 大小列示
然後再 google 查看看哪些 path 是什麼用途、可不可以刪除... 可是這樣也滿費時的。

剛好看到 App Store 的「Editors' Choice」推薦的 DaisyDisk,於是就買來用看看。


還真的不錯,我可以很快地查閱哪些路徑檔案佔用我的硬碟儲存空間。

你可以由內而外,從圖形化的比例大小檢查





想知道實際的路徑在哪裡,可以開啟功能表從 Show in Finder 開啟


如果你也有這樣的需要,可以買來使用,很方便!
.

2013-06-20

iTunes Connect 無法登入?

在 Facebook 看到有人提問 iTunes Connect 無法登入的問題,以為是 iTunes Connect 故障。

這個界面那麼重要,關係你的 App 上架、帳務、人員管理的後台,怎麼能夠故障呢?

iTunes Connect 無法登入的畫面

我自己也遇過幾次,原因是 Cookie 的關係,通常 Apple 會教你「重置 Safari...」再將 Cookie 清除就可以了。

選擇「重置 Safari...」

舊版的 Safari 在功能表看不到 Cookie,可以從「偏好設定」的「隱私」找到。

.

2013-06-05

UIColor 存放到 NSDictionary/NSMutableDictionary 內

之前有篇提到「UIImage 存放到 NSArray/NSMutableArray 內」讀過之後,是不是了解到 imageNamed:imagePath 並不是直接將 imagePath 路徑內的圖片載入 Array 內了?

這次來看看 UIColor。

如果你這樣用:

NSDictionary *dict0 = [[NSDictionary alloc] initWithObjectsAndKeys:
                           @"紅色", @"CColor",
                           [UIColor redColor], @"EColor",
                           @"YES", @"Fill",
                           nil];

Xcode 會跟你這樣說:
-[UICachedDeviceRGBColor bytes]: unrecognized selector sent to instance 0xa9671e0
ColorInDictionary[7955:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UICachedDeviceRGBColor bytes]: unrecognized selector sent to instance 0xa9671e0'
原因是 NSDictionary 內容不允許你直接存入 [UIColor redColor] 的關係。


於是你要將 [UIColor redColor] 包裝起來,改用 [NSKeyedArchiver archivedDataWithRootObject:[UIColor redColor]]

像這樣:

NSDictionary *dict0 = [[NSDictionary alloc] initWithObjectsAndKeys:
                           @"紅色", @"CColor",
                           [NSKeyedArchiver archivedDataWithRootObject:[UIColor redColor]], @"EColor",
                           @"YES", @"Fill",
                           nil];

取用時再拆開,還原成 UIColor 即可

UIColor *colorNow = [NSKeyedUnarchiver unarchiveObjectWithData:[dict0 objectForKey:@"EColor"]];


.

如何統計你的工作效能

你花費了多少時間在你的工作上?

每天八個小時辛勤地工作,但是不見得是整天做同一件事,那麼你要如何統計出你的專案到底在你的工時裡佔用的時間與成本?

我想大家都一樣被一般雜務佔了大部份時間(單位 hh:mm)
你看看,雜務的工作是不是消耗了你很多的成本?

你的工作效能是不是可以從這裡抓出問題來了?


記錄工作效能有個好處,如何精準報價。

很多剛開始接專案的朋友問我,要如何向客戶報價?

其實你要評估你自己的能力,而你的能力不可以信口開河,你先給自己一段時間統計分析,才會對自己有自信,面對客戶報價時,如果沒有自信胡亂報價,客戶一眼就看得出來!

我自己在上班族的時候,不用老闆規定就養成自己記錄工作的習慣,幾年下來就可以很快評估自己需要的工時與成本,透過工具調整自己的工時成本。

對於獨立開發商、開發者而言,如果你看到統計表之後,你會更加珍惜你的時間。


工具呢?在 Windows 時我習慣用 MS Project,但是 iPhone App 盛行之後,有很多 App 可以讓你選擇,我最早選了 Billings 這套,因為它可以與電腦桌面同步。


這是一套很好用的工作管理軟體:Billings Pro。


它有電腦版也有手機版本、平板版本

產生客戶對帳單

應收帳款管理與追蹤

幫你分析你的財務資訊

下載安裝:
https://itunes.apple.com/tw/app/billings-pro/id434514810?mt=12