Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Formkit
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Meiwin Fu
September 22, 2014
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Formkit
Objective-C library for easily building forms UI.
Meiwin Fu
September 22, 2014
Other Decks in Programming
See All in Programming
気持ちぃ〜角丸 Squircle
ryu1013
0
310
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
残高管理から台帳サービスへの進化
artoy
1
200
Railsバージョンを4倍にした話
optim
0
350
golang-bob.pdf
iwatsukayura
0
130
AmebaブログはKMPから卒業します
kmars0605
0
180
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
430
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
sira's awesome portfolio website redesign presentation
elsirapls
0
450
Fireside Chat
paigeccino
43
4.1k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
480
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How to Talk to Developers About Accessibility
jct
2
580
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Transcript
Hi. Meiwin @meiwin
[email protected]
Hong Wei @hongweizhuo
[email protected]
Formkit Usual boring forms, little less painful https://github.com/zhuohongwei/Formkit
semantic-ui.com “A form is a collection of user input elements.”
None
Observations/Problems • Typically most forms are rows of field •
Field is usually combination of label and input control • They look trivial, but not so trivial to implement • UI interactions (sometimes) require quite some code too
Motivation/Goals • To make form creation trivial, less effort •
To start minimum, consistent iteration over time • No/minimal third-party dependency • Easy to extend • Open-source
• Example: FKForm *form = [[FKForm alloc] init]; form.title =
@"Sign In"; FKRowItem *row1 = [form addRow]; [row1 addColumnWithItem:[FKTextFieldItem textFieldItemWithName:@"username" label:@"Username" text:nil placeholder:@"Email address"]]; FKRowItem *row2 = [form addRow]; [row2 addColumnWithItem:[FKTextFieldItem textFieldItemWithName:@"password" label:@"Password" text:nil placeholder:nil]]; form.purpose = FKFormPurposeSubmit; form.submitLabel = @“Sign In”;
None
Design • It’s a tree of items with FKForm as
the root • Form contains 0-N rows • Row contains 0-N columns • Column contains 1 item • FKInputItem represents user input element
FKInputItem Classes • FKTextFieldItem • FKSelectFieldItem • FKMultiSelectFieldItem • FKInlineSelectFieldItem
• FKInlineMultiSelectFieldItem • FKSwitchFieldItem
Form API • setValues: • allValues • setValue:forInputItemNamed: • inputItemNamed:
• reload
Form callbacks • FKFormDelegate protocol • form:didFocusItem: • form:didDefocusItem: •
form:valueDidChangedForItem:
FKFormViewController • Convenient base class • Manage instance of FKForm
• Convenient methods to present success/error message • Conforms to FKFormDelegate
Demo