2009-12-17

用 Flash CS5 開發 iPhone 軟體教學


已經有教學影片了,而且這段影片還是直接切入平衡器(Accelerometer)的使用。
看來會有越來越多,很多有創意的朋友投入 iPhone 開發了!

Building iPhone Applications with Flash - Learn how to use Flash CS5 to compile your Flash applications into native iPhone app

Sneak Peak of Flash CS5 - Learn about all of the new features coming in Flash CS5 in addition to the iPhone workflow
網址:http://gotoandlearn.com/play?id=118

.

2009-12-11

免描述檔 App 安裝到 iPhone

這段內容是從 Pacess 的網站看到的,為了查詢方便,我將它節錄在這裡:

方法一:只適用於使用 Installous 安裝(需要 JB)
自從 Apple 把 Provisioning Profile 的期限改為三個月之後,久不久我便需要將 AppSales Mobile 的 Provisioning Profile 更新。於是我創作出解決方法,把 AppSales Mobile 變成自家製 IPA 檔案。方法如下:

1)建立 Payload 資料夾
2)把編譯好的 AppSales .app 拷到 Payload 內
3)把 Payload 壓縮成 ZIP 檔
4)把 Payload.zip 改名為 AppSales.ipa
5)把 AppSales.ipa 拷到 iPhone 裡的 /private/var/mobile/Library/Downloads
6)運行 Installous 安裝 AppSales.ipa

方法二:只需要用 iTunes 同步
01)建立 IPA 資料夾
02)在 IPA 資料夾內建立 Payload 資料夾
03)把編譯好的 .app 拷到 Payload 內
04)利用 BBEdit 打開 .app 資料夾內的 info.plist 檔
05)在 ((/dict)) 之前加入以下句子並儲存:
((key))SignerIdentity(/key))
((string))Apple iPhone OS Application Signing((/string))
06)把本來要上傳到 iTunes Connect 的 512x512 JPG 放到 IPA 資料夾
07)把 JPG 檔改名為 iTunesArtwork
08)把 Payload 及 iTunesArtwork 壓縮成 ZIP 檔
09)把 Payload.zip 改名為 Cracked.ipa
10)把 Cracked.ipa 拖拉到 iTunes 的 Applications 內
11)同步!

參考:http://pacess.blogspot.com/

ps.把「((」換成「小於符號」,「))」換成「大於符號」

.

2009-11-07

Xcode 常用技巧與按鍵

每個文字編輯軟體都有一些內定的技巧與按鍵,讓我們在編寫程式碼的時候很方便又有效率,列出來參考:

原文出處
http://iphonedevelopertips.com/xcode/xcode-tips-and-tricks-tips-1-to-10.html

Tip #1 – Split Editor View Vertically
If you like to have multiple code windows open at once, the Split Editor option is your friend (see the little square grid icon shown below).

By default, the windows are split horizontally. If you prefer to view your code side-by-side (nice for comparing), here’s how to tell the split to be vertical
Hold down Option key when clicking the Split Window icon

Tip #2 – Comment Out a Block of Code
You can quickly comment out a block of code as follows:
Select one or more lines of code to comment
Command-/
To uncomment a block of code, repeat the steps above.

Tip #3 – Toggle Between .h and .m Files (aka Switch to Counterpart)
Within your current code window, you can swap between the .h and .m file as follows:
Command-Option Up-Arrow

Tip #4 – Map Keys to Actions (Key Bindings)
The Switch to Counterpart tip above is a real time saver. However, I often find that if I map logical key-strokes to actions I’m much more likely to get into the habit of using them. For example, I mapped the Switch to Counterpart to Option-S, as in Swap or Switch.
Here’s how to set key bindings in Xcode
From the Xcode menu choose Prefereces
Select Key Bindings
Click on one of the Actions in the list
Tap on the Keys column on the right
Enter the keystroke you want to map to the action
Click Ok to save your changes

Tip #5 – Jump to API Documentation
Showing relevant API documentation for anything within the SDK(s) is as simple as:
Option Double-Click on relevant code
For example, in the screenshot below, after Option double-clicking on UIToolbar, a popup window shows a summary of the class information.

Tip #6 – Traverse File History
As you open and edit various files, Xcode keeps a history list of your actions, not unlike when using a web-browser. You can move through the list using the directional arrows as shown below:

The keystoke equivalent for the above is:
Option-Command Left-Arrow goto to previous file
Option-Command Right-Arrow goto to next file

Tip #7 – Set a Bookmark
I can’t imagine coding without having the option to set a bookmark as a placeholder for what I’m working on. I do this regularly when I need to segue to another file to find a snippet or otherwise poke around outside the current file I’m working on.
Setting a bookmark is as simple as:
Control-D
Enter a name for the bookmark

Tip #8 – Jump to Bookmark
There are two options to jump to a bookmark. First, you can select the bookmark icon in the upper right corner of the Editor window.

You can bring up the same menu as shown in the above figure using this keystoke:
Control-4

Tip #9 – Indent / Un-indent Code
You can indent a line of code or a selected block of code as follows:
Command-[ move code left
Command-] move code right
The above works regardless of where you are in a line of code, in other words, you don’t have to be at the beginning of the line.

Tip #10 – Zoom Editor
You can toggle between Detail view and Editor view by clicking the Editor button as shown here:

The keystroke equivalent of the above is:
Shift-Command-E


2009-10-21

為何 Android 很難成功?

有朋友看到 HTC Hero 之後,很高興地說要去買一支來用,我都力勸不要浪費那些錢,寧可多存一點錢追加買 iPhone。我說,可以等,等看看,最後 Android OS 還是會一團亂!

轉貼幾則徵候,分析很清楚:

Android即將可能面臨的分裂問題

Google要自己做手機?軟體還一堆事該做咧.....

.

2009-10-08

用 Flash 開發 iPhone 軟體

Adobe Labs 的網站有提到 Flash CS5,將於 2009 年底以前上市。可想而知的是,Flash CS5 上市之後就會有很多小遊戲出現在 AppStore,而且會越來越多,最讓大家期待的「可不可以在 Windows 開發 iPhone 軟體」將會實現。

根據 Adobe 的資深產品經理 Aditya Bansod 提到,Flash CS5 編譯成的軟體,是可以在 iPhone armv6 CPU 執行的 native 原生軟體,而且還可以使用 SQLite。至於進一步有關描述檔(provisioning profiles)的取得,也可以看 FAQ

以目前狀況來看,要把軟體上架到 AppStore,只有用 Objective-C,雖然不難,但或許對一部份的人會有障礙;而對手呢?在這個月上線的 Microsoft Marketplace,也要用 c# 來開發,也是有一點門檻。

Microsoft Marketplace 雖然比較晚上來,雖然使用 Windows 的人口很多,但對於軟體市集能不能成功還很難講,因為這個架構不是一年兩年可以學得來。

Apple 也會防止 Microsoft Marketplace 的壯大,為何 Xcode 不要發行 Windows 版本?或許是 Apple 要藉 Adobe Flash 擁有廣大開發人口加入 iPhone 軟體的開發,乘勝追擊,讓開發人員直接寫軟體送進 AppStore,這樣一來,對於 Microsoft Marketplace 投入的人就不會那麼多了。

Flash 是一套很視覺化的物件設計環境,如果可以拿來開發 iPhone 原生軟體,真的很讓人期待!

是不是這樣?我們再拭目以待!


*** 2011.4.24
很久沒有注意這方面的消息,有朋友留言給我,於是我再到 Adobe 的網站看看目前狀況。
有興趣的朋友可以到這裡 Packager for iPhone 保持注意。
.

2009-08-16

給 Delphi 設計師快速入門 iPhone 程式設計

我最近在想,要如何幫助 Delphi 或是 VB 的設計師們可以快速入門 iPhone 程式開發。
Delphi 之所以方便使用,是提供了一系列方便使用的 VCL 元件,讓設計師可以快速地把視窗軟體實作出來。
所以,這次我就把 IB (Interface Builder) 與 Xcode 之間很類似 VCL 的拖曳觀念,來寫一篇教學文件給大家參考,希望可以有拋磚引玉的作用。
我在這裡的範例是做一個調色盤,有三個分別是紅綠藍的 Slider Bar,藉由 Slider Bar 的調整,讓整個背景隨時呈現色彩。


首先,開啟 Xcode 新增一個 Window-based Application
取名 palette

產生新的 Project 如下:

找到 MainWindow.xib 開啓,會交由 Interface Builder (IB)

在 IB 會看到兩個視窗,一個是 MainWindow.xib (像是 Delphi 的 View Forms/Units)。
(如果畫面不一樣,改變工具列上面的 View Mode)

另一個是 Window 的 View。(像是 Delphi 的 Form)

在 IB 按下 +SHIFT+L 開啓 Library (像是 Delphi 上面的 Components Palette)

將 Slider 拖曳到 Window 的 View 上面排列、調整位置、大小 (會 Delphi 這個就不難)

在 IB 按下 +SHIFT+I 開啓 Inspector (像是 Delphi 的 Object Inspector)。
設定 Slider 的『屬性』(記得 Window 點選到 Slider,跟 Delphi 設定屬性原理一樣)
Value Minimum: 0,Maximum: 255

再拖曳兩個 Label 進來 Window 的 View 上面排列,只要對該 Label 點兩下,就可以直接修改內容,分別給 Red Value 與 0

把這三個選取後,複製貼上(就像在 Delphi 的 Form 上面作業一樣),一共產生三組,分別要處理 RGB 用。

您也可變更 Label 的顏色『屬性』

這樣會比較好辨識
到這裡都很簡單吧!
把 Object 拉到 Window 的 View 上面,就像是在 Delphi 把 VCL 元件拉到 Form 上面一樣簡單。



接下來我們把元件的關係連結起來。

從 Library 把 NSObject(金黃色正方體) 拉到 MainWindow.xib 上面
看到這樣:
然後按 +4 把 Inspector 切換到 Identidy

這裡我們要設定 Class Identity, Class Action, Class Outlets 等三個部份

Class Identity 類別識別,目前是 NSObject,我們設定名稱為 Controller
Class Action 是指元件的動作,相當於 Delphi 的事件
Class Outlets 是哪些元件會在程式內用到的、會與畫面互動的,可以在這裡指定

再看一次我們的畫面,我命名如下:
sliderR, sliderG, sliderB 會觸發事件,我們要在程式內安排程式碼。
labelR, labelG, labelB 會因為事件發生,在程式碼內改變他們的屬性。

所以把這6個加到 Class Outlets 內。


確認 MainWindow.xib 點選到的是剛剛加進來的 Object (Type: NSObject)。
Class Identity 的 Class 命名為 Controller。
Class Action 分別加上 (在框框下面有個 + 號)
  • sliderChangedR: (Type: id)
  • sliderChangedG: (Type: id)
  • sliderChangedB: (Type: id)
Class Outlets 分別加上
  • sliderR (Type: UISlider)
  • sliderG (Type: UISlider)
  • sliderB (Type: UISlider)
  • labelR (Type: UILabel)
  • labelG (Type: UILabel)
  • labelB (Type: UILabel)

接著我們把 IB 建立的產生成 Class 檔案,選取功能表 File\Write Class Files...
接著的視窗內,Save As: 會依照剛剛 Class Identity 的 Class: Controller 命名
把檔案儲存在 Classes 的檔案夾內(我習慣把 Class 都放到 Classes 檔案夾內)
按下 Save 後,會出現詢問視窗,是否要把 Controller.m 與 Controller. h 加到 palette 專案裡,記得勾選 palette 後按下 Add
回到 Xcode 會多出這兩個檔案 Controller.m 與 Controller.h

Controller.h 的內容


Controller.m 的內容


開啓 Controller.h 將 @interface Controller: 後面加上 NSObject
這裡可以看到 6 個 IBOutlet 與 3 個 IBAction 的定義

再來開啓 Controller.m 來安排事件程式:
依照 sliderR, sliderG, sliderB 的變化而改變 labelR, labelG, labelG 的值。

這時候興奮地按下 Build and go,出現 iPhone 的畫面了!
可是拉動 Slider 並不會看到數值改變啊!

那是因為我們在 IB 還沒有把 Connections 建立起來。
所以回到 IB 點選 MainWindows.xib 的 Controller,然後按 +2 把 Inspector 切換到 Connections Inspector:
這裡區分三個部份,我們要用前面兩個:Outlets 與 Received Actions。
看到 Outlets 內的 labelB 右邊的圈圈吧!將游標移到上面,會出現一個 + 號,然後按住滑鼠左鍵,移動到 Window 上面的 labelB 然後放開滑鼠左鍵。在移動滑鼠的時候,會看到一條藍色的連結線,讓設計者很清楚哪一個要連結。


Connections Inspector 的 Outlets 內 labelB 會有連結 Label (0) 的顯示

依此類推,將 labelG, labelR, sliderR, sliderG, sliderB 也都連結起來

然後換 Received Actions 內的三個。

一樣從 sliderChangedB 右邊的圈圈開始,拉到 Window 的藍色 Slider 上面,然後放開滑鼠左鍵

在放開滑鼠左鍵後會看到這個視窗,點選 Value Changed
依此類推,可以看到 Received Actions 顯示

記得把 MainWindow.xib 存檔後,回到 Xcode
Build and go 就可以看到結果了!

最後階段要改變 Window 背景顏色

開啓 Controller.h 加上 #import "paletteAppDeledate.h"

開啓 Controller.m 在 @implementation 上面加上 @class paletteAppDelegate;

因為 window 的這個元件是在 paletteAppDelegate 內,我們要從 Controller 去使用 paletteAppDelegate 內的元件。
(有點像是 Delphi 要把被使用的 Unit 加到 uses 內)

接著在這三個事件內加上這兩行

最後的 Controller.m 程式

執行看看,成功了吧,恭喜!

*最後的 Controller.m 內,三個事件 sliderChangedR, sliderChangedG, sliderChangedB 重複的那兩行程式,可以另外做一個 Method 處理,就留給各位練習看看。

範例程式下載1(github)

範例程式下載2(bitbucket)
.

2009-08-11

內容規格 View, Icon, Image... 等等

螢幕直立 320x480 (width x height)
---
Application Icons - 57x57, Icon.png
Small Icons - 29x29, Icon-Small.png
Launch Images - 320x480, Default.png
Icons for Navigation Bars and Toolbars - 20x20
Icons for Tab Bars - 30x30
---
Status bar - 320 x 20
Navigation bar - 320 x 44
Toolbar - 320 x 44

2009-07-26

偶爾要 Distribution 都會遇到 Code Sign error

我已經發生過很多次,軟體要 Distribution 都會遇到 Code Sign error:

有一次是 iPhone SDK 3.0 GM Seed 還沒更新,iPhone OS 3.0 GM Seed 也還沒安裝到 development devices.
不知道為何全部軟體都發生 Code Sign error: The identity 'xxxx...xxxx...xxx....' dosen't match any valid certificate/private key pair in the default keychain.

前後幾天也沒有做其他設定,只是把原本的軟體(已上架的、沒上架的都一樣),原本可以正常安裝到 development devices 執行,突然不可以。

難道要再重新取得一次?


原來是 Keychain Access Login 的關係!

開啓 Keychain Access(應用程式\工具程式\鑰匙圈存取)
把【登入】的鑰匙圈按右鍵,設定成 default 就好!

與 iPhone SDK 3.0 GM Seed 或是 iPhone OS 3.0 GM Seed 都無關。

2009-07-16

WWDC 2009 Session Videos 已經發行

2009 年的 WWDC Session Video 已經出來了,不過今年的要購買。
網址: http://developer.apple.com/products/videos.html

iPhone Session 與 Mac Session 各要 US$299,合購要 US$499.

.

2009-07-04

【台灣氣象衛星】V1.0 已經上架 AppStore 商店

我記得是 6/20 提交審核,到今天才收到 Apple 審核上架的通知。

這幾次提交審核的經驗看來,不論是收費、免費的軟體、或是更新的軟體,Apple 都需要至少兩個星期以上的審核時間,是因為提交的人數越來越多,以及 Apple 確定在 OS 3.0 可以執行無誤,所以用了比較多的時間吧。
我有注意到在版本後面,Apple 都再加上 (iPhone OS 3.0 Tested)。

軟體提交、審核,我想也是確保在上面的品質,有機會提交的朋友,要有耐心等待。

.

2009-06-24

2009-06-21

Xcode 程式內的標記

當程式碼越寫越多,需要 todo 或是其他說明,可以使用以下幾個標記,程式會幫我們排在 Function List 內。
// TODO: 有哪些地方需要處理
// FIXME: 有哪些地方需要修改
// ???: 不了解有疑問的地方
// !!!: 要特別注意的地方
// MARK: 與 #pragma mark 一樣用途,可以分段強調

首先來看看 //TODO: 與 #pragma mark 搭配的使用:
可以在程式開頭標記有哪些要處理的事
注意 #pragma mark 後面我是直接加上 - (一個減號),就可以多出一條分隔線。

於是可以在 Function List 看到
另外,在中間部份,有看到 Table view methods 嗎?
這是因為在程式碼加上這句:

從這裡開始,後面的都是處理 Table view 的一些方法程序


同理 //FIXME:, //???:, //!!!: 可以用在自己需要的備註內

要注意英文半形的分號 ":" 是不可以省略的。

.

2009-06-20

【台灣氣象衛星】V1.0 已經上傳到 AppStore 商店

這個軟體已經寫好很多天了。
下午把剩下的功能稍做檢測,整理好之後就到 iPhone Dev Center 的 iPhone Developer Program Portal 申請 Distribution Provisioning Profiles 安裝,很順利就 Bulid Distribution 版本,也隨即上傳到 iTunes Connect 準備上架。

功能畫面大致如下:
程式一執行就會連線到中央氣象局取的最近的彩色衛星雲圖。
按下右上角的放大鏡可以 Zoom in,顯示台灣視區,再按一次可以回到東亞視區。

第二頁是黑白的衛星雲圖


第三頁是色調強化的衛星雲圖

第四頁是可見光衛星雲圖


有網友建議我加上波浪預報圖,因為第一頁沒有位置了,再加上的話,會在最右邊出現【更多...】的切換。
而我認為[行動軟體]要直覺、簡單、一目瞭然才會好用,太多按鍵切換都是耽誤時間,所以打算先把最常用的這四個畫面發行出來,讓大家使用,多蒐集一些使用者的心聲,然後放在下一個版本更新。

最後要做個聲明,這個軟體很單純只是取得衛星雲圖照片,提供個人判斷參考,並不做氣象預報。


到時候再請大家多多支持。

.