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
Design Minded Development
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Austin Bales
March 01, 2013
Design
540
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Design Minded Development
Good designers and good developers have a lot in common.
Austin Bales
March 01, 2013
More Decks by Austin Bales
See All by Austin Bales
UI Encapsulation with Handlebars and Sass
austin
5
1.1k
Building Awesome Products at Do.com
austin
2
220
Building Do on Heroku
austin
7
740
Other Decks in Design
See All in Design
凡庸を落とすハーネス
hiromimaeo
2
990
Design_Harness_and_Loop.pdf
nagatsu
0
120
日経電子版を支えていく Kasane Design System
taitotnk
0
440
東京都市大学 都市生活学部×一般社団法人オープン企画イベント 「誰もがデザイナーである」とはどういうことか? 【エツィオ・マンズィーニ氏 特別来日・基調講演】
a2k
1
150
Edmonton River Slidedeck
edmontonriver
0
440
Where Imagination Ends AI Begins
r5ni4
0
470
Kouseki | CREATIVE CLASS成果物
yuri9911
0
250
Webブラウザで動く VJツールをつくる
akirafukuoka
0
120
図書館書架のオンライン閲覧サービス 「honbaco library」の開発 Code4Lib JAPAN カンファレンス 2026
sugi2000
0
120
インターンから2年新卒フロントエンドエンジニアから見たサイボウズのアクセシビリティ
taku10101
0
180
Webデザイナー中田美穂_ポートフォリオ
omy
0
200
AI-DLC AI駆動開発ライフサイクルとAI-DLC Worlflows V2のご紹介
fatsushi
2
690
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
First, design no harm
axbom
PRO
2
1.3k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
220
For a Future-Friendly Web
brad_frost
184
10k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Transcript
Design Minded Development The work, dress and concepts displayed within
are the property of Austin Bales or others. Some or all rights reserved. Austin Robert Bales arbales
do.com
None
Design Minded Development The work, dress and concepts displayed within
are the property of Austin Bales or others. Some or all rights reserved.
Good designers and good developers have a lot in common.
“ What is it that makes it what it is?
” Karen Moyer
DESIGN IS PROCESS from an existing state – to a
preferred one
DEVELOPMENT IS PROCESS from a concept – to a functioning
system
PATTERNS SIMPLICITY CLARITY & DRYNESS The Commonalities
LABELS!? (DANGEROUS COMPLIMENTS)
UNICORN / NINJA
NINJAS THROW STARS, THEY DON’T WRITE CODE.
YOU CAN BE A TOO DON’T PLACE PEOPLE ON PEDESTALS
LEARNING Steps for
What do you want to Build? The Build icon is
a trademark of Andy McMillan.
How can I realize an idea?
Start somewhere, somehow. <?php ?>
Iterate
Gradually aim to solve more complex problems.
PATTERNS SIMPLICITY CLARITY & DRYNESS The Commonalities
PATTERNS No. 1
“ Good product design incorporates a number of timeless principles
for human-computer interaction. ” “The Philosophy of UI Design: Fundamental Principles” OS X Human Interface Guidelines
-‐ (void) setupVolumeView { NSView *volumeView =
[NSView initialize]; [volumeView setDelegate: self]; } song = Song.new song.name = "Ocean Man" song.artist = Artist.where(name: 'Ween').first song.save
In Design
None
None
Art & Technology Lectures presents… Richard L. Gregory The Peculiarity
of Pictures 7pm on November 31, 2007 Margaret Morrison Carnegie Hall 5232 Forbes Avenue, Pittsburgh Admission Free
Art & Technology Lectures presents… Richard L. Gregory The Peculiarity
of Pictures 7pm on November 31, 2007 Margaret Morrison Carnegie Hall 5232 Forbes Avenue, Pittsburgh Admission Free
Art & Technology Lectures presents… Richard L. Gregory The Peculiarity
of Pictures 7pm on November 31, 2007 Margaret Morrison Carnegie Hall 5232 Forbes Avenue, Pittsburgh Admission Free
Art & Technology Lectures presents… Richard L. Gregory The Peculiarity
of Pictures 7pm on November 31, 2007 Margaret Morrison Carnegie Hall 5232 Forbes Avenue, Pittsburgh Admission Free
None
SIMPLICITY No. 2 Contains quotations and excepts from… The Laws
of Simplicity by John Maeda
“ Simplicity is about subtracting the obvious, and adding the
meaningful. ” The Laws of Simplicity by John Maeda
In Code
“Subviews” in Backbone
Album art from Up From Below. Copyright Vagrant Records.
Control View Volume View
render: function(){ this.$el.html(Warble.templates.controls()); volumeEl = this.$("[data-‐region='volumeControls']"); this.volumeView
= new Warble.Views.VolumeControl({ el: volumeEl, currentVolume: this.model.get('currentVolume') }); this.volumeView.render(); this.volumeView.on('change:volume', this.changeVolume()) } warble_control_view.js
render: function(){ this.$el.html(Warble.templates.controls()); volumeEl = this.$("[data-‐region='volumeControls']"); this.volumeView
= new Warble.Views.VolumeControl({ el: volumeEl, currentVolume: this.model.get('currentVolume') }); this.volumeView.render(); this.volumeView.on('change:volume', this.changeVolume()) }
render: function(){ this.$el.html(Warble.templates.controls()); volumeEl = this.$("[data-‐region='volumeControls']"); this.volumeView
= new Warble.Views.VolumeControl({ el: volumeEl, currentVolume: this.model.get('currentVolume') }); this.volumeView.render(); this.volumeView.on('change:volume', this.changeVolume()) }
render: function(){ this.$el.html(Warble.templates.controls()); volumeEl = this.$("[data-‐region='volumeControls']"); this.volumeView
= new Warble.Views.VolumeControl({ el: volumeEl, currentVolume: this.model.get('currentVolume') }); this.volumeView.render(); this.volumeView.on('change:volume', this.changeVolume()) }
Render Initialize Render Bind Events
“Subviews” in Ember
{{view Warble.VolumeControlView}} control_view.hbs Warble.JukeboxController = Ember.ObjectController.extend({ volumeChanged: function(e) {}
}); jukebox_controller.coffee
{{view Warble.VolumeControlView}} Warble.JukeboxController = Ember.ObjectController.extend({ volumeChanged: function(e) {} });
{{view Warble.VolumeControlView}} Warble.JukeboxController = Ember.ObjectController.extend({ volumeChanged: function(e) {} });
1. Specify a Subview (2. Customize)
Simplicity is about subtracting the obvious, and adding the meaningful.
” “
In User Interfaces
Adding Contacts & Subscribers
None
“Mentions” in Do, Facebook, etc.
None
Simplify UI by designing for user behavior.
CLARITY No. 3
In User Interfaces
Microsoft Word
None
46 WIDGETS
Pages
None
23 WIDGETS
Reduce.
In Code
Gob Bluth
<span class="avatar-‐wrapper"> <img src="{{avatar.url}}" alt="…" title="…" class="avatar" /> </span>
Gob Bluth
<div class="avatar-‐wrapper"> <img src="{{avatar.h48.url" … class="avatar big" /> </div>
<i class="avatar-‐profile" data-‐image= "<%= current_user.avatar.full"></i> <span class="avatar-‐wrapper"> <img src="{{author.avatar.url}}" … class="avatar" /> <span class="guest-‐indicator"></span> </span> <div class="avatar uploader" data-‐role="uploader"> <img src="{{url}}" alt="…" title="{{../../name}}" class="avatar big" /> <label class="button button-‐upload icon"> … </div>
Don’t repeat yourself.
<div class="avatar-‐wrapper"> <img src="{{avatar.h48.url}}" … class="avatar big" /> </div>
<i class="avatar-‐profile" data-‐image= "<%= current_user.avatar.full"></i> <span class="avatar-‐wrapper"> <img src="{{author.avatar.url}}" … class="avatar" /> <span class="guest-‐indicator"></span> </span> <div class="avatar uploader" data-‐role="uploader"> <img src="{{url}}" alt="…" title="{{../../name}}" class="avatar big" /> <label class="button button-‐upload icon"> … </div>
{{constructAvatar user size=32}}
{{constructAvatar user size=48}} {{constructAvatar user size=80 style="rounded"}} {{constructAvatar user size=32
guest=true}} {{#constructAvatar user size=32 wrapper="uploader"}} <label class="button button-‐upload icon"> {{/constructAvatar}}
Uniform tag construction Consistent image sizes! Documented options Easy-to-Update Forget
forgetting alt, title, etc.
Keep it DRY
Good designers and good developers have a lot in common.
Have a great day. arbales