CS193P - Lecture 7. iphone Application Development. Navigation & Tab Bar Controllers

Size: px
Start display at page:

Download "CS193P - Lecture 7. iphone Application Development. Navigation & Tab Bar Controllers"

Transcription

1 CS193P - Lecture 7 iphone Application Development Navigation & Tab Bar Controllers 1

2 Announcements Assignment 3 is due tomorrow Paparazzi 1 is due on Wednesday February 3rd 2

3 Today s Topics Navigation Controllers Application Data Flow Customizing Navigation Tab Bar Controllers Combining Approaches 3

4 Navigation Controllers 4

5 UINavigationController Stack of view controllers Navigation bar Navigation Controller 5

6 UINavigationController Stack of view controllers Navigation bar Navigation Controller View Controller View Controller View Controller 5

7 How It Fits Together 6

8 How It Fits Together Top view controller s view 6

9 How It Fits Together Top view controller s view Top view controller s title 6

10 How It Fits Together Top view controller s view Top view controller s title Previous view controller s title 6

11 How It Fits Together Top view controller s view Top view controller s title Previous view controller s title Top view controller s toolbar items (iphone OS 3.0) 6

12 Modifying the Navigation Stack 7

13 Modifying the Navigation Stack Push to add a view controller - (void)pushviewcontroller:(uiviewcontroller *)viewcontroller animated:(bool)animated; 7

14 Modifying the Navigation Stack Push to add a view controller - (void)pushviewcontroller:(uiviewcontroller *)viewcontroller animated:(bool)animated; Pop to remove a view controller - (UIViewController *)popviewcontrolleranimated:(bool)animated; 7

15 Modifying the Navigation Stack Push to add a view controller - (void)pushviewcontroller:(uiviewcontroller *)viewcontroller animated:(bool)animated; Pop to remove a view controller - (UIViewController *)popviewcontrolleranimated:(bool)animated; Set to change the entire stack of view controllers (iphone OS 3.0) - (void)setviewcontrollers:(nsarray *)viewcontrollers animated:(bool)animated; 7

16 Pushing Your First View Controller 8

17 Pushing Your First View Controller - (void)applicationdidfinishlaunching // Create a navigation controller navcontroller = [[UINavigationController alloc] init]; } 8

18 Pushing Your First View Controller - (void)applicationdidfinishlaunching // Create a navigation controller navcontroller = [[UINavigationController alloc] init]; // Push the first view controller on the stack [navcontroller pushviewcontroller:firstviewcontroller animated:no]; } 8

19 Pushing Your First View Controller - (void)applicationdidfinishlaunching // Create a navigation controller navcontroller = [[UINavigationController alloc] init]; // Push the first view controller on the stack [navcontroller pushviewcontroller:firstviewcontroller animated:no]; } // Add the navigation controller s view to the window [window addsubview:navcontroller.view]; 8

20 In Response to User Actions 9

21 In Response to User Actions Push from within a view controller on the stack - (void)someaction:(id)sender { // Potentially create another view controller UIViewController *viewcontroller =...; } [self.navigationcontroller pushviewcontroller:viewcontroller animated:yes]; 9

22 In Response to User Actions Push from within a view controller on the stack - (void)someaction:(id)sender { // Potentially create another view controller UIViewController *viewcontroller =...; } [self.navigationcontroller pushviewcontroller:viewcontroller animated:yes]; Almost never call pop directly! Automatically invoked by the back button 9

23 Demo: Pushing & Popping 10

24 Application Data Flow 11

25 Paparazzi 12

26 A Controller for Each Screen List Controller List Controller Detail Controller 13

27 Connecting View Controllers 14

28 Connecting View Controllers Multiple view controllers may need to share data 14

29 Connecting View Controllers Multiple view controllers may need to share data One may need to know about what another is doing Watch for added, removed or edited data Other interesting events 14

30 How Not To Share Data Global variables or singletons This includes your application delegate! Direct dependencies make your code less reusable And more difficult to debug & test List Controller Detail Controller 15

31 How Not To Share Data Global variables or singletons This includes your application delegate! Direct dependencies make your code less reusable And more difficult to debug & test List Controller Detail Controller Application Delegate 15

32 How Not To Share Data Global variables or singletons This includes your application delegate! Direct dependencies make your code less reusable And more difficult to debug & test List Controller Detail Controller Don t Do This! Application Delegate 15

33 Best Practices for Data Flow Figure out exactly what needs to be communicated List Controller Detail Controller 16

34 Best Practices for Data Flow Figure out exactly what needs to be communicated Define input parameters for your view controller List Controller Detail Controller 16

35 Best Practices for Data Flow Figure out exactly what needs to be communicated Define input parameters for your view controller Data List Controller Detail Controller 16

36 Best Practices for Data Flow Figure out exactly what needs to be communicated Define input parameters for your view controller For communicating back up the hierarchy, use loose coupling Define a generic interface for observers (like delegation) List Controller Detail Controller 16

37 Best Practices for Data Flow Figure out exactly what needs to be communicated Define input parameters for your view controller For communicating back up the hierarchy, use loose coupling Define a generic interface for observers (like delegation) List Controller Detail Controller I care! 16

38 Best Practices for Data Flow Figure out exactly what needs to be communicated Define input parameters for your view controller For communicating back up the hierarchy, use loose coupling Define a generic interface for observers (like delegation) List Controller Detail Controller 16

39 Example: UIImagePickerController 17

40 Demo: Passing Data Along 18

41 Customizing Navigation 19

42 Customizing Navigation Buttons or custom controls Interact with the entire screen 20

43 Customizing Navigation Buttons or custom controls Interact with the entire screen 20

44 UINavigationItem Describes appearance of the navigation bar Title string or custom title view Left & right bar buttons More properties defined in UINavigationBar.h 21

45 UINavigationItem Describes appearance of the navigation bar Title string or custom title view Left & right bar buttons More properties defined in UINavigationBar.h Every view controller has a navigation item for customizing Displayed when view controller is on top of the stack 21

46 Navigation Item Ownership Left Bar Button Item View Controller Navigation Item Title View Right Bar Button Item 22

47 Displaying a Title UIViewController already has a title NSString *title; Navigation item inherits automatically Previous view controller s title is displayed in back button 23

48 Displaying a Title UIViewController already has a title NSString *title; Navigation item inherits automatically Previous view controller s title is displayed in back button viewcontroller.title Detail ; 23

49 Left & Right Buttons UIBarButtonItem Special object, defines appearance & behavior for items in navigation bars and toolbars Display a string, image or predefined system item Target + action (like a regular button) 24

50 Text Bar Button Item 25

51 Text Bar Button Item 25

52 Text Bar Button Item - (void)viewdidload { UIBarButtonItem *foobutton = [[UIBarButtonItem alloc] initwithtitle:@"foo style:uibarbuttonitemstylebordered target:self action:@selector(foo:)]; self.navigationitem.leftbarbuttonitem = foobutton; } [foobutton release]; 25

53 System Bar Button Item 26

54 System Bar Button Item 26

55 System Bar Button Item - (void)viewdidload { UIBarButtonItem *addbutton = [[UIBarButtonItem alloc] initwithbarbuttonsystemitem:uibarbuttonsystemitemadd style:uibarbuttonitemstylebordered target:self action:@selector(add:)]; self.navigationitem.rightbarbuttonitem = addbutton; } [addbutton release]; 26

56 Edit/Done Button Very common pattern Every view controller has one available Target/action already set up 27

57 Edit/Done Button Very common pattern Every view controller has one available Target/action already set up 27

58 Edit/Done Button Very common pattern Every view controller has one available Target/action already set up self.navigationitem.leftbarbuttonitem = self.editbuttonitem; 27

59 Edit/Done Button Very common pattern Every view controller has one available Target/action already set up self.navigationitem.leftbarbuttonitem = self.editbuttonitem; // Called when the user toggles the edit/done button - (void)setediting:(bool)editing animated:(bool)animated { // Update appearance of views } 27

60 Custom Title View Arbitrary view in place of the title 28

61 Custom Title View Arbitrary view in place of the title 28

62 Custom Title View Arbitrary view in place of the title UISegmentedControl *segmentedcontrol =... self.navigationitem.titleview = segmentedcontrol; [segmentedcontrol release]; 28

63 Back Button Sometimes a shorter back button is needed 29

64 Back Button Sometimes a shorter back button is needed 29

65 Back Button Sometimes a shorter back button is needed self.title Hello there, CS193P! ; 29

66 Back Button Sometimes a shorter back button is needed self.title Hello there, CS193P! ; UIBarButtonItem *heybutton = [[UIBarButtonItem alloc] initwithtitle:@ Hey!...]; self.navigationitem.backbuttonitem = heybutton; [heybutton release]; 29

67 Back Button Sometimes a shorter back button is needed self.title Hello there, CS193P! ; UIBarButtonItem *heybutton = [[UIBarButtonItem alloc] initwithtitle:@ Hey!...]; self.navigationitem.backbuttonitem = heybutton; [heybutton release]; 29

68 Demo: Customizing Buttons 30

69 Tab Bar Controllers 31

70 UITabBarController Array of view controllers Tab bar Tab Bar Controller 32

71 UITabBarController Array of view controllers Tab bar View Controller Tab Bar Controller View Controller View Controller 32

72 How It Fits Together 33

73 How It Fits Together Selected view controller s view 33

74 How It Fits Together Selected view controller s view All view controllers titles 33

75 Setting Up a Tab Bar Controller 34

76 Setting Up a Tab Bar Controller - (void)applicationdidfinishlaunching // Create a tab bar controller tabbarcontroller = [[UITabBarController alloc] init]; } 34

77 Setting Up a Tab Bar Controller - (void)applicationdidfinishlaunching // Create a tab bar controller tabbarcontroller = [[UITabBarController alloc] init]; // Set the array of view controllers tabbarcontroller.viewcontrollers = myviewcontrollers; } 34

78 Setting Up a Tab Bar Controller - (void)applicationdidfinishlaunching // Create a tab bar controller tabbarcontroller = [[UITabBarController alloc] init]; // Set the array of view controllers tabbarcontroller.viewcontrollers = myviewcontrollers; } // Add the tab bar controller s view to the window [window addsubview:tabbarcontroller.view]; 34

79 Tab Bar Appearance View controllers can define their appearance in the tab bar 35

80 Tab Bar Appearance View controllers can define their appearance in the tab bar UITabBarItem Title + image or system item 35

81 Tab Bar Appearance View controllers can define their appearance in the tab bar UITabBarItem Title + image or system item Each view controller comes with a tab bar item for customizing 35

82 Creating Tab Bar Items Title and image 36

83 Creating Tab Bar Items Title and image 36

84 Creating Tab Bar Items Title and image - (void)viewdidload { UITabBarItem *item = [[UITabBarItem alloc] initwithtitle:@ Playlists image:[uiimage imagenamed:@ music.png ] tag:0]; self.tabbaritem = item; [item release]; } 36

85 Creating Tab Bar Items System item 37

86 Creating Tab Bar Items System item 37

87 Creating Tab Bar Items System item - (void)viewdidload { UITabBarItem *item = [[UITabBarItem alloc] initwithtabbarsystemitem: UITabBarSystemItemBookmarks tag:0] self.tabbaritem = item; [item release]; } 37

88 Demo: Using a Tab Bar Controller 38

89 More View Controllers What happens when a tab bar controller has too many view controllers to display at once? 39

90 More View Controllers What happens when a tab bar controller has too many view controllers to display at once? More tab bar item displayed automatically 39

91 More View Controllers What happens when a tab bar controller has too many view controllers to display at once? More tab bar item displayed automatically User can navigate to remaining view controllers 39

92 More View Controllers What happens when a tab bar controller has too many view controllers to display at once? More tab bar item displayed automatically User can navigate to remaining view controllers Customize order 39

93 Combining Approaches 40

94 Tab Bar + Navigation Controllers Multiple parallel hierarchies 41

95 Tab Bar + Navigation Controllers Tab Bar Controller 42

96 Tab Bar + Navigation Controllers Navigation Controller View Controller Tab Bar Controller Navigation Controller View Controller View Controller 42

97 Nesting Navigation Controllers 43

98 Nesting Navigation Controllers Create a tab bar controller tabbarcontroller = [[UITabBarController alloc] init]; 43

99 Nesting Navigation Controllers Create a tab bar controller tabbarcontroller = [[UITabBarController alloc] init]; Create each navigation controller navcontroller = [[UINavigationController alloc] init]; [navcontroller pushviewcontroller:firstviewcontroller animated:no]; 43

100 Nesting Navigation Controllers Create a tab bar controller tabbarcontroller = [[UITabBarController alloc] init]; Create each navigation controller navcontroller = [[UINavigationController alloc] init]; [navcontroller pushviewcontroller:firstviewcontroller animated:no]; Add them to the tab bar controller tabbarcontroller.viewcontrollers = [NSArray arraywithobjects: navcontroller, anothernavcontroller, someviewcontroller, nil]; 43

101 Questions? 44

Naviga&on and Tab Bar Controllers and Table View

Naviga&on and Tab Bar Controllers and Table View Naviga&on and Tab Bar Controllers and Table View UINaviga)onController Stack of view controllers Naviga)on bar How It Fits Together Top view controller s view Top view controller s )tle Previous view controller

More information

Mobile Application Development

Mobile Application Development Mobile Application Development Lecture 16 Controllers of View Controllers 2013/2014 Parma Università degli Studi di Parma Lecture Summary Multiple MVCs UINavigationController Segues UITabBarController

More information

ios Development Lecture 3 Controllers of View Controllers Ing. Simone Cirani

ios Development Lecture 3 Controllers of View Controllers Ing. Simone Cirani ios Development Lecture 3 Controllers of View Controllers Ing. Simone Cirani email: simone.cirani@unipr.it http://www.tlc.unipr.it/cirani Corso IFTS Cisita ios Development 2014 Parma Università degli Studi

More information

CS193P - Lecture 11. iphone Application Development. Text Input Presenting Content Modally

CS193P - Lecture 11. iphone Application Development. Text Input Presenting Content Modally CS193P - Lecture 11 iphone Application Development Text Input Presenting Content Modally 1 Announcements 2 Announcements Paparazzi 3 assignment is due Wednesday 2/17 2 Announcements Paparazzi 3 assignment

More information

Announcements. Paparazzi 3 assignment is due Wednesday 2/17 This Friday s extra session will feature Evan Doll

Announcements. Paparazzi 3 assignment is due Wednesday 2/17 This Friday s extra session will feature Evan Doll CS193P - Lecture 11 iphone Application Development Text Input Presenting Content Modally 1 Announcements Paparazzi 3 assignment is due Wednesday 2/17 This Friday s extra session will feature Evan Doll

More information

Stanford CS193p. Developing Applications for ios. Fall Stanford CS193p. Fall 2011

Stanford CS193p. Developing Applications for ios. Fall Stanford CS193p. Fall 2011 Developing Applications for ios Today UI Element of the Week UIToolbar ipad Split View Popover Universal (iphone + ipad) Application Demo Friday Section AVFoundation framework - Capturing and manipulating

More information

Praktikum Entwicklung von Mediensystemen mit

Praktikum Entwicklung von Mediensystemen mit Praktikum Entwicklung von Mediensystemen mit Wintersemester 2013/2014 Christian Weiß, Dr. Alexander De Luca Today Table View Navigation Controller Passing Data Between Scenes Assignment 2 2 Navigation-based

More information

Designing iphone Applications

Designing iphone Applications Designing iphone Applications 4 Two Flavors of Mail 5 Organizing Content 6 Organizing Content 6 Organizing Content 6 Organizing Content 6 Organizing Content Focus on your user s data 6 Organizing Content

More information

Navigation bar (Xcode version 4.5.2) 1. Create a new project. From the Xcode menu, select File > New > Project

Navigation bar (Xcode version 4.5.2) 1. Create a new project. From the Xcode menu, select File > New > Project Navigation bar (Xcode version 4.5.2) 1. Create a new project. From the Xcode menu, select File > New > Project Choose the Single View Application template Click Next. In the Choose options for your new

More information

Computer Science 251. iphone Application Development. Autorotation, Popover Controllers, Modal Controllers

Computer Science 251. iphone Application Development. Autorotation, Popover Controllers, Modal Controllers Computer Science 251 iphone Application Development Autorotation, Popover Controllers, Modal Controllers Two Types of Orientation Device: physically upside down, rotated left, on its back, etc. Can be

More information

MVC & Onwards. CS 442: Mobile App Development Michael Saelee

MVC & Onwards. CS 442: Mobile App Development Michael Saelee MVC & Onwards CS 442: Mobile App Development Michael Saelee Agenda - Recap: view-controller communication - Delegation as a general pattern - Observer pattern - Controller responsibilities & MVC - Multiple

More information

Apple Development Technology Workshops

Apple Development Technology Workshops Apple Development Technology Workshops Workshop 10 Table Views Building iphone Apps. Pt 2 Fall 2008 Hafez Rouzati Fall 2008 Zach Pousman Last Week UIViewControllers Organizing Content & Building iphone

More information

CS193P - Lecture 8. iphone Application Development. Scroll Views & Table Views

CS193P - Lecture 8. iphone Application Development. Scroll Views & Table Views CS193P - Lecture 8 iphone Application Development Scroll Views & Table Views Announcements Presence 1 due tomorrow (4/28)! Questions? Presence 2 due next Tuesday (5/5) Announcements Enrolled students who

More information

IPHONE DEVELOPMENT. Getting Started with the iphone SDK

IPHONE DEVELOPMENT. Getting Started with the iphone SDK IPHONE DEVELOPMENT Getting Started with the iphone SDK OBJECTIVE-C The Big Picture STRICT SUPERSET OF C The Objective C Language Any C stuff applies Standard libs are here (time, sqrt etc) The C Language

More information

Announcements. Today s Topics

Announcements. Today s Topics Announcements Lab 2 is due tonight by 11:59 PM Late policy is 10% of lab total per day late So -7.5 points per day late for lab 2 Labs 3 and 4 are posted on the course website Extensible Networking Platform

More information

Announcements. Today s Topics

Announcements. Today s Topics Announcements Lab 2 is due tonight Lab 3 is posted Due next Wednesday Sept 30 th 1 Extensible - CSE 436 Software Networking Engineering Platform Workshop 1 Today s Topics Designing iphone Applica;ons Model-

More information

CS193P - Lecture 11. iphone Application Development. Text Input Presenting Content Modally

CS193P - Lecture 11. iphone Application Development. Text Input Presenting Content Modally CS193P - Lecture 11 iphone Application Development Text Input Presenting Content Modally Announcements Presence 3 assignment has been posted, due Tuesday 5/12 Final project proposals due on Monday 5/11

More information

View Controllers CPRE 388

View Controllers CPRE 388 View Controllers CPRE 388 View Controllers Manage views in model view controller design template. Many types: custom view controller; container view controller; modal view controller. Custom View controllers

More information

Advanced ios. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 20 11/01/2012

Advanced ios. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 20 11/01/2012 Advanced ios CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 20 11/01/2012 1 Goals of the Lecture Present a few additional topics and concepts related to ios programming persistence serialization

More information

User Experience: Windows & Views

User Experience: Windows & Views View Controller Programming Guide for ios User Experience: Windows & Views 2011-01-07 Apple Inc. 2011 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval

More information

Building GUIs with UIKit. Kevin Cathey

Building GUIs with UIKit. Kevin Cathey Building GUIs with UIKit Kevin Cathey Building GUIs with UIKit acm.uiuc.edu/macwarriors/devphone Building GUIs with UIKit What is UIKit? acm.uiuc.edu/macwarriors/devphone Building GUIs with UIKit What

More information

InterfaceBuilder and user interfaces

InterfaceBuilder and user interfaces ES3 Lab 2 InterfaceBuilder and user interfaces This lab InterfaceBuilder Creating components Linking them to your code Adding buttons, labels, sliders UITableView Creating a tableview Customizing cells

More information

Objective-C Primer. iphone Programmer s Association. Lorenzo Swank September 10, 2008

Objective-C Primer. iphone Programmer s Association. Lorenzo Swank September 10, 2008 Objective-C Primer iphone Programmer s Association Lorenzo Swank September 10, 2008 Disclaimer Content was blatantly and unapologetically stolen from the WWDC 2007 Fundamentals of Cocoa session, as well

More information

CS193P - Lecture 13. iphone Application Development. Address Book - Putting People in Your App

CS193P - Lecture 13. iphone Application Development. Address Book - Putting People in Your App CS193P - Lecture 13 iphone Application Development Address Book - Putting People in Your App 1 Announcements Paparazzi 3 due tomorrow at 11:59PM Paparazzi 4 (last assignment!) due next Wednesday 2 Final

More information

PCSchool Search User Guide. Search User Guide. Created in version /11

PCSchool Search User Guide. Search User Guide. Created in version /11 Search User Guide Created in version 2007.4.0.5 1/11 Table of Contents Search Keyword Search... 2 Propagate Search Words... 3 Report Format... 3 Report Format... 4 Popup Format... 5 Keyword Search... 7

More information

Intro to Native ios Development. Dave Koziol Arbormoon Software, Inc.

Intro to Native ios Development. Dave Koziol Arbormoon Software, Inc. Intro to Native ios Development Dave Koziol Arbormoon Software, Inc. About Me Long time Apple Developer (20 WWDCs) Organizer Ann Arbor CocoaHeads President & ios Developer at Arbormoon Software Inc. Wunder

More information

Assignment III: Graphing Calculator

Assignment III: Graphing Calculator Assignment III: Graphing Calculator Objective The goal of this assignment is to reuse your CalculatorBrain and CalculatorViewController objects to build a Graphing Calculator. By doing this, you will gain

More information

My First iphone App (for Xcode version 6.4)

My First iphone App (for Xcode version 6.4) My First iphone App (for Xcode version 6.4) 1. Tutorial Overview In this tutorial, you re going to create a very simple application on the iphone or ipod Touch. It has a text field, a label, and a button

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer About the Tutorial ios is a mobile operating system developed and distributed by Apple Inc. It was originally released in 2007 for the iphone, ipod Touch, and Apple TV. ios is derived from OS X, with which

More information

Stanford CS193p. Developing Applications for ios. Spring Stanford CS193p. Spring 2012

Stanford CS193p. Developing Applications for ios. Spring Stanford CS193p. Spring 2012 Developing Applications for ios Today NSTimer and perform after delay Two delayed-action alternatives. More View Animation Continuation of Kitchen Sink demo Alerts and Action Sheets Notifying the user

More information

Today s Topics. Scroll views Table views. UITableViewController Table view cells. Displaying data Controlling appearance & behavior

Today s Topics. Scroll views Table views. UITableViewController Table view cells. Displaying data Controlling appearance & behavior Today s Topics Scroll views Table views Displaying data Controlling appearance & behavior UITableViewController Table view cells Scroll Views UIScrollView For displaying more content than can fit on the

More information

OVERVIEW. Why learn ios programming? Share first-hand experience. Identify platform differences. Identify similarities with.net

OVERVIEW. Why learn ios programming? Share first-hand experience. Identify platform differences. Identify similarities with.net OVERVIEW Why learn ios programming? Share first-hand experience. Identify platform differences. Identify similarities with.net Microsoft MVP for 4 years C#, WinForms, WPF, Silverlight Joined Cynergy about

More information

Assignment III: Graphing Calculator

Assignment III: Graphing Calculator Assignment III: Graphing Calculator Objective The goal of this assignment is to reuse your CalculatorBrain and CalculatorViewController objects to build a Graphing Calculator for iphone and ipad. By doing

More information

CS193p Spring 2010 Thursday, April 29, 2010

CS193p Spring 2010 Thursday, April 29, 2010 CS193p Spring 2010 Announcements You should have received an e-mail by now If you received e-mail approving enrollment, but are not in Axess, do it! If you have any questions, please ask via e-mail or

More information

CS193P - Lecture 10. iphone Application Development. Performance

CS193P - Lecture 10. iphone Application Development. Performance CS193P - Lecture 10 iphone Application Development Performance 1 Announcements 2 Announcements Paparazzi 2 is due next Wednesday at 11:59pm 2 Announcements Paparazzi 2 is due next Wednesday at 11:59pm

More information

Navigation and Segues

Navigation and Segues Navigation and Segues Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Mobile Application Development in ios 1 Outline Multiple views Segues Navigation

More information

Widget Tour. iphone and ipod touch Development Fall 2009 Lecture 7

Widget Tour. iphone and ipod touch Development Fall 2009 Lecture 7 Widget Tour iphone and ipod touch Development Fall 2009 Lecture 7 Questions? Announcements Assignment #2 due Tonight by 11:59pm Today s Topics Controls Buttons Switches Sliders Segmented Controls Text

More information

Cisco StadiumVision Mobile API for Apple ios

Cisco StadiumVision Mobile API for Apple ios CHAPTER 1 Revised: March 28, 2013 Introduction to The ios SDK is provided as a set of static libraries, header files, and an a sample ios app (with a complete Xcode project). This API uses Objective-C

More information

View Controller Advancements for ios8

View Controller Advancements for ios8 Frameworks #WWDC14 View Controller Advancements for ios8 Session 214 Bruce D. Nilo Manager, UIKit Fundamentals 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without

More information

Why Model-View-Controller?

Why Model-View-Controller? View Controllers Why Model-View-Controller? Ever used the word spaghetti to describe code? Clear responsibilities make things easier to maintain Avoid having one monster class that does everything Why

More information

ITP 342 Advanced Mobile App Dev. Core Data

ITP 342 Advanced Mobile App Dev. Core Data ITP 342 Advanced Mobile App Dev Core Data Persistent Data NSUser Defaults Typically used to save app preferences Property List (plist) in Documents Directory Data is in a dictionary or an array Coders

More information

CS193p Spring 2010 Wednesday, March 31, 2010

CS193p Spring 2010 Wednesday, March 31, 2010 CS193p Spring 2010 Logistics Lectures Building 260 (History Corner) Room 034 Monday & Wednesday 4:15pm - 5:30pm Office Hours TBD Homework 7 Weekly Assignments Assigned on Wednesdays (often will be multiweek

More information

NATIVE APP INTERCEPTS on ios & ANDROID

NATIVE APP INTERCEPTS on ios & ANDROID ethnio tm NATIVE APP INTERCEPTS on ios & ANDROID VERSION NO. 2 CREATED JAN 17, 2018 ETHNIO, INC. 6121 W SUNSET BLVD LOS ANGELES, CA 90028 TEL (888) 879-7439 OVERVIEW There are two basic methods for implementing

More information

ios Mobile Development

ios Mobile Development ios Mobile Development Today UITableView! Data source-driven vertical list of views.! ipad! Device-specific UI idioms.! Demo! Shutterbug UITableView Very important class for displaying data in a table!

More information

Stanford CS193p. Developing Applications for ios Fall Stanford CS193p. Fall 2013

Stanford CS193p. Developing Applications for ios Fall Stanford CS193p. Fall 2013 Developing Applications for ios -14 Coming Up Wednesday Alternate Final Presentation. If you are using Alternate Presentation time, submit your Keynote by noon tomorrow (Tuesday). Submit the slides using

More information

ios Application Development Course Details

ios Application Development Course Details ios Application Development Course Details By Besant Technologies Course Name Category Venue ios Application Development Mobile Application Development Besant Technologies No.24, Nagendra Nagar, Velachery

More information

iphone App Basics iphone and ipod touch Development Fall 2009 Lecture 5

iphone App Basics iphone and ipod touch Development Fall 2009 Lecture 5 iphone App Basics iphone and ipod touch Development Fall 2009 Lecture 5 Questions? Announcements Assignment #1 due this evening by 11:59pm Remember, if you wish to use a free late you must email me before

More information

CS193p Spring 2010 Monday, April 12, 2010

CS193p Spring 2010 Monday, April 12, 2010 CS193p Spring 2010 Announcements Axess! Make sure your grading option matches what you were approved for Sonali s Office Hours Changed Friday 11am to 1pm Thursday 10am to noon Gates B26B Any questions

More information

Review. iphone Application Programming Lecture 2: Objective-C, Cocoa. History. Objective-C. Device restrictions. Interaction paradigm changes

Review. iphone Application Programming Lecture 2: Objective-C, Cocoa. History. Objective-C. Device restrictions. Interaction paradigm changes Review iphone Application Programming Lecture 2: Objective-C, Cocoa Device restrictions Gero Herkenrath Media Computing Group RWTH Aachen University Winter Semester 2013/2014 http://hci.rwth-aachen.de/iphone

More information

Stanford CS193p. Developing Applications for iphone 4, ipod Touch, & ipad Fall Stanford CS193p Fall 2010

Stanford CS193p. Developing Applications for iphone 4, ipod Touch, & ipad Fall Stanford CS193p Fall 2010 Developing Applications for iphone 4, ipod Touch, & ipad Today More Core Data What does the code for the custom NSManagedObject subclasses generated by Xcode look like? Querying for (fetching) objects

More information

CS 349 / SE 382 Design Patterns. Professor Michael Terry January 21, 2009

CS 349 / SE 382 Design Patterns. Professor Michael Terry January 21, 2009 CS 349 / SE 382 Design Patterns Professor Michael Terry January 21, 2009 Today s Agenda More demos! Design patterns CS 349 / SE 382 / 2 Announcements Assignment 1 due Monday at 5PM! CS 349 / SE 382 / 3

More information

ios Mobile Development

ios Mobile Development ios Mobile Development Today UITextView Scrollable, editable/selectable view of a mutable attributed string. View Controller Lifecycle Finding out what s happening as a VC is created, hooked up to the

More information

Announcement. Final Project Proposal Presentations and Updates

Announcement. Final Project Proposal Presentations and Updates Announcement Start Final Project Pitches on Wednesday Presentation slides dues by Tuesday at 11:59 PM Email slides to cse438ta@gmail.com Extensible Networking Platform 1 1 - CSE 438 Mobile Application

More information

CS193P - Lecture 3. iphone Application Development. Custom Classes Object Lifecycle Autorelease Properties

CS193P - Lecture 3. iphone Application Development. Custom Classes Object Lifecycle Autorelease Properties CS193P - Lecture 3 iphone Application Development Custom Classes Object Lifecycle Autorelease Properties 1 Announcements Assignments 1A and 1B due Wednesday 1/13 at 11:59 PM Enrolled Stanford students

More information

CS193P: HelloPoly Walkthrough

CS193P: HelloPoly Walkthrough CS193P: HelloPoly Walkthrough Overview The goal of this walkthrough is to give you a fairly step by step path through building a simple Cocoa Touch application. You are encouraged to follow the walkthrough,

More information

Mobile Application Development

Mobile Application Development Mobile Application Development Lecture 13 Introduction to ObjectiveC Part II 2013/2014 Parma Università degli Studi di Parma Lecture Summary Object creation Memory management Automatic Reference Counting

More information

My First iphone App. 1. Tutorial Overview

My First iphone App. 1. Tutorial Overview My First iphone App 1. Tutorial Overview In this tutorial, you re going to create a very simple application on the iphone or ipod Touch. It has a text field, a label, and a button. You can type your name

More information

Functions BCA-105. Few Facts About Functions:

Functions BCA-105. Few Facts About Functions: Functions When programs become too large and complex and as a result the task of debugging, testing, and maintaining becomes difficult then C provides a most striking feature known as user defined function

More information

CSC 1600 Memory Layout for Unix Processes"

CSC 1600 Memory Layout for Unix Processes CSC 16 Memory Layout for Unix Processes" 1 Lecture Goals" Behind the scenes of running a program" Code, executable, and process" Memory layout for UNIX processes, and relationship to C" : code and constant

More information

Objective-C Part 2 (ECS189H) Ken Joy Serban Porumbescu

Objective-C Part 2 (ECS189H) Ken Joy Serban Porumbescu Objective-C Part 2 (ECS189H) Ken Joy joy@cs.ucdavis.edu Serban Porumbescu porumbes@cs.ucdavis.edu Today Objective-C Memory Management Properties Categories and Protocols Delegates Objective-C Memory Management

More information

Run-time Environments. Lecture 13. Prof. Alex Aiken Original Slides (Modified by Prof. Vijay Ganesh) Lecture 13

Run-time Environments. Lecture 13. Prof. Alex Aiken Original Slides (Modified by Prof. Vijay Ganesh) Lecture 13 Run-time Environments Lecture 13 by Prof. Vijay Ganesh) Lecture 13 1 What have we covered so far? We have covered the front-end phases Lexical analysis (Lexer, regular expressions,...) Parsing (CFG, Top-down,

More information

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar Design Patterns MSc in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

Lectures 5. Announcements: Today: Oops in Strings/pointers (example from last time) Functions in MIPS

Lectures 5. Announcements: Today: Oops in Strings/pointers (example from last time) Functions in MIPS Lectures 5 Announcements: Today: Oops in Strings/pointers (example from last time) Functions in MIPS 1 OOPS - What does this C code do? int foo(char *s) { int L = 0; while (*s++) { ++L; } return L; } 2

More information

Storyboards and Controllers on OS X

Storyboards and Controllers on OS X Frameworks #WWDC14 Storyboards and Controllers on OS X Contain yourself Session 212 Mike Swingler Interface Builder Engineer Raleigh Ledet AppKit Engineer 2014 Apple Inc. All rights reserved. Redistribution

More information

Filtering - Zimbra

Filtering  - Zimbra Filtering Email - Zimbra Email filtering allows you to definite rules to manage incoming email. For instance, you may apply a filter on incoming email to route particular emails into folders or delete

More information

ios Core Data Example Application

ios Core Data Example Application ios Core Data Example Application The Core Data framework provides an abstract, object oriented interface to database storage within ios applications. This does not require extensive knowledge of database

More information

iphone Application Tutorial

iphone Application Tutorial iphone Application Tutorial 2008-06-09 Apple Inc. 2008 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any

More information

Cisco StadiumVision Mobile API for Apple ios

Cisco StadiumVision Mobile API for Apple ios CHAPTER 1 Revised: October 31, 2013 This chapter describes the Cisco StadiumVision Mobile SDK Release 1.3 for Apple ios, and contains the following sections: New Features in Cisco StadiumVision Mobile

More information

CS193E Lecture #3 Categories and Protocols Cocoa Memory Management

CS193E Lecture #3 Categories and Protocols Cocoa Memory Management CS193E Lecture #3 Categories and Protocols Cocoa Memory Management Winter 2008, Dempsey/Marcos 1 Today s Topics Questions from Assignment 1A or 1B? Categories Protocols Cocoa Memory Management Object life

More information

1 Build Your First App. The way to get started is to quit talking and begin doing. Walt Disney

1 Build Your First App. The way to get started is to quit talking and begin doing. Walt Disney 1 Build Your First App The way to get started is to quit talking and begin doing. Walt Disney Copyright 2015 AppCoda Limited All rights reserved. Please do not distribute or share without permission. No

More information

Design Patterns Design patterns advantages:

Design Patterns Design patterns advantages: Design Patterns Designing object-oriented software is hard, and designing reusable object oriented software is even harder. You must find pertinent objects factor them into classes at the right granularity

More information

lecture 10 UI/UX and Programmatic Design cs : spring 2018

lecture 10 UI/UX and Programmatic Design cs : spring 2018 lecture 10 UI/UX and Programmatic Design cs198-001 : spring 2018 1 Announcements custom app progress form due before lab (~1 minute) will be released after lecture only 2 labs left (both very important)

More information

Lecture 5. Announcements: Today: Finish up functions in MIPS

Lecture 5. Announcements: Today: Finish up functions in MIPS Lecture 5 Announcements: Today: Finish up functions in MIPS 1 Control flow in C Invoking a function changes the control flow of a program twice. 1. Calling the function 2. Returning from the function In

More information

CSC 2400: Computer Systems. Using the Stack for Function Calls

CSC 2400: Computer Systems. Using the Stack for Function Calls CSC 24: Computer Systems Using the Stack for Function Calls Lecture Goals Challenges of supporting functions! Providing information for the called function Function arguments and local variables! Allowing

More information

CSC369 Lecture 2. Larry Zhang, September 21, 2015

CSC369 Lecture 2. Larry Zhang, September 21, 2015 CSC369 Lecture 2 Larry Zhang, September 21, 2015 1 Volunteer note-taker needed by accessibility service see announcement on Piazza for details 2 Change to office hour to resolve conflict with CSC373 lecture

More information

Lecture Topics. Announcements. Today: Threads (Stallings, chapter , 4.6) Next: Concurrency (Stallings, chapter , 5.

Lecture Topics. Announcements. Today: Threads (Stallings, chapter , 4.6) Next: Concurrency (Stallings, chapter , 5. Lecture Topics Today: Threads (Stallings, chapter 4.1-4.3, 4.6) Next: Concurrency (Stallings, chapter 5.1-5.4, 5.7) 1 Announcements Make tutorial Self-Study Exercise #4 Project #2 (due 9/20) Project #3

More information

Contents. iphone Training. Industry Trainers. Classroom Training Online Training ON-DEMAND Training. Read what you need

Contents. iphone Training. Industry Trainers. Classroom Training Online Training ON-DEMAND Training. Read what you need iphone Training Contents About iphone Training Our ios training classes can help you get off to a running start in iphone, ipod and ipad app development. Learn from expert Objective-C developers with years

More information

View Controller Lifecycle

View Controller Lifecycle View Controller Lifecycle View Controllers have a Lifecycle A sequence of messages is sent to them as they progress through it Why does this matter? You very commonly override these methods to do certain

More information

Mobile Application Development

Mobile Application Development Object Lifecycle Mobile Application Development Creating objects Memory management Destroying objects Basic ios Development 11-Nov-11 Mobile App Development 1 11/11/11 2 Object Creation Two step process

More information

COMP 250. Lecture 8. stack. Sept. 25, 2017

COMP 250. Lecture 8. stack. Sept. 25, 2017 COMP 250 Lecture 8 stack Sept. 25, 2017 1 get(i) set(i,e) add(i,e) remove(i) remove(e) clear() isempty() size() What is a List (abstract)? // Returns the i-th element (but doesn't remove it) // Replaces

More information

Linked Lists, Stacks, and Queues

Linked Lists, Stacks, and Queues Department of Computer Science and Engineering Chinese University of Hong Kong In a nutshell, a data structure describes how data are stored in memory, in order to facilitate certain operations. In all

More information

Enterprise Architect. User Guide Series. Portals. Author: Sparx Systems. Date: 19/03/2018. Version: 1.0 CREATED WITH

Enterprise Architect. User Guide Series. Portals. Author: Sparx Systems. Date: 19/03/2018. Version: 1.0 CREATED WITH Enterprise Architect User Guide Series Portals Author: Sparx Systems Date: 19/03/2018 Version: 1.0 CREATED WITH Table of Contents Portals 3 Perspective Portal 6 Workspace Portal 7 Window Portal 9 Status

More information

VIC: Video Integrated Content

VIC: Video Integrated Content VIC: Video Integrated Content VIC is a video storage library that allows you to easily connect and share your videos with your students. Loading videos directly into courses can cause a number of issues,

More information

CS193P - Lecture 16. iphone Application Development. Audio APIs Video Playback Displaying Web Content Settings

CS193P - Lecture 16. iphone Application Development. Audio APIs Video Playback Displaying Web Content Settings CS193P - Lecture 16 iphone Application Development Audio APIs Video Playback Displaying Web Content Settings 1 Today s Topics Audio APIs Video Playback Settings Bundles 2 Audio Playback 3 Uses for Audio

More information

Contents. 1 Register and Configure Hi-Gate Add Sensor Node Create a Fresh New Project... 6

Contents. 1 Register and Configure Hi-Gate Add Sensor Node Create a Fresh New Project... 6 Contents 1 Register and Configure Hi-Gate... 2 1.1 Add Sensor Node... 4 1.2 Create a Fresh New Project... 6 1.3 Project Testing on Real Hardware... 9 1.4 Troubleshoot Guide... 10 2 Connection Modes: WiFi,

More information

Enterprise Architect. User Guide Series. Portals

Enterprise Architect. User Guide Series. Portals Enterprise Architect User Guide Series Portals What are Portals? In Sparx Systems Enterprise Architect, each Portal is a high-level logical grouping of common tools, custom searches, window layouts and

More information

Enterprise Architect. User Guide Series. Portals

Enterprise Architect. User Guide Series. Portals Enterprise Architect User Guide Series Portals What are Portals? In Sparx Systems Enterprise Architect, each Portal is a high-level logical grouping of common tools, custom searches, window layouts and

More information

Intro to Development for ios. Dave Koziol Arbormoon Software, Inc.

Intro to Development for ios. Dave Koziol Arbormoon Software, Inc. Intro to Development for ios Dave Koziol Arbormoon Software, Inc. About Me Long time Apple Developer (21 WWDCs) Organizer Ann Arbor CocoaHeads President & ios Developer at Arbormoon Software Inc. Multiple

More information

Lecture 8 Demo Code: Cassini Multithreading

Lecture 8 Demo Code: Cassini Multithreading Lecture 8 Demo Code: Cassini Multithreading Objective Included below is the source code for the demo in lecture. It is provided under the same Creative Commons licensing as the rest of CS193p s course

More information

Stanford CS193p. Developing Applications for iphone 4, ipod Touch, & ipad Fall Stanford CS193p Fall 2010

Stanford CS193p. Developing Applications for iphone 4, ipod Touch, & ipad Fall Stanford CS193p Fall 2010 Developing Applications for iphone 4, ipod Touch, & ipad Today One last Objective-C topic: Protocols Using protocols to define/implement/use a data source and/or delegate Views UIView and UIWindow classes

More information

2 Getting Started. Getting Started (v1.8.6) 3/5/2007

2 Getting Started. Getting Started (v1.8.6) 3/5/2007 2 Getting Started Java will be used in the examples in this section; however, the information applies to all supported languages for which you have installed a compiler (e.g., Ada, C, C++, Java) unless

More information

Today's Topics. CISC 458 Winter J.R. Cordy

Today's Topics. CISC 458 Winter J.R. Cordy Today's Topics Last Time Semantics - the meaning of program structures Stack model of expression evaluation, the Expression Stack (ES) Stack model of automatic storage, the Run Stack (RS) Today Managing

More information

Building a (Core) Foundation. Rob Napier

Building a (Core) Foundation. Rob Napier Building a (Core) Foundation Rob Napier A little background Mac OS X since 10.4 iphoneos since release Cisco Jabber, The Daily, RNCryptor Focus on low-level Today: Mac developer for... KACE NAPIER KUMAR

More information

Praktikum Entwicklung von Mediensystemen mit

Praktikum Entwicklung von Mediensystemen mit Praktikum Entwicklung von Mediensystemen mit Sommersemester 2013 Fabius Steinberger, Dr. Alexander De Luca Today Organization Introduction to ios programming Hello World Assignment 1 2 Organization 6 ECTS

More information

Mobile Application Programming. Memory Management

Mobile Application Programming. Memory Management Mobile Application Programming Memory Management Memory Management Ownership Model Memory Management in Objective-C is based on an ownership model. Objects may have many owners. Actions that result in

More information

Data IAP 2010 iphonedev.csail.mit.edu edward benson / Thursday, January 14, 2010

Data IAP 2010 iphonedev.csail.mit.edu edward benson / Thursday, January 14, 2010 Data IAP 2010 iphonedev.csail.mit.edu edward benson / eob@csail.mit.edu Today Property Lists User Defaults Settings Panels CoreData Property Lists Today Add persistence. plist 1. Using Property Lists in

More information

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lecture 7: View Controller Lifecycle and UIKit Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Content View Controller

More information

CS193p Spring 2010 Wednesday, May 26, 2010

CS193p Spring 2010 Wednesday, May 26, 2010 CS193p Spring 2010 Announcements Please e-mail if you want to take the option to present your final project next Wednesday. (You will still have until the following Tuesday to turn in your code.) No class

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 20: GoF Design Patterns Creational 1 Software Patterns Software Patterns support reuse of software architecture and design. Patterns capture the static

More information

Stanford CS193p. Developing Applications for iphone 4, ipod Touch, & ipad Spring Stanford CS193p Spring 2011

Stanford CS193p. Developing Applications for iphone 4, ipod Touch, & ipad Spring Stanford CS193p Spring 2011 Developing Applications for iphone 4, ipod Touch, & ipad Today Dynamic Binding Introspection Foundation Framework Enumeration More Objective-C Allocating and Initializing objects Memory Management Demo

More information