ReactiveCocoa. Marc Prud'hommeaux Ottawa CocoaHeads February 13th, 2014
|
|
- Candice Cameron
- 5 years ago
- Views:
Transcription
1 ReactiveCocoa Marc Prud'hommeaux Ottawa CocoaHeads February 13th, 2014
2 Introduction
3 ReactiveCocoa Functional Reactive Programming Open-source library by Josh Abernathy & Justin Spahr-Summers of GitHub Modeled on Microsoft's Reactive Extensions for.net
4 Features The ability to compose operations on future data. An approach to minimize state and mutability. A declarative way to define behaviors and the relationships between properties. A unified, high-level interface for asynchronous operations. An API on top of KVO
5 State Changes are Signals Anyone can "subscribe" to a "signal" A signal can be: Tapping a UIButton Receiving data on a NSURLConnection A global event in NSNotificationCenter... and any other future state change
6 Features (summary) Less Spaghetti
7 Functional Reactive Programming First suggested in ICFP 97 paper Functional Reactive Animation by Conal Elliott and Paul Hudak.
8 Haskell 101
9 Coding, Observing, & Binding
10 Background: Key-Value Coding Key-Value Coding (KVC) "itemprice" productmodel.itemprice
11 Background: Key-Value Product : (strong) NSString Product *product = [[Product alloc] init]; [product setitemprice:10.0]; NSAssert([product itemprice] == via setter"); product.itemprice += 5.0; NSAssert(product.itemPrice == via property"); [product setvalue:@25.0 forkey:@"itemprice"]; NSAssert([[product valueforkey:@"itemprice"]
12 Background: Key-Value Observing Key-Value Observing (KVO) - (void)itempricedidchange Key-Value Coding (KVC) "itemprice" productmodel.itemprice
13 @interface TraditionalObserver : (weak) Product TraditionalObserver - (id)initwithproduct:(product *)product { if (self = [super init]) { self.observee = product; [product addobserver:self forkeypath:@"itemtitle" options:0 context:null]; [product addobserver:self forkeypath:@"itemprice" options:0 context:null]; } return self; } - (void)dealloc { [self.observee removeobserver:self forkeypath:@"itemtitle"]; [self.observee removeobserver:self forkeypath:@"itemprice"]; } - (void)observevalueforkeypath:(nsstring *)keypath ofobject:(id)object change: (NSDictionary *)change context:(void *)context { NSAssert(object == observee"); self.changecount++; // remember how many changes take place if ([keypath isequaltostring:@"itemtitle"]) [self titledidchange]; if ([keypath isequaltostring:@"itemprice"]) [self pricedidchange];
14 Traditional Key-Value Product : (strong) NSString TraditionalObserver : (weak) Product int Product *p = [[Product alloc] init]; TraditionalObserver *observer = [[TraditionalObserver alloc] initwithproduct:p]; NSAssert(observer.changeCount == change tracking"); p.itemtitle p.itemprice = 0.99; NSAssert(observer.changeCount == change tracking");
15 Reactive Subscription #import Product : (strong) NSString TraditionalObserver : (weak) Product int Product *product = [[Product alloc] init]; NSUInteger block pricechangecount = 0; [RACObserve(product, itemprice) subscribenext:^(nsnumber *newprice) { pricechangecount++; }]; NSAssert(priceChangeCount == change tracking (initial)"); product.itemprice = 9.99; NSAssert(priceChangeCount == change tracking (next value)");
16 RACObserve Macro Expanded Product *product = [[Product alloc] init]; NSUInteger block pricechangecount = 0; [RACObserve(product, itemprice) subscribenext:^(nsnumber *newprice) { pricechangecount++; }]; RACSignal *pricesignal = [product rac_valuesforkeypath:@"itemprice" observer:self]; [pricesignal subscribenext:^(nsnumber *newprice) { pricechangecount++; }]; NSAssert(priceChangeCount == change tracking"); product.itemprice = 9.99; NSAssert(priceChangeCount == change tracking");
17 Background: Cocoa Bindings Cocoa Bindings pricefield.text productmodel.price Key-Value Observing (KVO) - (void)itempricedidchange Key-Value Coding (KVC) "itemprice" productmodel.itemprice
18 Cocoa Product : (strong) NSString ProductViewController : (strong) IBOutlet NSTextField Product *product = [[Product alloc] init]; ProductViewController *controller = [[ProductViewController alloc] init]; NSTextField *field = controller.titlefield; [field bind:nsvaluebinding toobject:product withkeypath:@"itemtitle" options:nil]; product.itemtitle NSAssert([field.stringValue name"); product.itemtitle NSAssert([field.stringValue name");
19 ReactiveCocoa Product : (strong) NSString ProductViewController : (strong) IBOutlet NSTextField Product *product = [[Product alloc] init]; UITextField *textfield = [[UITextField alloc] init]; RACChannelTo(textField, text) = RACChannelTo(product, itemtitle); product.itemtitle NSAssert([[textField text] view"); textfield.text Paper"; NSAssert([product.itemTitle isequaltostring:@"flappy model");
20 RACChannelTo Macro Expanded Product *product = [[Product alloc] init]; UITextField *textfield = [[UITextField alloc] init]; RACChannelTo(textField, text) = RACChannelTo(product, itemtitle); RACKVOChannel *viewchannel = [[RACKVOChannel alloc] initwithtarget:textfield keypath:@"text" nilvalue:nil]; RACKVOChannel *modelchannel = [[RACKVOChannel alloc] initwithtarget:product keypath:@"itemtitle" nilvalue:nil]; viewchannel[@"followingterminal"] = modelchannel[@"followingterminal"]; product.itemtitle NSAssert([[textField text] view"); textfield.text Paper Tweet Saga++ by Fifty-Four Ltd."; NSAssert([product.itemTitle isequaltostring:@"flappy Paper Tweet Saga++ by Fifty- Four model");
21 Cocoa Bindings vs. ReactiveCocoa No ios support No block support Cumbersome value transformation No signal coalescing Difficult to debug Interface Builder
22 User Interface & Commands
23 ReactiveCocoa UI mechanisms Categories & Blocks
24 Commands UIButton *button = [UIButton buttonwithtype:uibuttontyperoundedrect]; [button addtarget:self action:@selector(buttonpressed:) forcontrolevents:uicontroleventtouchupinside]; - (IBAction)buttonPressed:(id)sender { // do something }
25 Commands UIButton *button = [UIButton buttonwithtype:uibuttontyperoundedrect]; button.rac_command = [[RACCommand alloc] initwithsignalblock:^(id _) { // do something return [RACSignal empty]; }];
26 UI Complexity Reduction Delegate Pattern: - (BOOL)isFormValid { return [self.usernamefield.text length] > 0 && [self. field.text length] > 0 && [self.passwordfield.text length] > 0 && [self.passwordfield.text isequal:self.passwordverificationfield.text]; } #pragma mark - UITextFieldDelegate - (BOOL)textField:(UITextField *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:(nsstring *)string { self.createbutton.enabled = [self isformvalid]; return YES; } Sample from
27 UI Complexity Reduction Reactive Pattern: RACSignal *formvalid = [RACSignal combinelatest:@[ self.username.rac_textsignal, self. field.rac_textsignal, self.passwordfield.rac_textsignal, self.passwordverificationfield.rac_textsignal ] reduce:^(nsstring *name, NSString * , NSString *pw1, NSString *pw2) { && .length && pw1.length > 8 && [pw1 isequal:pw2]); }]; RAC(self.createButton.enabled) = formvalid; Sample from
28 Model-View-ViewModel
29 Collections & Sequences
30 NSArray Filter & Map NSArray ]; NSArray *shortuppercasecolors = [[values filteredarrayusingpredicate: [NSPredicate predicatewithblock:^bool(nsstring *color, NSDictionary *bindings) { return [color length] <= 4; }]] valueforkeypath:@"uppercasestring"];
31 RACSequence Filter & Map NSArray ]; RACSequence *seq = [[values.rac_sequence filter:^bool(nsstring *color) { return [color length] <= 5; }] map:^id(nsstring *color) { return [color uppercasestring]; }]; NSAssert(([[seq Sequences are evaluated lazily
32 ReactiveCocoa Class Hierarchy RACStream RACSignal RACSequence RACChannelTerminal RACSubject RACChannel
33 Resources reactive-cocoa
CS193E Lecture 14. Cocoa Bindings
CS193E Lecture 14 Cocoa Bindings Agenda Questions? Personal Timeline IV Key Value Coding Key Value Observing Key Value Binding Cocoa Bindings What are Cocoa Bindings? Added in Panther, more mature in Tiger
More informationKey Value Observing (KVO) CPRE 388
Key Value Observing (KVO) CPRE 388 MyObservedClass MyObserving Class Observed Property P Observer Callback Method Key Value Observing KVO is a mechanism that allows objects to be notified of changes to
More informationReview (Basic Objective-C)
Classes Header.h (public) versus Implementation.m (private) @interface MyClass : MySuperclass... @end (only in header file) @interface MyClass()... @end (only in implementation file) @implementation...
More informationITP 342 Mobile App Dev. Unit Testing
ITP 342 Mobile App Dev Unit Testing Testing Xcode provides you with capabilities for extensive software testing. Testing your projects enhances robustness, reduces bugs, and speeds the acceptance of your
More informationios 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 informationObjective-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 informationObjective-C Runtime. Cocoa s Jewel in the Crown. NSConference Nicolas
Objective-C Runtime Cocoa s Jewel in the Crown NSConference 2011 Nicolas Seriot @nst021 [isa kindof:magic] 1. Objective-C 2. Recipes 3. Introspection 4. Debugging Objective-C Runtime OO, Smalltalk-like,
More informationlectures/2/src2/nib1/nib1/appdelegate.h // AppDelegate.h // Nib1 // David J. Malan // Harvard University //
lectures/2/src2/nib1/nib1/appdelegate.h 1 1 1 1 1 1 1 1 1 2 AppDelegate.h Nib1 David J. Malan Harvard University malan@harvard.edu Demonstrates a Single View Application implemented with a nib, plus IBAction
More informationAssignment II: Foundation Calculator
Assignment II: Foundation Calculator Objective The goal of this assignment is to extend the CalculatorBrain from last week to allow inputting variables into the expression the user is typing into the calculator.
More informationios 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 informationUI Design and Storyboarding
UI Design and Storyboarding Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Mobile Application Development in ios 1 Outline Model-View-Controller
More informationCS193p 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 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 informationStanford CS193p. Developing Applications for ios Fall Stanford CS193p. Fall 2013
Developing Applications for ios -14 Today What is this class all about? Description Prerequisites Homework / Final Project ios Overview What s in ios? MVC Object-Oriented Design Concept Objective C (Time
More informationObjective-C and COCOA Applications
Objective-C and COCOA Applications Fall, 2012 Prof. Massimiliano "Max" Pala pala@nyu.edu Overview X-Code IDE Basics Objective-C Classes Methods Invocations Important Types Memory Management Protocols Exceptions
More informationAnnouncement. 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 informationStanford CS193p. Developing Applications for ios. Fall Stanford CS193p. Fall 2011
Developing Applications for ios Today icloud Sharing documents among a user s devices Fundamentally: nothing more than a URL of a shared directory However, since it is over the network, there are lots
More informationReview. 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 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 informationI, J. Key-value observing (KVO), Label component, 32 text property, 39
Index A Abstract factory pattern, 207 concrete factory, 213 examples in Cocoa, 227 groups of objects, 212 implementing, 213 abstract factories, 214 concrete factories, 214 215 operations, 212 213 pitfalls,
More informationCore Animation. Building Animated UI s. Bill Dudney. Gala Factory Software LLC. Bill Dudney Core Animation: Building Animated UI s Slide 1
Core Animation Building Animated UI s Bill Dudney Gala Factory Software LLC Bill Dudney Core Animation: Building Animated UI s Slide 1 Objective-C Dynamic Object Oriented C Based Smalltalk Roots Bill Dudney
More informationWhen we re first learning Cocoa (or Java, or Qt, or any other application framework),
MacDevCenter http://www.macdevcenter.com/lpt/a/4752 6 April 2004 The Cocoa Controller Layer by Michael Beam When we re first learning Cocoa (or Java, or Qt, or any other application framework), one of
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 informationITP 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 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 informationiphone 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 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 informationWidget 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 informationCollections & Memory Management. Lecture 2
Collections & Memory Management Lecture 2 Demo: Accessing Documentation Collections NSArray a list of objects in order [array objectatindex:0] [array objectatindex:3] Counting starts at zero, not one NSSet
More informationCOCOA WORKSHOP PART 1. Andreas Monitzer
COCOA WORKSHOP PART 1 Andreas Monitzer 2009-02-17 WORKSHOP SCHEDULE 1. Introduction, Foundation 2. GUI Programming 3. Hands-On 4. Advanced 2009-02-17 2009-02-19 2009-02-24 2009-02-26 STRUCTURE Introduction
More informationObjective-C. Stanford CS193p Fall 2013
New language to learn! Strict superset of C Adds syntax for classes, methods, etc. A few things to think differently about (e.g. properties, dynamic binding) Most important concept to understand today:
More informationepicurious Anatomy of an ios app Robert Tolar Haining June 25, 2010 ConvergeSE
epicurious Anatomy of an ios app Robert Tolar Haining June 25, 2010 ConvergeSE + = Prototype iphone ipad Why iphone apps Simplicity Control Speed Revenue Epicurious Defined as a Recipe Utility Cookbook
More informationMobile Application Programming. Objective-C Classes
Mobile Application Programming Objective-C Classes Custom Classes @interface Car : NSObject #import Car.h + (int) viper; - (id) initwithmodel:(int)m; @implementation Car Point position; float velocity;
More informationObjective-C ICT/7421ICTNathan. René Hexel. School of Information and Communication Technology Griffith University.
Objective-C 2.0 2501ICT/7421ICTNathan René Hexel School of Information and Communication Technology Griffith University Semester 1, 2012 Outline Fast Enumeration and Properties 1 Fast Enumeration and Properties
More informationMy First Cocoa Program
My First Cocoa Program 1. Tutorial Overview In this tutorial, you re going to create a very simple Cocoa application for the Mac. Unlike a line-command program, a Cocoa program uses a graphical window
More informationObject-Oriented Programming with Objective-C. Lecture 2
Object-Oriented Programming with Objective-C Lecture 2 Objective-C A Little History Originally designed in the 1980s as a fusion of Smalltalk and C Popularized by NeXTSTEP in 1988 (hence the ubiquitous
More informationBindings Example Exercise James Dempsey - WWDC Pre-Show Cocoa Workshop
Bindings Example Exercise James Dempsey - WWDC Pre-Show Cocoa Workshop In this exercise you will create a basic document-based application using Cocoa Bindings. This application will allow the user to
More informationYour First iphone OS Application
Your First iphone OS Application General 2010-03-15 Apple Inc. 2010 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form
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 informationITP 342 Advanced Mobile App Dev. Memory
ITP 342 Advanced Mobile App Dev Memory Memory Management Objective-C provides two methods of application memory management. 1. In the method described in this guide, referred to as manual retain-release
More informationYour First iphone Application
Your First iphone Application General 2009-01-06 Apple Inc. 2009 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form
More informationCS193E: Temperature Converter Walkthrough
CS193E: Temperature Converter Walkthrough The goal of this walkthrough is to give you a fairly step by step path through building a simple Cocoa application. You are encouraged to follow the walkthrough,
More informationCS193E Lecture 7. Document-based Applications NSTableView Key-Value Coding
CS193E Lecture 7 Document-based Applications NSTableView Key-Value Coding Agenda Questions? Review: delegates, MVC Document-based apps Table views Key Value Coding Model, View, Controller Controller Model
More informationIPHONE. Development Jump Start. phil nash levelofindirection.com
IPHONE Development Jump Start phil nash levelofindirection.com Who? been in a professional developer for the last 18 years - mostly windows - c++, c#, Java, Python etc - then, Aug 2008, decided to write
More informationIOS - TEXT FIELD. Use of Text Field. Important Properties of Text Field. Updating Properties in xib
IOS - TEXT FIELD http://www.tutorialspoint.com/ios/ios_ui_elements_text_field.htm Copyright tutorialspoint.com Use of Text Field A text field is a UI element that enables the app to get user input. A UITextfield
More informationBE PROACTIVE USE REACTIVE
BE PROACTIVE USE REACTIVE This morning we re going to talk about reactive programming. We ll cover some of the what, why, and how, hopefully with a bend towards grasping the fundamentals. We ll have some
More informationObjective-C. Deck.m. Deck.h. Let s look at another class. This one represents a deck of cards. #import <Foundation/Foundation.h> #import "Deck.
Deck.h #import @interface Deck : NSObject @interface Deck() @implementation Deck Deck.m Let s look at another class. This one represents a deck of cards. Deck.h #import
More informationPorting Objective-C to Swift. Richard Ekle
Porting Objective-C to Swift Richard Ekle rick@ekle.org Why do we need this? 1.2 million apps in the ios App Store http://www.statista.com/statistics/276623/numberof-apps-available-in-leading-app-stores/
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 informationITP 342 Mobile App Dev. Fundamentals
ITP 342 Mobile App Dev Fundamentals Objective-C Classes Encapsulate data with the methods that operate on that data An object is a runtime instance of a class Contains its own in-memory copy of the instance
More informationCreate an App that will drop PushPins onto a map based on addresses that the user inputs.
Overview Create an App that will drop PushPins onto a map based on addresses that the user inputs. Part 1: Introduction to MKMapKit Part 2: Introduction to PushPins Part 3: Use Google s API to lookup an
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 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 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 informationWhat's new in ios 5?
What's new in ios 5? (and why should I care?) Vikram Kriplaney vikram@local.ch vikram@iphonso.com @krips icloud Storage API Provides a sandbox for each app Synchronizes data and files between cloud and
More informationUsing Swift with Cocoa and Objective-C
Using Swift with Cocoa and Objective-C Contents Getting Started 5 Basic Setup 6 Setting Up Your Swift Environment 6 Understanding the Swift Import Process 7 Interoperability 9 Interacting with Objective-C
More informationGetting Help. iphone Application Programming Lecture 3: Foundation Classes. Data Structures in Objective C. Online Documentation.
iphone Application Programming Lecture 3: Foundation Classes Prof. Jan Borchers Media Computing Group RWTH Aachen University Winter Semester 2013/2014 http://hci.rwth-aachen.de/iphone Online Documentation
More informationDesign Phase. Create a class Person. Determine the superclass. NSObject (in this case)
Design Phase Create a class Person Determine the superclass NSObject (in this case) 8 Design Phase Create a class Person Determine the superclass NSObject (in this case) What properties should it have?
More informationCS193P - 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 informationCollections. Fall, Prof. Massimiliano "Max" Pala
Collections Fall, 2012 Prof. Massimiliano "Max" Pala pala@nyu.edu Overview Arrays Copy and Deep Copy Sets Dictionaries Examples Arrays Two Classes NSArray and NSMutableArray (subclass of NSArray) int main(int
More informationInterfaceBuilder 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 informationReview. 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 informationSwift, functional programming, and does it matter? Alexis
Swift, functional programming, and does it matter? Alexis Gallagher @alexisgallagher Questions What s new in Swift? Is Swift a functional programming language? And what is functional anyway? How useful
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 informationPraktikum 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 informationMobile 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 informationFunctional Reactive Programming on ios
Functional Reactive Programming on ios Functional reactive programming introduction using ReactiveCocoa Ash Furrow This book is for sale at http://leanpub.com/iosfrp This version was published on 2016-05-28
More informationCocoa Programming. David Chisnall. March 18,
March 18, 2010 http://cs.swan.ac.uk/~csdavec/papers/safariwebcast.pdf The Story So Far What is Cocoa? Why Cocoa? GNUstep Overview GNUstep Look and Feel A Brief History of Objective-C 1980: Smalltalk-80
More informationApp SandBox Directory
Data Persistence 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 App SandBox Directory
More informationA Better MVC. 300 line view controllers or bust. Dave A guy who thinks too deeply about stuff
A Better MVC 300 line view controllers or bust Dave DeLong @davedelong A guy who thinks too deeply about stuff Heads Up This is all my opinion (! hi legal & pr teams!) Lots of similar terminology View
More informationiphone 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 informationsrc3/bettertextfield/bettertextfield/appdelegate.h // AppDelegate.h // BetterTextField
src3/bettertextfield/bettertextfield/appdelegate.h 1 1 1 1 AppDelegate.h BetterTextField Created by Tommy MacWilliam on 3/7/ Copyright (c) 2012 MyCompanyName. All rights reserved. #import
More informationStichwortverzeichnis. 379, #define 287, 407 #import 50, 99 #pragma mark 415
Symbole @class 379, 480 @optional 360 @property 128 @protocol 197 @required 353 #define 287, 407 #import 50, 99 #pragma mark 415 A About-Fenster 294 Accessor-Methoden 94, 98, 115, 118, 132, 583 Action
More informationMVC and Interface Builder IAP 2010
MVC and Interface Builder IAP 2010 iphonedev.csail.mit.edu edward benson / eob@csail.mit.edu Information-Driven Applications Application Flow UIApplication Main NIB Initialized UIAppDelegate - (void)applicationdidfinishlaunching:(uiapplication
More informationNSObject. - (NSString *)description Provides us with a string description of the object
FoundationFramework NSObject - (NSString *)description Provides us with a string description of the object NSString - (NSString *)stringbyappendingstring:(nsstring *)string Creates a new string by adding
More informationStanford 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 informationSWIFT! init(title: String) { self.title = title } // required initializer w/ named parameter
SWIFT! class Session { let title: String // constant non-optional field: can never be null and can never be changed var instruktør: Person? // variable optional field: null is permitted var attendees:
More informationMy 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 informationCocoa. Last Week... Music 3SI: Introduction to Audio/Multimedia App. Programming. Today... Why Cocoa? Wikipedia - Cocoa
Music 3SI: Introduction to Audio/Multimedia App. Programming IDE (briefly) VST Plug-in Assignment 1 hints Last Week... Week #5-5/5/2006 CCRMA, Department of Music Stanford University 1 2 Today... Cocoa
More informationProduced 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 informationAdvanced Cocoa Text Tips and Tricks. Aki Inoue Cocoa Engineer
Advanced Cocoa Text Tips and Tricks Aki Inoue Cocoa Engineer 2 Introduction Only on Mac OS Diving deeper Understanding the layout process Getting comfortable with extending and customizing base functionalities
More informationCisco 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 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 informationCS193p 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 informationIntroductory ios Development
Introductory ios Development 152-164 Unit 2 - Basic Objective-C Syntax Quick Links & Text References Console Application Pages Running Console App Pages Basic Syntax Pages Variables & Types Pages Sequential
More informationStanford CS193p. Developing Applications for ios. Fall Stanford CS193p. Fall 2011
Developing Applications for ios Today Persistence How to make things stick around between launchings of your app (besides NSUserDefaults) Persistence Property Lists Use writetourl:atomically: and initwithcontentsofurl:
More informationITP 342 Mobile App Dev. Data Types
ITP 342 Mobile App Dev Data Types Types of Data Types C Primitives The vast majority of Objective-C s primitive data types are adopted from C, although it does define a few of its own to facilitate its
More informationHCIM SUMMER WORKSHOP Introduction to C#
HCIM SUMMER WORKSHOP Introduction to C# .NET.NET is: Microsoft s Platform for Windows Development CLR (Common Language Runtime) the Virtual Machine that runs MSIL (Microsoft Intermediate Language Code)
More informationRunning Code on an ios Device. Appendix. The ios Developer Program
------- Appendix A Running Code on an ios Device Developing for ios is many things: challenging, fun, rewarding, and exciting. One thing it is not is free. To begin, doing any legitimate ios development
More informationCS 47. Beginning iphone Application Development
CS 47 Beginning iphone Application Development Introductions Who, why, which? Shameless Plug: LoudTap Wifi Access (If it works..) SSID: Stanford Username/password: csp47guest Expectations This is a programming
More informationMANNING IN ACTION SAMPLE CHAPTER. Brendan G. Lim. WITH Jerry Cheung AND Jeremy McAnally
MANNING IN ACTION SAMPLE CHAPTER Brendan G. Lim WITH Jerry Cheung AND Jeremy McAnally MacRuby in Action by Brendan G. Lim with Jerry Cheung and Jeremy McAnally Chapter 1 Copyright 2012 Manning Publications
More informationContents. 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 informationAdopting Advanced Features of the New UI
Frameworks #WWDC14 Adopting Advanced Features of the New UI Session 220 Chris Dreessen AppKit Software Engineer! Corbin Dunn AppKit Software Engineer 2014 Apple Inc. All rights reserved. Redistribution
More informationAssignment I Walkthrough
Assignment I Walkthrough Objective Reproduce the demonstration (building a calculator) given in class. Materials By this point, you should have been sent an invitation to your sunet e-mail to join the
More informationStoryboards 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 informationMobile Application Development
Mobile Application Development Lecture 12 Introduction to ObjectiveC 2013/2014 Parma Università degli Studi di Parma Lecture Summary ObjectiveC language basics Classes and objects Methods Instance variables
More informationOBJECTIVE-C BEST PRACTICES IN A TEAM ENVIRONMENT
OBJECTIVE-C BEST PRACTICES IN A TEAM ENVIRONMENT by Rolin Nelson Presented at JaxMUG March 2013 1 GOALS Introduce / review Objective-C core features Review recent additions to Objective-C Discuss and propose
More informationITP 342 Mobile App Development. Data Persistence
ITP 342 Mobile App Development Data Persistence Persistent Storage Want our app to save its data to persistent storage Any form of nonvolatile storage that survives a restart of the device Want a user
More informationCLOCK4 TUTORIAL VERY SIMPLE HELLO WORLD COCOA APPLICATION
http:clanmills.com Page 1/8 CLOCK4 TUTORIAL VERY SIMPLE HELLO WORLD COCOA APPLICATION Life in a new programming environment has to start somewhere. Everybody knows the hello world application written in
More informationIntegrating Game Center into a BuzzTouch 1.5 app
into a BuzzTouch 1.5 app This tutorial assumes you have created your app and downloaded the source code; created an App ID in the ios Provisioning Portal, and registered your app in itunes Connect. Step
More information