Core ios Application Architectural Patterns

Similar documents
CalorieCoin - A Fitness App With Game Appeal

UNIVERSITÉ DE MONTRÉAL DISSERTATION OR THESIS TITLE ALEX TÉRIEUR DÉPARTEMENT DE GÉNIE INFORMATIQUE ET GÉNIE LOGICIEL ÉCOLE POLYTECHNIQUE DE MONTRÉAL

Program Update. AAPA Environment Committee, April 17th, 2017 Eleanor Kirtley, PhD, LEED AP, PE, West Coast Program Manager

PROJECT MODIFICATION DATE 07/30/2012 CREATOR Leif Hill FILE NAME tt_01 DESCRIPTION Wire frames - file 01 VERSION HISTORY Mon Aug

All of the following cuts are possible, but not always available. If you know you want a particular cut of beef, please call and place an order.

Meats for Consumers STATE FAIR 4-H MEATS CONTEST (Revised June 14)

BEEF PRICE LIST Dec 22, 2014

Price List as at 15 October 2018

Price Unit. Beef/Veal Breakfast Veal Bratwurst 4's kg 0114 Gourmet Breakfast Sausage 8s bulk kg 0145 Beef Frankfurters 4's kg Pork

Heritage Angus Farms Beef. Top Sirloin (medallions) Natural Beef Patties. Angus Sirloin Tip Roast. Angus Stir Fry or Stew Beef. Angus Petite Tender

INSERT YOUR PICTURE HERE

Price Unit. Beef/Veal Breakfast

04 DECEMBER All prices are quoted Rand per unit Our prices are market related and are therefore subject to change without notice.

Idaho Meats Evaluation and Technology Handbook

Thunder View Farms LLC Genuine Black Angus Beef The Coombe Family Grahamsville, NY

NEXT BEEF IDENTIFICATION

2014 Wyoming State 4-H Meats Judging Contest April 2014 University of Wyoming. Created by: Dawn Sanchez, UW Extension Educator

BEEF. Whole Primal/Carton. Portioned. Processed. Offal

MEATS EVALUATION CDE EVENT PRACTICUMS

Sous Vide Cheat Sheet

FCS Lesson. Beef Basics. Lesson Developed by Megan (Aden) Ferguson Family & Consumer Science Teacher Courtesy of Iowa & Wisconsin Beef Councils

Release Letter. Trufa

Today s Topics & Presenters. Session Overview. Session Objectives. Terminology. Communication is Key 2/13/2013

AGED BEEF DAYS Price Quantity. MooQ Beef Burger 34 x 200g per kilo Porterhouse Steak 0.8-1kg Aged 35 days 67.20

Noun-Verb Decomposition

BARRETT BROS. HOME CURED

6114 Italy Valley Rd Naples NY 14512

WHOLESALE PRODUCT LIST FEBRUARY 2017

Check us out at thunderviewfarms.com

HAWKE S BAY NATURAL EXPORT LAMB HALAL

Your connection to Wisconsin foodservice buyers

Tablet Waiter. An Electronic Restaurant Menu and Ordering System.

A Legacy Born from a Bean.

Automatic Text Generators for Designers INTRODUCTION

BeefCuts. Primal & Subprimal Weights and Yields 1300-pound Steer Choice, YG3 Dressing Percentage: 62% Chuck Rib Loin. Round. Brisket. Plate.

PRODUCT CATALOG FRESH MEAT BONE CARDBOARD AND VACUUM

PRODUCT LIST BEEF TENDERLOIN, 5#/UP, PRIME

Lamb BONE-IN LAMB AUSTRALIA/NEW ZEALAND BONELESS LAMB AUSTRALIA/NEW ZEALAND MANUFACTURING BULK PACKS AUSTRALIA/NEW ZEALAND

6114 Italy Valley Rd Naples NY 14512

CODE BEEF CODE STEAK CUTS

How Long To Cook A Pork Shoulder Roast Per Pound

Subject: ALFOODACT CALIFORNIA FIRM RECALLS BEEF PRODUCTS DERIVED FROM NON-AMBULATORY CATTLE WITHOUT THE BENEFIT OF PROPER INSPECTION

BILLING RATES - FY 10/11

Fairtrade Designation Endorsement

Working with your processor. Objectives. Meat Processor 11/15/2010. Josh Elmore, PAS Advisor III, Natural Resource Program

1 st builds & repairs 2 nd energy provides 4 calories per gram. Other Nutrient Contributions:

Barista at a Glance BASIS International Ltd.

The Dun & Bradstreet Asia Match Environment. AME FAQ. Warwick R Matthews

2013 Member's Big Night Out

Product Information, General MODULE 6 // Processing and Selecting Beef for Foodservice Applications. Composition of Meat. Fabrication of Primals

Table of Contents. Toast Inc. 2

& GRILL LUNCH & DINNER

US Foods Online and Mobile App Technology Update

Wild Game Consultants Ltd Product Listing

IKAWA App V1 For USE WITH IKAWA COFFEE ROASTER. IKAWA Ltd. Unit 2 at 5 Durham Yard Bethnal Green London E2 6QF United Kingdom

$15,000+ total prize purse

The SelfCookingCenter. Simply roast, boil and braise overnight.

Ideas for group discussion / exercises - Section 3 Applying food hygiene principles to the coffee chain

Background andobjectives

THE MEAT PRODUCTS REGULATIONS 2003 SUMMARY GUIDANCE NOTES

FISH, MEAT & POULTRY:

Meats Evaluation CDE. Sponsor Micro Summit Processors currently sponsors this event.

Meats are such a large area of study that we have divided the subject matter into two

Most of the food that I eat I prepare myself as cooking is something that I enjoy

From bean to cup and beyond: exploring ethical consumption and coffee shops

SOMETHING SPECIAL FOR

SECTION 2. The BAM intiative

Illinois Association of Vocational Agriculture Teachers Meats Evaluation and Technology Career Development Event

PRODUCT EXAMPLE PIZZA

The Future of the Still & Sparkling Wine Market in Poland to 2019

METROPOLITAN MEAT, SEAFOOD & POULTRY

MEAT CUT. LOIN= Lonza. SHANK = Stinco. SIRLOIN= Lombo/ Lombata. HIND SHANK= stinco posteriore. Link:

5 th AFRICAN COFFEE SUSTAINABILITY FORUM

A Guide to Beef Cuts. American Beef Cuts. Front Quarter. Hind Quarter. Other Cuts. Most common sources for roasts and hamburgers

Independent Submission Request for Comments: April 2014 Updates: 2324 Category: Informational ISSN:

WHOLESALE PRODUCT LIST MARCH 2019

Parent Self Serve Mobile

Love good food? Love Plassey Food.

Deliver a comprehensive communications campaign to increase coffee consumption on a pre-competitive basis across the category

PETER S BUTCHERY 32, Siglap Drive, Singapore Tel: / Fax:

Sigma Inventory On Hand

METROPOLITAN MEAT, SEAFOOD & POULTRY

Welcome to our 2018 Food & Wine Showcase! Showcase begins at 11:00am

RESTAURANT/FOOD TRUCK CONTRACT & TERMS

FRESH PROTEIN RIP WINGS SIRLOIN T-BONE SHANKS RIBS SHOULDER TENDER

Recipes & menus managed online

CHAROLAIS STYLE GUIDE

Usage and Volumetric Assessment of Beef in Foodservice 2015 Edition

DELIVERIES & COLLECTIONS.

Cattle Summary. Million Pound /19 11/21 10/24 12/5 11/7 1/ USD per CWT

QUICK SERVE RESTAURANT MANAGEMENT SERIES EVENT PARTICIPANT INSTRUCTIONS

Sliced Deli. Meat Loaf. Bologna. Mongolian Beef Lo Mein. Brisket, Lean. Pasta & Meat Sauce. Chicken Bologna. Pepper Steak.

Fairtrade Finland Jatta Makkula 1

PRIMALS LEGS LOINS. NECK No. PRODUCT CODE PRODUCT DESCRIPTION PACKAGING. SHOULDER No. PRODUCT CODE PRODUCT DESCRIPTION PACKAGING

DAIRY. Colby Pepper Jack Colby Herbal Jack

Today s Luncheon Specials Served with Soup and Salad. Sandwiches Omelettes

WHOLESALE PRODUCT LIST AUG/SEP 2018

Contents. Get creative in the kitchen with SATS BRF PRODUCT CATALOGUE. SATS BRF Food Pte. Ltd. 7 Buroh Lane, #06-2A Singapore

Structures of Life. Investigation 1: Origin of Seeds. Big Question: 3 rd Science Notebook. Name:

GOOD FOOD IS THE FOUNDATION OF GENUINE HAPPINESS

Transcription:

Frameworks #WWDC14 Core ios Application Architectural Patterns Building apps, it s not just for breakfast anymore Session 224 Bill Dudney UIKit Engineer 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

Introduction

Introduction 1 Common Patterns

Introduction 1 Common Patterns 2 Use Them in Your Code

Common Patterns UIKit and beyond

Common Patterns

Common Patterns

Target/Action

Target/Action A consistent way to connect controls to custom logic

Making a Connection

Target/Action Subtitle

Target/Action Subtitle Cancel Send

Target/Action Subtitle Cancel Send Send Message

Target/Action Subtitle UIBarButtonItem UIButton

Target/Action Controls Control

Target/Action Controls target Control action Object

Target/Action Gesture Recognizers target Gesture Recognizer action Object

Target/Action

Responder Chain

Responder Chain Handle events without knowledge of which object will be used

Responder Chain Initiator

Responder Chain Initiator action Responder

Responder Chain Responder nextresponder Initiator action Responder

Responder Chain Responder nextresponder Responder nextresponder Initiator action Responder

Responder Chain Responder nextresponder Responder nextresponder Responder nextresponder Initiator action Responder

Responder Chain Motion events

Responder Chain Motion events

Responder Chain Motion events nextresponder Responder motionbegan:withevent: motionended:withevent: motioncancelled:withevent:

Responder Chain All applications Application AppDelegate Window View Controller View

Responder Chain

Composite

Composite View hierarchy Manipulate a group of objects as a single object

Composite View hierarchy View

Composite View hierarchy View View

Composite View hierarchy View View

Composite View hierarchy View View

Composite View hierarchy View View

Composite View hierarchy View View

Composite Responder chain View View

Composite UIDynamicBehavior Dynamic Behavior Dynamic Behavior

Composite

Delegation

Delegation Customize behavior without subclassing

Delegation UIApplicationDelegate UIApplication UIApplicationDelegate

Delegation UIApplication UIApplicationDelegate

Delegation UIApplication UIApplicationDelegate AVAssetResourceLoader AVAssetResourceLoaderDelegate CALayer CALayerDelegate GKSession GKSessionDelegate

Delegation

Data Source

Data Source Customize data retrieval without subclassing

Data Source Table View UITableView UITableViewDataSource

Data Source In UIKit UITableView UITableViewDataSource UICollectionView UICollectionViewDataSource UIPageViewController UIPageViewControllerDataSource UIPickerView UIPickerViewDataSource

Data Source Customize data retrieval without subclassing

Data Source Customize behavior without subclassing

Data Source

Model-View-Controller

Model-View-Controller Provide organizational structure to focus responsibilities

Model-View-Controller Model View Controller

Model-View-Controller Model View Controller

Model-View-Controller Model View Controller

Model-View-Controller Model View Controller

Model-View-Controller

Applying Patterns Your code made better

Sample App

Application Definition Statement Allow people to share simple, short updates about what is happening in their lives

Application Definition Statement Allow people to share simple, short updates about what is happening in their lives

Application Definition Statement Allow people to share simple, short updates about what is happening in their lives

Application Definition Statement Allow people to share simple, short updates about what is happening in their lives

Qwinkle

Qwinkle Networked Lists of data Good performance Add an entry Add photos Mark items Edit posts

Application Definition Statement Allow people to share simple, short updates about what is happening in their lives

Qwinkle Networked Lists of data Good performance Add an entry Add photos Mark items Edit posts

Building the App

Model-View-Controller A guide to conceptualize our app Model View Controller

Model-View-Controller A guide to conceptualize our app Model View Controller

Model Application data A user can specify an avatar

Model Application data A user can specify an avatar A user can add an entry A user can follow a friend

Model Application data Avatar Qwinker Qwink

Model-View-Controller A guide to conceptualize our app Model View Controller

Composite Scrolling Porchetta t-bone meatloaf bresaola, ball tip short loin pig jerky brisket tongue bacon shank salami. Sirloin landjaeger pastrami shoulder beef shank, corned beef tail strip steak. Distillery non post-ironic occupy photo booth. Tousled church-key laborum, four loko pork belly Vinegar twee chia jean shorts commodo. Turducken cow drumstick, turkey flank tenderloin short ribs venison leberkas. T-bone hamburger fatback drumstick bacon salami pork biltong leberkas short loin shankle doner tri-tip Tattooed keytar veniam, try-hard vegan assumenda quinoa chillwave. Viral sed, accusamus 90's adipisicing gentrify iphone ethical flexitarian. View NavBar Button TableView TableViewCell ImageView TextView TableViewCell ImageView TextView Twee chia literally ugh swag. Flannel small batch fanny pack authentic Brooklyn cardigan letterpress

Composite Scrolling Porchetta t-bone meatloaf bresaola, ball tip short loin pig jerky brisket tongue bacon shank salami. Sirloin landjaeger pastrami shoulder beef shank, corned beef tail strip steak. Distillery non post-ironic occupy photo booth. Tousled church-key laborum, four loko pork belly Vinegar twee chia jean shorts commodo. Turducken cow drumstick, turkey flank tenderloin short ribs venison leberkas. T-bone hamburger fatback drumstick bacon salami pork biltong leberkas short loin shankle doner tri-tip Tattooed keytar veniam, try-hard vegan assumenda quinoa chillwave. Viral sed, accusamus 90's adipisicing gentrify iphone ethical flexitarian. Twee chia literally ugh swag. Flannel small batch fanny pack authentic Brooklyn cardigan letterpress View NavBar Button TableView TableViewCell ImageView TextView TableViewCell ImageView TextView

Model-View-Controller A guide to conceptualize our app Model View Controller

Qwinkle Data source

Qwinkle Data source UITableView

Qwinkle Data source UITableView QwinksViewController

Qwinkle Data source UITableViewDataSource UITableView QwinksViewController

Qwinkle Target/Action QwinksViewController

Model-View-Controller Networking Porchetta t-bone meatloaf bresaola, ball tip short loin pig jerky brisket tongue bacon shank salami. Sirloin landjaeger pastrami shoulder beef shank, corned beef tail strip steak. Distillery non post-ironic occupy photo booth. Tousled church-key laborum, four loko pork belly Vinegar twee chia jean shorts commodo. Table View Controller Turducken cow drumstick, turkey flank tenderloin short ribs venison leberkas. T-bone hamburger fatback drumstick bacon salami pork biltong leberkas short loin shankle doner tri-tip Tattooed keytar veniam, try-hard vegan assumenda quinoa chillwave. Viral sed, accusamus 90's adipisicing gentrify iphone ethical flexitarian. NSURLSession Twee chia literally ugh swag. Flannel small batch fanny pack authentic Brooklyn cardigan letterpress

Model-View-Controller Porchetta t-bone meatloaf bresaola, ball tip short loin pig jerky brisket tongue bacon shank salami. Sirloin landjaeger pastrami shoulder beef shank, corned beef tail strip steak. Distillery non post-ironic occupy photo booth. Tousled church-key laborum, four loko pork belly Vinegar twee chia jean shorts commodo. Turducken cow drumstick, turkey flank tenderloin short ribs venison leberkas. T-bone hamburger fatback drumstick bacon salami pork biltong leberkas short loin shankle doner tri-tip Tattooed keytar veniam, try-hard vegan assumenda quinoa chillwave. Viral sed, accusamus 90's adipisicing gentrify iphone ethical flexitarian. Twee chia literally ugh swag. Flannel small batch fanny pack authentic Brooklyn cardigan letterpress

Model-View-Controller Porchetta t-bone meatloaf bresaola, ball tip short loin pig jerky brisket tongue bacon shank salami. Sirloin landjaeger pastrami shoulder beef shank, corned beef tail strip steak. Distillery non post-ironic occupy photo booth. Tousled church-key laborum, four loko pork belly Vinegar twee chia jean shorts commodo. Turducken cow drumstick, turkey flank tenderloin short ribs venison leberkas. T-bone hamburger fatback drumstick bacon salami pork biltong leberkas short loin shankle doner tri-tip PublicTimelineViewController Tattooed keytar veniam, try-hard vegan assumenda quinoa chillwave. Viral sed, accusamus 90's adipisicing gentrify iphone ethical flexitarian. Twee chia literally ugh swag. Flannel small batch fanny pack authentic Brooklyn cardigan letterpress

Model-View-Controller Porchetta t-bone meatloaf bresaola, ball tip short loin pig jerky brisket tongue bacon shank salami. Sirloin landjaeger pastrami shoulder beef shank, corned beef tail strip steak. Distillery non post-ironic occupy photo booth. Tousled church-key laborum, four loko pork belly Vinegar twee chia jean shorts commodo. Turducken cow drumstick, turkey flank tenderloin short ribs venison leberkas. T-bone hamburger fatback drumstick bacon salami pork biltong leberkas short loin shankle doner tri-tip Table View PublicTimelineViewController Tattooed keytar veniam, try-hard vegan assumenda quinoa chillwave. Viral sed, accusamus 90's adipisicing gentrify iphone ethical flexitarian. Twee chia literally ugh swag. Flannel small batch fanny pack authentic Brooklyn cardigan letterpress

Model-View-Controller Porchetta t-bone meatloaf bresaola, ball tip short loin pig jerky brisket tongue bacon shank salami. Sirloin landjaeger pastrami shoulder beef shank, corned beef tail strip steak. Distillery non post-ironic occupy photo booth. Tousled church-key laborum, four loko pork belly Vinegar twee chia jean shorts commodo. Turducken cow drumstick, turkey flank tenderloin short ribs venison leberkas. T-bone hamburger fatback drumstick bacon salami pork biltong leberkas short loin shankle doner tri-tip Table View Qwinker PublicTimelineViewController Tattooed keytar veniam, try-hard vegan assumenda quinoa chillwave. Viral sed, accusamus 90's adipisicing gentrify iphone ethical flexitarian. Twee chia literally ugh swag. Flannel small batch fanny pack authentic Brooklyn cardigan letterpress

Model-View-Controller Cancel Done Qwink Gluten-free nesciunt swag kale chips assumenda, sed Reprehenderit bitters cillum excepteur. Hoodie trust fund pug ennui, lo-fi food truck est consectetur direct trade qui master cleanse biodiesel sint. Entry View Qwink Entry View Controller

Qwinkle Target/Action PublicTimelineViewController

Adding an Entry Target/Action PublicTimelineViewController

Adding an Entry Target/Action Cancel Done QwinkEntryViewController Gluten-free nesciunt swag kale chips assumenda, sed Reprehenderit bitters cillum excepteur. Hoodie trust fund pug ennui, lo-fi food truck est consectetur direct trade qui master cleanse biodiesel sint.

Model-View-Controller Networking Cancel Done Gluten-free nesciunt swag kale chips assumenda, sed Reprehenderit bitters cillum excepteur. Hoodie trust fund pug ennui, lo-fi food truck est consectetur direct trade qui master cleanse biodiesel sint. Qwink Entry View Controller

Model-View-Controller Networking Cancel Done Gluten-free nesciunt swag kale chips assumenda, sed Reprehenderit bitters cillum excepteur. Hoodie trust fund pug ennui, lo-fi food truck est consectetur direct trade qui master cleanse biodiesel sint. Qwink Entry View Controller NSURLSession

Qwinkle Application level features UIApplication

Qwinkle Application level features UIApplication QWKAppDelegate

Qwinkle Application level features UIApplication QWKAppDelegate State Restoration

Qwinkle Application level features UIApplication QWKAppDelegate State Restoration Background Downloading

Change Happens

Requirements Change Private Qwinks Pork belly sausage capicola porchetta Pork belly sausage capicola porchetta bresaola. Corned beef turkey boudin, ribeye bresaola. Corned beef turkey boudin, ribeye shankle tongue pig cow short ribs frankfurter shankle tongue pig cow short ribs frankfurter pork chop landjaeger. pork chop landjaeger. Brooklyn readymade dreamcatcher, mumblecore roof party actually normcore plaid 90's quinoa kogi scenester. Qwinks PQ

Requirements Change Pork belly sausage capicola porchetta bresaola. Corned beef turkey boudin, ribeye shankle tongue pig cow short ribs frankfurter pork chop landjaeger.

Requirements Change Pork belly sausage capicola porchetta bresaola. Corned beef turkey boudin, ribeye shankle tongue pig cow short ribs frankfurter pork chop landjaeger.

Requirements Change Table View Controller Pork belly sausage capicola porchetta bresaola. Corned beef turkey boudin, ribeye shankle tongue pig cow short ribs frankfurter pork chop landjaeger. NSURLSession

Requirements Change Table View Controller Pork belly sausage capicola porchetta bresaola. Corned beef turkey boudin, ribeye shankle tongue pig cow short ribs frankfurter pork chop landjaeger. NSURLSession

Copy and Paste PublicTimelineViewController NSURLSession Pork belly sausage capicola porchetta bresaola. Corned beef turkey boudin, ribeye shankle tongue pig cow short ribs frankfurter pork chop landjaeger. PrivateMessageViewController NSURLSession

Copy and Paste PublicTimelineViewController NSURLSession Pork belly sausage capicola porchetta bresaola. Corned beef turkey boudin, ribeye shankle tongue pig cow short ribs frankfurter pork chop landjaeger. PrivateMessageViewController NSURLSession

Refactor PublicTimelineViewController Pork belly sausage capicola porchetta bresaola. Corned beef turkey boudin, ribeye shankle tongue pig cow short ribs frankfurter pork chop landjaeger. Download Service NSURLSession PrivateMessageViewController

Refactor PublicTimelineViewController

Refactor PublicTimelineViewController Download Service

Refactor PublicTimelineViewController download Download Service

Refactor PublicTimelineViewController download response Download Service

Refactor PublicTimelineViewController Download Service

Refactor DownloadServiceDelegate PublicTimelineViewController Download Service

Refactor DownloadServiceDelegate PublicTimelineViewController Download Service

Refactor DownloadServiceDelegate DownloadServiceDelegate PublicTimelineViewController Download Service PrivateMessageViewController Download Service

Demo

Summary

Summary

Summary

More Information Jake Behrens Grand Pooh-Bah Of Groovy behrens@apple.com Apple Developer Forums http://devforums.apple.com

Related Sessions Advanced ios Application Architecture and Patterns Presidio Thursday 2:00PM What s New in Foundation Networking WWDC 2013 API Design for Cocoa and Cocoa Touch WWDC 2010