SlideShare a Scribd company logo
1 of 22
モダン記法で
簡単プログラミング!
-無料セミナーVol.8 インテリジェンス-
ハイパーメディアクリエイター	
  
西田寛輔	
  
Objective-Cを覚えよう!
•  モダンな記述方法を覚えよう!
•  特殊なコメントの書き方を覚えよう!
•  レイアウトを覚えよう!
モダンな記述方法
Objective-Cを覚えよう①
モダンな記述方法①
@interface にクラス内メソッドの定義をしなくて
も、呼び出しが可能になった
@interface ViewController()
-(void)xxx;
@end
-(void)xxx{
}
モダンな記述方法②
@synthesize等の省略が可能になった
// xxx.h
@property (strong) NSString* xxx;
// xxx.m
@synthesize xxx= _xxx;
↓
// xxx.h
@property NSString* xxx;
モダンな記述方法③
NSNumberとかも@でかけるようになった。
NSNumber *i = [NSNumber numberWithInt:123];
NSNumber *f = [NSNumber numberWithFloat:1.23F];
NSNumber *d = [NSNumber numberWithDouble:1.23];
NSNumber *b = [NSNumber numberWithBool:YES];
↓
NSNumber *i = @123;
NSNumber *f = @1.23F;
NSNumber *d = @1.23;
NSNumber *b = @YES;
※他にもUとかLとか色々あります。
モダンな記述方法④
NSArrayもかんたんになった
NSArray *ar = [NSArray arrayWithObjects:@"A", @"B",
nil];
NSLog(@"%@", [ar objectAtIndex:1]);
↓
NSArray *ar = @[@"A", @"B"];
NSLog(@"%@", ar[1]);
モダンな記述方法⑤
NSDictionaryもかんたんになった
NSDictionary *d = [NSDictionary
dictionaryWithObjectsAndKeys:
@"value1", @"key1",
@"value2", @"key2",
nil];
NSLog(@"%@", [d objectForKey:@"key1"]);
↓
NSDictionary *d = @{
@"key1":@"value1",
@"key2":@"value2"
};
NSLog(@"%@", d[@"key1"]);
モダンな記述方法⑥
NSMutableArray、NSMutableDictionaryを作る場合は、
mutableCopyを使う
NSMutableArray *ar = [@[@"A", @"B"] mutableCopy];
NSMutableDictionary *d = [@{
@"key1":@"value1",
@"key2":@"value2"
} mutableCopy];
特殊なコメント
Objective-Cを覚えよう②
特殊なコメント
#pragma mark
AAA
#pragma mark ‒
// TODO:BBB
// FIXME:CCC
// ???:DDD
// !!!:EEE
// MARK:FFF
レイアウトの基本
Objective-Cを覚えよう①
Autosizing
•  |は、支柱で赤くするとその位
置にViewを固定する
•  <-->はバネで、赤くするとその
方向の長さが可変になる
Autolayout①
•  Viewを画面端に近づけて配置すると
Superviewのどの位置に対して固定する
かが自動的にきまる!
•  Leading Space to
–  左端間隔固定
•  Trailing Space to
–  右端間隔固定
•  Top Space to
–  上端間隔固定
•  Bottom Space to
–  下端間隔固定
•  ストーリーボードのボタンの真ん中のH
を押すと手動でも設定できる!(Pin)
•  アラビアとかだとLeading が右にな
る!?
Autolayout②
•  Viewを画面中央に配置すると
Superviewに対してどういうふうに
整列するかが設定できる!
•  Align Center X to
–  横位置中央
•  Align Center Y to
–  縦位置中央
•  ストーリーボードのボタンの左のや
つを押すと手動でも設定できる!
(Align)
Autolayout③
•  すでに配置済みのViewにくっつけるよ
うにすると、Superviewではなく、その
Viewに対するPinやAlignで配置される
Autolayout④
•  Viewを2個選んで、ボタンを押すと手動
で設定できる!
Autolayout⑤
•  一番右のボタンで、Viewのサイ
ズを変更した時のストーリーボー
ド上の動きを変更できる!
•  Siblings and Ancestors
–  親兄弟が影響を受ける
•  Descendants
–  子供が影響を受ける
Autolayout⑥
•  Autolayoutの線をcontrol押しながらひっ
ぱると、Outletが作れてプログラムで制御
できる!
まとめ
•  iPhone開発の方法はどんどん便利になっ
ていくから、新しい方法を覚えていこう!
とのさまラボ!
•  勉強会に参加した人どうしのコミニュティがほしい!
勉強会の開催日時の告知がほしい!
という意見をみなさまからいただいたので、
コミニュティを作成しました!
•  毎週木曜日は、もくもく勉強会も
開催しています!
ぜひ「いいね!」をお願いします!
h#ps://www.facebook.com/TonosamaLabo	
  
「もくもく」勉強会
•  毎週木曜日に、「もくもく」勉強会やってます!
•  場所は新宿!facebookページからお申し込みください!
h#ps://www.facebook.com/TonosamaLabo	
  

More Related Content

Similar to モダン記法で簡単プログラミング!

TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口Sunao Tomita
 
5分でつまむEffective Objective-C
5分でつまむEffective Objective-C5分でつまむEffective Objective-C
5分でつまむEffective Objective-CHiramatsu Ryosuke
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成Akineko Shimizu
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」Yoshiki Shibukawa
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Narami Kiyokura
 
20171212 titech lecture_ishizaki_public
20171212 titech lecture_ishizaki_public20171212 titech lecture_ishizaki_public
20171212 titech lecture_ishizaki_publicKazuaki Ishizaki
 
自己紹介とC# Devkitについて.pptx
自己紹介とC# Devkitについて.pptx自己紹介とC# Devkitについて.pptx
自己紹介とC# Devkitについて.pptxhkharu0803
 
20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdfKazuaki Ishizaki
 
Define and expansion of cpp macro
Define and expansion of cpp macroDefine and expansion of cpp macro
Define and expansion of cpp macrodigitalghost
 
Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発m ishizaki
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
Tokyo.R女子部#2「RMeCabを使おう」
Tokyo.R女子部#2「RMeCabを使おう」Tokyo.R女子部#2「RMeCabを使おう」
Tokyo.R女子部#2「RMeCabを使おう」Sachiko Hirata
 
Swift ドキュメントコメント
Swift ドキュメントコメントSwift ドキュメントコメント
Swift ドキュメントコメントTomohiro Kumagai
 

Similar to モダン記法で簡単プログラミング! (14)

TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
 
5分でつまむEffective Objective-C
5分でつまむEffective Objective-C5分でつまむEffective Objective-C
5分でつまむEffective Objective-C
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
20171212 titech lecture_ishizaki_public
20171212 titech lecture_ishizaki_public20171212 titech lecture_ishizaki_public
20171212 titech lecture_ishizaki_public
 
自己紹介とC# Devkitについて.pptx
自己紹介とC# Devkitについて.pptx自己紹介とC# Devkitについて.pptx
自己紹介とC# Devkitについて.pptx
 
20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf
 
Define and expansion of cpp macro
Define and expansion of cpp macroDefine and expansion of cpp macro
Define and expansion of cpp macro
 
Cs中間報告
Cs中間報告Cs中間報告
Cs中間報告
 
Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
Tokyo.R女子部#2「RMeCabを使おう」
Tokyo.R女子部#2「RMeCabを使おう」Tokyo.R女子部#2「RMeCabを使おう」
Tokyo.R女子部#2「RMeCabを使おう」
 
Swift ドキュメントコメント
Swift ドキュメントコメントSwift ドキュメントコメント
Swift ドキュメントコメント
 

More from Nishida Kansuke

【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#3】
【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#3】【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#3】
【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#3】Nishida Kansuke
 
【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#1】資料
【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#1】資料【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#1】資料
【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#1】資料Nishida Kansuke
 
デブサミ2017 【16-D-5】複数台のロボットと音楽をする取り組み(太田智美・西田寛輔) -
デブサミ2017 【16-D-5】複数台のロボットと音楽をする取り組み(太田智美・西田寛輔)	-デブサミ2017 【16-D-5】複数台のロボットと音楽をする取り組み(太田智美・西田寛輔)	-
デブサミ2017 【16-D-5】複数台のロボットと音楽をする取り組み(太田智美・西田寛輔) -Nishida Kansuke
 
20170131 新潟セミナー
20170131 新潟セミナー20170131 新潟セミナー
20170131 新潟セミナーNishida Kansuke
 
PHP×コミニュケーションロボット
PHP×コミニュケーションロボットPHP×コミニュケーションロボット
PHP×コミニュケーションロボットNishida Kansuke
 
Mizuho.hack 未来の銀行に必要なサービス
Mizuho.hack 未来の銀行に必要なサービスMizuho.hack 未来の銀行に必要なサービス
Mizuho.hack 未来の銀行に必要なサービスNishida Kansuke
 
20160314 すしルート#3 資料
20160314 すしルート#3 資料20160314 すしルート#3 資料
20160314 すしルート#3 資料Nishida Kansuke
 
ロボ年表を作ってみた
ロボ年表を作ってみたロボ年表を作ってみた
ロボ年表を作ってみたNishida Kansuke
 
Pepper用課金ボックス「ロボコイン」
Pepper用課金ボックス「ロボコイン」Pepper用課金ボックス「ロボコイン」
Pepper用課金ボックス「ロボコイン」Nishida Kansuke
 
jsおじさん#5 ペッパーとjavascript
jsおじさん#5 ペッパーとjavascriptjsおじさん#5 ペッパーとjavascript
jsおじさん#5 ペッパーとjavascriptNishida Kansuke
 
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボNishida Kansuke
 
忍者ゲーム【ペッパーアプリコンテスト2015決勝進出作品】
忍者ゲーム【ペッパーアプリコンテスト2015決勝進出作品】忍者ゲーム【ペッパーアプリコンテスト2015決勝進出作品】
忍者ゲーム【ペッパーアプリコンテスト2015決勝進出作品】Nishida Kansuke
 
ペッパービンゴ【ペッパーアプリコンテスト2015決勝進出作品】
ペッパービンゴ【ペッパーアプリコンテスト2015決勝進出作品】ペッパービンゴ【ペッパーアプリコンテスト2015決勝進出作品】
ペッパービンゴ【ペッパーアプリコンテスト2015決勝進出作品】Nishida Kansuke
 
JSを使ったアプリ開発!(JSオジサン#3)
JSを使ったアプリ開発!(JSオジサン#3)JSを使ったアプリ開発!(JSオジサン#3)
JSを使ったアプリ開発!(JSオジサン#3)Nishida Kansuke
 
ハッカソン発表資料(朝日新聞 × モバイルファクトリー 異業種ハッカソン!)
ハッカソン発表資料(朝日新聞 × モバイルファクトリー 異業種ハッカソン!)ハッカソン発表資料(朝日新聞 × モバイルファクトリー 異業種ハッカソン!)
ハッカソン発表資料(朝日新聞 × モバイルファクトリー 異業種ハッカソン!)Nishida Kansuke
 
iBeaconを使ったアプリ開発
iBeaconを使ったアプリ開発iBeaconを使ったアプリ開発
iBeaconを使ったアプリ開発Nishida Kansuke
 
㊱タイルマップに挑戦
㊱タイルマップに挑戦㊱タイルマップに挑戦
㊱タイルマップに挑戦Nishida Kansuke
 
クリスマスハッカソン2013:サンタロスをUNITYで作った
クリスマスハッカソン2013:サンタロスをUNITYで作ったクリスマスハッカソン2013:サンタロスをUNITYで作った
クリスマスハッカソン2013:サンタロスをUNITYで作ったNishida Kansuke
 
㉟cocos2d-x勉強会:簡単なアプリをつくってみよう
㉟cocos2d-x勉強会:簡単なアプリをつくってみよう㉟cocos2d-x勉強会:簡単なアプリをつくってみよう
㉟cocos2d-x勉強会:簡単なアプリをつくってみようNishida Kansuke
 
㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみよう㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみようNishida Kansuke
 

More from Nishida Kansuke (20)

【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#3】
【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#3】【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#3】
【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#3】
 
【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#1】資料
【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#1】資料【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#1】資料
【東京】ドコモのAIエージェント基盤「セバスチャン」勉強会【#1】資料
 
デブサミ2017 【16-D-5】複数台のロボットと音楽をする取り組み(太田智美・西田寛輔) -
デブサミ2017 【16-D-5】複数台のロボットと音楽をする取り組み(太田智美・西田寛輔)	-デブサミ2017 【16-D-5】複数台のロボットと音楽をする取り組み(太田智美・西田寛輔)	-
デブサミ2017 【16-D-5】複数台のロボットと音楽をする取り組み(太田智美・西田寛輔) -
 
20170131 新潟セミナー
20170131 新潟セミナー20170131 新潟セミナー
20170131 新潟セミナー
 
PHP×コミニュケーションロボット
PHP×コミニュケーションロボットPHP×コミニュケーションロボット
PHP×コミニュケーションロボット
 
Mizuho.hack 未来の銀行に必要なサービス
Mizuho.hack 未来の銀行に必要なサービスMizuho.hack 未来の銀行に必要なサービス
Mizuho.hack 未来の銀行に必要なサービス
 
20160314 すしルート#3 資料
20160314 すしルート#3 資料20160314 すしルート#3 資料
20160314 すしルート#3 資料
 
ロボ年表を作ってみた
ロボ年表を作ってみたロボ年表を作ってみた
ロボ年表を作ってみた
 
Pepper用課金ボックス「ロボコイン」
Pepper用課金ボックス「ロボコイン」Pepper用課金ボックス「ロボコイン」
Pepper用課金ボックス「ロボコイン」
 
jsおじさん#5 ペッパーとjavascript
jsおじさん#5 ペッパーとjavascriptjsおじさん#5 ペッパーとjavascript
jsおじさん#5 ペッパーとjavascript
 
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ
 
忍者ゲーム【ペッパーアプリコンテスト2015決勝進出作品】
忍者ゲーム【ペッパーアプリコンテスト2015決勝進出作品】忍者ゲーム【ペッパーアプリコンテスト2015決勝進出作品】
忍者ゲーム【ペッパーアプリコンテスト2015決勝進出作品】
 
ペッパービンゴ【ペッパーアプリコンテスト2015決勝進出作品】
ペッパービンゴ【ペッパーアプリコンテスト2015決勝進出作品】ペッパービンゴ【ペッパーアプリコンテスト2015決勝進出作品】
ペッパービンゴ【ペッパーアプリコンテスト2015決勝進出作品】
 
JSを使ったアプリ開発!(JSオジサン#3)
JSを使ったアプリ開発!(JSオジサン#3)JSを使ったアプリ開発!(JSオジサン#3)
JSを使ったアプリ開発!(JSオジサン#3)
 
ハッカソン発表資料(朝日新聞 × モバイルファクトリー 異業種ハッカソン!)
ハッカソン発表資料(朝日新聞 × モバイルファクトリー 異業種ハッカソン!)ハッカソン発表資料(朝日新聞 × モバイルファクトリー 異業種ハッカソン!)
ハッカソン発表資料(朝日新聞 × モバイルファクトリー 異業種ハッカソン!)
 
iBeaconを使ったアプリ開発
iBeaconを使ったアプリ開発iBeaconを使ったアプリ開発
iBeaconを使ったアプリ開発
 
㊱タイルマップに挑戦
㊱タイルマップに挑戦㊱タイルマップに挑戦
㊱タイルマップに挑戦
 
クリスマスハッカソン2013:サンタロスをUNITYで作った
クリスマスハッカソン2013:サンタロスをUNITYで作ったクリスマスハッカソン2013:サンタロスをUNITYで作った
クリスマスハッカソン2013:サンタロスをUNITYで作った
 
㉟cocos2d-x勉強会:簡単なアプリをつくってみよう
㉟cocos2d-x勉強会:簡単なアプリをつくってみよう㉟cocos2d-x勉強会:簡単なアプリをつくってみよう
㉟cocos2d-x勉強会:簡単なアプリをつくってみよう
 
㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみよう㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみよう
 

モダン記法で簡単プログラミング!