SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
STORYBOARDING
                                OUDL iOS mini-workshop
                            December 6, 2012 @ TheBoxJelly.com




Tuesday, December 11, 12
Tuesday, December 11, 12

Welcome to OUDL
THANKS




Tuesday, December 11, 12
Greetings
                                       Kyle Oba
                                       @mudphone
                                       mudphone on #hicapacity


Tuesday, December 11, 12
OBJECTIVES

                   • PROTOTYPING: intro, tool, techniques
                   • WHY
                   • WHAT: storyboard basics
                   • BUILD: & sprinkled throughout
                   •       !!! CODE !!!


                   • RESOURCES
Tuesday, December 11, 12
PROTOTYPING




Tuesday, December 11, 12

INTRODUCTION - Main Objectives:
- Prototypes for iOS apps
- Learn Storyboarding
Why use prototyping?

                           •   Communication

                           •   Common Model

                           •   Dog & Pony

                           •   UX Testing




Tuesday, December 11, 12

Communication - Get an idea out and communicate it to your team.
Common Model - Teams work better if they have a common model. A common visual
vocabulary.
Dog & Pony - Sharing a concept with clients, customers, investors, God.
UX Testing - Checking the feel of a UI, interactions.
A desirable process

                              •   Easy Creation

                              •   Accessible

                              •   Fast Output

                              •   Low Cost




Tuesday, December 11, 12

Sometimes these conflicts with your goals.
They’re not necessarily intrinsic in prototyping.
Compromises
Dead Trees




Tuesday, December 11, 12

Moleskine optional
Homemade Worksheets




Tuesday, December 11, 12

Downloadable templates, for printing, photocopying
UIStencils.com
White Boards




Tuesday, December 11, 12

Showerboard can be had for less than $20 a panel at HD/Lowe’s
UI Stencils




Tuesday, December 11, 12

stencils, mockup notepads, and sticky notes
See also, AI and PS stencils
Balsamiq Mockups




Tuesday, December 11, 12
Keynotopia




Tuesday, December 11, 12

Requires Keynote on Mac and on device
Storyboards, in general...




Tuesday, December 11, 12

Creates a visual outline describing scenes
and relationships between scenes
Xcode Storyboards




Tuesday, December 11, 12

Uses scenes and segue/transition metaphor of movie storyboards
This is a real app. It uses the same transitions and UI elements
Interactions are real (slider, button press)
Animations are real (switch)
Transitions have the same timing
Can be used as a basis for the final product
Xcode Storyboards

                      “The right tool is the one you will use.”




      https://blog.bloomfire.com/posts/487150-the-right-tool-is-the-one-you-will-use/public

Tuesday, December 11, 12

We use some combination of all these tools.
If your team doesn’t learn Storyboarding, you have to pass a picture from the design team to
the development team.
This happens


                                   pass a picture
                   designer
                                                          developer

                                  build something




Tuesday, December 11, 12

This happens (and it’s fine)
Rinse, repeat
This is why the apartment I live in is horrible
The greatness of our product is limited by these cycles
This is better


                   designer
                                                       developer




                                common model

Tuesday, December 11, 12

Communication required here.
We have to know where the other side is coming from.
I’m also a customer.
Tuesday, December 11, 12
I also convert (to iOS 6)
Tuesday, December 11, 12

Treed originally released for iOS 4, upgraded to iOS 5
Now revising for iOS 6 w/ Storyboards
XCODE STORYBOARDS


                    Exactly what are they?



Tuesday, December 11, 12
Xcode Storyboards

                             scenes
                                         segues      outlet
                                                           s   & acti
                                                                        ons




Tuesday, December 11, 12

A scene is like a screen (or page)
Scenes are related by segues
Transitions are specific types of segue
Outlets & actions make coding easier (not covered)
A collection of scenes
                                      Storyboard




                           Scene                         Scene

                                         View                    View




                               View       View     Control




                  Control               Control



Tuesday, December 11, 12

View is a visual element, like a table view or red square.
- Contain basics for display and interaction.
Control, like a button (is a specific type of view)
Layers omitted for brevity.
Views and Controls
                                     Scene

                                             View




                              View                  Control




Tuesday, December 11, 12
Segues
                 Scene:                                                  Scene:
                                      button pressed
            login screen                                             home screen




                                           swipe
              side menu                                             hidden content




                                           touch
          custom control                                           birds in slingshot




Tuesday, December 11, 12

Other segue triggers: shake, rotation, timing, geo fencing, etc.
Freeze Dried
                           scenes
                                    segues         outlet
                                                         s   & acti
                                                                      ons




                                       serialize




Tuesday, December 11, 12
Rehydration


                                                   initialize




Tuesday, December 11, 12

Can be faster than other editors which emit code to create objects.
PROJECT TEMPLATES
                 iPhone                           iPad

                •      Single View                •   Single View

                •      Master-Detail              •   Master-Detail

                •      Page Based

                •      Tabbed




Tuesday, December 11, 12

iPhone
- Single View: This is a blank slate; we’ll use this one
- Master-Detail Application (Dynamic UITableView): Just take a look
- Page Based: Just take a look
- Tabbed: Add another tab

    
   - Add new view controller

    
   - Ctrl drag from UITabViewController to new view controller
iPad
- Master-Detail Application (Split View)
- Single View: Demo’s here
What should we build?



Tuesday, December 11, 12
Single View




Tuesday, December 11, 12
Master-Detail iPhone




Tuesday, December 11, 12
Page-Based




Tuesday, December 11, 12
Tabbed




Tuesday, December 11, 12
Master-Detail iPad




Tuesday, December 11, 12
What should we build?
                     (Insta-Kitteh)


Tuesday, December 11, 12
LABS OVERVIEW
                   •       Create projects

                   •       Run app on simulator

                   •       Add views, such as buttons and labels

                   •       Create new scenes

                   •       Move from scene to scene via segues, triggered by
                           buttons or gestures

                   •       Create a configuration screen, using a static table
                           view

                   •       Use container views, such as tab bars and
                           navigations controllers
Tuesday, December 11, 12
LAB1: Single View
                           1. Create a new folder on your desktop: OUDL

                           2. Create a new “Single View” Project, saving it in
                              the new OUDL folder

                           3. Drag a UILabel onto the scene

                           4. Change the label text

                           5. Run this project in the simulator




Tuesday, December 11, 12

Show all the steps of creating a new project.
Show each pane of Xcode.
Show all objects that could be dragged in.
Show attributes panel, change color.
Run in simulator.
Show how to change device type.
Show how to re-open a project after it is closed.
LAB2: Modal Segue
                     1. Create a new “Single View” Project, or use the old one

                     2. Drag a button onto the scene

                     3. Drag another UIViewController onto the scene

                     4. Change the background color of the new view
                        controller (anything but white)

                     5. Control-click from the button to the new view
                        controller. When you release, select the “modal” segue
                        option.

                     6. Run this project in the simulator

Tuesday, December 11, 12

This is a modal segue, so you can’t get back (unless you use code).
Check out the other modal segue types.
Show what happens when you try a push (boom!).
LAB3: Nav Controller
                     1. Create a new “Single View” Project
                     2. Drag a UINavigationController onto the storyboard
                     3. Drag “initial scene” arrow to point to “Navigation Controller”
                     4. Control-click and from the navigation controller to the original scene (not
                        the Table View). When you release, select the “root view controller” segue
                        option.
                     5. Click on the very top of the Table View scene to select it. Then delete it.
                     6. Drag a UIButton onto the original scene (not the Navigation Controller)
                     7. Add another UIViewController onto the storyboard
                     8. Add a UILabel to the new UIViewController
                     9. Control-click and from the button to the new UIViewController (the one
                        with the label). When you release, select the “push” segue option.
                     10. Run simulator, tap button to go to new screen (tap “back” to go back)


Tuesday, December 11, 12

Show “Is Initial View Controller” checkbox in Attributes Inspector
CTRL-OPT-CMD 3: focus on object library’s search field
CMD-R: to start simulator
Now you can get back.
Explain the container view type.
LAB4: Table View
                     1. Create a new “Single View” Project
                     2. Drag a UITableViewController (not a UITableView) onto the storyboard
                     3. Drag “initial scene” arrow to point to “Table View Controller”
                     4. In Attributes Inspector, change Table View Content type from “Dynamic
                        Prototypes” to “Static Cells”
                     5. Change the Style to “Grouped”
                     6. Change Sections to 2
                     7. In the Document Outline, select the first section. Change the number of
                        rows to 5
                     8. Give the first section a “Header” and “Footer”
                     9. Run simulator




Tuesday, December 11, 12

Show change to cell selection color
Show cell accessory types
Show cell style types
LAB5: Configuration Screen
                     1. Create a new “Single View” Project
                     2. Drag a UINavigationController onto the storyboard
                     3. Change the Table View Controller’s table view content type to “Static
                        Cells”
                     4. Change the Style to “Grouped”
                     5. Change the first cell’s style to “Basic”
                     6. Double click the text in the first cell and change it to “My Setting”
                     7. Change the first cell’s Accessory to “Disclosure Indicator”
                     8. Drag a UIViewController onto the storyboard
                     9. Control-click and from the first cell to the new view controller. When
                        you release, select the Selection Segue “push” option.
                     10. Run simulator (tap on the first cell)



Tuesday, December 11, 12

Change “Root View Controller” title
Add another UIViewController (add a different label to it), use detail disclosure to trigger
segue
LAB6: Tabs
                           1. Create a new “Tabbed Application” Project

                           2. Run this project in the simulator




Tuesday, December 11, 12
LAB7: More Tabs
                           1. Reuse your old “Tabbed Application” Project

                           2. Drag a new UIViewController to the storyboard

                           3. Control-click from the Tab Bar Controller to the
                              new view controller. When you release, select
                              the relationship segue “view controllers” option.

                           4. Change the new view controller’s Bar Item -
                              Title (the default value is “Item”)

                           5. Add a label to the new view controller

                           6. Run this project in the simulator

Tuesday, December 11, 12

Explain that the Tab Bar Controller is another container view controller
Extra Credit: Embed the new view controller in a navigation controller, then add a button that
pushes another view controller
LAB8: Gestures
                 1.        Create a new “Single View” Project

                 2.        Drag a UINavigationController onto the storyboard

                 3.        Delete the Table View Controller

                 4.        Drag “initial scene” arrow to point to the “Navigation Controller”

                 5.        Make the original blank view controller the root view controller of the navigation controller (i.e.
                           embed the original blank view controller in the navigation controller)

                 6.        Drag a Swipe Gesture Recognizer onto the original blank view controller. Change the swipe direction
                           to “Left”

                 7.        Drag a new UIView Controller onto the storyboard

                 8.        Change to the Top Bar - Navigation Bar attribute of the new view controller (found in the Simulated
                           Metrics section of the Attributes Inspector).

                 9.        Double click the middle of the new navigation bar, and change the title to “Swipe!”

                 10. Find the Swipe Gesture Recognizer in the Document Outline. Control-click and from the Swipe
                     Gesture Recognizer to the “Swipe!” view controller. When you release, select the Action Segue
                     “push” option.

                 11. Run simulator (Swipe to the left to trigger the segue)




Tuesday, December 11, 12

Change the swipe direction.
Try this with other gestures.
Doing it in code.


                           Display a red square in code.

                   Display a red square with a Storyboard.



Tuesday, December 11, 12

Code is sometimes required.
It is certainly required for dynamic interactivity.
But, do as much as you can in the Storyboard.
Things not appearing...

                   • Scroll Views, Web Views, etc.
                   • Layers, Core Graphics, Core Image, etc.
                   • Rotation
                   • Auto Layout, a.k.a. handling rotation &
                           different screen sizes, resolutions
                   • Dynamic UI elements, a.k.a. interactivity
Tuesday, December 11, 12
Resources

                   •       http://fortawesome.github.com/Font-Awesome/

                   •       http://www.glyphish.com

                   •       WWDC 2011, 2012 videos having anything to do
                           with storyboarding

                   •       http://www.raywenderlich.com/tutorials

                   •       http://placekitten.com



Tuesday, December 11, 12
Merci!




Tuesday, December 11, 12
Appendix



Tuesday, December 11, 12
LAB0: Deploying to a device
                           1.   Register as a developer at:
                                1.   https://developer.apple.com/devcenter/ios/index.action
                           2.   After registering, you will have access to the documentation.You can then follow
                                these instructions to prepare your development environment for builds on a
                                device:
                                1.   http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/
                                     ios_development_workflow/10-
                                     Configuring_Development_and_Distribution_Assets/
                                     identities_and_devices.html#//apple_ref/doc/uid/TP400079
                           3.   You'll need to pay $99 to become a licensed iOS developer. This fee is also
                                required if you would like to publish your app on the iOS App Store. Please note
                                that there are two Apple developer programs, one is for iOS (iPhone, iPad, iPod
                                Touch) apps, the other is for Mac (desktop) apps. Be sure to sign up and pay for
                                the correct one.
                           4.   After registering, you will have access to the documentation.You can then follow
                                these instructions to prepare your development environment for builds on a
                                device:
                                1.   http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/
                                     ios_development_workflow/10-
                                     Configuring_Development_and_Distribution_Assets/
                                     identities_and_devices.html#//apple_ref/doc/uid/TP400079
                           5.   Read:
                                1.   https://developer.apple.com/ios/manage/overview/index.action (You can’t read
                                     this without a developer account.)


Tuesday, December 11, 12

Weitere ähnliche Inhalte

Andere mochten auch

A Workshop on UX Design and Storyboarding
A Workshop on UX Design and StoryboardingA Workshop on UX Design and Storyboarding
A Workshop on UX Design and StoryboardingKevin Hoxie
 
Storyboarding Workshop
Storyboarding WorkshopStoryboarding Workshop
Storyboarding WorkshopAlex Cowan
 
Storytelling: The Ultimate Survival Tool?
Storytelling: The Ultimate Survival Tool?Storytelling: The Ultimate Survival Tool?
Storytelling: The Ultimate Survival Tool?Park Howell
 
Storyboarding In User Experience Workshop (at Mobile UX London)
Storyboarding In User Experience Workshop (at Mobile UX London)Storyboarding In User Experience Workshop (at Mobile UX London)
Storyboarding In User Experience Workshop (at Mobile UX London)Sarah Doody
 
Storyboarding : Workshop for TMC|X
Storyboarding : Workshop for TMC|XStoryboarding : Workshop for TMC|X
Storyboarding : Workshop for TMC|XGrace Rodriguez
 
Storytelling in Product Development: Knowing your users & their stories
Storytelling in Product Development: Knowing your users & their storiesStorytelling in Product Development: Knowing your users & their stories
Storytelling in Product Development: Knowing your users & their storiesSarah Doody
 
Storyboarding csa2013 - Simple sketching for UX, user research & content stra...
Storyboarding csa2013 - Simple sketching for UX, user research & content stra...Storyboarding csa2013 - Simple sketching for UX, user research & content stra...
Storyboarding csa2013 - Simple sketching for UX, user research & content stra...Deb Aoki
 
Storyboarding for Content Strategy and UX Design - U of W Continuing Ed. Nov....
Storyboarding for Content Strategy and UX Design - U of W Continuing Ed. Nov....Storyboarding for Content Strategy and UX Design - U of W Continuing Ed. Nov....
Storyboarding for Content Strategy and UX Design - U of W Continuing Ed. Nov....Deb Aoki
 
Users' Story: UX Storyboarding
Users' Story: UX StoryboardingUsers' Story: UX Storyboarding
Users' Story: UX StoryboardingFrank Garofalo
 
5 Secrets to Killer Lead Generation Using SlideShare
5 Secrets to Killer Lead Generation Using SlideShare5 Secrets to Killer Lead Generation Using SlideShare
5 Secrets to Killer Lead Generation Using SlideShareEugene Cheng
 

Andere mochten auch (11)

A Workshop on UX Design and Storyboarding
A Workshop on UX Design and StoryboardingA Workshop on UX Design and Storyboarding
A Workshop on UX Design and Storyboarding
 
Storyboarding Workshop
Storyboarding WorkshopStoryboarding Workshop
Storyboarding Workshop
 
Storytelling: The Ultimate Survival Tool?
Storytelling: The Ultimate Survival Tool?Storytelling: The Ultimate Survival Tool?
Storytelling: The Ultimate Survival Tool?
 
Storyboarding In User Experience Workshop (at Mobile UX London)
Storyboarding In User Experience Workshop (at Mobile UX London)Storyboarding In User Experience Workshop (at Mobile UX London)
Storyboarding In User Experience Workshop (at Mobile UX London)
 
Storyboarding : Workshop for TMC|X
Storyboarding : Workshop for TMC|XStoryboarding : Workshop for TMC|X
Storyboarding : Workshop for TMC|X
 
Storytelling in Product Development: Knowing your users & their stories
Storytelling in Product Development: Knowing your users & their storiesStorytelling in Product Development: Knowing your users & their stories
Storytelling in Product Development: Knowing your users & their stories
 
Storyboarding csa2013 - Simple sketching for UX, user research & content stra...
Storyboarding csa2013 - Simple sketching for UX, user research & content stra...Storyboarding csa2013 - Simple sketching for UX, user research & content stra...
Storyboarding csa2013 - Simple sketching for UX, user research & content stra...
 
Storyboarding for Content Strategy and UX Design - U of W Continuing Ed. Nov....
Storyboarding for Content Strategy and UX Design - U of W Continuing Ed. Nov....Storyboarding for Content Strategy and UX Design - U of W Continuing Ed. Nov....
Storyboarding for Content Strategy and UX Design - U of W Continuing Ed. Nov....
 
Storyboarding
StoryboardingStoryboarding
Storyboarding
 
Users' Story: UX Storyboarding
Users' Story: UX StoryboardingUsers' Story: UX Storyboarding
Users' Story: UX Storyboarding
 
5 Secrets to Killer Lead Generation Using SlideShare
5 Secrets to Killer Lead Generation Using SlideShare5 Secrets to Killer Lead Generation Using SlideShare
5 Secrets to Killer Lead Generation Using SlideShare
 

Ähnlich wie iOS Prototyping with Xcode Storyboards

iPad Apps for teachers
iPad Apps for teachersiPad Apps for teachers
iPad Apps for teachersRod Martin
 
TripCase Unit Testing with Jasmine
TripCase Unit Testing with JasmineTripCase Unit Testing with Jasmine
TripCase Unit Testing with JasmineStephen Pond
 
Adaptive Experiences
Adaptive ExperiencesAdaptive Experiences
Adaptive ExperiencesWINTR
 
Interfaces Inteligentes para Android
Interfaces Inteligentes para AndroidInterfaces Inteligentes para Android
Interfaces Inteligentes para AndroidNelson Glauber Leal
 
Introduction To MongoDB
Introduction To MongoDBIntroduction To MongoDB
Introduction To MongoDBYnon Perek
 
Design process
Design processDesign process
Design processTim Wright
 
JS Tooling in Rails 3.1
JS Tooling in Rails 3.1JS Tooling in Rails 3.1
JS Tooling in Rails 3.1Duda Dornelles
 
Big app design for Node.js
Big app design for Node.jsBig app design for Node.js
Big app design for Node.jsSergi Mansilla
 
OmniOS Motivation and Design ~ LISA 2012
OmniOS Motivation and Design ~ LISA 2012OmniOS Motivation and Design ~ LISA 2012
OmniOS Motivation and Design ~ LISA 2012Theo Schlossnagle
 
Velocity Marketing and Growth Hacking, Nov '12
Velocity Marketing and Growth Hacking, Nov '12Velocity Marketing and Growth Hacking, Nov '12
Velocity Marketing and Growth Hacking, Nov '12Ken Rutsky
 
HTML5 Touch Interfaces: SXSW extended version.
HTML5 Touch Interfaces: SXSW extended version.HTML5 Touch Interfaces: SXSW extended version.
HTML5 Touch Interfaces: SXSW extended version.Stephen Woods
 
iFixit @ Monterey Bay Aquarium
iFixit @ Monterey Bay AquariumiFixit @ Monterey Bay Aquarium
iFixit @ Monterey Bay AquariumKyle Wiens
 
Sebastian Burkhart — Berlin.apps.js Nov 2012 Talk
Sebastian Burkhart — Berlin.apps.js Nov 2012 TalkSebastian Burkhart — Berlin.apps.js Nov 2012 Talk
Sebastian Burkhart — Berlin.apps.js Nov 2012 TalkSebastian Burkhart
 
Voices of the 4.5 Million: A Sound Visualization of the US Housing Crisis
Voices of the 4.5 Million: A Sound Visualization of the US Housing CrisisVoices of the 4.5 Million: A Sound Visualization of the US Housing Crisis
Voices of the 4.5 Million: A Sound Visualization of the US Housing CrisisLiz Khoo
 
Mobile Accessibility - Accessibility Camp Toronto
Mobile Accessibility - Accessibility Camp TorontoMobile Accessibility - Accessibility Camp Toronto
Mobile Accessibility - Accessibility Camp TorontoTed Drake
 
MongoDB Hadoop and Humongous Data
MongoDB Hadoop and Humongous DataMongoDB Hadoop and Humongous Data
MongoDB Hadoop and Humongous DataMongoDB
 
Make something real for Firefox OS with Mozilla app templates
Make something real  for Firefox OS with Mozilla app templatesMake something real  for Firefox OS with Mozilla app templates
Make something real for Firefox OS with Mozilla app templatesPiotr Zalewa
 
Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Claude Falguiere
 

Ähnlich wie iOS Prototyping with Xcode Storyboards (20)

iPad Apps for teachers
iPad Apps for teachersiPad Apps for teachers
iPad Apps for teachers
 
TripCase Unit Testing with Jasmine
TripCase Unit Testing with JasmineTripCase Unit Testing with Jasmine
TripCase Unit Testing with Jasmine
 
Mobile? WT... F?
Mobile? WT... F?Mobile? WT... F?
Mobile? WT... F?
 
Adaptive Experiences
Adaptive ExperiencesAdaptive Experiences
Adaptive Experiences
 
Interfaces Inteligentes para Android
Interfaces Inteligentes para AndroidInterfaces Inteligentes para Android
Interfaces Inteligentes para Android
 
Introduction To MongoDB
Introduction To MongoDBIntroduction To MongoDB
Introduction To MongoDB
 
Design process
Design processDesign process
Design process
 
JS Tooling in Rails 3.1
JS Tooling in Rails 3.1JS Tooling in Rails 3.1
JS Tooling in Rails 3.1
 
Big app design for Node.js
Big app design for Node.jsBig app design for Node.js
Big app design for Node.js
 
OmniOS Motivation and Design ~ LISA 2012
OmniOS Motivation and Design ~ LISA 2012OmniOS Motivation and Design ~ LISA 2012
OmniOS Motivation and Design ~ LISA 2012
 
Velocity Marketing and Growth Hacking, Nov '12
Velocity Marketing and Growth Hacking, Nov '12Velocity Marketing and Growth Hacking, Nov '12
Velocity Marketing and Growth Hacking, Nov '12
 
HTML5 Touch Interfaces: SXSW extended version.
HTML5 Touch Interfaces: SXSW extended version.HTML5 Touch Interfaces: SXSW extended version.
HTML5 Touch Interfaces: SXSW extended version.
 
iFixit @ Monterey Bay Aquarium
iFixit @ Monterey Bay AquariumiFixit @ Monterey Bay Aquarium
iFixit @ Monterey Bay Aquarium
 
Sebastian Burkhart — Berlin.apps.js Nov 2012 Talk
Sebastian Burkhart — Berlin.apps.js Nov 2012 TalkSebastian Burkhart — Berlin.apps.js Nov 2012 Talk
Sebastian Burkhart — Berlin.apps.js Nov 2012 Talk
 
Voices of the 4.5 Million: A Sound Visualization of the US Housing Crisis
Voices of the 4.5 Million: A Sound Visualization of the US Housing CrisisVoices of the 4.5 Million: A Sound Visualization of the US Housing Crisis
Voices of the 4.5 Million: A Sound Visualization of the US Housing Crisis
 
Mobile Accessibility - Accessibility Camp Toronto
Mobile Accessibility - Accessibility Camp TorontoMobile Accessibility - Accessibility Camp Toronto
Mobile Accessibility - Accessibility Camp Toronto
 
MongoDB Hadoop and Humongous Data
MongoDB Hadoop and Humongous DataMongoDB Hadoop and Humongous Data
MongoDB Hadoop and Humongous Data
 
HTML5 and Sencha Touch
HTML5 and Sencha TouchHTML5 and Sencha Touch
HTML5 and Sencha Touch
 
Make something real for Firefox OS with Mozilla app templates
Make something real  for Firefox OS with Mozilla app templatesMake something real  for Firefox OS with Mozilla app templates
Make something real for Firefox OS with Mozilla app templates
 
Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012
 

Kürzlich hochgeladen

韩国SKKU学位证,成均馆大学毕业证书1:1制作
韩国SKKU学位证,成均馆大学毕业证书1:1制作韩国SKKU学位证,成均馆大学毕业证书1:1制作
韩国SKKU学位证,成均馆大学毕业证书1:1制作7tz4rjpd
 
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degreeyuu sss
 
昆士兰大学毕业证(UQ毕业证)#文凭成绩单#真实留信学历认证永久存档
昆士兰大学毕业证(UQ毕业证)#文凭成绩单#真实留信学历认证永久存档昆士兰大学毕业证(UQ毕业证)#文凭成绩单#真实留信学历认证永久存档
昆士兰大学毕业证(UQ毕业证)#文凭成绩单#真实留信学历认证永久存档208367051
 
DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...
DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...
DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...Rishabh Aryan
 
定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一
定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一
定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一Fi ss
 
Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Rndexperts
 
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一F La
 
Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...
Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...
Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...Yantram Animation Studio Corporation
 
Iconic Global Solution - web design, Digital Marketing services
Iconic Global Solution - web design, Digital Marketing servicesIconic Global Solution - web design, Digital Marketing services
Iconic Global Solution - web design, Digital Marketing servicesIconic global solution
 
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一Fi L
 
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一Fi sss
 
办理(麻省罗威尔毕业证书)美国麻省大学罗威尔校区毕业证成绩单原版一比一
办理(麻省罗威尔毕业证书)美国麻省大学罗威尔校区毕业证成绩单原版一比一办理(麻省罗威尔毕业证书)美国麻省大学罗威尔校区毕业证成绩单原版一比一
办理(麻省罗威尔毕业证书)美国麻省大学罗威尔校区毕业证成绩单原版一比一diploma 1
 
Pharmaceutical Packaging for the elderly.pdf
Pharmaceutical Packaging for the elderly.pdfPharmaceutical Packaging for the elderly.pdf
Pharmaceutical Packaging for the elderly.pdfAayushChavan5
 
Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Rndexperts
 
shot list for my tv series two steps back
shot list for my tv series two steps backshot list for my tv series two steps back
shot list for my tv series two steps back17lcow074
 
Passbook project document_april_21__.pdf
Passbook project document_april_21__.pdfPassbook project document_april_21__.pdf
Passbook project document_april_21__.pdfvaibhavkanaujia
 
Design and Managing Service in the field of tourism and hospitality industry
Design and Managing Service in the field of tourism and hospitality industryDesign and Managing Service in the field of tourism and hospitality industry
Design and Managing Service in the field of tourism and hospitality industryrioverosanniejoy
 
cda.pptx critical discourse analysis ppt
cda.pptx critical discourse analysis pptcda.pptx critical discourse analysis ppt
cda.pptx critical discourse analysis pptMaryamAfzal41
 
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档208367051
 

Kürzlich hochgeladen (20)

韩国SKKU学位证,成均馆大学毕业证书1:1制作
韩国SKKU学位证,成均馆大学毕业证书1:1制作韩国SKKU学位证,成均馆大学毕业证书1:1制作
韩国SKKU学位证,成均馆大学毕业证书1:1制作
 
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
 
昆士兰大学毕业证(UQ毕业证)#文凭成绩单#真实留信学历认证永久存档
昆士兰大学毕业证(UQ毕业证)#文凭成绩单#真实留信学历认证永久存档昆士兰大学毕业证(UQ毕业证)#文凭成绩单#真实留信学历认证永久存档
昆士兰大学毕业证(UQ毕业证)#文凭成绩单#真实留信学历认证永久存档
 
DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...
DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...
DAKSHIN BIHAR GRAMIN BANK: REDEFINING THE DIGITAL BANKING EXPERIENCE WITH A U...
 
定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一
定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一
定制(CQU文凭证书)中央昆士兰大学毕业证成绩单原版一比一
 
Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025
 
Call Girls in Pratap Nagar, 9953056974 Escort Service
Call Girls in Pratap Nagar,  9953056974 Escort ServiceCall Girls in Pratap Nagar,  9953056974 Escort Service
Call Girls in Pratap Nagar, 9953056974 Escort Service
 
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
 
Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...
Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...
Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...
 
Iconic Global Solution - web design, Digital Marketing services
Iconic Global Solution - web design, Digital Marketing servicesIconic Global Solution - web design, Digital Marketing services
Iconic Global Solution - web design, Digital Marketing services
 
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
 
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
 
办理(麻省罗威尔毕业证书)美国麻省大学罗威尔校区毕业证成绩单原版一比一
办理(麻省罗威尔毕业证书)美国麻省大学罗威尔校区毕业证成绩单原版一比一办理(麻省罗威尔毕业证书)美国麻省大学罗威尔校区毕业证成绩单原版一比一
办理(麻省罗威尔毕业证书)美国麻省大学罗威尔校区毕业证成绩单原版一比一
 
Pharmaceutical Packaging for the elderly.pdf
Pharmaceutical Packaging for the elderly.pdfPharmaceutical Packaging for the elderly.pdf
Pharmaceutical Packaging for the elderly.pdf
 
Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025
 
shot list for my tv series two steps back
shot list for my tv series two steps backshot list for my tv series two steps back
shot list for my tv series two steps back
 
Passbook project document_april_21__.pdf
Passbook project document_april_21__.pdfPassbook project document_april_21__.pdf
Passbook project document_april_21__.pdf
 
Design and Managing Service in the field of tourism and hospitality industry
Design and Managing Service in the field of tourism and hospitality industryDesign and Managing Service in the field of tourism and hospitality industry
Design and Managing Service in the field of tourism and hospitality industry
 
cda.pptx critical discourse analysis ppt
cda.pptx critical discourse analysis pptcda.pptx critical discourse analysis ppt
cda.pptx critical discourse analysis ppt
 
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
 

iOS Prototyping with Xcode Storyboards

  • 1. STORYBOARDING OUDL iOS mini-workshop December 6, 2012 @ TheBoxJelly.com Tuesday, December 11, 12
  • 2. Tuesday, December 11, 12 Welcome to OUDL
  • 4. Greetings Kyle Oba @mudphone mudphone on #hicapacity Tuesday, December 11, 12
  • 5. OBJECTIVES • PROTOTYPING: intro, tool, techniques • WHY • WHAT: storyboard basics • BUILD: & sprinkled throughout • !!! CODE !!! • RESOURCES Tuesday, December 11, 12
  • 6. PROTOTYPING Tuesday, December 11, 12 INTRODUCTION - Main Objectives: - Prototypes for iOS apps - Learn Storyboarding
  • 7. Why use prototyping? • Communication • Common Model • Dog & Pony • UX Testing Tuesday, December 11, 12 Communication - Get an idea out and communicate it to your team. Common Model - Teams work better if they have a common model. A common visual vocabulary. Dog & Pony - Sharing a concept with clients, customers, investors, God. UX Testing - Checking the feel of a UI, interactions.
  • 8. A desirable process • Easy Creation • Accessible • Fast Output • Low Cost Tuesday, December 11, 12 Sometimes these conflicts with your goals. They’re not necessarily intrinsic in prototyping. Compromises
  • 9. Dead Trees Tuesday, December 11, 12 Moleskine optional
  • 10. Homemade Worksheets Tuesday, December 11, 12 Downloadable templates, for printing, photocopying UIStencils.com
  • 11. White Boards Tuesday, December 11, 12 Showerboard can be had for less than $20 a panel at HD/Lowe’s
  • 12. UI Stencils Tuesday, December 11, 12 stencils, mockup notepads, and sticky notes See also, AI and PS stencils
  • 14. Keynotopia Tuesday, December 11, 12 Requires Keynote on Mac and on device
  • 15. Storyboards, in general... Tuesday, December 11, 12 Creates a visual outline describing scenes and relationships between scenes
  • 16. Xcode Storyboards Tuesday, December 11, 12 Uses scenes and segue/transition metaphor of movie storyboards This is a real app. It uses the same transitions and UI elements Interactions are real (slider, button press) Animations are real (switch) Transitions have the same timing Can be used as a basis for the final product
  • 17. Xcode Storyboards “The right tool is the one you will use.” https://blog.bloomfire.com/posts/487150-the-right-tool-is-the-one-you-will-use/public Tuesday, December 11, 12 We use some combination of all these tools. If your team doesn’t learn Storyboarding, you have to pass a picture from the design team to the development team.
  • 18. This happens pass a picture designer developer build something Tuesday, December 11, 12 This happens (and it’s fine) Rinse, repeat This is why the apartment I live in is horrible The greatness of our product is limited by these cycles
  • 19. This is better designer developer common model Tuesday, December 11, 12 Communication required here. We have to know where the other side is coming from.
  • 20. I’m also a customer. Tuesday, December 11, 12
  • 21. I also convert (to iOS 6) Tuesday, December 11, 12 Treed originally released for iOS 4, upgraded to iOS 5 Now revising for iOS 6 w/ Storyboards
  • 22. XCODE STORYBOARDS Exactly what are they? Tuesday, December 11, 12
  • 23. Xcode Storyboards scenes segues outlet s & acti ons Tuesday, December 11, 12 A scene is like a screen (or page) Scenes are related by segues Transitions are specific types of segue Outlets & actions make coding easier (not covered)
  • 24. A collection of scenes Storyboard Scene Scene View View View View Control Control Control Tuesday, December 11, 12 View is a visual element, like a table view or red square. - Contain basics for display and interaction. Control, like a button (is a specific type of view) Layers omitted for brevity.
  • 25. Views and Controls Scene View View Control Tuesday, December 11, 12
  • 26. Segues Scene: Scene: button pressed login screen home screen swipe side menu hidden content touch custom control birds in slingshot Tuesday, December 11, 12 Other segue triggers: shake, rotation, timing, geo fencing, etc.
  • 27. Freeze Dried scenes segues outlet s & acti ons serialize Tuesday, December 11, 12
  • 28. Rehydration initialize Tuesday, December 11, 12 Can be faster than other editors which emit code to create objects.
  • 29. PROJECT TEMPLATES iPhone iPad • Single View • Single View • Master-Detail • Master-Detail • Page Based • Tabbed Tuesday, December 11, 12 iPhone - Single View: This is a blank slate; we’ll use this one - Master-Detail Application (Dynamic UITableView): Just take a look - Page Based: Just take a look - Tabbed: Add another tab - Add new view controller - Ctrl drag from UITabViewController to new view controller iPad - Master-Detail Application (Split View) - Single View: Demo’s here
  • 30. What should we build? Tuesday, December 11, 12
  • 36. What should we build? (Insta-Kitteh) Tuesday, December 11, 12
  • 37. LABS OVERVIEW • Create projects • Run app on simulator • Add views, such as buttons and labels • Create new scenes • Move from scene to scene via segues, triggered by buttons or gestures • Create a configuration screen, using a static table view • Use container views, such as tab bars and navigations controllers Tuesday, December 11, 12
  • 38. LAB1: Single View 1. Create a new folder on your desktop: OUDL 2. Create a new “Single View” Project, saving it in the new OUDL folder 3. Drag a UILabel onto the scene 4. Change the label text 5. Run this project in the simulator Tuesday, December 11, 12 Show all the steps of creating a new project. Show each pane of Xcode. Show all objects that could be dragged in. Show attributes panel, change color. Run in simulator. Show how to change device type. Show how to re-open a project after it is closed.
  • 39. LAB2: Modal Segue 1. Create a new “Single View” Project, or use the old one 2. Drag a button onto the scene 3. Drag another UIViewController onto the scene 4. Change the background color of the new view controller (anything but white) 5. Control-click from the button to the new view controller. When you release, select the “modal” segue option. 6. Run this project in the simulator Tuesday, December 11, 12 This is a modal segue, so you can’t get back (unless you use code). Check out the other modal segue types. Show what happens when you try a push (boom!).
  • 40. LAB3: Nav Controller 1. Create a new “Single View” Project 2. Drag a UINavigationController onto the storyboard 3. Drag “initial scene” arrow to point to “Navigation Controller” 4. Control-click and from the navigation controller to the original scene (not the Table View). When you release, select the “root view controller” segue option. 5. Click on the very top of the Table View scene to select it. Then delete it. 6. Drag a UIButton onto the original scene (not the Navigation Controller) 7. Add another UIViewController onto the storyboard 8. Add a UILabel to the new UIViewController 9. Control-click and from the button to the new UIViewController (the one with the label). When you release, select the “push” segue option. 10. Run simulator, tap button to go to new screen (tap “back” to go back) Tuesday, December 11, 12 Show “Is Initial View Controller” checkbox in Attributes Inspector CTRL-OPT-CMD 3: focus on object library’s search field CMD-R: to start simulator Now you can get back. Explain the container view type.
  • 41. LAB4: Table View 1. Create a new “Single View” Project 2. Drag a UITableViewController (not a UITableView) onto the storyboard 3. Drag “initial scene” arrow to point to “Table View Controller” 4. In Attributes Inspector, change Table View Content type from “Dynamic Prototypes” to “Static Cells” 5. Change the Style to “Grouped” 6. Change Sections to 2 7. In the Document Outline, select the first section. Change the number of rows to 5 8. Give the first section a “Header” and “Footer” 9. Run simulator Tuesday, December 11, 12 Show change to cell selection color Show cell accessory types Show cell style types
  • 42. LAB5: Configuration Screen 1. Create a new “Single View” Project 2. Drag a UINavigationController onto the storyboard 3. Change the Table View Controller’s table view content type to “Static Cells” 4. Change the Style to “Grouped” 5. Change the first cell’s style to “Basic” 6. Double click the text in the first cell and change it to “My Setting” 7. Change the first cell’s Accessory to “Disclosure Indicator” 8. Drag a UIViewController onto the storyboard 9. Control-click and from the first cell to the new view controller. When you release, select the Selection Segue “push” option. 10. Run simulator (tap on the first cell) Tuesday, December 11, 12 Change “Root View Controller” title Add another UIViewController (add a different label to it), use detail disclosure to trigger segue
  • 43. LAB6: Tabs 1. Create a new “Tabbed Application” Project 2. Run this project in the simulator Tuesday, December 11, 12
  • 44. LAB7: More Tabs 1. Reuse your old “Tabbed Application” Project 2. Drag a new UIViewController to the storyboard 3. Control-click from the Tab Bar Controller to the new view controller. When you release, select the relationship segue “view controllers” option. 4. Change the new view controller’s Bar Item - Title (the default value is “Item”) 5. Add a label to the new view controller 6. Run this project in the simulator Tuesday, December 11, 12 Explain that the Tab Bar Controller is another container view controller Extra Credit: Embed the new view controller in a navigation controller, then add a button that pushes another view controller
  • 45. LAB8: Gestures 1. Create a new “Single View” Project 2. Drag a UINavigationController onto the storyboard 3. Delete the Table View Controller 4. Drag “initial scene” arrow to point to the “Navigation Controller” 5. Make the original blank view controller the root view controller of the navigation controller (i.e. embed the original blank view controller in the navigation controller) 6. Drag a Swipe Gesture Recognizer onto the original blank view controller. Change the swipe direction to “Left” 7. Drag a new UIView Controller onto the storyboard 8. Change to the Top Bar - Navigation Bar attribute of the new view controller (found in the Simulated Metrics section of the Attributes Inspector). 9. Double click the middle of the new navigation bar, and change the title to “Swipe!” 10. Find the Swipe Gesture Recognizer in the Document Outline. Control-click and from the Swipe Gesture Recognizer to the “Swipe!” view controller. When you release, select the Action Segue “push” option. 11. Run simulator (Swipe to the left to trigger the segue) Tuesday, December 11, 12 Change the swipe direction. Try this with other gestures.
  • 46. Doing it in code. Display a red square in code. Display a red square with a Storyboard. Tuesday, December 11, 12 Code is sometimes required. It is certainly required for dynamic interactivity. But, do as much as you can in the Storyboard.
  • 47. Things not appearing... • Scroll Views, Web Views, etc. • Layers, Core Graphics, Core Image, etc. • Rotation • Auto Layout, a.k.a. handling rotation & different screen sizes, resolutions • Dynamic UI elements, a.k.a. interactivity Tuesday, December 11, 12
  • 48. Resources • http://fortawesome.github.com/Font-Awesome/ • http://www.glyphish.com • WWDC 2011, 2012 videos having anything to do with storyboarding • http://www.raywenderlich.com/tutorials • http://placekitten.com Tuesday, December 11, 12
  • 51. LAB0: Deploying to a device 1. Register as a developer at: 1. https://developer.apple.com/devcenter/ios/index.action 2. After registering, you will have access to the documentation.You can then follow these instructions to prepare your development environment for builds on a device: 1. http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ ios_development_workflow/10- Configuring_Development_and_Distribution_Assets/ identities_and_devices.html#//apple_ref/doc/uid/TP400079 3. You'll need to pay $99 to become a licensed iOS developer. This fee is also required if you would like to publish your app on the iOS App Store. Please note that there are two Apple developer programs, one is for iOS (iPhone, iPad, iPod Touch) apps, the other is for Mac (desktop) apps. Be sure to sign up and pay for the correct one. 4. After registering, you will have access to the documentation.You can then follow these instructions to prepare your development environment for builds on a device: 1. http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ ios_development_workflow/10- Configuring_Development_and_Distribution_Assets/ identities_and_devices.html#//apple_ref/doc/uid/TP400079 5. Read: 1. https://developer.apple.com/ios/manage/overview/index.action (You can’t read this without a developer account.) Tuesday, December 11, 12