A Better MVC. 300 line view controllers or bust. Dave A guy who thinks too deeply about stuff
|
|
- Sherilyn Summers
- 5 years ago
- Views:
Transcription
1 A Better MVC 300 line view controllers or bust Dave A guy who thinks too deeply about stuff
2 Heads Up This is all my opinion (! hi legal & pr teams!) Lots of similar terminology View UIView Controller UIViewController This will all be oddly familiar
3 MVC Standard Cocoa architectural pattern
4 Controller Model View
5 MVC Standard Cocoa architectural philsophy Philosophy: separate storage, business logic, and display Easily abused
6 Colin ios architecture, where MVC stands for Massive View Controller 5:27 PM 20 Jan
7 Massive View Controller View Loading IBActions Model observation Networking callbacks Data sources Delegates Trait collections Business Logic
8 Massive View Controller Hard to understand Hard to isolate Hard to change Hard to test 2,000+ lines is common 10,000+ lines isn t rare
9
10
11 Making a Better MVC Don t rewrite; refactor
12 Me FRP MVC
13 Making a Better MVC Don t rewrite; refactor Refactor to a better pattern 8 observations
14 Observation #1 Patterns are like data structures
15 Data Structures Performance characteristics Memory characteristics The right structure makes the right things easy
16 Code Structures Performance characteristics Memory characteristics The right structure makes the right things easy
17 Choosing Structures Hard to go wrong with Array, Set, and Dictionary Hard to go wrong with MVC Other patterns are also valid Learn their respective strengths and weaknesses
18 Observation #2 Naming affects perception
19 The Two Hardest Problems in CS 1. Naming things 2. Cache invalidation 3. Off-by-one errors
20 Naming Affects Perception NS* probably not a UI concept UI* probably a view? *Controller Must be a controller
21 YOU RE A CONTROLLER! YOU RE A CONTROLLER! EVERYTHING IS A CONTROLLER!
22 Naming Affects Perception NS* probably not a UI concept UI* probably a view? *Controller Must be a controller ViewModel ModelController
23 Names reflect intent. Choose good names.
24 Observation #3 UIViewController is not a Controller
25 UIViewController Responsibilities Load views Show views Layout views Rotate views Transition views it s all about views
26 "
27 If UIViewController only does View stuff
28 maybe it s really a View
29
30 Implications No networking No data persistence No navigation No business logic No model observation
31 Implications Receive intention from a Controller Put data into UIViews Implement IBActions Translate IBAction in to intention Propagate intention to a Controller Would you do this in a UILabel or UIButton?
32 Observation #4 Views are small
33 Small Views Views are a unit of UI A view a screen
34 Small UIViewControllers A UIViewController a screen You don t have to fill the screen You can show many UIViewControllers on the same screen A single screen can show lots of UIViewControllers
35
36 Observation #5 Views are composeable
37 Composing Add together little things to make a big thing Composing is the skill of a programmer
38 Composing UIViewController Child View Controllers Added in ios 5 you have no excuse Guides several key APIs All navigation UISearchController UIRefreshControl
39 Observation #6 Views are reuseable
40 Reusing Views We don t rewrite UIButton or UILabel Why rewrite UIViewControllers? Expect to reuse UIViewControllers
41 Reusable UIViewControllers It s not a It is a TweetListViewController ListViewController that shows tweets UIImageView that hits the network ImageViewController with an image proveder A custom view that gets hidden to show a UIActivityIndicator Container UIViewController that transitions between different child view controllers
42 Observation #7 Views show data or children
43 Constructing Views Views generally do one of two things: Add logic and layout by composing Draw stuff All UIViews follow this pattern UIButton UIProgressView UITextField
44 Constructing UIViewControllers UIViewControllers either: Put data directly into UIViews Compose other UIViewControllers There can be exceptions UITabViewController UINavigationController UISearchController
45 Observation #8 You need actual controllers
46 Controller Model View
47 Where is the logic? This approach dumbs down UIViewControllers UIViewControllers never know their context Delegate intention out to Controllers Pass around protocol-typed Controllers
48 Case Study WWDC App
49 WWDC App Session Details Watch a video Read session information Perform contextual actions Browse related sessions
50 WWDC App Logic Observe model Determine contextual actions Observe action state List related videos Actions Favorite Share Watch Movie Mark as Watched Download Leave Feedback Watch Related Movie
51 HOLY MASSIVE VIEW CONTROLLER, BATMAN! THAT WILL BE A NIGHTMARE TO MAINTAIN!
52 If you wouldn t make it a single UIView subclass
53 don t make it a single UIViewController
54 WWDC App
55 WWDC App Session Video Poster View Controller Session Title View Controller Session Detail View Controller Session Description View Controller Session Actions View Controller Session Related Content View Controller
56 WWDC App Session Video Poster View Controller Session Title View Controller Controller Session Session Detail View Controller Session Description View Controller Session Actions View Controller Session Related Content View Controller
57 WWDC App Approach #1: Delegation / Callbacks Session Video Poster View Controller Session Title View Controller Controller Watch Session Detail View VideoController Session Description View Controller Session Actions View Controller Session Related Content View Controller
58 WWDC App Approach #2: Dependency Injection Session Video Poster View Controller Tapped <MovieWatcher> Tapped Related Poster Video Session Title View Controller Session Detail View Controller Session Description View Controller <SessionActioner> Tapped Action Session Actions View Controller Session Related Content View Controller
59 A Better MVC 1. Patterns are like data structures 5. Views are composeable 2. Naming affects perception 6. Views are reusable 3. UIViewController is not a 7. Views show data or children Controller 4. Views are small 8. You need actual controllers
60 Results Tiny UIViewControllers (usually under 200 lines) Rarely subclass UIView Extremely reusable UIViewControllers Clear separation of concern Happy programmers #
61 Thanks! social media website
INTRODUCTION TO ARCHITECTING YOUR IOS APP
INTRODUCTION TO ARCHITECTING YOUR IOS APP AGENDA Goals of software architecture Design guidelines Practical tips GOALS OF SOFTWARE ARCHITECTURE GOALS OF SOFTWARE ARCHITECTURE Code is comprehensible for
More informationAnnouncements. 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 informationAssignment 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 informationios DeCal : Lecture 2 Structure of ios Applications: MVC and Auto Layout
ios DeCal : Lecture 2 Structure of ios Applications: MVC and Auto Layout Overview : Today s Lecture Model View Controller Design Pattern Creating Views in Storyboard Connecting your Views to Code Auto
More informationCSC 581: Mobile App Development Spring 2018
CSC 581: Mobile App Development Spring 2018 Unit 2: Introduciton to the UIKit UIKit, UIViews UIControl subclasses 1 UIKit the UIKit is a code framework for building mobile apps the foundational class for
More informationCSE 438: Mobile Application Development Lab 2: Virtual Pet App
CSE 438: Mobile Application Development Lab 2: Virtual Pet App Overview In this lab, you will create an app to take care of your very own virtual pets! The app will only have one screen and simple logic,
More informationMVC & 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 informationITP 342 Mobile App Dev. Connections
ITP 342 Mobile App Dev Connections User Interface Interactions First project displayed information to the user, but there was no interaction. We want the users of our app to touch UI components such as
More informationIntro 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 informationBuilding 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 informationAssignment III: Graphing Calculator
Assignment III: Graphing Calculator Objective You will enhance your Calculator to create a graph of the program the user has entered which can be zoomed in on and panned around. Your app will now work
More informationStructuring an App Copyright 2013 Apple Inc. All Rights Reserved.
Structuring an App App Development Process (page 30) Designing a User Interface (page 36) Defining the Interaction (page 42) Tutorial: Storyboards (page 47) 29 App Development Process Although the task
More informationlecture 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 informationAssignment IV: Smashtag Mentions
Assignment IV: Smashtag Mentions Objective In this assignment, you will enhance the Smashtag application that we built in class to give ready-access to hashtags, urls, images and users mentioned in a tweet.
More informationStanford 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 informationStanford CS193p. Developing Applications for ios. Fall CS193p. Fall
Stanford Developing Applications for ios Today Drag and Drop Transferring information around within and between apps. EmojiArt Demo Drag and drop an image to get our EmojiArt masterpieces started. UITableView
More informationApp. May 30 th, Navigating the App. Powered by. Guides provided by
App May 30 th, 2017 Navigating the App Powered by Navigating the App Below is a basic overview of how to navigate around in the TD app. When you first login to the App you will start on the Agent Dashboard.
More informationDesigning 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 informationios 9 SDK Development
Extracted from: ios 9 SDK Development Creating iphone and ipad Apps with Swift This PDF file contains pages extracted from ios 9 SDK Development, published by the Pragmatic Bookshelf. For more information
More informationObjective-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 informationAssignment 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 informationImplementing UI Designs in Interface Builder
Developer Tools #WWDC15 Implementing UI Designs in Interface Builder Session 407 Kevin Cathey Interface Builder Engineer Tony Ricciardi Interface Builder Engineer 2015 Apple Inc. All rights reserved. Redistribution
More informationView 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 informationView Concepts. iphone Application Programming Lecture 4: User Interface Design. SDK provide many types of Views to show your content
View Concepts iphone Application Programming Lecture 4: User Interface Design SDK provide many types of Views to show your content At run-time Views are organized as a tree Chat Wacharamanotham Media Computing
More informationTo get the most out of the course, you should be somewhat familiar with C# Language &.NET Framework
Workshop Name Learning Objective Duration Participants Entry Profile Training Methodology Setup Requirements Hardware and Software Requirements Training Lab Requirements Developing Android & IOS apps with
More informationMobile Application Programming. Messaging and Delegation
Mobile Application Programming Messaging and Delegation Color Chooser Color Chooser MFColorChooserView UIControl or UIView MFColorChooserWheelView UIControl MFColorChooserValueSliderView UIControl MFColorChooserAlphaSliderView
More informationView 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 informationWhat s New in tvos 12
#WWDC18 What s New in tvos 12 Session 208 Hans Kim, tvos Engineering 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. Agenda Agenda
More informationStanford CS193p. Developing Applications for ios. Winter CS193p! Winter 2015
Stanford CS193p Developing Applications for ios Today UITextField Bonus Topic! Table View A UIView for displaying long lists or tables of data UITextField Like UILabel, but editable Typing things in on
More informationMastering UIKit on tvos
App Frameworks #WWDC16 Mastering UIKit on tvos Session 210 Justin Voss UIKit Engineer 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from
More informationCOMP390 (Design &) Implementation
COMP390 (Design &) Implementation Phil (& Dave s) rough guide Consisting of some ideas to assist the development of large and small projects in Computer Science (and a chance for me to try out some features
More informationLesson 1: Hello ios! 1
Contents Introduction xxv Lesson 1: Hello ios! 1 ios Developer Essentials 1 A Suitable Mac 1 A Device for Testing 2 Device Differences 2 An ios Developer Account 4 The Official ios SDK 6 The Typical App
More informationSoftware Compare and Contrast
Microsoft Software Compare and Contrast Word Easy to navigate. Compatible with all PC computers. Very versatile. There are lots of templates that can be used to create flyers, calendars, resumes, etc.
More informationCOMP390 (Design &) Implementation
COMP390 (Design &) Implementation Phil (& Dave s) rough guide Consisting of some ideas to assist the development of large and small projects in Computer Science (and a chance for me to try out some features
More informationGUI Tips. GUI Blooper
GUI Tips From GUI Bloopers, Jeff Johnson GUI Blooper List of common mistakes that software developers frequently make when designing Graphical User Interfaces (GUI) Categories we will discuss: GUI Components
More informationCS371m - Mobile Computing. App Project Overview
CS371m - Mobile Computing App Project Overview App Project Teams of 3 students Not pair or team programming Okay to divide and conquer Develop an Android application of your choosing subject to instructor
More informationIntro 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 informationMobile Development - Lab 2
Mobile Development - Lab 2 Objectives Illustrate the delegation mechanism through examples Use a simple Web service Show how to simply make a hybrid app Display data with a grid layout Delegation pattern
More informationSimple AngularJS thanks to Best Practices
Simple AngularJS thanks to Best Practices Learn AngularJS the easy way Level 100-300 What s this session about? 1. AngularJS can be easy when you understand basic concepts and best practices 2. But it
More informationOpenMRS 2.0 User Interface Redesign. Darius Jazayeri
OpenMRS 2.0 User Interface Redesign Darius Jazayeri djazayeri@pih.org darius@openmrs.org Goals Build a cool and effective user interface Easy to program But also flexible Role-based Can be reconfigured
More informationWhy 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 informationStanford CS193p. Developing Applications for ios. Fall CS193p. Fall
Stanford Developing Applications for ios Today Mostly Swift but some other stuff too Autolayout teaser Quick review of what we learned in Concentration CountableRange of floating point numbers Tuples Computed
More informationAssignment III: Graphing Calculator
Assignment III: Graphing Calculator Objective You will enhance your Calculator to create a graph of the program the user has entered which can be zoomed in on and panned around. Your app will now work
More informationPrototyping. Readings: Dix et al: Chapter 5.8 Marc Rettig: Prototyping for tiny fingers, Communications of the ACM, April 1994.
Prototyping Readings: Dix et al: Chapter 5.8 Marc Rettig: Prototyping for tiny fingers, Communications of the ACM, April 1994. 1 What is prototyping? producing cheaper, less accurate renditions of your
More informationOVERVIEW. 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 informationStanford CS193p. Developing Applications for ios. Spring CS193p. Spring 2016
Stanford Developing Applications for ios Today Views Custom Drawing Demo FaceView Views A view (i.e. UIView subclass) represents a rectangular area Defines a coordinate space For drawing And for handling
More informationCS 161 Computer Security
Paxson Spring 2011 CS 161 Computer Security Discussion 6 March 2, 2011 Question 1 Cross-Site Scripting (XSS) (10 min) As part of your daily routine, you are browsing through the news and status updates
More informationHCA Tech Note 120. Configuring the Control UI Home Page. Option 1: HCA constructs the home page
Configuring the Control UI Home Page HCA contains two different user interfaces: One interface called the Development UI - where all design elements and tools are available and you can make changes, and
More informationRx in the real world. 1 Rob Ciolli
Rx in the real world 1 Rob Ciolli 2 Rob Ciolli 3 Rob Ciolli The App 4 Rob Ciolli Quick architecture overview 5 Rob Ciolli MV - WTF 6 Rob Ciolli Model Simple, immutable data struct returned from DB or APIs
More informationObjectives. Submission. Register for an Apple account. Notes on Saving Projects. Xcode Shortcuts. CprE 388 Lab 1: Introduction to Xcode
Objectives Register for an Apple account Create an application using Xcode Test your application with the iphone simulator Import certificates for development Build your application to the device Expand
More informationAssignment I: Concentration
Assignment I: Concentration Objective The goal of this assignment is to recreate the demonstration given in lecture and then make some small enhancements. It is important that you understand what you are
More informationUnderstanding Usability: Getting Beyond Ease of Use
Understanding Usability: Getting Beyond Ease of Use Whitney Quesenbery Whitney Interactive Design e. whitneyq@wqusability.com w. www.wqusability.com p. 908-638-5467 AIGA DENVER SEPTEMBER 28, 2005 What
More informationLecture 6. Design (3) CENG 412-Human Factors in Engineering May
Lecture 6. Design (3) CENG 412-Human Factors in Engineering May 28 2009 1 Outline Prototyping techniques: - Paper prototype - Computer prototype - Wizard of Oz Reading: Wickens pp. 50-57 Marc Rettig: Prototyping
More informationIntroduction. A Brief Description of Our Journey
Introduction If you still write RPG code as you did 20 years ago, or if you have ILE RPG on your resume but don t actually use or understand it, this book is for you. It will help you transition from the
More informationCSC 581: Mobile App Development Spring 2019
CSC 581: Mobile App Development Spring 2019 Unit 1: Getting Started with App Development Xcode installing XCode, creating a project, MVC pattern interface builder, storyboards, object library outlets vs.
More informationSocial Pinboard: ios(swift) Application
Social Pinboard: ios(swift) Application Document Version 1.0.1 Date: 15 th May, 2015 2 [SOCIAL PINBOARD: APP DOCUMENTATION] Important Notes:... 5 AppDelegate Class Reference... 6 Tasks... 6 Instance Methods...
More informationSeng310 Lecture 8. Prototyping
Seng310 Lecture 8. Prototyping Course announcements Deadlines Individual assignment (extended) deadline: today (June 7) 8:00 am by email User testing summary for paper prototype testing- Thursday June
More informationDesigning largescale applications. in Python. EuroPython 2013 Florence, Italy. Marc-André Lemburg
Designing largescale applications in Python Florence, Italy Marc-André Lemburg (c) 2013 egenix.com com Software GmbH, info@egenix.com 2 Agenda 1. Introduction 2. Application Design 3. Before you start...
More informationCS193P: 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 informationComputers for Beginners. Tuesday, July 7, p.m. Instructor: Anne Swanson
Computers for Beginners Tuesday, July 7, 2015 2-4 p.m. Instructor: Anne Swanson If you are new to computers, it can be difficult to start because many people have grown up with them and there isn t always
More informationQuick Interaction Techniques for watchos
App Frameworks #WWDC16 Quick Interaction Techniques for watchos Session 211 Tom Witkin watchos Engineer Miguel Sanchez watchos Engineer 2016 Apple Inc. All rights reserved. Redistribution or public display
More informationModern User Interaction on ios
App Frameworks #WWDC17 Modern User Interaction on ios Mastering the UIKit UIGesture System Session 219 Dominik Wagner, UIKit Engineer Michael Turner, UIKit Engineer Glen Low, UIKit Engineer 2017 Apple
More informationAndroid System Architecture. Android Application Fundamentals. Applications in Android. Apps in the Android OS. Program Model 8/31/2015
Android System Architecture Android Application Fundamentals Applications in Android All source code, resources, and data are compiled into a single archive file. The file uses the.apk suffix and is used
More informationLEARNING ios APP DEVELOPMENT With Swift 3 & ios 10
LEARNING ios APP DEVELOPMENT With Swift 3 & ios 10 Detailed Course outline Session - 1. Swift Basics. Section - 1. Variables and Constants Creating Variables and Constants. Type annotations Type Inference
More informationMSO Lecture 6. Wouter Swierstra. September 24, 2015
1 MSO Lecture 6 Wouter Swierstra September 24, 2015 2 LAST LECTURE Case study: CAD/CAM system What are design patterns? Why are they important? What are the Facade and Adapter patterns? 3 THIS LECTURE
More informationEMBEDDED SYSTEMS PROGRAMMING Design Patterns
EMBEDDED SYSTEMS PROGRAMMING 2014-15 Design Patterns DEFINITION Design pattern: solution to a recurring problem Describes the key elements of the problem and the solution in an abstract way Applicable
More informationLecture 24. GUI Applications
Lecture 24 GUI Applications Announcements for This Lecture Prelim 2 Difficulty was reasonable Mean: 71, Median: 74 Just 2 points below target What do grades mean? A: 80s+ (maybe 78+) B: 60s+ C: 30+ Final
More informationITP 342 Mobile App Development. Model View Controller
ITP 342 Mobile App Development Model View Controller Model-View-Controller The Model-View-Controller (MVC) design pattern assigns objects in an application one of three roles: model, view, or controller.
More informationEmberJS A Fitting Face for a D8 Backend. Taylor Solomon
EmberJS A Fitting Face for a D8 Backend Taylor Solomon taylor.solomon @jtsolomon http://interactivestrategies.com 2 Years Ago 2 Years Ago URL Ember Data assumes a few things. - Your API format is JSON
More informationArchitecting ios Project. Massimo Oliviero
Architecting ios Project Massimo Oliviero Massimo Oliviero Freelance Software Developer web http://www.massimooliviero.net email massimo.oliviero@gmail.com slide http://www.slideshare.net/massimooliviero
More informationDeveloping large-scale Applications in Python
Developing large-scale Applications in Python Lessons learned from 10 years of Python Application Design EuroPython Conference 2005 Göteborg, Sweden Marc-André Lemburg EGENIX.COM Software GmbH Germany
More informationA Separation of Concerns Clean Architecture on Android
A Separation of Concerns Clean Architecture on Android Kamal Kamal Mohamed Android Developer, //TODO Find Better Title @ Outware Mobile Ryan Hodgman Official Despiser of Utils Classes @ Outware Mobile
More informationEMBEDDED SYSTEMS PROGRAMMING Design Patterns
EMBEDDED SYSTEMS PROGRAMMING 2015-16 Design Patterns DEFINITION Design pattern: solution to a recurring problem Describes the key elements of the problem and the solution in an abstract way Applicable
More informationITP 342 Mobile App Development. Model View Controller
ITP 342 Mobile App Development Model View Controller Design Patterns A reusable pattern to solve common issues that come up in software development NOT new syntax, but the way you design your program What
More informationCocoa Touch Best Practices
App Frameworks #WWDC15 Cocoa Touch Best Practices Session 231 Luke Hiesterman UIKit Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationios Application Development Hello World App Rubric
ios Application Development Hello World App Rubric 1 HelloWorld App Rubric Unsatisfactory Needs Revision Proficient Exemplary There s indication that you (student) struggle to grasp concepts. Although
More informationAnnouncements. 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 informationModel-view-controller View hierarchy Observer
-view-controller hierarchy Fall 2004 6831 UI Design and Implementation 1 Fall 2004 6831 UI Design and Implementation 2!"# Separation of responsibilities : application state Maintains application state
More informationITP 342 Mobile App Dev. Alerts
ITP 342 Mobile App Dev Alerts Alerts UIAlertController replaces both UIAlertView and UIActionSheet, thereby unifying the concept of alerts across the system, whether presented modally or in a popover.
More informationITP 342 Mobile App Dev. Connections
ITP 342 Mobile App Dev Connections User Interface Interactions First project displayed information to the user, but there was no interaction. We want the users of our app to touch UI components such as
More informationITP 342 Mobile App Dev. Interface Builder in Xcode
ITP 342 Mobile App Dev Interface Builder in Xcode New Project From the Main Menu, select the File à New à Project option For the template, make sure Application is selected under ios on the left-hand side
More informationStanford CS193p. Developing Applications for ios. Winter CS193p. Winter 2017
Stanford Developing Applications for ios Today Views Custom Drawing Demo FaceView Views A view (i.e. UIView subclass) represents a rectangular area Defines a coordinate space For drawing And for handling
More informationExtending Your Apps with SiriKit
App Frameworks #WWDC16 Extending Your Apps with SiriKit Session 225 Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering Scott Andrus SiriKit Engineering 2016 Apple Inc. All rights reserved.
More informationTypes of Views. View category Purpose Examples of views. Display a particular type of content, such as an image or text.
ios UI Components Sisoft Technologies Pvt Ltd SRC E7, Shipra Riviera Bazar, Gyan Khand-3, Indirapuram, Ghaziabad Website: www.sisoft.in Email:info@sisoft.in Phone: +91-9999-283-283 Types of Views View
More informationDeveloping large-scale Applications in Python
Developing large-scale Applications in Python Lessons learned from 10 years of Python Application Design EuroPython Conference 2004 Göteborg, Sweden Marc-André Lemburg EGENIX.COM Software GmbH Germany
More informationMobile Development Lab 3
Mobile Development Lab 3 Objectives Illustrate closures through examples Have fun with maps, location and geolocation Have fun with animations Closures implemented in Swift Closures are self-contained
More informationFAQs. A guide for school app administrators
FAQs A guide for school app administrators Introduction myschoolapp is a simple and cost-effective way to engage with today s mobile parents and carers who run their lives from their phones. It helps you
More informationAndroid & iphone. A Comparison. Stefan Tramm JUGS, Jahresevent
1 Android & iphone A Comparison Stefan Tramm JUGS, Jahresevent 2008-12-11 2 Agenda I Situation II Comparison III Essence 3 Situation before 2007 Three platforms J2ME Symbian Windows Mobile all the same
More informationParticipation Status Report STUDIO ELEMENTS I KATE SOHNG
2015 Participation Status Report STUDIO ELEMENTS I KATE SOHNG Table of Contents I. Wataru... 1 A. JQuery discussion... 1 B. Other JavaScript libraries... 1 C. CakePHP framework... 2 D. Webpage feedback...
More informationUsable Privacy and Security Introduction to HCI Methods January 19, 2006 Jason Hong Notes By: Kami Vaniea
Usable Privacy and Security Introduction to HCI Methods January 19, 2006 Jason Hong Notes By: Kami Vaniea Due Today: List of preferred lectures to present Due Next Week: IRB training completion certificate
More informationXcode and Swift CS 4720 Mobile Application Development
Xcode and Swift Mobile Application Development Why Java for Android? Let s first recap: why do you think Android uses Java? 2 Why Java for Android? Some good reasons: You can t find a CS major that doesn
More informationThe Future of SAS Enterprise Guide (EG) - An Informal Session
The Future of SAS Enterprise Guide (EG) - An Informal Session New modern look Tabbed views with many layout options Program without projects or process flows Integration points with SAS Studio Who Are
More informationAssignment II: Calculator Brain
Assignment II: Calculator Brain Objective You will start this assignment by enhancing your Assignment 1 Calculator to include the changes made in lecture (i.e. CalculatorBrain, etc.). This is the last
More informationThe user guide may be freely distributed in its entirety, either digitally or in printed format, to all EPiServer Composer users.
Copyright This user guide is protected by the Copyright Act. Changes to the contents, or partial copying of the contents, may not be made without permission from the copyright holder. The user guide may
More informationView Concepts. iphone Application Programming Lecture 4: User Interface Design. SDK provide many types of Views to show your content
View Concepts iphone Application Programming Lecture 4: User Interface Design SDK provide many types of Views to show your content At run-time Views are organized as a tree Chat Wacharamanotham Media Computing
More informationIntroduction to WatchKit. CS193W - Spring Lecture 1
Introduction to WatchKit CS193W - Spring 2016 - Lecture 1 appleᴡᴀᴛᴄʜ Released April 24, 2015 No updates to the hardware yet. Three collections, over 30 models Two sizes The Screen OLED (organic light-emitting
More informationCOMP390 (Design &) Implementation
COMP390 (Design &) Implementation A rough guide Consisting of some ideas to assist the development of large and small projects in Computer Science (With thanks to Dave Shield) Design & Implementation What
More informationITP 342 Mobile App Dev. Interface Fun
ITP 342 Mobile App Dev Interface Fun Human Interface Guidelines ios Human Interface Guidelines https://developer.apple.com/ library/ios/documentation/ userexperience/conceptual/ MobileHIG/index.html 2
More informationBuilding mobile app using Cordova and AngularJS, common practices. Goran Kopevski
Building mobile app using Cordova and AngularJS, common practices Goran Kopevski Agenda What is cordova? How to choose proper JS framework Building mobile app using Cordova and AngularJS Common fails,
More informationCS 147: Computer Systems Performance Analysis
CS 147: Computer Systems Performance Analysis Test Loads CS 147: Computer Systems Performance Analysis Test Loads 1 / 33 Overview Overview Overview 2 / 33 Test Load Design Test Load Design Test Load Design
More information