予備知識無しで始めるObjective-C

2010. 02. 10
iPhone App開発において避けては通れないのが、主要プログラミング言語であるObjective-Cです。 

とはいえ、C言語さえうろ覚えで実戦経験が無い私にとっては、メソッドやインスタンスと突然言われても分からず、かといって何百ページもの参考文献を読むのも気の遠い話で、途中で飽きたり寝てしまったりと、先に進めませんでした。

都合のいい話ですが、なんとか『必要最低限の知識を抑えて、実技をこなしながら少しずつ覚える』手立てはないかと調べてみました。

ここから試行錯誤の過程の話になりますので、結論だけ知りたい方は投稿記事一番下の『5)ここから始めるObjective-C』をご覧下さい。

また、以下で紹介するドキュメントや本が『役に立たない』というわけではなく、あくまで『予備知識無しで読む第一歩』としては敷居が高く、初歩知識を備えた上で読むことを前提にしているということですので、誤解なきようお願いします。


 1)Apple公式日本語ドキュメント

まずは『Apple/日本語ドキュメント』に行ってみます。

iOSテクノロジーの概要

iPhone OSのアーキテクチャ(レイヤやフレームワーク)の解説書ですので、アプリケーションについては『iOSアプリケーションプログラミングガイド』を読むように書かれています。

iOSアプリケーションプログラミングガイド

アプリケーションのアーキテクチャの解説書で、Cocoaの概念やObjective-Cを知っていることが前提になっており、それについては『Cocoa基礎ガイド』を読むように書かれています。

Cocoa基礎ガイド

文字通りCocoaの解説書でObjective-Cの解説もあるのですが、熟練のCプログラマでMac OS Xの機能とテクノロジーに精通していることと、更にハードルを上げられます。

●Objective-C 2.0プログラミングガイド

一見良さそうなタイトルですが、こちらもC言語に精通していることが前提になっています。
また、オブジェクト指向を知らない人は『Object-Oriented Programming with Objective-C』を読んでと言われるのですが、この和訳は見つけられませんでした。

●Getting Started Documents

『Objective-Cの学習:入門』という項目もあるのですが、やはりC言語を知ってないといけません。

さすがにC言語についてはApple特有という話でもないので、Appleサイト内ではこの辺が限界になります。


2)Objective-CまたはCocoa本

既に買っていた手元にある本を漁ってみました。

●Mac OS X Cocoaプログラミング

Mac OS X CocoaプログラミングMac OS X Cocoaプログラミング
(2002/06)
アーロン・ヒレガス、村上 雅章 他

商品詳細を見る

私が持っているのは上の旧版、現在は新らしい第3版がでているようです。

Mac OS X Cocoaプログラミング 第三版Mac OS X Cocoaプログラミング 第三版
(2009/11/01)
Aaron Hillegass、アーロン ヒレガス 他

商品詳細を見る

Mac OS Xについは知らなくてもいいとなっていますが、C++やJavaなど他のオブジェクト指向言語を知っていることが前提になっています。

●たのしいCocoaプログラミング

たのしいCocoaプログラミング[Leopard対応版]たのしいCocoaプログラミング[Leopard対応版]
(2008/08/30)
木下 誠

商品詳細を見る

確かに初心者向けにC言語からObjective-C、そしてCocoaと説明されている数少ない本なのですが、フランクに語りかける文体がどうにも馴染めず、二の足を踏んでいます。
『クリックなか見!検索』で内容が少し読めますので興味のある方は試しに見てみてはいかがでしょうか?(一息ついた頃合いに、読もうと思います)

●入門Objective-C 2.0

入門 Objective-C 2.0 (Programmer’s SELECTION)入門 Objective-C 2.0 (Programmer’s SELECTION)
(2009/07/16)
Scott Knaster、Mark Dalrymple 他

商品詳細を見る

こちらもC言語、またはC++、Javaなどのプログラミング経験者向けです。

●詳細Objective-C 2.0

詳解 Objective-C 2.0 第3版詳解 Objective-C 2.0 第3版
(2011/12/28)
荻原 剛志

商品詳細を見る

こちらもC言語のエキスパートとは言わないまでも、知識は必要となっています。

●Dynamic Objective-C

Dynamic Objective-CDynamic Objective-C
(2009/03/27)
木下 誠

商品詳細を見る

こちらは入門書ではなく、Objective-Cのプログラマ向けの更に突っ込んだ内容です。
『たのしいCocoaプログラミング』と同じ著者なのですが、ちょっと上から目線な語り口調が気になります。


3)iPhoneアプリケーション開発本

●iPhone SDKプログラミング大全

自作アプリをApp Storeで世界に向けて販売できる!! iPhone SDKプログラミング大全 (MacPeople Books)自作アプリをApp Storeで世界に向けて販売できる!! iPhone SDKプログラミング大全 (MacPeople Books)
(2009/01/06)
木下 誠

商品詳細を見る

こちらもC言語などのプログラマ前提の内容かな?
上記の『Dynamic Objective-C』と同様、断定系の語り口が気になります。
Mac系プログラマとしては有名な方で、著書も多いんですけど、長年最前線にいて詳しい故に読者(初心者)の目線に合わせ難いのかなと思います。

●基礎からのiOS SDK

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

商品詳細を見る

こちらもC言語とオブジェクト指向の基礎知識を持っている方前提です。

●はじめてのiPhone3プログラミング

はじめてのiPhone3プログラミングはじめてのiPhone3プログラミング
(2009/12/17)
Dave Mark、Jeff LaMarche 他

商品詳細を見る

オブジェクト指向プログラミングは分かっている方前提です。

●iPhone SDKアプリケーション開発ガイド

iPhone SDK アプリケーション開発ガイドiPhone SDK アプリケーション開発ガイド
(2009/09/07)
Jonathan Zdziarski

商品詳細を見る

こちらもCまたはC++経験者用です。

●iPhoneデベロッパーズクックブック

iPhone デベロッパーズ クックブックiPhone デベロッパーズ クックブック
(2009/02/12)
Erica Sadun

商品詳細を見る

明記はしていないのですが、少なくともC言語の経験者用と思います。

●iPhone SDKの教科書

iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩
(2009/03/18)
赤松 正行

商品詳細を見る

まだ一部を読んだだけなのですが、少なくとも『予備知識無しでC~Objective-Cの導入』を分かり易く解説しています。
『過去に全くプログラミングに縁が無い』と厳しいかもしれませんが、『学校の授業で1単位分習った過去がある』くらいならなんとかなる解説です。
これで一冊でOKという話ではありませんが、とっかかりにはお勧めです。


4)『Objective-C 入門』でググってみたサイト

Objective-C入門

C言語を理解していることが前提。

サルにもできるiPhoneアプリの作り方/Objective-C入門その1

予備知識はいらないのですが、語り口が独特です。

徒然草:remix/Cocoa&Objective-C入門に関する10のブックマーク

C言語についてのブックマークもありますので、後で確認してみます。

viva Cocoa/Objective-C言語入門

C言語を理解していることが前提。

Cocoaの素、Objective-Cを知ろう

C言語を理解していることが前提。


5)ここから始めるObjective-C

長々と紹介しましたが、結論を申し上げますと、

・予備知識がほとんどない
・言語全体を一通り理解してから進むのは面倒くさい
・大まかな概要を軽く、必須用語の分かり易い解説

という用件を満たせそうなのは、『iPhone SDKの教科書』という結論に至りました。
(他にもiPhoneアプリケーション開発本はありますから、ベストとは言い切れませんが)

所感としましては、

『Apple公式日本語ドキュメント』は『技術者が技術者向けに書いたリファレンス』という色合いが強く、解説書の端々にその文書では説明の無い専門用語があるので、初見で読むのは辛いです。

『Objective-CまたはCocoa本』は、書籍というメディアの都合上、往々にして最低でもC言語、多くはオブジェクト指向言語経験者を前提として書かれているので、先にC言語の入門書を読む必要があります。

『iPhoneアプリケーション開発本』は様々で、Objective-C言語の習得を前提とするものから、プログラミング経験の無い人を対象にしているものもあります。
ただ、そこから自分に合った本を見つけ出すのは割と難しいです。

『Objective-C 入門』でググってみたサイトに関しても、そのサイトだけで完結できるようなサイトは無いでしょうし、自分の条件に合ったサイトを見つけるには手間と時間がかかるでしょう。

私にとっては『iPhone SDKの教科書』が性に合っていましたので、この本をベースに進めてみようと思います。

明日にはまた挫けているかもしれませんけどね(前科有)

0 CommentsPosted in 資料





Wave SoundTouch music system IV
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
06 | 2017/07 | 08
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 31 - - - - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

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

Wish List
WACOM


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

Wave SoundTouch music system IV
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