SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
「エキスパートObjective-C
プログラミング」で始める
     GCD入門
      朔 洋一郎
     (@saku2saku)
当勉強会について
iPhoneアプリ開発者の交流
技術情報の交換
比較的初心者の方も多いです
 というか自分もそこまで熟練者ではないです
そのため、もしかしたら間違ったことを言ってしま
うかもしれませんがご容赦ください


一緒にアプリ開発の勉強をしていきましょう!
自己紹介
名前
 朔 洋一郎
趣味
 漫画を読みあさる
 プログラミング
 料理
 趣味創り
製作
iPhoneアプリ
   世界夜景旅行 for iPhone
   MusicPlayerSleepTimer
   MusicPlayerSleepTimerFree
iPadアプリ
   世界夜景旅行
   工場夜景探検
   夜桜花見旅行
Web
   さくさく日記
      http://iphonework.biz/
   iPhone Developer Workshop
      http://workshop.iphonework.biz/
「エキスパートObjective-C
プログラミング」で始めるGCD入門
GCDとは?
Grand Central Dispatch の略
マルチスレッドプログラミングをシステムレベルで実装し
た枠組み
  開発者はタスクを定義して、それをキューに追加するだ
  けでマルチスレッド処理を実現できる
  簡単に実装する上で細かいスレッドの制御を気にする
  必要なくコードを記述できる
    細かい制御(セマフォやjoinなど)をすることも可能
  iOS4 以降から利用が可能になりました
キュー、タスクとは?
タスクとは処理の定義、キューとはタスクを格納す
る処理の実行列
 タスクはBlocksで定義される
 キューはFirst In First Outの概念の実行列


      dispatch_async(queue, ^{...});
キューの種類
キューは2種類あります
 シリアル実行キュー:Aのタスクが終了した後にBの
 タスクが実行される
 並列実行キュー:AとBのタスク両方が並列に実行さ
 れる
OS4 以前のマルチスレッドプログラミングはどうして
いたか?
 NSObjectのperformSelectorInBackgroundや
 NSOperation、NSThreadなどで実装
キューの種類
タスク   シリアル実行キュー

1               実行順




2
        キュー           スレッド
3     並列実行キュー

4               実行順
キューの種類
サンプルコード
 http://workshop.iphonework.biz/files/2012/06/
 SampleCode.zip
 並列実行キュー
   PerformInBackgroundConcurrent
   GCDConcurrent
 シリアル実行キュー
   PerformOnMainThreadSerial
   GCDSerial
Blocksの利用
GCDのタスク定義はBlocksを利用する
 Blocksについては前回サンプルを含め、基本的な
 使い方の説明も前回しているので良ければ参照し
 てください


 http://workshop.iphonework.biz/?p=446
Global Dispatch Queue
キューは自前で生成するキューと、デフォルトで存在
するキューの2種類がある
 High Priority: 優先度 高
 Default Priority: 優先度 標準
 Low Priority: 優先度 低
 Background Priority: 優先度 バックグラウンド
上記は全てConcurrentの実行キュー
Main Dispatch Queueというデフォルトで存在する
キューもある(メインスレッド)
dispatch_queue_t
     のライフサイクル
キューにはretainとreleaseの概念がある
 ARCが有効な場合にも上記は必要なので注意


 dispatch_queue_createでキューの生成
 dispatch_queue_releaseでキューの廃棄


Global Dispatch Queueについてはreleaseは不要
その他サンプル
テーブルビューの画像の非同期読み込み処理
 AsyncImageLoadTable
一歩進んだ使い方
dispatch_after
  数秒おいて処理を実行したいときに利用
  正確なシステム時間による処理ではないため、
  ある程度おおざっぱな処理向き
dispatch_group_asyncとdispatch_group_notify
  複数のdispatch_queueの処理の実行が全て終了
  した後に処理を実行したいときに使用
さらに進んだ使い方
「エキスパートObjective-C プログラミング」で
詳しく説明されていますのでご参照ください!
 Amazon社のサイト
追記:質疑応答について
dispatch_get_global_queueの第二引数のunsigned
long って何が妥当なんですか?
  第二引数は予約領域となり、常に0を渡すことが公
  式に推奨されております
AsyncImageLoadTableのサンプルで
dispatch_queue_createしていますがこれは沢山の
キューが作られてしまうのでは?
  これは dispatch_get_global_queue と間違えてい
  たため、修正しました
ご清聴
ありがとうございました

Contenu connexe

Tendances

会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったことRecruit Technologies
 
Introduction to WildFly Swarm
Introduction to WildFly SwarmIntroduction to WildFly Swarm
Introduction to WildFly SwarmYoshimasa Tanabe
 
Gazebo/ROSで力覚センサプラグインを使う
Gazebo/ROSで力覚センサプラグインを使うGazebo/ROSで力覚センサプラグインを使う
Gazebo/ROSで力覚センサプラグインを使うHDeanK
 
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Tsunenori Oohara
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介Shinya Okano
 
Pythonでブラウザをいっぱい動かしたい
Pythonでブラウザをいっぱい動かしたいPythonでブラウザをいっぱい動かしたい
Pythonでブラウザをいっぱい動かしたいKameko Ohmura
 
milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1Syuhei Hiya
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」Hiroaki NAKADA
 
Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化Shunsuke Maeda
 
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-賢 秋穂
 
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」佐藤 俊太郎
 
Gradleどうでしょう
GradleどうでしょうGradleどうでしょう
GradleどうでしょうTakuma Watabiki
 
Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftSwift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftTomohiro Kumagai
 
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)Yosuke Hiraishi
 
「Eye」でカジュアルにプロセス監視
「Eye」でカジュアルにプロセス監視「Eye」でカジュアルにプロセス監視
「Eye」でカジュアルにプロセス監視Takeshi Yabe
 
Eclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグEclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグl_b__
 

Tendances (20)

会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと
 
Introduction to WildFly Swarm
Introduction to WildFly SwarmIntroduction to WildFly Swarm
Introduction to WildFly Swarm
 
Gazebo/ROSで力覚センサプラグインを使う
Gazebo/ROSで力覚センサプラグインを使うGazebo/ROSで力覚センサプラグインを使う
Gazebo/ROSで力覚センサプラグインを使う
 
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介
 
Djangoのススメ
DjangoのススメDjangoのススメ
Djangoのススメ
 
Pythonでブラウザをいっぱい動かしたい
Pythonでブラウザをいっぱい動かしたいPythonでブラウザをいっぱい動かしたい
Pythonでブラウザをいっぱい動かしたい
 
milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
 
Swift勉強会
Swift勉強会Swift勉強会
Swift勉強会
 
Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化
 
Choreonoid+ros
Choreonoid+rosChoreonoid+ros
Choreonoid+ros
 
Rancher select
Rancher selectRancher select
Rancher select
 
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
 
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
 
Gradleどうでしょう
GradleどうでしょうGradleどうでしょう
Gradleどうでしょう
 
Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftSwift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswift
 
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
 
「Eye」でカジュアルにプロセス監視
「Eye」でカジュアルにプロセス監視「Eye」でカジュアルにプロセス監視
「Eye」でカジュアルにプロセス監視
 
Eclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグEclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグ
 

En vedette

20111030i phonedeveloperworkshoppublished
20111030i phonedeveloperworkshoppublished20111030i phonedeveloperworkshoppublished
20111030i phonedeveloperworkshoppublishedYoichiro Sakurai
 
20120219i phonedeveloperworkshoppublished
20120219i phonedeveloperworkshoppublished20120219i phonedeveloperworkshoppublished
20120219i phonedeveloperworkshoppublishedYoichiro Sakurai
 
20120422i phonedeveloperworkshoppublished
20120422i phonedeveloperworkshoppublished20120422i phonedeveloperworkshoppublished
20120422i phonedeveloperworkshoppublishedYoichiro Sakurai
 
CoreDataをバックグラウンドで扱うためのTips
CoreDataをバックグラウンドで扱うためのTipsCoreDataをバックグラウンドで扱うためのTips
CoreDataをバックグラウンドで扱うためのTipsYohei Yamaguchi
 
XcodeのTargetについてのTIPS
XcodeのTargetについてのTIPSXcodeのTargetについてのTIPS
XcodeのTargetについてのTIPSYoichiro Sakurai
 
CoreData 非同期データ処理
CoreData 非同期データ処理CoreData 非同期データ処理
CoreData 非同期データ処理次朗 永島
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテストYoichiro Sakurai
 

En vedette (7)

20111030i phonedeveloperworkshoppublished
20111030i phonedeveloperworkshoppublished20111030i phonedeveloperworkshoppublished
20111030i phonedeveloperworkshoppublished
 
20120219i phonedeveloperworkshoppublished
20120219i phonedeveloperworkshoppublished20120219i phonedeveloperworkshoppublished
20120219i phonedeveloperworkshoppublished
 
20120422i phonedeveloperworkshoppublished
20120422i phonedeveloperworkshoppublished20120422i phonedeveloperworkshoppublished
20120422i phonedeveloperworkshoppublished
 
CoreDataをバックグラウンドで扱うためのTips
CoreDataをバックグラウンドで扱うためのTipsCoreDataをバックグラウンドで扱うためのTips
CoreDataをバックグラウンドで扱うためのTips
 
XcodeのTargetについてのTIPS
XcodeのTargetについてのTIPSXcodeのTargetについてのTIPS
XcodeのTargetについてのTIPS
 
CoreData 非同期データ処理
CoreData 非同期データ処理CoreData 非同期データ処理
CoreData 非同期データ処理
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
 

Similaire à 20120616i phonedeveloperworkshop

Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようAkira Shimosako
 
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)Koichi Sakata
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradlekimukou_26 Kimukou
 
第8回 福岡西区勉強会
第8回 福岡西区勉強会第8回 福岡西区勉強会
第8回 福岡西区勉強会Shinya Kinoshita
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた徹 上野山
 
20120421中国gtug
20120421中国gtug20120421中国gtug
20120421中国gtugYusuke Sato
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法Naruto TAKAHASHI
 
Async deepdive before de:code
Async deepdive before de:codeAsync deepdive before de:code
Async deepdive before de:codeKouji Matsui
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011Hiroh Satoh
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiNaruto TAKAHASHI
 
20160728 hyperscale #03
20160728 hyperscale #0320160728 hyperscale #03
20160728 hyperscale #03ManaMurakami1
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウKentarou Mukunasi
 
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしようYasuhiro Yoshimura
 
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)kojiokb
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiKen'ichi Sakiyama
 
130710 02
130710 02130710 02
130710 02openrtm
 

Similaire à 20120616i phonedeveloperworkshop (20)

Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
 
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
 
第8回 福岡西区勉強会
第8回 福岡西区勉強会第8回 福岡西区勉強会
第8回 福岡西区勉強会
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた
 
20120421中国gtug
20120421中国gtug20120421中国gtug
20120421中国gtug
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
 
Async deepdive before de:code
Async deepdive before de:codeAsync deepdive before de:code
Async deepdive before de:code
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
 
20160728 hyperscale #03
20160728 hyperscale #0320160728 hyperscale #03
20160728 hyperscale #03
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ
 
つぶLT20121215
つぶLT20121215つぶLT20121215
つぶLT20121215
 
Gws in fukuoka
Gws in fukuokaGws in fukuoka
Gws in fukuoka
 
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
 
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
 
Tokyo r30 beginner
Tokyo r30 beginnerTokyo r30 beginner
Tokyo r30 beginner
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapi
 
130710 02
130710 02130710 02
130710 02
 

Plus de Yoichiro Sakurai

Objective-C/Swift コードの共用
Objective-C/Swift コードの共用Objective-C/Swift コードの共用
Objective-C/Swift コードの共用Yoichiro Sakurai
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話Yoichiro Sakurai
 
開発を加速させるRetty式チーム開発術 Reloaded
開発を加速させるRetty式チーム開発術 Reloaded開発を加速させるRetty式チーム開発術 Reloaded
開発を加速させるRetty式チーム開発術 ReloadedYoichiro Sakurai
 
チームを加速させるRetty式開発術
チームを加速させるRetty式開発術チームを加速させるRetty式開発術
チームを加速させるRetty式開発術Yoichiro Sakurai
 
1人でも頑張れる!Retty式開発環境
1人でも頑張れる!Retty式開発環境1人でも頑張れる!Retty式開発環境
1人でも頑張れる!Retty式開発環境Yoichiro Sakurai
 
NSInvocationの便利さとハマりどころ
NSInvocationの便利さとハマりどころNSInvocationの便利さとハマりどころ
NSInvocationの便利さとハマりどころYoichiro Sakurai
 
Google admobmediationで広告最適化
Google admobmediationで広告最適化Google admobmediationで広告最適化
Google admobmediationで広告最適化Yoichiro Sakurai
 
Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦Yoichiro Sakurai
 
20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshop20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshopYoichiro Sakurai
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshopYoichiro Sakurai
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublishedYoichiro Sakurai
 
20110424i phonedeveloperworkshoppublish
20110424i phonedeveloperworkshoppublish20110424i phonedeveloperworkshoppublish
20110424i phonedeveloperworkshoppublishYoichiro Sakurai
 

Plus de Yoichiro Sakurai (13)

Objective-C/Swift コードの共用
Objective-C/Swift コードの共用Objective-C/Swift コードの共用
Objective-C/Swift コードの共用
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話
 
開発を加速させるRetty式チーム開発術 Reloaded
開発を加速させるRetty式チーム開発術 Reloaded開発を加速させるRetty式チーム開発術 Reloaded
開発を加速させるRetty式チーム開発術 Reloaded
 
チームを加速させるRetty式開発術
チームを加速させるRetty式開発術チームを加速させるRetty式開発術
チームを加速させるRetty式開発術
 
1人でも頑張れる!Retty式開発環境
1人でも頑張れる!Retty式開発環境1人でも頑張れる!Retty式開発環境
1人でも頑張れる!Retty式開発環境
 
NSInvocationの便利さとハマりどころ
NSInvocationの便利さとハマりどころNSInvocationの便利さとハマりどころ
NSInvocationの便利さとハマりどころ
 
Google admobmediationで広告最適化
Google admobmediationで広告最適化Google admobmediationで広告最適化
Google admobmediationで広告最適化
 
Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦
 
20130216 workshop
20130216 workshop20130216 workshop
20130216 workshop
 
20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshop20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshop
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
 
20110424i phonedeveloperworkshoppublish
20110424i phonedeveloperworkshoppublish20110424i phonedeveloperworkshoppublish
20110424i phonedeveloperworkshoppublish
 

20120616i phonedeveloperworkshop