Enviar búsqueda
Cargar
Swift bondでつなげてプログラミング
•
2 recomendaciones
•
3,271 vistas
貴士 山本
Seguir
2014
Leer menos
Leer más
Software
Denunciar
Compartir
Denunciar
Compartir
1 de 16
Descargar ahora
Descargar para leer sin conexión
Recomendados
Swift bondさわってみた
Swift bondさわってみた
Motoki Narita
Fiddler 使ってますか?
Fiddler 使ってますか?
Joni
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!
Yu Tanaka
インフラエンジニアとはなんぞ?
インフラエンジニアとはなんぞ?
Kei Mikage
Codeigniter3フレームアップデート
Codeigniter3フレームアップデート
tomohiro kitaura
はじめてのモバイルウェブアプリ 1
はじめてのモバイルウェブアプリ 1
Taisuke Fukuno
.NET Core 3.0 で Blazor を使用したフルスタック C# Web アプリの構築
.NET Core 3.0 で Blazor を使用したフルスタック C# Web アプリの構築
Joni
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
noldor
Recomendados
Swift bondさわってみた
Swift bondさわってみた
Motoki Narita
Fiddler 使ってますか?
Fiddler 使ってますか?
Joni
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!
Yu Tanaka
インフラエンジニアとはなんぞ?
インフラエンジニアとはなんぞ?
Kei Mikage
Codeigniter3フレームアップデート
Codeigniter3フレームアップデート
tomohiro kitaura
はじめてのモバイルウェブアプリ 1
はじめてのモバイルウェブアプリ 1
Taisuke Fukuno
.NET Core 3.0 で Blazor を使用したフルスタック C# Web アプリの構築
.NET Core 3.0 で Blazor を使用したフルスタック C# Web アプリの構築
Joni
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
noldor
Bot frameworkでbot入門
Bot frameworkでbot入門
Tsubasa Yoshino
Xcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhios
Tomohiro Kumagai
20200714 cogbot
20200714 cogbot
ひかり 影中
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Joni
Blazor Server テンプレート解説
Blazor Server テンプレート解説
Yuta Matsumura
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
Syo Ikeda
Bot Framework で会話のログを取る
Bot Framework で会話のログを取る
Atsushi Yokohama (BEACHSIDE)
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
pandeiro245
WS2012R2本とキティさんとわたし
WS2012R2本とキティさんとわたし
wintechq
TypeScript x Bot Framework
TypeScript x Bot Framework
Kazumi IWANAGA
Bot framework概要
Bot framework概要
Tsubasa Yoshino
WebAPIのこれまでとこれから
WebAPIのこれまでとこれから
Yohei Yamamoto
ノビィ取扱い説明書
ノビィ取扱い説明書
青島 英和
Microsoft learnご紹介vol2
Microsoft learnご紹介vol2
ru pic
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
masayoshi takahashi
LUIS を使ったアプリケーション開発
LUIS を使ったアプリケーション開発
Atsushi Yokohama (BEACHSIDE)
MSBプレ講座ノーコード開発
MSBプレ講座ノーコード開発
Kentaro Murata
Dynamic frameworks tips
Dynamic frameworks tips
Syo Ikeda
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
Yuhei Miyazato
milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1
Syuhei Hiya
What is reactive programming?
What is reactive programming?
Kenji Tanaka
リアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについて
Hidenori Takeshita
Más contenido relacionado
La actualidad más candente
Bot frameworkでbot入門
Bot frameworkでbot入門
Tsubasa Yoshino
Xcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhios
Tomohiro Kumagai
20200714 cogbot
20200714 cogbot
ひかり 影中
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Joni
Blazor Server テンプレート解説
Blazor Server テンプレート解説
Yuta Matsumura
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
Syo Ikeda
Bot Framework で会話のログを取る
Bot Framework で会話のログを取る
Atsushi Yokohama (BEACHSIDE)
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
pandeiro245
WS2012R2本とキティさんとわたし
WS2012R2本とキティさんとわたし
wintechq
TypeScript x Bot Framework
TypeScript x Bot Framework
Kazumi IWANAGA
Bot framework概要
Bot framework概要
Tsubasa Yoshino
WebAPIのこれまでとこれから
WebAPIのこれまでとこれから
Yohei Yamamoto
ノビィ取扱い説明書
ノビィ取扱い説明書
青島 英和
Microsoft learnご紹介vol2
Microsoft learnご紹介vol2
ru pic
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
masayoshi takahashi
LUIS を使ったアプリケーション開発
LUIS を使ったアプリケーション開発
Atsushi Yokohama (BEACHSIDE)
MSBプレ講座ノーコード開発
MSBプレ講座ノーコード開発
Kentaro Murata
Dynamic frameworks tips
Dynamic frameworks tips
Syo Ikeda
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
Yuhei Miyazato
milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1
Syuhei Hiya
La actualidad más candente
(20)
Bot frameworkでbot入門
Bot frameworkでbot入門
Xcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhios
20200714 cogbot
20200714 cogbot
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Blazor Server テンプレート解説
Blazor Server テンプレート解説
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
Bot Framework で会話のログを取る
Bot Framework で会話のログを取る
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
WS2012R2本とキティさんとわたし
WS2012R2本とキティさんとわたし
TypeScript x Bot Framework
TypeScript x Bot Framework
Bot framework概要
Bot framework概要
WebAPIのこれまでとこれから
WebAPIのこれまでとこれから
ノビィ取扱い説明書
ノビィ取扱い説明書
Microsoft learnご紹介vol2
Microsoft learnご紹介vol2
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
LUIS を使ったアプリケーション開発
LUIS を使ったアプリケーション開発
MSBプレ講座ノーコード開発
MSBプレ講座ノーコード開発
Dynamic frameworks tips
Dynamic frameworks tips
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1
Destacado
What is reactive programming?
What is reactive programming?
Kenji Tanaka
リアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについて
Hidenori Takeshita
Functional Programming in Swift
Functional Programming in Swift
Kaz Yoshikawa
Swift bond コードリーディング
Swift bond コードリーディング
Shun Nakahara
How to handle bitcode
How to handle bitcode
Syo Ikeda
BaseViewControllerは作りたくない
BaseViewControllerは作りたくない
今城 善矩
Sprar piano 2017 02 webinar
Sprar piano 2017 02 webinar
Cittalia
リアクティブプログラミング
リアクティブプログラミング
Yuuki Takano
Carthageについて知りたいn個のこと
Carthageについて知りたいn個のこと
Syo Ikeda
Reactive extensions入門v0.1
Reactive extensions入門v0.1
一希 大田
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
torisoup
PET Speaking Guide
PET Speaking Guide
msmary7th
Slide titolo revisore.4
Slide titolo revisore.4
Cittalia
Destacado
(13)
What is reactive programming?
What is reactive programming?
リアクティブプログラミングとMVVMパターンについて
リアクティブプログラミングとMVVMパターンについて
Functional Programming in Swift
Functional Programming in Swift
Swift bond コードリーディング
Swift bond コードリーディング
How to handle bitcode
How to handle bitcode
BaseViewControllerは作りたくない
BaseViewControllerは作りたくない
Sprar piano 2017 02 webinar
Sprar piano 2017 02 webinar
リアクティブプログラミング
リアクティブプログラミング
Carthageについて知りたいn個のこと
Carthageについて知りたいn個のこと
Reactive extensions入門v0.1
Reactive extensions入門v0.1
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
PET Speaking Guide
PET Speaking Guide
Slide titolo revisore.4
Slide titolo revisore.4
Similar a Swift bondでつなげてプログラミング
Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswift
Tomohiro Kumagai
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
Horiguchi Seito
Flex入門
Flex入門
Shinjiro Watanabe
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafe
Tomohiro Kumagai
通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」
通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」
KinkumaDesign
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
Megumi Otani(Czenhe)
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
Mizuno buddypress-plugin
Mizuno buddypress-plugin
Ikuko Kanada
Mizuno buddypress-plugin
Mizuno buddypress-plugin
Fumito Mizuno
今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト
rie05
Swaggerのさわりだけ
Swaggerのさわりだけ
Masakazu Muraoka
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Saki Homma
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
Masakazu Muraoka
OpenGLプログラミング
OpenGLプログラミング
幸雄 村上
ガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧め
Hiroshi Tokumaru
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Masanori Ishigami
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
Takashi Okamoto
Spring Integration 超入門
Spring Integration 超入門
Yasutaka Sugamura
早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミング
Ippei Arita
Secret of Firefox
Secret of Firefox
dynamis
Similar a Swift bondでつなげてプログラミング
(20)
Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswift
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
Flex入門
Flex入門
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafe
通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」
通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Mizuno buddypress-plugin
Mizuno buddypress-plugin
Mizuno buddypress-plugin
Mizuno buddypress-plugin
今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト
Swaggerのさわりだけ
Swaggerのさわりだけ
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
OpenGLプログラミング
OpenGLプログラミング
ガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧め
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
Spring Integration 超入門
Spring Integration 超入門
早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミング
Secret of Firefox
Secret of Firefox
Swift bondでつなげてプログラミング
1.
SwiftBondでつなげてプログ ラミング 山本たかし
2.
自己紹介 もともと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
3.
ソースについて https://github.com/paul-yamamoto/BondExample/ https://github.com/paul-yamamoto/YahooRSS/
4.
SwiftBondとは ● UI部品を拡張して扱いやすくするライブラリ ● TextField
label などのデータをつないでくれる。 ● 関数型プログラミングをサポート https://github.com/SwiftBond/Bond インストールはcocoapods が簡単 pod 'Bond', '~> 3.0'
5.
‘->>’だけでつながる self.textfield ->> self.label ‘<->>
‘と ‘->|’ もある
6.
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の状態を監視する処理を入れる必要がある
7.
つなぐ時に処理をはさむ self.textField.dynText.map { "フィールドの値は
" + $0 } ->> self.label
8.
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
9.
Dynamic型の処理は繋げて実行できる number.filter { $0
> 10 }.map { "($0)" } ->> label
10.
肝は Dynamic<T>型 var myString:Dynamic<String> myString
->> self.label
11.
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型に集約する
12.
配列の操作も便利 lazy var loginButtonTapListener
= Bond<UIControlEvents>() { event in // ログイン処理 } loginButton.dynEvent.filter(==, .TouchUpInside) ->> loginButtonTapListener
13.
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の状態を気にせず処理を書ける
14.
どういう使い方が良いのか? 状態にごとに処理を書くのでなく、 データをつないで処理を書く。 状態がある → 条件分岐がある
→ バグの元
15.
どうやって実装してるの? class StepCounter { var
totalSteps: Int = 0 { willSet(newTotalSteps) { println("Step (newTotalSteps) が追加されます! ") } didSet { println(" (oldValue) Stepが変更されました! ) println("今は (totalSteps)") } } } propertyObsever 使ってます!
16.
詳しくは http://five.agency/solving-the-binding- problem-with-swift/ https://github.com/SwiftBond/Bond-Demo- App/
Descargar ahora