Skip to content

Instantly share code, notes, and snippets.

@andreyvit
Last active August 29, 2015 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andreyvit/dc7ee18a1e3fd736a507 to your computer and use it in GitHub Desktop.
Save andreyvit/dc7ee18a1e3fd736a507 to your computer and use it in GitHub Desktop.
WWDC 2014 Summaries

A Look Inside Presentation Controllers (228)

TODO.

A Strategy for Great Work (237)

  1. “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.

  2. “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.

  3. “Find smart friends and listen to them”: got stuck implementing arrow navigation in KHTML editing component, asked for help.

  4. “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”.

  5. “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.

  6. “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.

  7. “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”

  8. “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

Adapting to the New UI of OS X Yosemite (209)

  1. Design Principles: simplicity (e.g. less clutter in the icons), consistency (e.g. app icons), depth, content-focused (unified toolbar, translucent window chrome)

  2. 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!

  3. 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.”

  4. Use template images to take advantage of new look, all control states, and vibrancy.

  5. 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.

  6. Translucent toolbars with content showing through: automatic if NSScrollView is adjacent to the toolbar, otherwise use NSFullSizeContentView window mask.

  7. Translucent sidebar. Active window only. Automatic with NSOutlineView or NSTableView when highlight style is Source List.

  8. NSWindow without a title (e.g. Safari): titleVisibility = NSWindowTitleHidden.

  9. Green button is now the full-screen button. Option-click (or double-click the titlebar) for zoom.

  10. Separated segmented control (backwards/forwards, incremental step) — NSSegmentStyleSeparated

  11. Some controls are animated: radio buttons, checkboxes, popup buttons.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment