TODO.
-
“Know a good idea when you see it”: a demo of KHTML running on a Mac, made in 2 days, helped them pick it for Safari.
-
“Don't try to solve every problem at once”: was extracting KHTML from KDE, had no idea how it worked, just compiled one file at a time, and stubbed missing functions one at a time.
-
“Find smart friends and listen to them”: got stuck implementing arrow navigation in KHTML editing component, asked for help.
-
“Work should explain itself”: considered multiple smart alternatives to the original iPhone keyboard, but how do you teach people to use them? “After each experiment we always came back to QWERTY”.
-
“Choose the simplest thing which might work”: iPhone keyboard autocorrection the simplest possible way: on every keystroke, search through every word in the dictionary. No math, no multithreading, no data structures. Memory-mapped dictionary file worked fast enough.
-
“Only show your best work”: for iPad landscape mode, wanted to support two keyboards — an alternative keyboard would have more keys (digits, etc). Steve: “We only need one of these, right?” Steve asked which one it should be, and the best one was immediately clear.
-
“Iterating quickly leads to better work”: for iOS 7 design iterations, implemented an editing UI for all colors/sizes, and now many options could be tried on a single iteration. “Direct correlation between quality and ease of iterating”
-
“Three lessons from making this session” — “Be kind to people, but be honest about work. Separate yourself from your work.”
You're never done: “If you do something and it turns out pretty good, then you should go do something else wonderful, not dwell on it too long. Just figure out what’s next.” — Steve Jobs
-
Design Principles: simplicity (e.g. less clutter in the icons), consistency (e.g. app icons), depth, content-focused (unified toolbar, translucent window chrome)
-
New system font: Helvetica Neue with optimized metrics. Don't set font to Helvetica Neue directly, use system font, it's not the same thing!
-
Added [UIColor secondaryLabelColor]. labelColor and secondaryLabelColor are designed to work with vibrancy. “Unless you have a really compelling, overriding reason to do so, please let the Kit provide the coloring for any textual elements on your buttons and images.”
-
Use template images to take advantage of new look, all control states, and vibrancy.
-
Vibrancy (advanced blending mode that makes content look good on any background): NSVisualEffectView for background blur, then set appearance to NSApperanceNameVibrantDark (Notification Center) / NSApperanceNameVibrantLight (menus and popovers). Also available: general light appearance (sidebars and source lists), translucent title bar appearance.
-
Translucent toolbars with content showing through: automatic if NSScrollView is adjacent to the toolbar, otherwise use NSFullSizeContentView window mask.
-
Translucent sidebar. Active window only. Automatic with NSOutlineView or NSTableView when highlight style is Source List.
-
NSWindow without a title (e.g. Safari): titleVisibility = NSWindowTitleHidden.
-
Green button is now the full-screen button. Option-click (or double-click the titlebar) for zoom.
-
Separated segmented control (backwards/forwards, incremental step) — NSSegmentStyleSeparated
-
Some controls are animated: radio buttons, checkboxes, popup buttons.