Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ReactiveCocoaで作る快適な登録フォーム
Search
shoby
July 11, 2016
Technology
370
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ReactiveCocoaで作る快適な登録フォーム
Melon.swiftの発表資料です。
http://fablic.connpass.com/event/35407/
shoby
July 11, 2016
More Decks by shoby
See All by shoby
フリルのCMを支える分析 (メディアバイイング編)
shoby
0
490
FirebaseとBigQueryによるアプリのKPI分析(CMの効果検証編)
shoby
2
2.7k
ユーザーに受け入れられ、問題を起こしづらい大規模リニューアルの進め方
shoby
60
14k
フリルの商品を色で検索できるようにした話
shoby
5
4.4k
Search fashion items by colors
shoby
0
220
iOS 7をサポート対象外にして開発を健全化する
shoby
3
4.1k
Apple Watch Tips
shoby
0
4.3k
WWDC 2015で 発表された新機能と サービスへの活かし方
shoby
2
7.5k
アプリにおける人力ぽちぽちテストの効率化
shoby
3
3.5k
Other Decks in Technology
See All in Technology
2026TECHFRESH畢業分享會 - 葬送的通靈師:化系統與用戶雜訊成行動訊號
line_developers_tw
PRO
0
1.3k
AI駆動開発を通して感じた、 AI時代のデザイナーの役割変化
whisaiyo
4
2.3k
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.6k
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
17
5.8k
2026 TECHFRESH 畢業分享會 - 開發日常大解密!從領域驅動到企業級上線
line_developers_tw
PRO
0
1.3k
マルチアカウント環境での コーディングエージェントを使った障害調査が大変なので AIエージェントにReadOnly権限を付与してみた / ReadOnly AI Agents for Multi-Account AWS Incident Response
yamaguchitk333
2
110
生成 AI 実践ガイド (概略版) AIガバナンス編
asei
0
130
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
150
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
2
420
When Platform Engineering Meets GenAI
sucitw
0
130
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
270
脆弱性対応、どこで線を引くか
rymiyamoto
1
420
Featured
See All Featured
Technical Leadership for Architectural Decision Making
baasie
3
420
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
240
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Producing Creativity
orderedlist
PRO
348
40k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
KATA
mclloyd
PRO
35
15k
We Have a Design System, Now What?
morganepeng
55
8.2k
How STYLIGHT went responsive
nonsquared
100
6.2k
30 Presentation Tips
portentint
PRO
1
330
Transcript
3FBDUJWF$PDPBͰ࡞Δ շదͳొϑΥʔϜ גࣜձࣾ'BCMJD TIPCZ
ࣗݾհ
ࣗݾհ w TIPCZ w 'BCMJD JOD w J043VCZPO3BJMTը૾ॲཧ w ϝϩϯՈͷଉࢠ
֓ཁ
֓ཁ w շదͳొϑΥʔϜͱ w ೖྗͷϦΞϧλΠϜόϦσʔγϣϯ w 3FBDUJWF$PDPBʹΑΔ5FYUมԽͷݕ w TUSVDUʹΑΔΤϥʔͷදݱ w
ϑϦϧͰͷվળͷ݁Ռ
շదͳొϑΥʔϜͱ
շదͳొϑΥʔϜͱ w গͳ͍ೖྗͰࡁΉ w ༣ศ൪߸͔ΒॅॴΛิ w ೖྗܗ͕͔ࣜΔ w 6*1JDLFS7JFX6*%BUF1JDLFS w
,FZCPBSE5ZQF w ೖྗ͕ϦΞϧλΠϜͰνΣοΫ͞ΕΔ
շదͳొϑΥʔϜͱ w গͳ͍ೖྗͰࡁΉ w ༣ศ൪߸͔ΒॅॴΛิ w ೖྗܗ͕͔ࣜΔ w 6*1JDLFS7JFX6*%BUF1JDLFS w
,FZCPBSE5ZQF w ೖྗ͕ϦΞϧλΠϜͰνΣοΫ͞ΕΔ
5FYU'JFMEͷ ϦΞϧλΠϜόϦσʔγϣϯ
5FYU'JFMEͷϦΞϧλΠϜόϦσʔγϣϯ w ঢ়ଶҎԼͷͭ w ະೖྗʢ1MBDF)PMEFSΛදࣔ͢Δʣ w ೖྗதʢԿදࣔ͠ͳ͍ʣ w 0,ʢ✅Λදࣔʣ w
Τϥʔʢ⚠Λදࣔʣ w 5FYUͷมԽͱɺೖྗྃͰόϦσʔγϣϯ
5FYU'JFMEͷϦΞϧλΠϜόϦσʔγϣϯ ະೖྗ ೖྗத Τϥʔ ⚠ 0, ✅ ೖྗ։࢝ 5FYUͷมԽ
ೖྗ։࢝ όϦσʔγϣϯ Τϥʔ ਖ਼ৗʹྃ 5FYUͷมԽ
5FYU'JFMEͷϦΞϧλΠϜόϦσʔγϣϯ w ೖྗऴྃˠUFYU'JFME%JE&OE&EJUJOH w 5FYUͷมԽˠ3FBDUJWF$PDPB w UFYU'JFMETIPVME$IBOHF$IBSBDUFST*O3BOHFSFQMB DFNFOU4USJOHͰϋϯυϦϯά͠ΜͲ͍
3FBDUJWF$PDPBʹΑΔ 5FYUมԽͷݕ
3FBDUJWF$PDPBʹΑΔ5FYUมԽͷݕ var disposables: [Disposable] = [] textFields.forEach { textField in
let disposable = textField.rac_textSignal().toSignalProducer().skip(1).startWithNext { text in do { try self.validate(text: text, textField: textField) } catch let error { // ΤϥʔϋϯυϦϯά } } disposables.append(disposable) }
3FBDUJWF$PDPBʹΑΔ5FYUมԽͷݕ var disposables: [Disposable] = [] textFields.forEach { textField in
let disposable = textField.rac_textSignal().toSignalProducer().skip(1).startWithNext { text in do { try self.validate(text: text, textField: textField) } catch let error { // ΤϥʔϋϯυϦϯά } } disposables.append(disposable) } ॳճͷTJHOBMΛແࢹ͢Δ͜ͱͰ ະೖྗͱೖྗதΛ۠ผ
TUSVDUʹΑΔΤϥʔͷදݱ
TUSVDUʹΑΔΤϥʔͷදݱ w &SSPS5ZQF1SPUPDPMͳͷͰTUSVDUͰ0, w DMBTT͑Δ w όϦσʔγϣϯΤϥʔʹTUSVDU͕ศར w ΤϥʔͷछྨΛ۠ผ͢Δඞཁ͕ͳ͍ w
ΤϥʔϝοηʔδͱՃใ͚ͩ
TUSVDUʹΑΔΤϥʔͷදݱ struct ValidationError: ErrorType { let message: String let showWhileEditing:
Bool } ϝοηʔδͱ ฤूதදࣔ͢Δ͔Ͳ͏͔ͷϑϥάͷΈ
ϑϦϧͰͷվળͷ݁Ռ
ϑϦϧͰͷվળͷ݁Ռ w ΞΧϯτొ͕Ξοϓ
·ͱΊ
·ͱΊ w গͳ͍ೖྗͰࡁΈɺೖྗܗ͕͔ࣜΓɺϦΞ ϧλΠϜͰνΣοΫ͞ΕΔϑΥʔϜշద w ϦΞϧλΠϜνΣοΫʹ5FYUͷมԽͱೖྗ ྃͷλΠϛϯάͰόϦσʔγϣϯ͢Δ w 3FBDUJWF$PDPBΛ͏ͱ5FYUมԽͷݕָ͕ w
όϦσʔγϣϯΤϥʔTUSVDUΛ͏ͱྑ͍ w ϑϦϧͷ߹ɺొϑΥʔϜվળͰొ͕ ্͕ͬͨ