ITP 342 Mobile App Dev. Web View

Size: px
Start display at page:

Download "ITP 342 Mobile App Dev. Web View"

Transcription

1 ITP 342 Mobile App Dev Web View

2 Web View 2

3 WebKit The WebKit provides a set of core classes to display web content in windows, and by default, implements features such as following links clicked by the user. The WebKit greatly simplifies the complicated process of loading webpages that is, asynchronously requesting web content from an HTTP server over the network where the response may arrive incrementally, in random order, or partially due to network errors. The WebKit also simplifies the process of displaying content that can contain various MIME types, and multiple frames each with their own set of scrollbars. 3

4 WebKit You use the WebKit to display web content in a window of your application. It s as simple as creating a view, placing it in a window, and sending a URL load request message. By default, your WebKit application behaves as you would expect without error. The WebKit conveniently creates and manages all the views needed to handle different MIME types. When the user clicks on a link in a page, the WebKit automatically creates the views needed to display the next page. 4

5 WebKit However, the WebKit doesn t implement a complete set of web browser features. You can, however, extend the WebKit by implementing custom delegate, view, and model objects. For example, you can implement a delegate to display load status, and the current URL. 5

6 WebKit The WebKit also offers web content editing. If you enable editing in your WebView, users can edit the web content it displays. You can programmatically control the current selection and control editing behavior using a WebView delegate. You can also modify the Document Object Model directly using an Objective-C API. You can also access JavaScript from Objective-C and vice versa. 6

7 Why use the WebKit? Some applications might want to display web content on demand but don t necessarily want to parse it or understand its structure to display it. Applications like this may not want to open multiple windows or provide back and forward buttons. The WebKit provides a set of classes to support a variety of web content from the most trivial embedded web content application (with web content displayed in a single window) to a fullfeatured web browser such as Safari. 7

8 Web Content The WebKit does this by hiding the details of the complex task of loading and displaying web content. The web is based on a client-server architecture, in which clients make asynchronous requests to web servers for page content. During this process any number of problems can occur not only when transmitting these requests and responses over the network but also when displaying the content once it s received by your application. Content may be complex. It can contain multiple frame elements, multiple MIME types, such as images and movies. Some MIME types require browser plug-ins to display them. 8

9 WebKit By default, the WebKit core classes transparently handle programmatic and client requests. The WebKit creates all the necessary model and view classes used to represent and display the incoming content. When a user clicks a link, the WebKit automatically relinquishes control of the old objects and creates new ones to handle the new page. The WebKit views are designed to handle multiple frames, each with their own scroll bar, and many MIME types. You do not need to implement custom views for your application to display web content in your application. 9

10 Core WebKit Classes You can display web content in a single window by following a few simple steps. Normally, to embed web content in your application you simply create a WebView object, place it in a window, and send a load request message. However, if you want to do something more complex for example, customize the user interface, use multiple windows, or implement any other browser-like features, such as back and forward buttons you will want to understand better how the WebKit classes work together to load and display web content. 10

11 Frame Model and View Classes The WebKit loosely follows a model-viewcontroller paradigm some objects represent view-controllers that display web content, and other objects represent models that encapsulate web content. WebView Class Reference is the core view class in the WebKit. WebView objects manage interactions between WebFrameView Class Reference objects and WebFrame Class Reference objects. 11

12 Web View You use the UIWebView class to embed web content in your application. To do so, you simply create a UIWebView object, attach it to a window, and send it a request to load web content. You can also use this class to move back and forward in the history of webpages, and you can even set some web content properties programmatically. 12

13 Loading Local Content When loading local content, you can either create the content dynamically or load it from a file and display it using one of the following methods: loaddata: MIMEType: textencodingname: baseurl: loadhtmlstring: baseurl: - (void)viewdidload { [super viewdidload]; NSString *path = [[NSBundle mainbundle] pathforresource:@"hig" oftype:@"pdf"]; if (path){ NSData *pdfdata = [NSData datawithcontentsoffile:path]; [(UIWebView *)self.view loaddata:pdfdata MIMEType:@"application/pdf" textencodingname:@"utf-8" baseurl:nil]; } } 13

14 Loading Local Content When loading local content, you can either create the content dynamically or load it from a file and display it using one of the following methods: loaddata: MIMEType: textencodingname: baseurl: loadhtmlstring: baseurl: SWIFT // QuotesViewController.swift override func viewdidload() { super.viewdidload() if let path = Bundle.main.path(forResource: "HIG", oftype: "pdf"){ let pdfdata = NSData(contentsOfFile: path, options:.mappedifsafe) (self.view as? UIWebView)?.load(pdfData, mimetype: "application/pdf", textencodingname: "utf-8", baseurl: nil) } } 14

15 Loading Content from the Network To load content from the network, you create an NSURLRequest object and pass it to the loadrequest: method of your web view. You can do this in the viewdidload or viewdidappear method. NSURL *url = [NSURL URLWithString:@" NSURLRequest *request = [NSURLRequest requestwithurl:url]; [self.mywebview loadrequest: request]; 15

16 Loading Content from the Network To load content from the network, you create an NSURLRequest object and pass it to the loadrequest: method of your web view. You can do this in the viewdidload or viewdidappear method. SWIFT let url = URL(string: " let request = URLRequest(url: url) self.mywebview.loadrequest(request) 16

17 App Transport Security App Transport Security (ATS) was introduced and enabled by default since ios 9. It forces an app to connect to web services over an HTTPS connection rather than HTTP, keeping user data secure in transit. To handle this, you can: Update all urls to be https Whitelist http connections with key NSExceptionDomains Ignore all app transport security restrictions with key NSAllowsArbitraryLoads 17

18 Stop a Load Request If, after initiating a network-based load request, you must release your web view for any reason, you must cancel the pending request before releasing the web view. You can cancel a load request using the web view s stoploading method. A typical place to include this code would be in the viewwilldisappear: method of the owning view controller. To determine if a request is still pending, you can check the value in the web view s loading property. - (void)viewwilldisappear:(bool)animated{ [super viewwilldisappear:animated]; if ([self.mywebview isloading]){ [self.mywebview stoploading]; } } // Disconnect the delegate as the webview is hidden self.mywebview.delegate = nil; 18

19 Stop a Load Request If, after initiating a network-based load request, you must release your web view for any reason, you must cancel the pending request before releasing the web view. You can cancel a load request using the web view s stoploading method. A typical place to include this code would be in the viewwilldisappear: method of the owning view controller. To determine if a request is still pending, you can check the value in the web view s loading property. SWIFT override func viewwilldisappear(_ animated: Bool) { super.viewwilldisappear(animated) if self.mywebview.isloading{ self.mywebview.stoploading() } } // Disconnect the delegate as the webview is hidden self.mywebview.delegate = nil 19

20 UIWebView Use the loadrequest: method to begin loading web content, the stoploading method to stop loading, and the loading property to find out if a web view is in the process of loading. If you allow the user to move back and forward through the webpage history, then you can use the goback and goforward methods as actions for buttons. Use the cangoback and cangoforward properties to disable the buttons when the user can t move in a direction. 20

21 UIWebView By default, a web view automatically converts telephone numbers that appear in web content to Phone links. When a Phone link is tapped, the Phone application launches and dials the number. Set the detectsphonenumbers property to NO to turn off this default behavior. You can also use the scalespagetofit property to programmatically set the scale of web content the first time it is displayed in a web view. Thereafter, the user can change the scale using gestures. 21

22 UIWebView You should not embed UIWebView or UITableView objects in UIScrollView objects. If you do so, unexpected behavior can result because touch events for the two objects can be mixed up and wrongly handled. entation/uikit/reference/uiwebview_class/r eference/reference.html 22

23 Homework Assignment Create a Detail View Create a class that inherits from UIViewController entitled something like DetailViewController. Create a public property to hold an NSDictionary object for a place. Update the title of the navigationitem to the place name. Drag ViewController to the storyboard. Set the class identity to the new class. Add a WebView to display the web page of the URL. Create an IBOutlet for the WebView. 23

24 Storyboard Create a Show (e.g. Push) segue from the CollectionViewCell to the DetailViewController. 24

25 Detail View Controller Call the loadrequest: method for the WebView. Add an ActivityIndicatorView that animates when the website is loading by adhering to the UIWebViewDelegate protocol. This is described in future slides in this deck. 25

26 Collection View Controller Implement the prepareforsegue:sender: method. Check to make sure the segue.identifier is equal to the string that you entered for the identifier in the storyboard. Get the index of the selected cell by calling the indexpathsforselecteditems method for the instance of the CollectionView (self.collectionview). Create an instance of the DetailViewController and set its place property to the selected place. 26

27 UIWebViewDelegate Set the delegate property to an object conforming to the UIWebViewDelegate protocol if you want to track the loading of web content. While the web content is loading, let's give feedback to the user. Use an Activity View Indicator. 27

28 Activity Indicator View On the Storyboard, add an Activity Indicator View to the Detail View Create an IBOutlet for the activity indicator In the Attributes Inspector, make sure Hides When Stopped is checked entation/uikit/reference/uiactivityindicatorvie w_class/reference/uiactivityindicatorview.h tml 28

29 Activity Indicator View In the code that has the IBOutlet to the activity indicator Use the startanimating method to start animating the activity indicator Use the stopanimating method to stop animating But when do we start & stop animating? Use the UIWebViewDelegate methods 29

30 UIWebViewDelegate In the storyboard, select the Web View In the Connections Inspector, set the delegate to the Detail View Controller Make the DetailViewController class adhere to the UIWebViewDelegate protocol Use the following delegate methods: webviewdidstartload: webviewdidfinishload: webview: didfailloadwitherror: 30

31 Detail View Implement the webviewdidstartload: method and have it start animating the activity indicator Implement the webviewdidfinishload: method and have it stop animating the activity indicator Implement the webview: didfailloadwitherror: method and have it stop animating the activity indicator 31

32 Detail View Implement the webviewdidstartload: method and have it start animating the activity indicator Implement the webviewdidfinishload: method and have it stop animating the activity indicator Implement the webview: didfailloadwitherror: method and have it stop animating the activity indicator - (void)webviewdidstartload:(uiwebview *)webview{ [self.activityindicator startanimating]; } - (void)webviewdidfinishload:(uiwebview *)webview{ [self.activityindicator stopanimating]; } - (void)webview:(uiwebview *)webview didfailloadwitherror:(nserror *)error{ [self.activityindicator stopanimating]; } 32

33 Detail View Implement the webviewdidstartload: method and have it start animating the activity indicator Implement the webviewdidfinishload: method and have it stop animating the activity indicator Implement the webview: didfailloadwitherror: method and have it stop animating the activity indicator SWIFT func webviewdidstartload(_ webview: UIWebView) { self.activityindicator.startanimating() } func webviewdidfinishload(_ webview: UIWebView) { self.activityindicator.stopanimating() } func webview(_ webview: UIWebView, didfailloadwitherror error: Error) { self.activityindicator.stopanimating() } 33

34 Resources tation/uikit/reference/uiwebview_class/index. html tation/stringstextfonts/conceptual/textandweb iphoneos/displaywebcontent/displaywebcont ent.html ntation/cocoa/conceptual/displaywebcontent/ DisplayWebContent.html#//apple_ref/doc/uid/ i 34

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

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

Introducing the Modern WebKit API

Introducing the Modern WebKit API Frameworks #WWDC14 Introducing the Modern WebKit API Session 206 Anders Carlsson Safari and WebKit Engineer 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written

More information

ITP 342 Mobile App Dev. Collection View

ITP 342 Mobile App Dev. Collection View ITP 342 Mobile App Dev Collection View Collection View A collection view manages an ordered collection of items and presents them in a customizable layout. A collection view: Can contain optional views

More information

Mobile Development - Lab 2

Mobile 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 information

Tables. Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder

Tables. Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Tables Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Mobile Application Development in ios 1 Outline Table View Controller Table View Table Cells

More information

Linkify Documentation

Linkify Documentation Linkify Documentation Release 1.0.0 Studio Ousia November 01, 2014 Contents 1 Developer Support 3 1.1 Customize Linkify Application..................................... 3 1.2 Embed to ios App............................................

More information

ITP 342 Mobile App Dev. Table Views

ITP 342 Mobile App Dev. Table Views ITP 342 Mobile App Dev Table Views Table Views The most common mechanism used to display lists of data to the user Highly configurable objects that can be made to look practically any way you want them

More information

App. Chapter 19 App. App (ViewController) App. Single View Application Single View Application View. (View Controller)

App. Chapter 19 App. App (ViewController) App. Single View Application Single View Application View. (View Controller) Chapter 19 App App (ViewController) App 19.1 App App Single View Application Single View Application View Controller View Controller Label Button Button (View Controller) 2 View Controller Utility Area

More information

Introductory ios Development

Introductory ios Development Introductory ios Development 152-164 Unit 5 - Multi-View Apps Quick Links & Text References What is a Delegate? What is a Protocol? Delegates, Protocols and TableViews Creating a Master-Detail App Modifying

More information

Building the App - Part 5 - Adding a Link

Building the App - Part 5 - Adding a Link Unit 4 - Coding For Your App Copy and Paste the code below exactly where the tutorials tell you. DO NOT COPY TEXT IN RED. Building the App - Part 5 - Adding a Link XCODE 7 @IBAction func Button1(_ sender:

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

Using Advanced Interface Objects and Views

Using Advanced Interface Objects and Views HOUR 9 Using Advanced Interface Objects and Views What You ll Learn This Hour:. How to use segmented controls (a.k.a. button bars). Ways of inputting Boolean values via switches. How to include web content

More information

Discovering WKWebView

Discovering WKWebView Discovering WKWebView Designed to replace UIWebView on ios and WebView on macos. Both ios and macos have the same API Harder to use than UIWebView Multi-process Architecture Multi-process Architecture

More information

Document Version Date: 1st March, 2015

Document Version Date: 1st March, 2015 7 Minute Fitness: ios(swift) Application Document Version 1.0.1 Date: 1st March, 2015 2 [7 MINUTE FITNESS: APP DOCUMENTATION] Important Notes:... 5 AppDelegate Class Reference... 6 Tasks... 6 Instance

More information

ITP 342 Mobile App Dev. Connections

ITP 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 information

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

Stanford CS193p. Developing Applications for ios. Fall CS193p. Fall Stanford Developing Applications for ios Today More about Documents Demo Use Codable to create a JSON representation of our document Store it in the filesystem Think better of that and let UIDocument store

More information

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

Stanford 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 information

ITP 342 Mobile App Dev. Table Views

ITP 342 Mobile App Dev. Table Views ITP 342 Mobile App Dev Table Views Tables A table presents data as a scrolling, singlecolumn list of rows that can be divided into sections or groups. Use a table to display large or small amounts of information

More information

Learn to make desktop LE

Learn to make desktop LE HACKING WITH SWIFT COMPLETE TUTORIAL COURSE Learn to make desktop LE P apps with real-worldam S Swift projects REEPaul Hudson F Project 1 Storm Viewer Get started coding in Swift by making an image viewer

More information

AVAudioRecorder & System Sound Services

AVAudioRecorder & System Sound Services AVAudioRecorder & System Sound Services Dept. of Multimedia Science, Sookmyung Women s University. prof. JongWoo Lee Index AVAudioRecorder? - (AudioRecorder) System Sound Service? - (SysSound) AVAudioRecorder

More information

ITP 342 Mobile App Dev. Connections

ITP 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 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

Create an App that will drop PushPins onto a map based on addresses that the user inputs.

Create 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 information

Enhancing your apps for the next dimension of touch

Enhancing your apps for the next dimension of touch App Frameworks #WWDC16 A Peek at 3D Touch Enhancing your apps for the next dimension of touch Session 228 Tyler Fox UIKit Frameworks Engineer Peter Hajas UIKit Frameworks Engineer 2016 Apple Inc. All rights

More information

Mastering UIKit on tvos

Mastering 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 information

Collection Views. Dr. Sarah Abraham

Collection Views. Dr. Sarah Abraham Collection Views Dr. Sarah Abraham University of Texas at Austin CS329e Fall 2016 What is a Collection View? Presents an ordered set of data items in a flexible layout Subclass of UIScrollView (like UITableView)

More information

Assignment IV: Smashtag Mentions

Assignment 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 information

ITP 342 Mobile App Dev. Animation

ITP 342 Mobile App Dev. Animation ITP 342 Mobile App Dev Animation Views Views are the fundamental building blocks of your app's user interface, and the UIView class defines the behaviors that are common to all views. Responsibilities

More information

Building Mapping Apps for ios With Swift

Building Mapping Apps for ios With Swift Building Mapping Apps for ios With Swift Jeff Linwood This book is for sale at http://leanpub.com/buildingmappingappsforioswithswift This version was published on 2017-09-09 This is a Leanpub book. Leanpub

More information

Gestures. Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder

Gestures. Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Gestures Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Mobile Application Development in ios 1 Outline Gestures Gesture recognizers Gesture states

More information

Structuring an App Copyright 2013 Apple Inc. All Rights Reserved.

Structuring 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 information

A Mad Libs app that you will navigate through 3 UIViewControllers to add text that will be shown in a story on the fourth UIViewController.

A Mad Libs app that you will navigate through 3 UIViewControllers to add text that will be shown in a story on the fourth UIViewController. WordPlay App: A Mad Libs app that you will navigate through 3 UIViewControllers to add text that will be shown in a story on the fourth UIViewController. Create a new project Create a new Xcode project

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

ios 9 SDK Development

ios 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 information

Social Pinboard: ios(swift) Application

Social 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 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

iphone Programming Touch, Sound, and More! Norman McEntire Founder Servin Flashlight CodeTour TouchCount CodeTour

iphone Programming Touch, Sound, and More! Norman McEntire Founder Servin Flashlight CodeTour TouchCount CodeTour iphone Programming Touch, Sound, and More! Norman McEntire Founder Servin 1 Legal Info iphone is a trademark of Apple Inc. Servin is a trademark of Servin Corporation 2 Welcome Welcome! Thank you! My promise

More information

ITP 342 Mobile App Dev. Animation

ITP 342 Mobile App Dev. Animation ITP 342 Mobile App Dev Animation Core Animation Introduced in Mac OS X Leopard Uses animatable "layers" built on OpenGL UIKit supports Core Animation out of the box Every UIView has a CALayer behind it

More information

COMPLETE TUTORIAL COURSE. Learn to make tvos LE. apps with real-worldam S F

COMPLETE TUTORIAL COURSE. Learn to make tvos LE. apps with real-worldam S F HACKING WITH SWIFT COMPLETE TUTORIAL COURSE Learn to make tvos LE P apps with real-worldam S Swift projects REEPaul Hudson F Project 1 Randomly Beautiful 2 www.hackingwithswift.com Setting up In this first

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

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

News- ipad: ios(swift) Application

News- ipad: ios(swift) Application News- ipad: ios(swift) Application Document Version 1.0.1 Date: 9 th Nov, 2014 2 [NEWS- IPAD: APP DOCUMENTATION] Important Notes:... 6 AppDelegate Class Reference... 7 Tasks... 7 Instance Methods... 7

More information

Media Playback and Recording. CS193W - Spring Lecture 3

Media Playback and Recording. CS193W - Spring Lecture 3 Media Playback and Recording CS193W - Spring 2016 - Lecture 3 Today Images and animated images Text input controller Media playback controller Inline video playback Playing extended audio Recording audio

More information

ITP 342 Mobile App Dev. Audio

ITP 342 Mobile App Dev. Audio ITP 342 Mobile App Dev Audio File Formats and Data Formats 2 pieces to every audio file: file format (or audio container) data format (or audio encoding) File formats describe the format of the file itself

More information

Stream iphone Sensor Data to Adafruit IO

Stream iphone Sensor Data to Adafruit IO Stream iphone Sensor Data to Adafruit IO Created by Trevor Beaton Last updated on 2019-01-22 04:07:41 PM UTC Guide Contents Guide Contents Overview In this learn guide we will: Before we start... Downloading

More information

Index. btndrop function, 224, 226 btngetquote function, 246 btnpressed function, 28 btnquote method, 245. CallWeb method, 238, 240

Index. btndrop function, 224, 226 btngetquote function, 246 btnpressed function, 28 btnquote method, 245. CallWeb method, 238, 240 Index A App icons section icons set, 277 LaunchImage, 278 launch screen graphics, 278 279 PNG format, 277 settings, 276 App store deployment application graphics, 273 general settings Identity section,

More information

Chapter 22 TableView TableView. TableView ios. ViewController. Cell TableViewCell TableView

Chapter 22 TableView TableView. TableView ios. ViewController. Cell TableViewCell TableView Chapter 22 TableView TableView Android TableView ListView App 22.1 TableView TableView Storyboard Table View ViewController TableView ios Cell TableViewCell TableView Table View Cell Cell ImageView (imageview)

More information

Use the API or contact customer service to provide us with the following: General ios Android App Name (friendly one-word name)

Use the API or contact customer service to provide us with the following: General ios Android App Name (friendly one-word name) Oplytic Attribution V 1.2.0 December 2017 Oplytic provides attribution for app-to-app and mobile-web-to-app mobile marketing. Oplytic leverages the tracking provided by Universal Links (ios) and App Links

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

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

UI Design and Storyboarding

UI 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 information

Implementing UI Designs in Interface Builder

Implementing 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 information

ios Developer s Guide Version 1.0

ios Developer s Guide Version 1.0 HealthyFROGS ios Developer s Guide ios Developer s Guide Version 1.0 Tuesday May 7, 2013 2012-2013 Computer Science Department, Texas Christian University - All Rights Reserved HealthyFROGS ios Developer

More information

Rx in the real world. 1 Rob Ciolli

Rx 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 information

QuickPrints SDK for ios Version 3.3 August 06, 2014

QuickPrints SDK for ios Version 3.3 August 06, 2014 Introduction The QuickPrints SDK for ios (ipod Touch, iphone, and ipad) is a static library that provides a set of APIs that can be used to submit a photo print order to a Walgreens store. This document

More information

Web 2.0 and iphone Application Development Workshop. Lab 2: iphone programming basics

Web 2.0 and iphone Application Development Workshop. Lab 2: iphone programming basics Web 2.0 and iphone Application Development Workshop This lab is prepared by: Department of Electrical and Electronic Engineering, Faculty of Engineering, The University of Hong Kong Lab 2: iphone programming

More information

ADVANCED M A. Learn SiriKit, imessage apps, rich notifications, and more. with real-world projects HACKING WITH SWIFT COMPLETE TUTORIAL COURSE

ADVANCED M A. Learn SiriKit, imessage apps, rich notifications, and more. with real-world projects HACKING WITH SWIFT COMPLETE TUTORIAL COURSE HACKING WITH SWIFT ADVANCED ios VOLUME ONE COMPLETE TUTORIAL COURSE Learn SiriKit, imessage apps, E L P rich notifications, and more M A S with real-world projects E E FR Paul Hudson Chapter 1 Happy Days

More information

Event Delivery: The Responder Chain

Event Delivery: The Responder Chain When you design your app, it s likely that you want to respond to events dynamically. For example, a touch can occur in many different objects onscreen, and you have to decide which object you want to

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

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

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3 COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3 MODULE 1: OVERVIEW OF HTML AND CSS This module provides an overview of HTML and CSS, and describes how to use Visual Studio 2012

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

ios Application Development Lecture 5: Protocols, Extensions,TabBar an Scroll Views

ios Application Development Lecture 5: Protocols, Extensions,TabBar an Scroll Views ios Application Development Lecture 5: Protocols, Extensions,TabBar an Scroll Views Dr. Simon Völker & Philipp Wacker Media Computing Group RWTH Aachen University Winter Semester 2017/2018 http://hci.rwth-aachen.de/ios

More information

Cocoa Touch Best Practices

Cocoa 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 information

Stanford CS193p. Developing Applications for ios. Winter CS193p. Winter 2017

Stanford CS193p. Developing Applications for ios. Winter CS193p. Winter 2017 Stanford Developing Applications for ios Today Error Handling in Swift try Extensions A simple, powerful, but easily overused code management syntax Protocols Last (but certainly not least important) typing

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

ios DeCal : Lecture 2 Structure of ios Applications: MVC and Auto Layout

ios 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 information

Integrating Game Center into a BuzzTouch 1.5 app

Integrating 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

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

THE TASKBAR: A TOOL FOR UNLOCKING THE SECRETS OF WINDOWS 10

THE TASKBAR: A TOOL FOR UNLOCKING THE SECRETS OF WINDOWS 10 THE TASKBAR: A TOOL FOR UNLOCKING THE SECRETS OF WINDOWS 10 A Two Hour Seminar and Demonstration Thursday, September 13, 9:30-11:30 am, in the Computer Club Classroom Open Seating Presented by Bill Wilkinson

More information

Secure+ Password Manager ver 1.1.1

Secure+ Password Manager ver 1.1.1 Secure+ Password Manager ver 1.1.1 Table of Contents 1. First setup & Auto lock functionality 1. Setup 2. Auto Lock 2. Add new item & edit 1. Icons 2. Edit Fields (Title, Category, ID, Password, URL) 3.

More information

Mobile Application Development

Mobile Application Development Mobile Application Development Lecture 17 Blocks, Concurrency, Networking 2013/2014 Parma Università degli Studi di Parma Lecture Summary Blocks Concurrency and multithreading Grand Central Dispatch (GCD)

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

What s New in NSCollectionView Session 225

What s New in NSCollectionView Session 225 App Frameworks #WWDC15 What s New in NSCollectionView Session 225 Troy Stephens Application Frameworks Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without

More information

ITP 342 Mobile App Dev. Interface Builder in Xcode

ITP 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 information

Introduction to WatchKit. CS193W - Spring Lecture 1

Introduction 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 information

Step 1: Open Xcode and select Create a new Xcode Project from the Welcome to Xcode menu.

Step 1: Open Xcode and select Create a new Xcode Project from the Welcome to Xcode menu. In this tutorial we are going to build a simple calculator using buttons that are all linked together using the same method. We will also add our own method to the source code to create some additional

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

imessage Apps and Stickers, Part 2

imessage Apps and Stickers, Part 2 App Frameworks #WWDC16 imessage Apps and Stickers, Part 2 Interactive Messages Session 224 Alex Carter Messages Engineer Stephen Lottermoser Messages Engineer 2016 Apple Inc. All rights reserved. Redistribution

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

iphone Application Programming Lab 2: MVC and Delegation + A01 discussion

iphone Application Programming Lab 2: MVC and Delegation + A01 discussion Lab 2: MVC and Delegation + A01 discussion Nur Al-huda Hamdan RWTH Aachen University Winter Semester 2015/2016 http://hci.rwth-aachen.de/iphone Learning Objectives Discuss A01 + demo Concepts: debugging

More information

What s New in imessage Apps

What s New in imessage Apps Session App Frameworks #WWDC17 What s New in imessage Apps 234 Eugene Bistolas, Messages Engineer Jay Chae, Messages Engineer Stephen Lottermoser, Messages Engineer 2017 Apple Inc. All rights reserved.

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

ios Development - Xcode IDE

ios Development - Xcode IDE ios Development - Xcode IDE To develop ios applications, you need to have an Apple device like MacBook Pro, Mac Mini, or any Apple device with OS X operating system, and the following Xcode It can be downloaded

More information

} override func didreceivememorywarning() { 26 super.didreceivememorywarning() 27 } 28 } Pause Stop

} override func didreceivememorywarning() { 26 super.didreceivememorywarning() 27 } 28 } Pause Stop Chapter 30 30.1 App App MP3 Don t Download This Song [1] Finder MP3 Xcode UI 1 import UIKit 2 import AVFoundation 3 4 class ViewController: UIViewController { 5 6 var player: AVAudioPlayer? 7 8 override

More information

ios 101 Hands-On Challenges

ios 101 Hands-On Challenges ios 101 Hands-On Challenges Copyright 2014 Razeware LLC. All rights reserved. No part of this book or corresponding materials (such as text, images, or source code) may be reproduced or distributed by

More information

Salesforce Classic User Guide for Android

Salesforce Classic User Guide for Android Salesforce Classic User Guide for Android Version 36.0, Spring 16 @salesforcedocs Last updated: April 27, 2016 Copyright 2000 2016 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

Mobile Development Lab 3

Mobile 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 information

SafeWebApp Android QuickStart

SafeWebApp Android QuickStart SafeWebApp Android QuickStart Excel Software Copyright 2012 Excel Software SafeWebApp is an easy, secure way to deliver and use web applications, called Web Apps. SafeWebApp is free download available

More information

Miscellaneous Topics

Miscellaneous Topics Miscellaneous Topics Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Mobile Application Development in ios 1 Outline Renaming Xcode project and

More information

Lesson 1: Hello ios! 1

Lesson 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 information

ITP 342 Mobile App Dev. Delegates

ITP 342 Mobile App Dev. Delegates ITP 342 Mobile App Dev Delegates Protocol A protocol is a declaration of a list of methods Classes that conform to the protocol implement those methods A protocol can declare two kinds of methods: required

More information

Stanford CS193p. Developing Applications for ios. Winter CS193p! Winter 2015

Stanford 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 information

IOS - TEXT FIELD. Use of Text Field. Important Properties of Text Field. Updating Properties in xib

IOS - 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 information

ITP 342 Mobile App Dev. Animation

ITP 342 Mobile App Dev. Animation ITP 342 Mobile App Dev Animation Core Animation Introduced in Mac OS X Leopard Uses animatable "layers" built on OpenGL UIKit supports Core Animation out of the box Every UIView has a CALayer behind it

More information

WHAT DEVOPS NEED TO KNOW ABOUT MOBILE

WHAT DEVOPS NEED TO KNOW ABOUT MOBILE WHAT DEVOPS NEED TO KNOW ABOUT MOBILE or really everyone Jon Arne Sæterås twitter: @jonarnes Desktop Mobile Tablet Console 100 80 60 40 20 0 2009-01 2010-01 2011-01 2012-01 2013-01 2014-01 2015-01 2016-01

More information

Part of this connection identifies how the response can / should be provided to the client code via the use of a callback routine.

Part of this connection identifies how the response can / should be provided to the client code via the use of a callback routine. What is AJAX? In one sense, AJAX is simply an acronym for Asynchronous JavaScript And XML In another, it is a protocol for sending requests from a client (web page) to a server, and how the information

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

Here is an example of a spending report-type Dashboard. This would be a great tool for a Sales Manager.

Here is an example of a spending report-type Dashboard. This would be a great tool for a Sales Manager. iphone Dashboard handbook Introduction Welcome to the iphone Dashboard Handbook, your one-stop source for learning about and creating 4D iphone Dashboards. iphone Dashboards are data-at-a-glance summaries

More information