『基礎からのiPhone SDK改訂版』を始めてみた

2010. 05. 10
今日から3冊目となる本『基礎からのiPhone SDK 改訂版』を読み進めたいと思います。

Amazonの評判も良く(レビューが1件ですが)出版社のサイトにサンプルコードも置いてあります。

冒頭の『読者層について』の項目で、『統合開発環境でC言語を扱ったことがあり、オブジェクト指向の概念や用語を理解している前提』と記述されてはいますが、『iPhone SDKの教科書』などでその辺を勉強していれば、すんなり読める内容です。

まだ第3章まで読んだだけですが、解説も丁寧で詳しく良書と言えそうです。
(補足説明するような所が少なくて、逆に記事にし難いですが・・・)

本書では、iPhone OSの概要から始まり、iPhone OSの機能紹介続いていますので、これまで私が勉強した内容については割愛させていただきます。

●CHAPTER 03 初めてのアプリケーション開発

・サンプルアプリケーション概要

Interface Builderで背景画像とラベルを設定するだけで、コードは一切書きません。

270

プロジェクトの作成からXcodeのプロジェクトウィンドウの構成、Interface Builderの使い方を紹介しています。

・プロジェクトの作成

Xcodeを起動し、新規プロジェクトの作成。

260

『Window-based Application』を選択し、プロジェクト名を『Photo』とします。

261

・プロジェクトに画像を登録

iPhoneの縦画面での画像サイズ320 x 480ピクセルの画像を用意し、プロジェクトのフォルダに入れ、そこからXcodeのResourcesフォルダにドラッグ&ドロップで追加します。

Interface Builderで画像ファイルを背景画像として指定しますので、JPEGでもいいですし、多少サイズが違っていても、ファイル名も特に気を使わなくていいのですが、気分的にPNG形式のBackground.pngというファイル名にしておきます。
(デフォルトの背景画像に関しては『アプリケーションのライフサイクル(1)』を参照してください)

262

・画像の表示

nibファイルのMainWindow.xibをダブルクリックしてInterface Builderを起動します。

Libraryウィンドウで『Image View』を選択し、ドラッグ&ドロップでViewウィンドウに置きます。
(Interface Builderの簡素な各ウィンドウ紹介は『Interface Builder』を参照してください)

263

今回はステータスバーを残しているので、320 x 460ピクセルの方がいいかもしれません。

ただViewのMode、『Scale to Fill(アスペクト比を無視して画面サイズに拡大)』や『Aspect Fit(アスペクト比を保持して拡大)』などの挙動を確認するのに、サイズの異なる画像を貼ってみるという手も有ります。

264

Image Viewオブジェクトを設置しましたら、InspectorウィンドウでImageファイルの選択と画面の表示モードを設定します。

265

・文字列の表示

Libraryウィンドウで『Label』を選択し、ドラッグ&ドロップでViewウィンドウに置きます。

ラベルの表示領域は、好きな位置とサイズを設定し、Inspectorウィンドウで文字列の設定をします。

268

LabelのTextが表示する文字列、Layoutで左右寄せ・中央揃えの設定、Colorで文字色、Shadowで文字の陰付けをしています。

本書でも注意していますが、Fontの設定時に表示される一覧は、(開発に使用している)Macが搭載しているフォントであり、iPhoneには搭載されていないものも含んでいます。

266

今回選択した『Marker Felt』も『シン』はiPhoneにも有りますが『ワイド』は搭載されていなく、ワイドを選ぶとInterface Builder上では表示されるがiPhone Simulatorでは表示されないという現象が起こります。

手元のiPhoneが搭載しているフォントを確認するアプリ(を自分で作れればいいのですが・・・)には、以前もご紹介したkanotomoさん謹製の『Cédille』などが有ります。
(無料ですので、お気軽にどうぞ)

手元のiPhoneの結果は下図のようになります。
(iPhone 3G、OS 3.1.3 (7E18))

259

またInspectorウィンドウのView欄で、ラベルの背景色の設定をします。

267

今回はラベルの表示位置を下方に、亜美・真美なのでフォントを黄色に、したら見難いのでオレンジで陰付けしています。

269

・ビルドと実行

Interface Builderでの設定が完了したらファイルを保存し、Xcodeでビルドと実行を選んでお終いです。

270

・良書の予感

さして新しい話題も無く、極簡易な説明になってしまいましたが、これは『補足するようなことが無かった』ためです。

何しろ『プロジェクトウィンドウの主なグループ』はまだしも、Interface Builderに関しては『UIViewのMode属性の設定値』『Viewの設定項目(UIViewの属性)』『Labelの設定項目(UILabelの属性)』について、各項目の選択肢が一覧表にまとめてあり、果ては『iPhoneにインストールされているフォント一覧』まで掲載されていますので、私が書くようなことがありませんでした。

少なくともここまでならコードも打たないので、一冊目としてもお薦めできます。

C言語がうろ覚えでしたので『iPhone SDKの教科書』から始めましたが、この本で始めたら習得が早かったかもしれません。

(これまで数ヶ月勉強した上で読んでいるから、分かり易いと感じるのかも・・・)



参考文献

ソフトバンククリエイティブの本/基礎からのiPhone SDK 改訂版

基礎からのiOS SDK基礎からのiOS SDK
(2010/10/09)
鶴薗 賢吾、松浦 健一郎 他

商品詳細を見る






コンパニオン20
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
03 | 2017/04 | 05
Sun Mon Tue Wed Thu Fri Sat
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

コンパニオン20
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR