SlideShare a Scribd company logo
1 of 65
Download to read offline
業務でSwiftで3ヶ月開発してきたので一旦振り返り
yidev 第18回勉強会 2015/03/07
自己紹介
- 佐藤俊輔(@ushisantoasobu)
- 株式会社ピースオブケイク
- 元々デザイナーぽいことやっていた、4年前からエンジニア
- iOS歴 1年 + 半年(iOS7が出たころあたりがブランク)
サービス紹介
https://cakes.mu/
サービス紹介
https://note.mu/
今日話すこと
ここ3ヶ月ほど
業務でSwiftでiOS開発してきたので
その振り返り
(iOS7以上、デザイナー1人 / iOS開発1人)
- Swiftで開発してみて
- iOS7, 8での挙動の違いまとめ
- UIとかエンジニア/デザイナー間での作業について
アジェンダ
- Swiftで開発してみて
- iOS7, 8での挙動の違いまとめ
- UIとかエンジニア/デザイナー間での作業について
アジェンダ
- Swiftコーディング規約@Wantedly
- 書籍「詳解 Swift」
- あとは適宜調べる
参考にしたもの
XCodeがまだ不安定..
XCodeがまだ不安定..
- ビルドが遅い
- SourceKitうんちゃら(画像のもの)
- renameのリファクタリングがまだできない

- 他にも、APIの実装がまだだったので、クラスファイル内にテストデー
タとして長い文字列定義したら、ファイルのインデックスがとまったり
XCodeがまだ不安定..
まあ徐々に改善されていくのかなと楽観視
XCodeがまだ不安定..
Swift製のライブラリについて
「Swiftで書くなら、Swift製のライブラリをつかいたい!」みたいな気持ち
Swift製のライブラリについて
Swift製のライブラリについて
Swift製のライブラリについて
- そもそもまだそんなにSwift製のライブラリない
- あっても採用実績少ないのでバグは多分にありそう
- Objcの移植のものでも部分部分で未実装のところもある可能性有

- CocoaPods 0.36 beta?? Carthage?? 

=> productionなら、しばらくは無理に使う必要ないかなと思ったり
Swift製のライブラリについて
Objcの既存のコードをSwiftに書き換えたときに地味に面倒かったもの
- (void)test {
int a = 2;
CGFloat b = 4.5;
CGFloat c;
c = a + b;
}
Objc
func test() {
var a :Int = 2
var b :CGFloat = 4.5
var c :CGFloat = 0.0
c = a + b
}
Swift
- (void)test {
int a = 2;
CGFloat b = 4.5;
CGFloat c;
c = a + b;
}
Objc
func test() {
var a :Int = 2
var b :CGFloat = 4.5
var c :CGFloat = 0.0
c = a + b
}
Swift
コンパイル通らない
Objcの既存のコードをSwiftに書き換えたときに地味に面倒かったもの
- (
c = a + b;
}
Objc
func
c
}
Swift
コンパイル通らない
Swiftだと、数値型の計算は暗黙の型変換は行われない
Objcの既存のコードをSwiftに書き換えたときに地味に面倒かったもの
Objc Swift
Objcの既存のコードをSwiftに書き換えたときに地味に面倒かったもの
func plot(samples :UnsafePointer<Float32>) {
//...
for var i = 0; i < sampleCount; i++ {
var sample = Float32(samples.memory)
samples = samples.successor()
//...
}
//...
}
- (void)plotLogGraph:(Float32 *) samples {
//...
for (NSInteger i = 0; i < sampleCount; i++) {
Float32 sample = *samples++;
//...
}
//...
}
Objc Swift
Objcの既存のコードをSwiftに書き換えたときに地味に面倒かったもの
func plot(samples :UnsafePointer<Float32>) {
//...
for var i = 0; i < sampleCount; i++ {
var sample = Float32(samples.memory)
samples = samples.successor()
//...
}
//...
}
- (void)plotLogGraph:(Float32 *) samples {
//...
for (NSInteger i = 0; i < sampleCount; i++) {
Float32 sample = *samples++;
//...
}
//...
}
Objc Swift
Objcの既存のコードをSwiftに書き換えたときに地味に面倒かったもの
func
//...
for
samples
}
//...
}
- (void
//...
for
}
//...
}
ポインタまわりに少し戸惑う
archiveコマンド
http://kishikawakatsumi.hatenablog.com/entry/2014/11/02/145255
http://blog.ishkawa.org/2015/01/07/1420556760/
を参考に、
iTunesConnectへのバイナリのアップロードを
自動化しようと目論む
archiveするとなんかファイルが増えてる…
archiveコマンド
https://devforums.apple.com/message/1042117#1042117
問題なくできたかな..と思ったけどこんなスレが
archiveコマンド
コマンドからバイナリを生成したときに、
swiftモジュールが含まれず申請しても
invalidでリジェクトくらう的な内容
archiveコマンド
https://devforums.apple.com/message/1042117#1042117
申請の締め切りも迫っていたので結局XCodeからアップロード > <
archiveコマンド
コマンドからバイナリを生成したときに、
swiftモジュールが含まれず申請しても
invalidでリジェクトくらう的な内容
https://devforums.apple.com/message/1042117#1042117
- Swiftで開発してみて
- iOS7, 8での挙動の違いまとめ
- UIとかエンジニア/デザイナー間での作業について
アジェンダ
AutoLayout + CGAffineTransform
http://stackoverflow.com/questions/26088559/autolayout-cgaffinetransform-ios7-ios8
AutoLayoutを設定したviewに対して
CGAffineTransformのscaleがiOS7だと効かない??
AutoLayout + CGAffineTransform
=>ちょっとした演出のために入れていたものなのでiOS7は切った
AutoLayoutを設定したviewに対して
CGAffineTransformのscaleがiOS7だと効かない??
http://stackoverflow.com/questions/26088559/autolayout-cgaffinetransform-ios7-ios8
カスタムトランジッション
カスタムトランジッションで
画面遷移後にiOS8だと画面が真っ黒になる??
カスタムトランジッション
func pop_animationDidStop(anim: POPAnimation!, finished: Bool) {
if self.context!.transitionWasCancelled() {
self.context!.completeTransition(false)
} else {
self.context!.completeTransition(true)
if self.isReverse {
let to = self.context!.viewControllerForKey(UITransitionContextToViewControllerKey)! as UIViewController
UIApplication.sharedApplication().keyWindow?.addSubview(to.view)
}
}
}
http://stackoverflow.com/questions/24338700/from-view-controller-disappears-using-uiviewcontrollercontexttransitioning
ここらへんの処理をいれてあげる
モーダル的な(裏の画面が見えつつ画面を重ねてく)
モーダル表示 さらにそこにモーダル表示
var vc = FirstPresentViewController()
 
if isSystemVersionLessThan("8.0") {
var root = UIApplication.sharedApplication().delegate?.window??.rootViewController
root?.modalPresentationStyle = UIModalPresentationStyle.CurrentContext
} else {
vc.modalPresentationStyle = UIModalPresentationStyle.OverFullScreen
}
 
self.presentViewController(vc, animated: false, completion: nil)
var vc = SecondPresentViewController()
 
if isSystemVersionLessThan("8.0") {
self.presentedViewController?.modalPresentationStyle = UIModalPresentationStyle.CurrentContext
} else {
vc.modalPresentationStyle = UIModalPresentationStyle.OverFullScreen
}
 
self.presentedViewController?.presentViewController(vc, animated: false, completion: nil)
モーダル表示
さらにそこにモーダル表示
モーダル的な(裏の画面が見えつつ画面を重ねてく)
他
- UIAlertView / UIAlertController => ラッパつくった
- UIActionSheet / UIAlertController => ラッパつくった
- remoteNotificationまわり

- UITableViewCellのボタンがiOS7だと押せない

(contentView.userInteractionEnabled = false)
- 思ったよりもiOS7 / 8で挙動が違うところある所感

- なので当たり前だけど、動作テストはしっかりやる
- そもそもあんま気取ったことはやらないほうが無難??

- やるならハマることもあり得るので見積もりは慎重に
iOS7 / 8挙動の違い まとめ
- Swiftで開発してみて
- iOS7, 8での挙動の違いまとめ
- UIとかエンジニア/デザイナー間での作業について
アジェンダ
iPhone6 / 6 plusが販売されてからはじめての新規開発
iPhone6 / 6 plus さわってみてはじめに出た感想
(主に競合サービスであるコンテンツ系のapps)
戻るがツラい!!!!!!!
左上届かない!!!
エッジスワイプも厳しい!!!
開発前に他のサービスでどうしてるのかみてみた
画面のどこからでもいいので、一定量右にスワイプすると戻る
SmartNews Antenna Gunosy
「エッジスワイプ」の全画面版
Flipboard Instagram
スクロール最上部から下に引っ張る
Siori Groups
All Direction Pull!!
StoreHouse

- 画面のどこからでもいいので、一定量右にスワイプすると戻る
- 「エッジスワイプ」の全画面版
- スクロール最上部から下に引っ張る
- All Direction Pull Back!!
「戻る」の主な対策
- 画面のどこからでもいいので、一定量右にスワイプすると戻る
- 「エッジスワイプ」の全画面版
- スクロール最上部から下に引っ張る
- All Direction Pull Back!!
✔️
今回の開発で採用したもの
車輪の再発明は面倒だったのでライブラリで代用
「戻る」についてのまとめ
- 何かしら対策入れてあげるとユーザビリティ的にはいいかも
- 他のジェスチャと干渉しないよう、設計に気をつけること(大事)
- でもいずれiOS9とかで何か標準実装されたり??
http://qiita.com/ushisantoasobu/items/fb1e7c2672f6ae815109
http://qiita.com/tdksk/items/36d892fca5fcba07f8eb
「戻る」についての参考サイト
はじめてのAutoLayoutを前提とした新規開発
http://ushisantoasobu.hateblo.jp/entry/2015/01/22/104258
ちなみに今回のプロジェクトから
デザイナー/エンジニア間でのワークフローに
“Sketch”を使っている
こんなデザインファイルがきたとする...
このラベルのy座標は固定なのか?
中心点からの距離が固定か?
こんなデザインファイルがきたとする...
こんなデザインファイルがきたとする...
この画像は縦幅が固定なのか?
縦横比が固定なのか?
こんなデザインファイルがきたとする...
- AutoLayout情報込みのカンプをつくる

- 全デバイス毎のデザインを用意して、そこからエンジニアが読み解く
- 直接デザイナーに く
- デザイナー自身がXCodeで組み込む
考えられる対策
- AutoLayout情報込みのカンプをつくる

- 全デバイス毎のデザインを用意して、そこからエンジニアが読み解く
- 直接デザイナーに く
- デザイナー自身がXCodeで組み込む
✔️
考えられる対策
会社の規模が近い、デザイナーとの席が近い、デザイナーと仲がいい
などの要因があってこれでなんとかできてるけど、
大きな会社だったりデザインを外注するときなんかにはどうしてるのだろう…??
考えられる対策
- AutoLayout情報込みのカンプをつくる

- 全デバイス毎のデザインを用意して、そこからエンジニアが読み解く
- 直接デザイナーに く
- デザイナー自身がXCodeで組み込む
✔️
考えられる対策
- AutoLayout情報込みのカンプをつくる

- 全デバイス毎のデザインを用意して、そこからエンジニアが読み解く
- 直接デザイナーに く
- デザイナー自身がXCodeで組み込む✔️
現在隣の席のデザイナーに誠意啓蒙中
!
エンジニア募集
https://www.wantedly.com/projects/14842
ご清聴ありがとうございました!!!

More Related Content

What's hot

Swiftの実際ダメな所
Swiftの実際ダメな所Swiftの実際ダメな所
Swiftの実際ダメな所S_Shimotori
 
Yidev201406.pub
Yidev201406.pubYidev201406.pub
Yidev201406.pubitoz itoz
 
iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooHiramatsu Ryosuke
 
Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Tomohiro Kumagai
 
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?Toshio Ehara
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03Daiki Maekawa
 
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -Shuji Watanabe
 
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーションakio19937
 
Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm Hiramatsu Ryosuke
 
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたJavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたSatoshi Takami
 
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うことKazuhiro Serizawa
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけようKouji Matsui
 
既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話akatsuki174
 
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版Ikada Kaori
 
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-EdoiOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-EdoMegumi Otani(Czenhe)
 
リモートワークで10kgダイエットした話
リモートワークで10kgダイエットした話リモートワークで10kgダイエットした話
リモートワークで10kgダイエットした話Masaki Suzuki
 
Spring starterによるSpring Boot Starter
Spring starterによるSpring Boot StarterSpring starterによるSpring Boot Starter
Spring starterによるSpring Boot StarterRyosuke Uchitate
 
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」
通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」KinkumaDesign
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理Kouji Matsui
 

What's hot (20)

Swiftの実際ダメな所
Swiftの実際ダメな所Swiftの実際ダメな所
Swiftの実際ダメな所
 
Yidev201406.pub
Yidev201406.pubYidev201406.pub
Yidev201406.pub
 
iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahoo
 
Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9
 
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
 
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
 
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
 
Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm
 
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたJavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
 
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
 
既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話
 
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版
 
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-EdoiOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
 
リモートワークで10kgダイエットした話
リモートワークで10kgダイエットした話リモートワークで10kgダイエットした話
リモートワークで10kgダイエットした話
 
Spring starterによるSpring Boot Starter
Spring starterによるSpring Boot StarterSpring starterによるSpring Boot Starter
Spring starterによるSpring Boot Starter
 
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」
通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 
Swift入門
Swift入門Swift入門
Swift入門
 

Viewers also liked

Swift 3.0 の新機能 - 追加・変更まわりだけ、ざっくり紹介 2 #devsap
Swift 3.0 の新機能 - 追加・変更まわりだけ、ざっくり紹介 2 #devsapSwift 3.0 の新機能 - 追加・変更まわりだけ、ざっくり紹介 2 #devsap
Swift 3.0 の新機能 - 追加・変更まわりだけ、ざっくり紹介 2 #devsapTomohiro Kumagai
 
Swift 3.0 の新しい機能(のうちの9つ)
Swift 3.0 の新しい機能(のうちの9つ)Swift 3.0 の新しい機能(のうちの9つ)
Swift 3.0 の新しい機能(のうちの9つ)Tomohiro Kumagai
 
How to handle bitcode
How to handle bitcodeHow to handle bitcode
How to handle bitcodeSyo Ikeda
 
Swift3とObjective-Cのブリッジでハマったこと
Swift3とObjective-CのブリッジでハマったことSwift3とObjective-Cのブリッジでハマったこと
Swift3とObjective-Cのブリッジでハマったこと庸介 高橋
 
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①Nagamine Hiromasa
 
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリングleverages_event
 
Sprite kitでの横スクロールジャンプ アクションゲーム開発
Sprite kitでの横スクロールジャンプ アクションゲーム開発Sprite kitでの横スクロールジャンプ アクションゲーム開発
Sprite kitでの横スクロールジャンプ アクションゲーム開発studioshin
 
Swift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみたSwift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみたaxsh co., LTD.
 
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobileNS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobileTomohiro Kumagai
 
Carthageについて知りたいn個のこと
Carthageについて知りたいn個のことCarthageについて知りたいn個のこと
Carthageについて知りたいn個のことSyo Ikeda
 
描画とビジネスをクリーンに分ける(公開用)
描画とビジネスをクリーンに分ける(公開用)描画とビジネスをクリーンに分ける(公開用)
描画とビジネスをクリーンに分ける(公開用)Kenji Tanaka
 
はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版Tomoki Hasegawa
 
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafeSwift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafeTomohiro Kumagai
 

Viewers also liked (13)

Swift 3.0 の新機能 - 追加・変更まわりだけ、ざっくり紹介 2 #devsap
Swift 3.0 の新機能 - 追加・変更まわりだけ、ざっくり紹介 2 #devsapSwift 3.0 の新機能 - 追加・変更まわりだけ、ざっくり紹介 2 #devsap
Swift 3.0 の新機能 - 追加・変更まわりだけ、ざっくり紹介 2 #devsap
 
Swift 3.0 の新しい機能(のうちの9つ)
Swift 3.0 の新しい機能(のうちの9つ)Swift 3.0 の新しい機能(のうちの9つ)
Swift 3.0 の新しい機能(のうちの9つ)
 
How to handle bitcode
How to handle bitcodeHow to handle bitcode
How to handle bitcode
 
Swift3とObjective-Cのブリッジでハマったこと
Swift3とObjective-CのブリッジでハマったことSwift3とObjective-Cのブリッジでハマったこと
Swift3とObjective-Cのブリッジでハマったこと
 
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①
 
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
 
Sprite kitでの横スクロールジャンプ アクションゲーム開発
Sprite kitでの横スクロールジャンプ アクションゲーム開発Sprite kitでの横スクロールジャンプ アクションゲーム開発
Sprite kitでの横スクロールジャンプ アクションゲーム開発
 
Swift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみたSwift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみた
 
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobileNS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
 
Carthageについて知りたいn個のこと
Carthageについて知りたいn個のことCarthageについて知りたいn個のこと
Carthageについて知りたいn個のこと
 
描画とビジネスをクリーンに分ける(公開用)
描画とビジネスをクリーンに分ける(公開用)描画とビジネスをクリーンに分ける(公開用)
描画とビジネスをクリーンに分ける(公開用)
 
はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版
 
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafeSwift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe
 

Similar to yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」

React Nativeの話のその前に… サービスの作り方の話
React Nativeの話のその前に… サービスの作り方の話React Nativeの話のその前に… サービスの作り方の話
React Nativeの話のその前に… サービスの作り方の話Kanako Kobayashi
 
Swiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPSSwiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPSjugemjugemjugem
 
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみようHoriguchi Seito
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Tomoki Hasegawa
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)Masanori Ishigami
 
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略Fumiya Sakai
 
これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門Hiramatsu Ryosuke
 
iOSアプリUIとの触れ合いと歩む僕なりのSwiftの楽しみ方
iOSアプリUIとの触れ合いと歩む僕なりのSwiftの楽しみ方iOSアプリUIとの触れ合いと歩む僕なりのSwiftの楽しみ方
iOSアプリUIとの触れ合いと歩む僕なりのSwiftの楽しみ方Fumiya Sakai
 
VueとAWSAppSyncで始めるチャットアプリ開発
VueとAWSAppSyncで始めるチャットアプリ開発VueとAWSAppSyncで始めるチャットアプリ開発
VueとAWSAppSyncで始めるチャットアプリ開発Ryosuke Izumi
 
Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理Yasuhiko Yamamoto
 
Wolcome to swift
Wolcome to swiftWolcome to swift
Wolcome to swiftKyohei Ito
 
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!Kanako Kobayashi
 
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswiftTomohiro Kumagai
 
Core Graphics on watchOS 2
Core Graphics on watchOS 2Core Graphics on watchOS 2
Core Graphics on watchOS 2Shuichi Tsutsumi
 
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafeプロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafeTomohiro Kumagai
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときRyunosuke SATO
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜Yusuke SAITO
 
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpAPIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpTakeshi Komiya
 

Similar to yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」 (20)

React Nativeの話のその前に… サービスの作り方の話
React Nativeの話のその前に… サービスの作り方の話React Nativeの話のその前に… サービスの作り方の話
React Nativeの話のその前に… サービスの作り方の話
 
Swiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPSSwiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPS
 
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
 
Source kittenについて
Source kittenについてSource kittenについて
Source kittenについて
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
 
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
 
OpenCV on mobile
OpenCV on mobileOpenCV on mobile
OpenCV on mobile
 
これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門
 
iOSアプリUIとの触れ合いと歩む僕なりのSwiftの楽しみ方
iOSアプリUIとの触れ合いと歩む僕なりのSwiftの楽しみ方iOSアプリUIとの触れ合いと歩む僕なりのSwiftの楽しみ方
iOSアプリUIとの触れ合いと歩む僕なりのSwiftの楽しみ方
 
VueとAWSAppSyncで始めるチャットアプリ開発
VueとAWSAppSyncで始めるチャットアプリ開発VueとAWSAppSyncで始めるチャットアプリ開発
VueとAWSAppSyncで始めるチャットアプリ開発
 
Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理
 
Wolcome to swift
Wolcome to swiftWolcome to swift
Wolcome to swift
 
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
 
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
 
Core Graphics on watchOS 2
Core Graphics on watchOS 2Core Graphics on watchOS 2
Core Graphics on watchOS 2
 
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafeプロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafe
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜
 
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpAPIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
 

More from 佐藤 俊太郎

iOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくるiOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくる佐藤 俊太郎
 
`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想佐藤 俊太郎
 
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1佐藤 俊太郎
 
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21佐藤 俊太郎
 
Createjsについて@jsCafe20
Createjsについて@jsCafe20Createjsについて@jsCafe20
Createjsについて@jsCafe20佐藤 俊太郎
 
flasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみてflasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみて佐藤 俊太郎
 

More from 佐藤 俊太郎 (8)

iOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくるiOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくる
 
Bond の v4 について
Bond の v4 についてBond の v4 について
Bond の v4 について
 
`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想
 
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
 
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
 
Createjsについて@jsCafe20
Createjsについて@jsCafe20Createjsについて@jsCafe20
Createjsについて@jsCafe20
 
flasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみてflasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみて
 
Introduction for cocos2d
Introduction for cocos2dIntroduction for cocos2d
Introduction for cocos2d
 

yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」