顯示具有 Xcode4 標籤的文章。 顯示所有文章
顯示具有 Xcode4 標籤的文章。 顯示所有文章

2012年10月1日 星期一

IOS多國語系規劃與開發-ios multi language design and imeplementation

多國語系是在APP的規劃與開發設計中是一個很重要的一環,很簡單的一個原因就是「市場」!其實說簡單也算是簡單,因為 SDK 本身就提供了多國語系的功能,我們只需要簡單的幾個步驟就可以達到,下面是簡單的步驟:

多國語系的規劃
  1. 規劃好哪些產出需要多國語系: UI, Message, Mail Template ..ext
  2. 決定好上面的東西要怎樣做,例如:是否要將XIB, infos.plist 變成多國語系, 是否要對圖檔做多國語系, 是否要將 Strings 與 Template 做成多國語系
  3. 作出一個 POC Template 與 Design Guideline for Multi-language 給 UI Design , Designer (Technical Designer), Programmer。
一個方式
個人喜歡的方式是將所有文字抽出來做成多國語系檔,因為這樣你只需要維護的是各種語系的文字檔案,但是這樣需要考慮到的是:
  1. 所有圖片不能含有文字,UI設計師只能使用IOS內建的字型,並且必續要產出 Design Guideline 讓開發人員清楚地知道每個UI的字形大小, 字型種類, 文字的色碼, 最多支援行數
  2. UI設計師必須在設計的時候清楚知道有多少種語言需要被支援,並且在設計所有 UI 元件的時候考慮到「文字長度」,並且在視覺設計上儘量在不破壞美觀下定義長寬的最大值
  3. Designer必須要將所有文字的 KEY 值作名稱規劃,並且需要讓所有 Programmer能藉由KEY值就能知道文字的用途。
這樣的設計方式可以達到多國語系的設計而且可以將所有語系的內容框在 Localizable.strings 與 Template File 裡,解由修改修改語系檔案或是 Mail or Publish template就可以快速地達到修改多國語內容的目的。

SDK也支援 XIB的多國語系設計方式,只是當 View component 跟多國語系攪在一起,那可想而知的是修改的 Effort 太大了。

開發步驟
  1. 建立 Localizable.strings Files, New 一個 File , 選擇 Resource > Strings File, 將它命名為 Localizable.strings
  2. 點選左側 Navigator 中的「專案名字」> 右側點選 Info , 右邊的 Localizations 可以增加你要支援的語言, 點選後會有詢問你哪些檔案要變成多國語系,以上面的例子因為我的方式只有用到 Localizable.strings 所以只要選擇 Localizable.strings就可以
  3. 編輯 Localizable.strings , 基本我將所有的 strings 分為下面幾個類別
    // button
    "Done" = "Done";
    "Close" = "Close";
    "Tutorials" = "Tutorial";
    // message
    "Please insert valid information" = "Please insert valid information";
    // label string
    "You’ve traveled" = "You’ve traveled";

    // exception string
    "The hardware does not support" = "The hardware does not support";
  4. 在程式裡取用所有的 strings 只需要如下的寫法
    cell.value.text = NSLocalizedString(@"You’ve traveled"nil);
  5. 若需要在 UI 上顯示現在使用者所選用的語言, 你可以使用下面的方法顯示出各國語言表現的語言文字, 像當選擇日文時會顯示「日本語」
     NSLocale *locale=[NSLocale currentLocale];
     NSString *langName= [locale displayNameForKey:NSLocaleIdentifier
                                                            value:[[NSLocale preferredLanguages] objectAtIndex:0]];

結論
很多種方式可以達道不同程度的多國語系方式,只是需要注意的層面不同,這樣做法上很簡單,但是對於設計來說會需要注意的地方很多,一不注意就會讓文字超出UI或是變成...。在開發上唯一需要注意的是 Key 的命名規則,否則平行開發下 Programmer 若看不懂語系檔那只會有兩種情形:一種是花很多時間去搞清楚什麼是什麼,第二種就是會多出很多同樣的文字參數。

2011年12月23日 星期五

Xcode 4 建立你的 git 專案

版本控管對於個人開發或是 Team work 都非常非常重要,開發常遇到下面的情況
  1. 不小心刪除掉了 class
  2. 需要救回以前的檔案
  3. 需要做版本比對
  4. Team work 時需要同步每個人的 source code
  5. 還有很多,不過這篇不是介紹版本控管好處的
xcode 4 支援 subversion and git 兩種版本控管軟體,個人覺得整合的算是不錯,只是有時候難免需要到 Terminal 打一下指令。

教學案例情節
今天就寫一篇簡單的入門文章介紹一下 git 使用方式,情節很簡單:建立local repository > 將專案新增進去 > 建立 local repository 跟 remote repository 連結 > push 到 remote repository。

情節設計概念
這個情節是針對一個新的開發人員設計的,進入一個專案 > 拿到 source code > 建立環境 > 開始工作。所以這裡沒有太深奧的概念,只想給入門者一個快速地學習方式,然後在自己深入研究,我也會找時間介紹 git 的設計概念與應用實例。

基本上所有動作可以全部透過 xcode 作,當然也全部都可以透過指令去做。不過步驟就以我覺得最順的方式去做。

git 基本觀念概述
git 的概念是將 source control 區分為本地端跟 server 端,在本地端開發者可以自行控管自己的版本然後在"push"到伺服器端集中控管,

踏出開工的第一步
1.建立專案目錄
justinlin$ mkdir projects/ios_ebook
justinlin$ cd projects/ios_ebook
2.設定 git 賬號
justinlin$ git config --global user.name "justin"
jstinlin$ git config --global user.email "sunny.justin@gmail.com"
3.從 git server 複製專案目錄到 local
justinlin$ git clone gitolite@git.object2.com:ios_ebook
4.使用 xocde 4 打開專案檔案

5.打開 Organizer 切換到 Repositories,左側會出現剛才 clone 的專案,專案目錄下會出現 Branches (local 的 branch list), Remotes ( branch list on the remote server), ios_ebook (專案資源)

6.在 xcode 裡頭編輯 source code 後檔案右側會出現 M 的字樣,這代表的是檔案被修改過,這時候點選滑鼠右鍵 > source control 就會出現 Commit Selected Files 與 Discard Changes兩個選項。如果點選 Commit Selected Files 的話就會將檔案同步到 Local repository。

7.點選 File > Source Control > Push 後會把 Local repository 裡的修改 Push 到 Remote repository 中進行同步

8.這是一個從 git 主機複製出檔案到修改檔案後 commit 到 local repository,再 push 到 remote repository 的基本流程。
補充說明
git 與 subversion 的概念最大不同在於,subversion 只有一個 repository而且是大家共用,這沒甚麼不好,只是因為是共用所以需要好的規劃以防止發生錯誤造成版本問題。
git 將 repository 分離,開發人員擁有自己完整的 repository,你可以自行管理跟規劃 local repository,當一切開發確認後在 push 到 git server。
不過不管那一套,還是需要良好的規劃管理跟版本控管知識,否則不斷地亂 Push 問題依然會發生的。