SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
SwiftBondでつなげてプログ
ラミング
山本たかし
自己紹介
もともとPHP/Javaエンジニア
 ↓
3ヶ月前から急遽iOSエンジニアに転向
facebook:
https://www.facebook.com/p.t.yamamoto
linkedIn: http://www.linkedin.com/pub/%E8%B2%B4%E5%A3%AB-%E5%B1%
B1%E6%9C%AC/57/266/7ba
ソースについて
https://github.com/paul-yamamoto/BondExample/
https://github.com/paul-yamamoto/YahooRSS/
SwiftBondとは
● UI部品を拡張して扱いやすくするライブラリ
● TextField label などのデータをつないでくれる。
● 関数型プログラミングをサポート
https://github.com/SwiftBond/Bond
インストールはcocoapods が簡単
pod 'Bond', '~> 3.0'
‘->>’だけでつながる
self.textfield ->> self.label
‘<->> ‘と ‘->|’ もある
class ViewController: UIViewController,
UITextFieldDelegate {
@IBOutlet var textfield : UITextField
@IBOutlet var label : UILabel
override func viewDidLoad() {
super.viewDidLoad()
self.textfield.addTarget(self
action:@selector(textFieldDidChange:)
forControlEvents:UIControlEventEditingChanged)
}
func textFieldDidChange(id:sender) {
self.label.text = self.textfield.text
}
}
class ViewController: UIViewController {
@IBOutlet var textfield : UITextField
@IBOutlet var label : UILabel
override func viewDidLoad() {
super.viewDidLoad()
self.textfield ->> self.label
}
}
普通に実現する場合は、
textfieldの状態を監視する処理を入れる必要がある
つなぐ時に処理をはさむ
self.textField.dynText.map { "フィールドの値は " + $0 }
->> self.label
mapは何を返しても良い
let nameValid = name.dynText.map{countelements($0) > 6}
let passValid = pass.dynText.map{countelements($0) > 6}
loginButton.dynEnabled
= reduce(nameValid, passValid){$0 && $1}
reduce(name.dynText, pass.dynText) {
return countElements($0) > 6 && countElements($1) > 6
} ->> loginButton.dynEnabled
Dynamic型の処理は繋げて実行できる
number.filter { $0 > 10 }.map { "($0)" } ->> label
肝は Dynamic<T>型
var myString:Dynamic<String>
myString ->> self.label
Dynamic型で使える関数型言語機能
func map<T, U>(dynamic: Dynamic<T>, f: T -> U) -> Dynamic<U>
Dynamic(配列)型を関数を使い他の Dynamicに変換する
func filter<T>(dynamic: Dynamic<T>, f: T -> Bool) -> Dynamic<T>
Dynamic(配列)型を関数を使い条件に一致するものだけ取り出す
func reduce<A, B, T>(dA: Dynamic<A>, dB: Dynamic<B>, f: (A, B) -> T) -> Dynamic<T>
Dynamic(配列)型を関数を使い一つの Dynamic型に集約する
配列の操作も便利
lazy var loginButtonTapListener = Bond<UIControlEvents>() { event in
// ログイン処理
}
loginButton.dynEvent.filter(==, .TouchUpInside) ->> loginButtonTapListener
TableにはUtilityクラス
self.tableViewDataSourceBond = UITableViewDataSourceBond(tableView: self.tableView)
self.news = DynamicArray([])
….
self.news.map { (entry: AnyObject) -> UITableViewCell in
let result:NSDictionary = entry as NSDictionary
let cell = (self.tableView.dequeueReusableCellWithIdentifier("cell") as? ListViewCell)!
let title:Dynamic<String> = Dynamic(result["title"] as String)
title ->> cell.label
return cell
} ->> self.tableViewDataSourceBond
cellForRowAtIndexPathとか
numbersOfRowinSectionとか必要なし!
Tableの状態を気にせず処理を書ける
どういう使い方が良いのか?
状態にごとに処理を書くのでなく、
データをつないで処理を書く。
状態がある → 条件分岐がある → バグの元
どうやって実装してるの?
class StepCounter {
var totalSteps: Int = 0 {
willSet(newTotalSteps) {
println("Step (newTotalSteps) が追加されます! ")
}
didSet {
println(" (oldValue) Stepが変更されました! )
  println("今は (totalSteps)")
}
}
}
propertyObsever 使ってます!
詳しくは
http://five.agency/solving-the-binding-
problem-with-swift/
https://github.com/SwiftBond/Bond-Demo-
App/

Más contenido relacionado

La actualidad más candente

Bot frameworkでbot入門
Bot frameworkでbot入門Bot frameworkでbot入門
Bot frameworkでbot入門Tsubasa Yoshino
 
Xcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhiosXcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhiosTomohiro Kumagai
 
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例Joni
 
Blazor Server テンプレート解説
Blazor Server テンプレート解説Blazor Server テンプレート解説
Blazor Server テンプレート解説Yuta Matsumura
 
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよSwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよSyo Ikeda
 
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2pandeiro245
 
WS2012R2本とキティさんとわたし
WS2012R2本とキティさんとわたしWS2012R2本とキティさんとわたし
WS2012R2本とキティさんとわたしwintechq
 
TypeScript x Bot Framework
TypeScript x Bot FrameworkTypeScript x Bot Framework
TypeScript x Bot FrameworkKazumi IWANAGA
 
WebAPIのこれまでとこれから
WebAPIのこれまでとこれからWebAPIのこれまでとこれから
WebAPIのこれまでとこれからYohei Yamamoto
 
ノビィ取扱い説明書
ノビィ取扱い説明書ノビィ取扱い説明書
ノビィ取扱い説明書青島 英和
 
Microsoft learnご紹介vol2
Microsoft learnご紹介vol2Microsoft learnご紹介vol2
Microsoft learnご紹介vol2ru pic
 
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)masayoshi takahashi
 
MSBプレ講座ノーコード開発
MSBプレ講座ノーコード開発MSBプレ講座ノーコード開発
MSBプレ講座ノーコード開発Kentaro Murata
 
Dynamic frameworks tips
Dynamic frameworks tipsDynamic frameworks tips
Dynamic frameworks tipsSyo Ikeda
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話Yuhei Miyazato
 
milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1Syuhei Hiya
 

La actualidad más candente (20)

Bot frameworkでbot入門
Bot frameworkでbot入門Bot frameworkでbot入門
Bot frameworkでbot入門
 
Xcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhiosXcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhios
 
20200714 cogbot
20200714 cogbot20200714 cogbot
20200714 cogbot
 
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
 
Blazor Server テンプレート解説
Blazor Server テンプレート解説Blazor Server テンプレート解説
Blazor Server テンプレート解説
 
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよSwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
 
Bot Framework で会話のログを取る
Bot Framework で会話のログを取るBot Framework で会話のログを取る
Bot Framework で会話のログを取る
 
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
 
WS2012R2本とキティさんとわたし
WS2012R2本とキティさんとわたしWS2012R2本とキティさんとわたし
WS2012R2本とキティさんとわたし
 
TypeScript x Bot Framework
TypeScript x Bot FrameworkTypeScript x Bot Framework
TypeScript x Bot Framework
 
Bot framework概要
Bot framework概要Bot framework概要
Bot framework概要
 
WebAPIのこれまでとこれから
WebAPIのこれまでとこれからWebAPIのこれまでとこれから
WebAPIのこれまでとこれから
 
ノビィ取扱い説明書
ノビィ取扱い説明書ノビィ取扱い説明書
ノビィ取扱い説明書
 
Microsoft learnご紹介vol2
Microsoft learnご紹介vol2Microsoft learnご紹介vol2
Microsoft learnご紹介vol2
 
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
 
LUIS を使ったアプリケーション開発
LUIS を使ったアプリケーション開発LUIS を使ったアプリケーション開発
LUIS を使ったアプリケーション開発
 
MSBプレ講座ノーコード開発
MSBプレ講座ノーコード開発MSBプレ講座ノーコード開発
MSBプレ講座ノーコード開発
 
Dynamic frameworks tips
Dynamic frameworks tipsDynamic frameworks tips
Dynamic frameworks tips
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
 
milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1
 

Destacado

What is reactive programming?
What is reactive programming?What is reactive programming?
What is reactive programming?Kenji Tanaka
 
リアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについてリアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについてHidenori Takeshita
 
Functional Programming in Swift
Functional Programming in SwiftFunctional Programming in Swift
Functional Programming in SwiftKaz Yoshikawa
 
Swift bond コードリーディング
Swift bond コードリーディングSwift bond コードリーディング
Swift bond コードリーディングShun Nakahara
 
How to handle bitcode
How to handle bitcodeHow to handle bitcode
How to handle bitcodeSyo Ikeda
 
BaseViewControllerは作りたくない
BaseViewControllerは作りたくないBaseViewControllerは作りたくない
BaseViewControllerは作りたくない今城 善矩
 
Sprar piano 2017 02 webinar
Sprar   piano 2017 02 webinarSprar   piano 2017 02 webinar
Sprar piano 2017 02 webinarCittalia
 
リアクティブプログラミング
リアクティブプログラミングリアクティブプログラミング
リアクティブプログラミングYuuki Takano
 
Carthageについて知りたいn個のこと
Carthageについて知りたいn個のことCarthageについて知りたいn個のこと
Carthageについて知りたいn個のことSyo Ikeda
 
Reactive extensions入門v0.1
Reactive extensions入門v0.1Reactive extensions入門v0.1
Reactive extensions入門v0.1一希 大田
 
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-torisoup
 
PET Speaking Guide
PET Speaking GuidePET Speaking Guide
PET Speaking Guidemsmary7th
 
Slide titolo revisore.4
Slide titolo revisore.4Slide titolo revisore.4
Slide titolo revisore.4Cittalia
 

Destacado (13)

What is reactive programming?
What is reactive programming?What is reactive programming?
What is reactive programming?
 
リアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについてリアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについて
 
Functional Programming in Swift
Functional Programming in SwiftFunctional Programming in Swift
Functional Programming in Swift
 
Swift bond コードリーディング
Swift bond コードリーディングSwift bond コードリーディング
Swift bond コードリーディング
 
How to handle bitcode
How to handle bitcodeHow to handle bitcode
How to handle bitcode
 
BaseViewControllerは作りたくない
BaseViewControllerは作りたくないBaseViewControllerは作りたくない
BaseViewControllerは作りたくない
 
Sprar piano 2017 02 webinar
Sprar   piano 2017 02 webinarSprar   piano 2017 02 webinar
Sprar piano 2017 02 webinar
 
リアクティブプログラミング
リアクティブプログラミングリアクティブプログラミング
リアクティブプログラミング
 
Carthageについて知りたいn個のこと
Carthageについて知りたいn個のことCarthageについて知りたいn個のこと
Carthageについて知りたいn個のこと
 
Reactive extensions入門v0.1
Reactive extensions入門v0.1Reactive extensions入門v0.1
Reactive extensions入門v0.1
 
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
 
PET Speaking Guide
PET Speaking GuidePET Speaking Guide
PET Speaking Guide
 
Slide titolo revisore.4
Slide titolo revisore.4Slide titolo revisore.4
Slide titolo revisore.4
 

Similar a Swift bondでつなげてプログラミング

Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftSwift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftTomohiro Kumagai
 
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみようHoriguchi Seito
 
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafeプロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafeTomohiro Kumagai
 
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」
通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」KinkumaDesign
 
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-EdoiOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-EdoMegumi Otani(Czenhe)
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespacesIssei Hiraoka
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-pluginIkuko Kanada
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-pluginFumito Mizuno
 
今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイトrie05
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
SwaggerのさわりだけMasakazu Muraoka
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Saki Homma
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール WeinerをつかってみたMasakazu Muraoka
 
OpenGLプログラミング
OpenGLプログラミングOpenGLプログラミング
OpenGLプログラミング幸雄 村上
 
ガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧めガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧めHiroshi Tokumaru
 
[使い倒し]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
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化Takashi Okamoto
 
Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門Yasutaka Sugamura
 
早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミング早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミングIppei Arita
 
Secret of Firefox
Secret of FirefoxSecret of Firefox
Secret of Firefoxdynamis
 

Similar a Swift bondでつなげてプログラミング (20)

Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftSwift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswift
 
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
 
Flex入門
Flex入門Flex入門
Flex入門
 
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafeプロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafe
 
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」
通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」
 
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-EdoiOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-plugin
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-plugin
 
今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
 
OpenGLプログラミング
OpenGLプログラミングOpenGLプログラミング
OpenGLプログラミング
 
ガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧めガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧め
 
[使い倒し]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)
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
 
Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門
 
早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミング早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミング
 
Secret of Firefox
Secret of FirefoxSecret of Firefox
Secret of Firefox
 

Swift bondでつなげてプログラミング