ITP 342 Advanced Mobile App Dev. Core Data

Size: px
Start display at page:

Download "ITP 342 Advanced Mobile App Dev. Core Data"

Transcription

1 ITP 342 Advanced Mobile App Dev Core Data

2 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 and Keyed Archives NSCoder and NSKeyedArchiver support saving an arbitrary object graph into a binary file Direct SQLite Requires writing SQL queries to retrieve and save data Core Data Provides the flexibility of working with SQLite directly while insulating the app from the mechanics of working with the database 2

3 Core Data Core Data is a schema-driven object graph management and persistence framework Fundamentally, Core Data helps you to save model objects (in the sense of the modelview-controller design pattern) to a file and get them back again Core Data is available on ios 3.0 and later 3

4 Some Features of Core Data Modeling data objects with a visual model editor Automatic and manual migration tools to handle when object schema changes Establishing relationships between objects (one-toone, one-to-many, many-to-many) Storing data in separate files and different file formats Validation of object attributes Querying and sorting data Lazy loading data Interacting closely with ios table views Managing related object changes with commit and undo capabilities 4

5 Why use Core Data? With Core Data, the amount of code you write to support the model layer of your application is typically 50% to 70% smaller as measured by lines of code. It provides excellent security and error-handling. It offers best memory scalability of any competing solution. You can use templates in the Instruments application to measure Core Data s performance and to debug various problems. 5

6 What Core Data is Not Core Data is not a relational database or a relational database management system (RDBMS). Core Data provides an infrastructure for change management and for saving objects to and retrieving them from storage. It can use SQLite as one of its persistent store types. Core Data is not a silver bullet. Core Data does not remove the need to write code. Core Data does not rely on Cocoa bindings. Core Data integrates well with Cocoa bindings and leverages the same technologies and used together they can significantly reduce the amount of code you have to write but it is possible to use Core Data without bindings. 6

7 Basic Architecture Using the Core Data framework, most of this functionality is provided for you automatically, primarily through an object known as a managed object context (or just context ). The managed object context serves as your gateway to an underlying collection of framework objects collectively known as the persistence stack that mediate between the objects in your application and external data stores. 7

8 Example: Document management using Core Data Basic Architecture 8

9 Managed Objects and Contexts You can think of a managed object context as an intelligent scratch pad. When you fetch objects from a persistent store, you bring temporary copies onto the scratch pad where they form an object graph (or a collection of object graphs). You can then modify those objects however you like. Unless you actually save those changes, however, the persistent store remains unaltered. 9

10 Managed Objects and Contexts Model objects that tie into in the Core Data framework are known as managed objects. All managed objects must be registered with a managed object context. You add objects to the graph and remove objects from the graph using the context. The context tracks the changes you make, both to individual objects' attributes and to the relationships between objects. By tracking changes, the context is able to provide undo and redo support for you. It also ensures that if you change relationships between objects, the integrity of the object graph is maintained. 10

11 Fetch Requests To retrieve data using a managed object context, you create a fetch request. A fetch request is an object that specifies what data you want, for example, all Employees, or all Employees in the Marketing department ordered by salary, highest to lowest. A fetch request has three parts. Minimally it must specify the name of an entity (by implication, you can only fetch one type of entity at a time). It may contain a predicate object that specifies conditions that objects must match. It may contain an array of sort descriptor objects that specifies the order in which the objects should appear. 11

12 Fetch Request An example fetch request 12

13 Core Data Core Data lets us design our data models visually, without writing code, and stores that data model in the.xcdatamodeld file Xcode data model document Create entities in the data model editor Entity refers to the description of an object In code, create managed objects from those entities Managed object refers to actual concrete instances of that entity created at runtime 13

14 Entities An entity is made up of 3 types of properties 1. Attributes hold data An attribute serves the same function in a Core Data entity as an instance variable does in an Objective-C class 2. Relationships relationship between entities Relationships can be to-one and to-many 3. Fetched properties an alternative to a relationship Fetched properties allow you to create a query that is evaluated at fetch time to see which objects belong to the relationship 14

15 Key-Value Coding Instead of using accessors and mutators, you will use key-value coding to set properties or retrieve their existing values Similar to key-value coding in NSDictionary When working with a managed object, the key you will use to set or retrieve a property's value is the name of the attribute you which to set NSString *name = [mymanagedobject valueforkey:@"name"];! [mymanagedobject setvalue:@"tommy Trojan" forkey:@"name"];! 15

16 Backing Store These managed objects live in something called a persistent store or a backing store By default, the app implements it as an SQLite database stored in the app's Documents directory No SQL because Core Data does all the work Backing stores can also be implemented as binary flat files or event stored in an XML format It is possible to have multiple persistent stores If you're curious about how the backing store is created and configured, take a look at the AppDelegate.m file 16

17 Managed Object Context We don't work with the persistent store directly, instead we use a managed object context (often referred to as just a context) The context manages access to the persistent store and maintains information about which properties have changed since the last time an object was save Also registers all changes with the undo manager, meaning that you always have the ability to undo a single change or roll back all the way to the last time data was saved 17

18 Core Data Supported Data Types Data Types Integer 16 Integer 32 Integer 64 Decimal Double Float String Boolean Date Binary Data Transformable Objective-C Storage NSNumber NSNumber NSNumber NSNumber NSNumber NSNumber NSString NSNumber NSDate NSData Uses value transformer 18

19 Inheritance Core Data supports entity inheritance. Any entity can have one parent entitiy specified. The child entitiy will inherit all the characteristics of the parent entitiy, including attributes, validations, and indexes. 19

20 Core Data Project Project templates that allow you to select Core Data Master-Detail Application Utility Application Empty Application The Core Data framework will be included 20

21 Creating New Managed Objects Use insertnewobjectforentityforname: inmanagedobjectcontext: factory method in a class called NSEntityDescription! NSEntityDescription's job is to keep track of all the entities defined in the app's data model After the call, the object exist in the context but is not yet part of the persistent store until managed object context's save: method is called thename = [NSEntityDescription! insertnewobjectforentityforname:@"entityname"! inmanagedobjectcontext:context];! 21

22 Retrieving Managed Objects To retrieve, make use of a fetch request, which is Core Data's way of handling a predefined query Optionally, you can also specify criteria for a fetch request using the NSPredicate class A predicate is similar to the SQL WHERE clause and allows you to define the criteria used to determine the results of your fetch request You execute the fetch request using an instance method on NSMangedObjectContext: called executefetchrequest:error:! 22

23 Example NSFetchRequest *request = [[NSFetchRequest alloc] init];! NSEntityDescription *entitydescr = [NSEntityDescription! entityforname:@"entityname"! inmanagedobjectcontext:context];! [request setentity:entitydescr];!! // If predicate! NSPredicate *pred = [NSPredicate = %@)", namestring];! [request setpredicate:pred];!! NSError *error;! NSArray *objects = [context executefetchrequest:request! error:&error];! if (objects == nil) {! // handle error! }! 23

24 New Project Create a new Empty Application Make sure to check the Use Core Data checkbox 24

25 Data Model New filed called CoreData.xcdatamodeld Click on the Add Entity icon along the bottom Rename new entity to represent the data you want to save For our example, change it to Person Click on the Add Attribute icon along the bottom Set the attribute and the type Add 3 attributes: color (String), name (String), number (Integer 16) Click on the file to open the data model editor Two views (lower right corner) Table mode Graph mode 25

26 Empty Application Create a ViewController File à New à File à Cocoa Touch (under ios) à Objective-C class Make it a subclass of UIViewController Create a storyboard File à New à File à User Interface (under ios) à Storyboard Name it something like MainStoryboard 26

27 Storyboard Use the Library add a View Controller On the Identity Inspector, set the class to your new class (USCViewController) Add 2 labels Add 4 textfields Create IBOutlets 27

28 Storyboard Under the Project Navigator, select the app target Under Summary, for the Main Storyboard, make sure to select the name of your story board (MainStoryboard) 28

29 Update App Delegate In the USCAppDelegate.m file in the application:didfinishlaunchingwit hoptions: method, remove the self.window code Just keep return YES! 29

30 Update View Controller In the USCViewController.m file in the viewdidload method Get the context and fetch a request For the objects, set the textfields Add an observer Update the applicationwillresignactive: method 30

31 Resources documentation/cocoa/conceptual/coredata/ cdprogrammingguide.html

ios Core Data Example Application

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

More information

Managed Object Model schema Persistent Store Coordinator connection Managed Object Context scratch pad

Managed Object Model schema Persistent Store Coordinator connection Managed Object Context scratch pad CoreData Tutorial What is CoreData? CoreData Stack Managed Object Model: You can think of this as the database schema. It is a class that contains definitions for each of the objects (also called Entities

More information

App SandBox Directory

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

Data Management

Data Management Core Data Programming Guide Data Management 2009-11-17 Apple Inc. 2004, 2009 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted,

More information

Core Data Programming Guide

Core Data Programming Guide Core Data Programming Guide 2006-12-05 Apple Computer, Inc. 2004, 2006 Apple Computer, Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted,

More information

ITP 342 Mobile App Development. Data Persistence

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

Mobile Application Programming. Data and Persistence

Mobile Application Programming. Data and Persistence Mobile Application Programming Data and Persistence Messaging Options Handler Delegate Handler Collection Controller View Notification Center Model The Model Controller Model View Model Source of data

More information

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

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

More information

Mobile Application Programming. Data and Persistence

Mobile Application Programming. Data and Persistence Mobile Application Programming Data and Persistence Data Files Data Files Lots of C compatibility knowledge required! FILE fopen() fread() vfscanf() fwrite() vfprintf() fclose() Data Files NSData(contentsOfFile:)

More information

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

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

More information

Data Management

Data Management Core Data Utility Tutorial Data Management 2010-09-19 Apple Inc. 2005, 2010 Apple Inc. All rights reserved. exclusion may not apply to you. This warranty gives you specific legal rights, and you may also

More information

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lab 10: Nearby Deals (6 of 6) Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Task 1 Task: Save the favorite deals

More information

Data Storage. Dr. Sarah Abraham

Data Storage. Dr. Sarah Abraham Data Storage Dr. Sarah Abraham University of Texas at Austin CS329e Fall 2016 Model Layer of MVC Contains the data to be displayed Data can be: Stored on device Pulled down from a server Data displayed

More information

ITP 342 Mobile App Development. Data Persistence

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

Mobile Application Development L12: Storage & Communication

Mobile Application Development L12: Storage & Communication Mobile Application Development L12: Storage & Communication Jonathan Diehl (Informatik 10) Hendrik Thüs (Informatik 9) Data Storage & Communication Serialization & File Management SQLite Database CoreData

More information

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lecture 10: and Categories Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Content and Documents This is how you

More information

DOWNLOAD PDF CORE DATA PROGRAMMING GUIDE

DOWNLOAD PDF CORE DATA PROGRAMMING GUIDE Chapter 1 : Core Data Programming Guide : Download Free Book Core Data is a framework that you use to manage the model layer objects in your application. It provides generalized and automated solutions

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

Agenda. Core Data! Next Week! Storing your Model permanently in an object-oriented database.! Multitasking! Advanced Segueing! Map Kit?

Agenda. Core Data! Next Week! Storing your Model permanently in an object-oriented database.! Multitasking! Advanced Segueing! Map Kit? ios Mobile Design Agenda Core Data! Storing your Model permanently in an object-oriented database.! Next Week! Multitasking! Advanced Segueing! Map Kit? Core Data Database! Sometimes you need to store

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 Stanford CS193p. Fall 2011

Stanford CS193p. Developing Applications for ios. Fall Stanford CS193p. Fall 2011 Developing Applications for ios Today Core Data and Documents This is how you store something serious in ios Easy entreé into icloud NSNotificationCenter The little radio station we talked about in the

More information

CS193E Lecture 7. Document-based Applications NSTableView Key-Value Coding

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

ITP 342 Mobile App Dev. Unit Testing

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

Core Data Potpourri. Paul

Core Data Potpourri. Paul Core Data Potpourri Paul Goracke paul@goracke.org @pgor What We Can Learn from an All-Night Marathon of Threes Paul Goracke @pgor Core Data Potpourri Paul Goracke paul@goracke.org @pgor What I m leaving

More information

ITP 342 Advanced Mobile App Dev. Memory

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

Review. Objective-C Classes, Methods, Properties, Protocols, Delegation, Memory Management

Review. Objective-C Classes, Methods, Properties, Protocols, Delegation, Memory Management Data Persistence Review Objective-C Classes, Methods, Properties, Protocols, Delegation, Memory Management Foundation NSArray, NSDictionary, NSString (and mutable versions thereof) MVC and UIViewController

More information

Bindings Example Exercise James Dempsey - WWDC Pre-Show Cocoa Workshop

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

ITP 342 Mobile App Dev. Unit Testing

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

ITP 342 Mobile App Dev. Fundamentals

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

The MVC Design Pattern

The MVC Design Pattern The MVC Design Pattern The structure of iphone applications is based on the Model-View-Controller (MVC) design pattern because it benefits object-oriented programs in several ways. MVC based programs tend

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

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 Core Data Object-Oriented Database Core Data Database Sometimes you need to store large amounts of data or query it in a sophisticated manner. But we still

More information

GNUstep Database Library Introduction

GNUstep Database Library Introduction GNUstep Database Library Introduction c 2006 Free Software Foundation Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice

More information

Table of Contents. Table of Contents

Table of Contents. Table of Contents Powered by 1 Table of Contents Table of Contents Dashboard for Windows... 4 Dashboard Designer... 5 Creating Dashboards... 5 Printing and Exporting... 5 Dashboard Items... 5 UI Elements... 5 Providing

More information

NSObject. - (NSString *)description Provides us with a string description of the object

NSObject. - (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 information

CSC 581: Mobile App Development Spring 2019

CSC 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 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 Persistence How to make things stick around between launchings of your app (besides NSUserDefaults) Persistence Property Lists Use writetourl:atomically: and initwithcontentsofurl:

More information

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

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

More information

Files & Archiving. Lecture 8

Files & Archiving. Lecture 8 Files & Archiving Lecture 8 Persistent Data NSUserDefaults Dead simple to use Just one big file Only supports property list types What if you want more features? File Tasks Finding the file path User selected

More information

S A M P L E C H A P T E R

S A M P L E C H A P T E R SAMPLE CHAPTER Anyone Can Create an App by Wendy L. Wise Chapter 5 Copyright 2017 Manning Publications brief contents PART 1 YOUR VERY FIRST APP...1 1 Getting started 3 2 Building your first app 14 3 Your

More information

How to Keep ERD and Data Dictionary Synchronized? Written Date : January 20, 2014

How to Keep ERD and Data Dictionary Synchronized? Written Date : January 20, 2014 Written Date : January 20, 2014 Data modeling is often the first step in database design as the developers will typically create a conceptual model of how data items relate to each other. Data modeling

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

I, J. Key-value observing (KVO), Label component, 32 text property, 39

I, 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 information

Realm Mobile Database. Knoxville CocoaHeads April 2017 by Gavin Wiggins

Realm Mobile Database. Knoxville CocoaHeads April 2017 by Gavin Wiggins Realm Mobile Database Knoxville CocoaHeads April 2017 by Gavin Wiggins What is the Realm Mobile Database? 2 Free open-source mobile database with support for Java, Objective-C, Javascript, Swift, and Xamarin

More information

CONFIGURING SAFE V4.0 IN THE IBM COLLABORATIVE LIFECYCLE MANAGEMENT

CONFIGURING SAFE V4.0 IN THE IBM COLLABORATIVE LIFECYCLE MANAGEMENT CONFIGURING SAFE V4.0 IN THE IBM COLLABORATIVE LIFECYCLE MANAGEMENT Abstract In this document, we provide step-by-step guidance to configure support for the SAFe V4.0 methodology in CLM tooling. Amy Silberbauer

More information

COMP327 Mobile Computing Session: Lecture Set 4 - Data Persistence, Core Data and Concurrency

COMP327 Mobile Computing Session: Lecture Set 4 - Data Persistence, Core Data and Concurrency COMP327 Mobile Computing Session: 2012-2013 Lecture Set 4 - Data Persistence, Core Data and Concurrency 1 In these Slides... We will cover... An introduction to Local Data Storage The iphone directory

More information

Core Data. CS 442: Mobile App Development Michael Saelee

Core Data. CS 442: Mobile App Development Michael Saelee Core Data CS 442: Mobile App Development Michael Saelee persistence framework (not just an ORM, as non-relational backends are supported) CD tracks an object graph (possibly disjoint), and

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

ADF Mobile Code Corner

ADF Mobile Code Corner ADF Mobile Code Corner m03. Abstract: Dependent lists is a common functional requirement for web, desktop and also mobile applications. You can build dependent lists from dependent, nested, and from independent,

More information

Quick Web Development using JDeveloper 10g

Quick Web Development using JDeveloper 10g Have you ever experienced doing something the long way and then learned about a new shortcut that saved you a lot of time and energy? I can remember this happening in chemistry, calculus and computer science

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

My First iphone App. 1. Tutorial Overview

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

More information

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

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

Exploring Microsoft Office Access 2007

Exploring Microsoft Office Access 2007 Exploring Microsoft Office Access 2007 Chapter 1: Finding Your Way Through a Database Robert Grauer, Keith Mulbery, Maurie Wigman Lockley Committed to Shaping the Next Generation of IT Experts. Copyright

More information

Chapter 2. DB2 concepts

Chapter 2. DB2 concepts 4960ch02qxd 10/6/2000 7:20 AM Page 37 DB2 concepts Chapter 2 Structured query language 38 DB2 data structures 40 Enforcing business rules 49 DB2 system structures 52 Application processes and transactions

More information

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

Data Storage. Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Data Storage Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Mobile Application Development in ios 1 Outline Already seen UserDefaults icloud File

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

lecture 8 & 9 Data Persistence + AVFoundation & Location

lecture 8 & 9 Data Persistence + AVFoundation & Location lecture 8 & 9 Data Persistence + AVFoundation & Location cs198-001 : spring 2018 1 Announcements start working on Custom app bring Lightning cable to lab this week 2 You will need an iphone/ipad with ios

More information

iphone Programming Patrick H. Madden SUNY Binghamton Computer Science Department

iphone Programming Patrick H. Madden SUNY Binghamton Computer Science Department iphone Programming Patrick H. Madden SUNY Binghamton Computer Science Department pmadden@acm.org http://optimal.cs.binghamton.edu General Outline Overview of the tools, and where to get more information

More information

The Power of Predicates (Yes == NO) == NO

The Power of Predicates (Yes == NO) == NO The Power of Predicates (Yes == NO) == NO Overview Predicates Foundation structure, expressions, examples AppKit predicate editors, row templates, localization Predicates Predicates Predicate: A statement

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

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

Object-Oriented Programming in Objective-C

Object-Oriented Programming in Objective-C In order to build the powerful, complex, and attractive apps that people want today, you need more complex tools than a keyboard and an empty file. In this section, you visit some of the concepts behind

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

Topics in Mobile Computing

Topics in Mobile Computing Topics in Mobile Computing Workshop 1I - ios Fundamental Prepared by Y.H. KWOK What is ios? From Wikipedia (http://en.wikipedia.org/wiki/ios): ios is an operating system for iphone, ipad and Apple TV.

More information

Variable Scope The Main() Function Struct Functions Overloading Functions Using Delegates Chapter 7: Debugging and Error Handling Debugging in Visual

Variable Scope The Main() Function Struct Functions Overloading Functions Using Delegates Chapter 7: Debugging and Error Handling Debugging in Visual Table of Contents Title Page Introduction Who This Book Is For What This Book Covers How This Book Is Structured What You Need to Use This Book Conventions Source Code Errata p2p.wrox.com Part I: The OOP

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

CS193P: HelloPoly Walkthrough

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

More information

ITP 342 Mobile App Dev. Localization

ITP 342 Mobile App Dev. Localization ITP 342 Mobile App Dev Localization Build Apps for the World The App Store and Mac App Store are available in over 150 countries, support 40 languages, and have the ability to handle international payment,

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

Assignment III: Graphing Calculator

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

COMP327 Mobile Computing Session:

COMP327 Mobile Computing Session: COMP327 Mobile Computing Session: 2018-2019 Lecture Set 4 - Data Persistence, & Core Data [ last updated: 16 October 2018 ] 1 In these Slides... We will cover... An introduction to Local Data Storage The

More information

GETTING STARTED WITH CODE ON TIME Got data? Generate modern web apps in minutes. Learn to create sophisticated web apps with Code On Time application

GETTING STARTED WITH CODE ON TIME Got data? Generate modern web apps in minutes. Learn to create sophisticated web apps with Code On Time application 2012 GETTING STARTED WITH CODE ON TIME Got data? Generate modern web apps in minutes. Learn to create sophisticated web apps with Code On Time application generator for ASP.NET, Azure, DotNetNuke, and

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

ITP 342 Mobile App Dev. Data Types

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

ITP 342 Mobile App Dev

ITP 342 Mobile App Dev ITP 342 Mobile App Dev Grand Central Dispatch Background Processing Grand Central Dispatch (GCD) New API for splitting up the work your app needs to do into smaller chunks that can be spread across multiple

More information

Corrections and version notes

Corrections and version notes Last updated 7 th May, 2014 Programming apps for the iphone Corrections and version notes Please feel free to email Graeme (gbsummers@graemesummers.info) for additional help or clarification on any of

More information

Report Designer Report Types Table Report Multi-Column Report Label Report Parameterized Report Cross-Tab Report Drill-Down Report Chart with Static

Report Designer Report Types Table Report Multi-Column Report Label Report Parameterized Report Cross-Tab Report Drill-Down Report Chart with Static Table of Contents Report Designer Report Types Table Report Multi-Column Report Label Report Parameterized Report Cross-Tab Report Drill-Down Report Chart with Static Series Chart with Dynamic Series Master-Detail

More information

Entrance exam - Informatics

Entrance exam - Informatics Entrance exam - Informatics Name and Surname fill in the field Application No. Test Sheet No. 15 Algorithms and data structures 1 Which of the listed data structures is most suitable (w.r.t. time and memory

More information

CSCI 251: iphone Application Development

CSCI 251: iphone Application Development CSCI 251: iphone Application Development Spring Term 2012 Lecture #3: Handling Data (Chater 8) Handling Data (from the Internet) Handling XML (structured data formatted as text) Handling (unformatted)

More information

Object Persistence Design Guidelines

Object Persistence Design Guidelines Object Persistence Design Guidelines Motivation Design guideline supports architects and developers in design and development issues of binding object-oriented applications to data sources The major task

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

Perceptive Nolij Web. Administrator Guide. Version: 6.8.x

Perceptive Nolij Web. Administrator Guide. Version: 6.8.x Perceptive Nolij Web Administrator Guide Version: 6.8.x Written by: Product Knowledge, R&D Date: June 2018 Copyright 2014-2018 Hyland Software, Inc. and its affiliates.. Table of Contents Introduction...

More information

CSC 581: Mobile App Development Spring 2018

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

Introducing CloudKit. A how-to guide for icloud for your Apps. Frameworks #WWDC14. Session 208 Olivier Bonnet CloudKit Client Software

Introducing CloudKit. A how-to guide for icloud for your Apps. Frameworks #WWDC14. Session 208 Olivier Bonnet CloudKit Client Software Frameworks #WWDC14 Introducing CloudKit A how-to guide for icloud for your Apps Session 208 Olivier Bonnet CloudKit Client Software 2014 Apple Inc. All rights reserved. Redistribution or public display

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

User Interfaces. Lecture 16. Model - View - Controller. Hamza Bennani September 6, 2018

User Interfaces. Lecture 16. Model - View - Controller. Hamza Bennani September 6, 2018 User Interfaces Lecture 16 Model - View - Controller Hamza Bennani hamza@hamzabennani.com September 6, 2018 Last Lecture Summary Default Cocoa application. NSApplication NSApplicationDelegate XIB/NIB-file

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

Persistence Designer User s Guide. Version 3.4

Persistence Designer User s Guide. Version 3.4 Persistence Designer User s Guide Version 3.4 PERSISTENCE DESIGNER... 4 ADDING PERSISTENCE SUPPORT... 5 PERSIST AS COLUMNS OF A TABLE... 6 PERSIST ENTIRE MESSAGE AS XML... 7 DATABASE TABLE DESIGN... 8

More information

My First Cocoa Program

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

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lab 2: RPN Calculator App (1 of 3) Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Task 1 Task: Create a new application

More information

Mastering phpmyadmiri 3.4 for

Mastering phpmyadmiri 3.4 for Mastering phpmyadmiri 3.4 for Effective MySQL Management A complete guide to getting started with phpmyadmin 3.4 and mastering its features Marc Delisle [ t]open so 1 I community experience c PUBLISHING

More information

Real Application Security Administration

Real Application Security Administration Oracle Database Real Application Security Administration Console (RASADM) User s Guide 12c Release 2 (12.2) E85615-01 June 2017 Real Application Security Administration Oracle Database Real Application

More information

Assignment III: Graphing Calculator

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

Debugging and Profiling

Debugging and Profiling Debugging & Profiling Dr.-Ing. Thomas Springer M.Sc. Martin Weißbach Errors in Swift conditions can occur that require a deviation from the predefined control flow in order to handle e.g. a file does not

More information