2012年2月7日 星期二

cloud app? is it possible?

2012/2/8
目前的資訊環境下,比較有在用電腦的人可能都有兩台以上的裝置,也許是桌機、筆電或ipad, table PC等等
但是資料的同步是一個問題
以目前來說,我會將自己常用的文件放到dropbox或sugar sync, skydrive、box.net之類的雲端儲存服務上
但是這樣的服務只保證了檔案的一致性,而且是一種..被動性的同步
這句話的意思是,我沒放到那資料夾的檔案是不會被同步的,例如瀏覽器上的書籤
接下來要面對的問題B是,這些檔案需要對應的編輯器或閱讀器,例如 .doc需要word, .pdf需要pdf viewer
目前最好的方式是使用遠端桌面進行處理,這樣可以保證編輯器的一致性
但是遠端桌面很消耗資源

cloud app的概念來自這個空白處:在不同裝置上,安裝同一程式的不同版本,連接其他裝置上的相同程式取得狀態
例如,在iPad上面開啟safari時,可以取得家中safari目前所開啟的頁面
在mac上開啟word時,可以使用網路服務取得另一台電腦上的word的資源進行編輯

在這種概念下
每台裝置都是client也都是server
當使用者在mac上開啟word時,它只是在電腦上開啟一個連線到win電腦的word程式的服務
對檔案的編輯動作都是在win電腦上執行

為什麼會想到這點呢?
因為我實在有點懶得每次出門都要把目前在瀏覽器上閱讀的頁面和想看的資料丟到dropbox或read it later上面給iPad看
如果能在iPad上面開啟瀏覽器或對應的程式,就直接連回電腦並同步的話,應該會方便許多

2012年2月6日 星期一

UI設計雜談:圖片位置對使用者的暗示

單論iPhone而言

照片放在左邊
暗示這是一張縮圖,使用者也許會嘗試點擊
但通常不會,因為這位置暗示了這圖片是一個icon, 事例

如果放在右邊,通常暗示了這照片是有延伸功能的
也許是可以點擊放大,或者是有其他相關的照片
如果讓他稍微傾斜、隱藏部份邊緣(如下,隱藏右邊內容,製造出向右延伸的意象)
模擬出資料夾上夾置圖片的效果,這暗示意味就更明顯了
IMG_1388-2012-02-7-00-10.PNG
如果有其他相關圖片,那在照片下面疊放多張照片的邊緣,那等於告訴使用者可以點我看多張照片

iPhoto使用心得

iPhoto是個不錯的軟體,可是我每次使用起來都卡卡的
今天又使用了一下,感覺依舊
思考了很久,終於發現了原因:我的使用邏輯和iPhoto預設的不同


iPhoto有很多方式管理照片
但是整合的不夠完善
尤其是第一步的事件管理..

我推測iPhoto的管理邏輯應該是
  1. 輸入照片,編排成事件,整理/篩選/編輯照片
  2. 針對照片進行分類或加上Tag
而我的使用方式是
  1. 把照片丟入iPhoto
  2. 把照片拉到對應的事件(我在這邊就已經先進行分類
  3. 從事件中拉照片到自己的資料夾,開始編輯/篩選(我在這邊才進行篩選/編輯作業
另外有一個問題是,iPhoto中對單一照片的編輯會對應到所有相簿中的同一張照片
這一點也和我預設的想法不同

這意思是,iPhoto的使用邏輯中,相簿中的照片應該是已經經過編輯的
"事件"只是一群時間相近照片的集合,方便使用者尋找
但因為我不是很注重照片的時間,而是注重照片的內容(tag)
因此在第一步我就和iPhoto犯冲了 XD



2012年2月2日 星期四

Titan: 使用實機測試及其前置需求

這篇文章講的是怎麼在Titanium studio 1.0.8(或之後版本?)安裝app到iOS device上
Titanium無法直接和iOS Device溝通,需要透過iTunes安裝app到device上
而要用iTunes安裝app,需要provisioning profile
provisioning profile需要有app ID和device ID
而app ID需要有apple dev帳號和certificate才能產生

這篇會從頭開始說明整個作法

第一步,請先付dev 稅然後登入apple dev帳號..
接下來可以參照 http://fstoke.me/blog/?p=1805 這邊的說明並建立profile

名詞說明:
certificate: 簽章檔案,每個dev account應該只會有兩組,分別對應到dev/dis環境,也就是說每個環境一組對應的certificate
device ID: 每個iOS device的唯一序列號,可以從xcode中的organizer看到
app id: 每個app的id,對應bundle identifier(如com.abc.app123)
provisioning profile: 以開發環境來說,就是一組綁定app ID+指定device id的檔案
白話一點的解釋,每個dev帳號會有對應dev/dis環境的簽章(certificate)
每個dev帳號可以有多個不同的app ID(程式)
而不同的app ID可能在不同機器上測試,所以用Provisioning profile設定不同的app可以在哪些機器上測試
因此要安裝app到測試機器上面時,需要先在機器上安裝profile,然後機器就可以跑對應的app

當profiile設定完成後
就可以將profile配置給Titanium,讓Titanium可以安裝程式到裝置上(記得先下載)
在Titanium studio 1.0.8中,profile的安裝和以前不太一樣
請參考下圖的位置,選擇iOS device
%2525E8%25259E%2525A2%2525E5%2525B9%252595%2525E5%2525BF%2525AB%2525E7%252585%2525A72012-02-05%2525E4%2525B8%25258A%2525E5%25258D%2525883.35.58-2012-02-2-16-53.png

接著會出現下圖的畫面
由於我是import別人的專案
該專案裡面已經有另一個porfile, 我必須要先移除才能使用另一個profile, 不確定是bug或我的問題
PastedGraphic-2012-02-2-16-53.png


到這邊為止,算是大部分都完成了
接下來就是將機器連接到電腦上,選擇 Run iOS device
Titanium studio會開啟iTunes sync執行
這邊建議先clean build後重新compile一次
接下來,到iTunes中,設定該裝置的應用程式為自動同步新的應用程式
不然就自己手動勾選應用程式
理論上之後的修改應該會自動更新,不用每次都重新勾選
到這邊為止,就大功告成了





%2525E8%25259E%2525A2%2525E5%2525B9%252595%2525E5%2525BF%2525AB%2525E7%252585%2525A72012-02-04%2525E4%2525B8%25258B%2525E5%25258D%2525881.04.05-2012-02-2-16-53.png
上圖中的二組記錄代表的是 certificate, 一組是對應到dev環境,一組是dis用
由於剛開始配置,所以在iOS provisiong portal中,provisioning profiles中還沒有對應的profile
這邊要注意的是,一個dev 帳號在一個環境(dev/dis)中只能有一組certificate
另外, request檔案(.CSR)在設定app id的SSL環境中也會用到,記得保存起來日後使用(雖然也可以重新建立)

%2525E8%25259E%2525A2%2525E5%2525B9%252595%2525E5%2525BF%2525AB%2525E7%252585%2525A72012-02-04%2525E4%2525B8%25258B%2525E5%25258D%2525881.06.59-2012-02-2-16-53.png

device部分不用講,使用xcode測和設定即可,如果是其他人的機器,取得device id自行設定即可

app id是application 的ID記錄,由bundle identifier和帳號組成
一組可以用於push用的設定,基本上不同的程式應該都要有不同的app id設定
app id和push,iCloud有關,建議在建立app id之前,先把相關的certificate建立好,避免需要手動設定的情況發生
A Provisioning Profile is a collection of digital entities that uniquely ties developers and devices to an authorized iOS Development Team and enables a device to be used for testing.

APP ID可以分別設定對應不同環境(dev/dis),所以會有如同以下對應不同環境的push用SSL簽章(使用.CSR檔案申請)
其他兩筆是key錯的資料,完全不能使用



Provisioning 是一組機器+dev的紀錄,可以讓指定的測試用的機器執行特定程式
因此Provision設定時需要指定app ID和device ID的搭配
設定好後,就可以開啟xcode安裝provision
PastedGraphic6-2012-02-2-16-53.png
這邊重複一次certificate/app id/provisioning profile的說明
certificate是帳號的數位簽章,分成dev/dis兩種環境
app id是不同App的簽章
provisioning profile用於1. 測試環境:這類型的profile會記錄device id+app id
  1. 正式環境
0309更新
如果是新的專案,在選擇使用iOS device時,出現數個步驟讓使用者提供provision
如果已經有provision, 直接選擇倒數第二個的upload,讓Titanium studio將provision檔案和專案連結就好