COMP327 Mobile Computing Session:
|
|
- Hilary Cannon
- 5 years ago
- Views:
Transcription
1 COMP327 Mobile Computing Session: Lecture Set 4 - Data Persistence, & Core Data [ last updated: 16 October 2018 ] 1
2 In these Slides... We will cover... An introduction to Local Data Storage The iphone directory system Property lists Data Modelling using Core Data User Defaults Storing Data These slides will allow you to understand how data can be modelled and stored/cached locally. This may be for a local database, or simply saving state or preferences for an application. 2
3 Local Data Storage Data Persistence and Core Data 3
4 Intro to data and persistence There may be a number of reasons for wanting to read or write data to some form of persistent store Storing preferences - (why have preferences?) Storing simple data in general Storing state Simple values or container classes Serialising custom object data Managing data SQLite Core Data 4
5 iphone File System Each application sandboxes it s file system Ensures security and privacy Apps can t interfere with other app s data When apps are deleted, all the associated files are deleted Each app maintains its own set of directories somewhat reminiscent of a UNIX filestore Files stored in Caches are not backed up during itunes sync Apps cannot write into their own bundles This violates the code-signing mechanism If apps want to include data in the bundle that can later be modified it must copy the data into your documents directory then the data can be modified! mark such data as isexcludedfrombackup Inside a simple Core Data app The sandbox file directory for a simple Core Data app only copy the data on first use 5
6 File Paths in your Application Getting to the Application s home directory NSHomeDirectory Finding directories in the file system NSSearchPathForDirectoriesInDomains Creates an array of path strings for the specified directories in the specified domains Good for discovering where a known directory is in the file system Why No Parameter names in the method call? public func NSSearchPathForDirectoriesInDomains(_ directory: FileManager.SearchPathDirectory, _ domainmask: FileManager.SearchPathDomainMask, _ expandtilde: Bool) -> [String] // Documents directory let documentspath = NSSearchPathForDirectoriesInDomains(.documentDirectory,.userDomainMask, true)[0] // <Application Home>/Documents/myData.plist let mydatapath = documentspath + mydata.plist" //it's actually a string print(mydatapath) 6
7 itunes File sharing Applications can expose files in their Documents directory to itunes (when syncing) Allows users to add and delete files directly to an application Capability is set by setting the Application supports itunes file sharing Property in the App s info.plist to YES 7
8 itunes File sharing 8
9 itunes File func saveaction() { // Documents directory let documentspath = NSSearchPathForDirectoriesInDomains(.documentDirectory,.userDomainMask, true)[0] // <Application Home>/Documents/myData.plist let mydatapath = documentspath + /mydata.plist" let myarray = [NSDate.distantFuture, 5, "Hello World! "] as NSArray //Note - an NSArray myarray.write(tofile: mydatapath, atomically: true) <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" " <plist version="1.0"> <array> <date> t00:00:00z</date> <integer>5</integer> <string>hello World! </string> </array> </plist> 9
10 Property Lists Property lists are structured data used by Cocoa and Core Foundation Used extensively within ios and MacOS Typically XML-based data format Provides support for Primitive data types strings numbers - integers numbers - floating point binary data - (NSData) dates - (NSDate) boolean values arrays - (NSArray) Collections - which can recursively contain other collections dictionaries - (NSDictionary) Root-level object is almost always either an array or dictionary Could be a single element plist containing a primitive data type 10
11 Property Lists A really good way to store small, structured persistent data fragments Good for: less than a few hundred kilobytes of data well defined data elements, that fit the XML data serialisation Bad for: Large data volumes Loading is one-shot Complex objects Blocks of binary data <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" " <plist version="1.0"> <dict> <key>cfbundledevelopmentregion</key> <string>en</string> <key>cfbundleexecutable</key> <string>$(executable_name)</string> <key>cfbundleidentifier</key> <string>$(product_bundle_identifier)</string> <key>cfbundleinfodictionaryversion</key> <string>6.0</string> <key>cfbundlename</key> <string>$(product_name)</string> <key>cfbundlepackagetype</key> <string>appl</string> <key>cfbundleshortversionstring</key> <string>1.0</string> <key>cfbundleversion</key> <string>1</string> <key>lsrequiresiphoneos</key> <true/> <key>uilaunchstoryboardname</key> <string>launchscreen</string> <key>uimainstoryboardfile</key> <string>main</string> <key>uirequireddevicecapabilities</key> <array> <string>armv7</string> </array> <key>uisupportedinterfaceorientations</key> <array> <string>uiinterfaceorientationportrait</string> <string>uiinterfaceorientationlandscapeleft</string> <string>uiinterfaceorientationlandscaperight</string> </array> </dict> </plist> 11
12 Reading and Writing Property Lists Both NSArray and NSDictionary have recursive convenience methods Reading from a file or URL: // Reading Data.plist from the resource bundle let filepath = Bundle.main.path(forResource: "Data", oftype: plist") let tempdict = NSDictionary(contentsOfFile: filepath!) // Reading WrittenArray.plist from the application s file directory let temparray = NSArray(contentsOfFile: WrittenArray.plist") let tempdict2 = NSDictionary(contentsOf: URL) // uses an initialiser Writing to a file or URL func write(tofile path: String, atomically useauxiliaryfile: Bool) -> Bool func write(to url: URL, atomically: Bool) -> Bool Property lists can also be serialised from objects into a static format Can be stored in the file system (in different formats) and read back later Uses NSPropertyListSerialization class 12
13 Example: Writing an Array to Disk Create an array of three items - a date, a value and a string let myarray = [NSDate.distantFuture, 5, "Hello World! "] as NSArray myarray.write(tofile: writtenarray.plist, atomically: true) Call the array s write tofile method (courtesy of the NSArray type) The resulting XML file is written in the application s file space, to be read later <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" " <plist version="1.0"> <array> <date> t00:00:00z</date> <integer>5</integer> <string>hello World! </string> </array> </plist> 13
14 JSON - JavaScript Object Notation Lightweight data interchange format with simple BNF structure Similar to a property list Supports: Collections of name/value pairs - objects { string : value, string : value,... Ordered list of values - arrays [ value, value,... ] Values can be strings, numbers, objects, arrays, true, false, null Elements can be nested NSJSONSerialization Class Converts JSON data into Foundation classes Converts Foundation classes into JSON data See for full definition 14
15 What does it look like? { "title": "University of Liverpool Computer Science Programme List", "groups": [ { "grouptitle": "Agents ART Group", "grouplabel": "agentart", "members": [ "Katie", "Trevor", "Frans", "Paul D.", "Floriana", "Wiebe", "Dave J.", "Terry", "Valli"], { "grouptitle": "Complexity Theory and Algorithmics Group", "grouplabel": "ctag", "members": ["Leszek", "Irina", "Igor", "Prudence", "Michele"], { "grouptitle": "Logic and Computation Group", "grouplabel": "loco", "members": ["Michael", "Frank", "Clare", "Ullrich", "Boris", "Alexei", "Sven"], { "grouptitle": "Economics and Computation Group", "grouplabel": "ecco", "members": ["Piotr", "Rahul", "Martin"] ] The JSON structure naturally matches that of the Swift types: Dictionaries that contain key-value pairs Arrays or Sets that contain lists of values (and their bridged Foundation equivalents, NS ) 15
16 { Example "id": "questionnaire-1", using JSON "title": "COMP327 Questionnaire", "description": "This is a sample questionnaire", "questions": [ { "name": "question-1", "type": "single-option", "title": "Q 1", Questionnaire: { id : String,"title": String,"description": String, questions": [Array] "question": "How much have you enjoyed COMP327 practicals so far?", "choices": [ { "label": "not at all", "value": 1, { "label": "a little", "value": 2, { "label": "somewhat", "value": 3, { "label": "quite a lot", Question: { name : String, type": String,"title": String,"question": String, choices :[Array] ] "value": 4, { "label": "Very much", "value": 5 ], { "name": "question-2", "type": "multi-option", "title": "Q 2", "question": "Which of these COMP327 lectures did you attend?", "choices": [ { "label": "Introduction to COMP327", Choices: { label : String, value": Int ] "value": 1, { "label": "Introduction to Core Data", "value": 2 16
17 Example using JSON var thequestionaire: NSDictionary? = nil let url = URL(string: " let task = URLSession.shared.dataTask(with: url) { (data, response, error) in if error!= nil { print(error) else { if let urlcontent = data { do { let jsonresult = try JSONSerialization.jsonObject(with: urlcontent, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject thequestionaire = (jsonresult as? NSDictionary) let questionnairetitle = thequestionaire!["title"] let questionsarray = thequestionaire!["questions"] as! NSArray let currentquestion = questionsarray[0] as! NSDictionary print(currentquestion["question"] as! String) //print the first question "How much have you enjoyed COMP327 practicals so far? catch { print("====\njson processing Failed\n=====") task.resume() 17
18 Questionnaire ID, title, description, questions[ ] Questions [ ] [0] [1] [2] Questions[0] name, type, title, question, choices[ ] choices[ ] [0] [1] choices[0] label, value 18
19 Encoding and Decoding in Swift 4 { "name": "Monalisa Octocat", " ": "support@github.com", "date": " T16:00:49Z" struct Author: { Codable { let name: String let String let date: Date 19
20 Encoding and Decoding in Swift 4 let jsondata = """ { "name": "Monalisa Octocat", " ": "support@github.com", "date": " T16:00:49Z" """.data(using:.utf8)! struct Author: Codable { let name: String let String let date: Date let decoder = JSONDecoder() decoder.datedecodingstrategy =.iso8601 let author = try decoder.decode(author.self, from: jsondata) print(author.name) 20
21 Encoding and Decoding in Swift 4 let jsondata = """ { "url": " "url": " "author": "author": { "name": "Monalisa Octocat", "name": "Monalisa Octocat", " ": "support@github.com", " ": "support@github.com", "date": " T16:00:49Z" "date": " T16:00:49Z",, "message": "Fix all the bugs", "message": "Fix all the bugs", comment_count": 0, "comment_count": 0, """.data(using:.utf8)! struct Commit: Codable { let url: URL struct Author: Codable { let name: String let String let date: Date let author: Author let message: String let comment_count: Int let decoder = JSONDecoder() decoder.datedecodingstrategy =.iso8601 let commit = try decoder.decode(commit.self, from: jsondata) print(commit.author.name) print(commit.url) 21
22 Example using JSON in Swift 4 // Decodable structures for JSON converting struct Questionnaire : Decodable { let id : String? let title : String? let description : String? let questions : [Questions]? struct Questions : Decodable { let name : String? let type : String? let title : String? let question : String? let choices: [Choices]? struct Choices : Decodable { let label : String? let value : Int? if let url = Bundle.main.url(forResource: filename, withextension: "json") { do { let data = try Data(contentsOf: url) let decoder = JSONDecoder() let questionnaire = try decoder.decode(questionnaire.self, from: jsondata) print(questionnaire.questions![0].question!) //prints How much have you enjoyed COMP327 practicals so far? catch { print("error:\(error)") 22
23 Archiving Objects (Serialisation) A serialisation of some object graph that can be saved to disk and then be loaded later This is what is used by nibs/xibs/storyboard Use the Encodable and Decodable protocols in Swift 4 Declares two methods that a class must implement so that instances can be encoded or decoded Encode an object for an archiver: encode(to:) Decode an object from an archive: init(from:) 23
24 Using Web Services A lot of data is in the cloud data is available from some web server data can then be sent back to a web server A number of APIs available Google, Flickr, Ebay, etc... Typically exposed via RESTful services Uses XML or JSON data formats Parsing XML ios provides some XML support - e.g. PropertyListDecoder handles a specific format of XML used in Apple s plist files. Several open-source XML parsers available JSON is also used by Apple Push Notifications 24
25 User Defaults and Settings Bundles Often applications need to save a small number of settings e.g. preferences or last used settings NSUserDefaults provides a registry for storing values Generated on a per user / per application basis Register the different settings Determines the default values and types of the settings for first use, or if reset UserDefaults.standard.set("Phil", forkey: name") //save let nameobject = UserDefaults.standard.object(forKey: name") //retrieve if let name = nameobject as? String { print(name) let arr = [1,2,3,4] UserDefaults.standard.set(arr, forkey: array") //save let arrayobject = UserDefaults.standard.object(forKey: array") //retrieve if let array = arrayobject as? NSArray { print(array) 25
26 User Defaults and Settings Bundles NSUserDefaults can be set and retrieved at any point in the application Access the defaults object, and treat as a dictionary var lastcell = UserDefaults.standard.object(forKey: lastselectedcell") //program makes some changes to lastcell here UserDefaults.standard.set(lastCell, forkey: lastselectedcell") Values are cached in the application and periodically calls the method synchronize, to store values to the defaults database As this is called periodically, you should only use it if you cannot wait - e.g. if the application is about to exit immediately after changes. 26
27 Core Data A schema-driven object graph management and persistence framework Model objects can be saved to the file store..... and then retrieved later Specifically, Core Data Provides automatic support for undo and redo Supports default values and value-validation provides an infrastructure for managing all the changes to your model objects supports the management of a subset of data in memory at any time Good for managing memory and keeping the footprint low uses a diagrammatic schema to describe your model objects and relationships maintains disjoint sets of edits on your objects Can allow the user to edit some of your objects, whilst displaying them unchanged elsewhere 27
28 The Core Data Stack A collection of Core Data framework objects that access a persistent store This could be a database, but doesn t have to be. Core Data allows the developer to manage data at the top of this stack abstracts away the storage mechanism Allows the developer to focus on Managed Object Model A collection entity descriptions Managed Objects (i.e. records from tables in databases) Managed Object Context (i.e. work area which manages objects from a Core Data store Managed Object Store A collection of managed Objects Persistent Store Coordinator A collection of stores Persistent Object Store A collection of object data Store File 28
29 Managed Objects An object representation of a record from a table in a database The model object (from the MVC pattern) managed by Core Data The data used within the application shapes, lines, groups of elements in a drawing program artists, tracks, albums in a music database people and departments in a HR application An instance of the NSManagedObject or a NSManagedObject subclass 29
30 Managed Object Contexts A context represents a single object space in an application Responsible for managing a collection of Managed Objects Managed objects form a group of related model objects that represent an internally consistent view of a data store e.g. records and their relationships Also responsible for: the complete life-cycle management validation of data relationship maintenance Undo and Redo of actions Instance of an NSManagedObjectContext or an NSManagedObjectContext subclass 30
31 Managed Object Contexts Managed Object Context Employee Name Fred Salary Employee Name Nigel Salary Unsaved Data Managed Objects exist within a Managed Object Context New managed objects are inserted into context Existing records in a database are fetched into a context as managed objects Changes to records are kept in memory until they are committed to the store by saving the context Includes insertion or deletion of complete objects Includes manipulation of property values Employee Name Salary Fred Julie Nigel Tanya Current Data This managed object context contains two managed objects corresponding to two records in an external database. Other records exist in the database, but there are no corresponding managed objects. Note that Nigel s salary has been increased, but that the change has not been committed to the database. 31
32 Managed Object Model A Managed Object model represents a schema that describes the data (and hence the database) And hence the managed objects in the application A model is a collection of entity description objects Instances of NSEntityDescription map between Describes an entity or table in a database, in terms of: Its name Name of the class used to describe the entity in the app in the database Its properties and attributes Name Entity Description Managed Object Class Attribute Attribute Employee NSManagedObject name salary Name Employee Salary Fred Julie Nigel Tanya Database Table Core Data It uses the model to managed objects in your app to records Managed Object Name Fred Salary entitydescription 32
33 Using Core Data: The Basics Core Data support can be included in several of the project templates Select Use Core Data when creating the project Includes additional code within the app delegate implementation file Manages files in the applications Documents Directory Provides a persistent store coordinator for the app Returns the managed object model for the app Also provides the managed object context for the app Also includes a Core Data Model (.xcdatamodeld) file Known as the managed object model 33
34 Getting started with Core Data Any use of core data will need access to the Managed Object Context Get this from the app delegate let appdelegate = UIApplication.shared.delegate as! AppDelegate let context = appdelegate.persistentcontainer.viewcontext let request = NSFetchRequest<NSFetchRequestResult>(entityName: Users") request.returnsobjectsasfaults = false do { let results = try context.fetch(request) if results.count > 0 { for result in results as! [NSManagedObject] { if let username = result.value(forkey: "username") as? String { print(username) 34
35 Modelling your data A data model is a collection of entity and property description objects that describe the Managed Objects This model can be described programmatically Alternatively, the graphical modelling tool can be used Different editor styles can be selected Entity and Attribute properties can be viewed by opening the right-most pane (the Data Model Inspector) Entities can be added to the model This should be an object of type NSManagedObject (see later) The entity name doesn t have to be the same as class that will represent instances of this object Attributes can then be defined complete with name and type 35
36 Modelling your data Here we have a simple data model - with one entity Users and three attributes. We can add attributes and define their types. Types available are: undefined, integer 16, integer 32, integer 64, Decimal, Double, Float, String, Boolean, Date, Binary Data, Transformable. We can also view and edit / interact with the data model graphically 36
37 Fetching objects from the store Resulting Array Fetch Request Entity (table name) Employee Predicate (optional) salary > SortOrderings (optional) name:ascending alphabetical To fetch objects you need a managed object context and a fetch request. Often, objects not directly fetched, but that are relevant to a fetch (such as related objects) will also be fetched. Managed Object Store A collection of managed Objects Persistent Store Coordinator A collection of stores Persistent Object Store A collection of object data Managed Object Name Fred Salary entitydescription Managed Object Name Julie Salary entitydescription Employee Name Salary Fred Julie Nigel Tanya Database Table 37
38 Creating and Executing a Request Create the fetch request, and identify the entity. Provide the name of the entity ( Events ) to the managed context. // Create the request let request = NSFetchRequest<NSFetchRequestResult>(entityName: Events ) request.returnsobjectsasfaults = false // Set the sort descriptor request.sortdescriptors?.append(nssortdescriptor(key: "creationdate", ascending: true)) do { var results = try context.fetch(request) // do stuff here catch { print("couldn't fetch results") Set the sort descriptor; otherwise the order the objects are returned will be undefined. As multiple sort orderings may be specified, these are given in an array. Execute the request - in this case the results are placed in a mutable array, as the results may be modified within our application. Each element of the array is an NSManagedObject 38
39 Deleting Managed Objects In this case, we have received an edit request from the UITableView to delete an entry in the table, that corresponds to an entry we want to delete from our store. Identify the NSManagedObject which is to be deleted. In this case, it is held within the eventsarray, which is also used to fill in entries in the table. override func tableview(_ tableview: UITableView, commit editingstyle: UITableViewCellEditingStyle, forrowat indexpath: IndexPath) { if editingstyle == UITableViewCellEditingStyle.delete { // Delete the managed object at the given index path let itemtoremove = eventsarray[indexpath.row] context.delete(itemtoremove) // Update the array and table view eventsarray.remove(at: indexpath.row) tableview.deleterows(at: [indexpath], with: UITableViewRowAnimation.automatic) table.reloaddata() // Commit the change do { try context.save() catch { print( changes failed") In this app, we also need to delete the entry from our array, and from the table view... Save the context, to push the changes down to the persistent store! 39
40 let toinsert = NSEntityDescription.insertNewObject(forEntityName: "ArtWork", into: context!) as! ArtWork toinsert.artist = artinfo.artist toinsert.filename = artinfo.filename toinsert.id = Int32(artInfo.id!)! toinsert.info = artinfo.information toinsert.lastmodified = stringtodate(artinfo.lastmodified!) toinsert.latitude = Double(artInfo.lat!)! toinsert.longtitude = Double(artInfo.long!)! toinsert.location = artinfo.location toinsert.locationnotes = artinfo.locationnotes toinsert.title = artinfo.title toinsert.yearofwork = artinfo.yearofwork toinsert.enabled = Int(artInfo.enabled!)! == 1 40
41 Questions? Data Persistence and Core Data 41
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 informationData 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 informationAnnouncements. Lab 3 is due on Wednesday by 11:59 PM
Announcements Lab 3 is due on Wednesday by 11:59 PM Extensible Networking Platform 1 1 - CSE 438 Mobile Application Development Today s Topics Property Lists iphone s File System Archiving Objects SQLite
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 informationReview. 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 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 informationStanford CS193p. Developing Applications for ios. Fall CS193p. Fall
Stanford Developing Applications for ios Today Emoji Art Demo continued UITextField to add more Emoji Persistence UserDefaults Property List Archiving and Codable Filesystem Core Data Cloud Kit UIDocument
More informationMobile 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 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 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 informationData 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 Data Storage Already seen: UserDefaults, icloud
More informationMobile 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 informationCOMP327 Mobile Computing Session:
COMP327 Mobile Computing Session: 2018-2019 Lecture Set 5a - + Comments on Lab Work & Assignments [ last updated: 22 October 2018 ] 1 In these Slides... We will cover... Additional Swift 4 features Any
More informationCore 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 informationDeveloping Applications for ios
Developing Applications for ios Lecture 10: Managing and Storing Data Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Content Property Lists Archiving
More informationData 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 informationStanford 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 informationData 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 informationMobile Development - Lab 2
Mobile Development - Lab 2 Objectives Illustrate the delegation mechanism through examples Use a simple Web service Show how to simply make a hybrid app Display data with a grid layout Delegation pattern
More informationios 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 informationlecture 6 Closures, Networking, CocoaPods
lecture 6 Closures, Networking, CocoaPods cs198-001 : spring 2018 announcements no new lab this week - continuation of Pokedex lab + custom app workday (attendance still required) Pokedex due Wednesday
More informationTables. 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 informationlecture 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 informationITP 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 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 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 informationDOWNLOAD 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 informationStanford 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 informationDeveloping 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 informationdjangotribune Documentation
djangotribune Documentation Release 0.7.9 David THENON Nov 05, 2017 Contents 1 Features 3 2 Links 5 2.1 Contents................................................. 5 2.1.1 Install..............................................
More informationCSC Web Technologies, Spring Web Data Exchange Formats
CSC 342 - Web Technologies, Spring 2017 Web Data Exchange Formats Web Data Exchange Data exchange is the process of transforming structured data from one format to another to facilitate data sharing between
More informationHow to automate your ClaroRead Cloud logins for ios using an MDM
How to automate your ClaroRead Cloud logins for ios using an MDM If you have a ClaroRead Pro or app-specific licence key in your ClaroRead Cloud account, you can login in our ios apps and activate or unlock
More informationData Management: Data Types & Collections
Property List Programming Guide Data Management: Data Types & Collections 2010-03-24 Apple Inc. 2010 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval
More informationITP 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 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 informationRealm 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 informationCSCI 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 informationMobile 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 informationData 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 informationXML Processing & Web Services. Husni Husni.trunojoyo.ac.id
XML Processing & Web Services Husni Husni.trunojoyo.ac.id Based on Randy Connolly and Ricardo Hoar Fundamentals of Web Development, Pearson Education, 2015 Objectives 1 XML Overview 2 XML Processing 3
More informationBackends and Databases. Dr. Sarah Abraham
Backends and Databases Dr. Sarah Abraham University of Texas at Austin CS329e Fall 2018 What is a Backend? Server and database external to the mobile device Located on remote servers set up by developers
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 informationLEARNING ios APP DEVELOPMENT With Swift 3 & ios 10
LEARNING ios APP DEVELOPMENT With Swift 3 & ios 10 Detailed Course outline Session - 1. Swift Basics. Section - 1. Variables and Constants Creating Variables and Constants. Type annotations Type Inference
More informationCustomize XCode 4 Project template for OpenCV
Customize XCode 4 Project template for OpenCV XCode 4 has project and file template that user can use at the beginning stage of project build. 1. Existing Project Templates The project template is located
More informationSettings. Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder
Settings Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Mobile Application Development in ios 1 Outline In-app settings UserDefaults Device settings
More informationiphone Application Programming Lecture 3: Foundation Classes
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 Getting Help Online
More informationXML Structures. Web Programming. Uta Priss ZELL, Ostfalia University. XML Introduction Syntax: well-formed Semantics: validity Issues
XML Structures Web Programming Uta Priss ZELL, Ostfalia University 2013 Web Programming XML1 Slide 1/32 Outline XML Introduction Syntax: well-formed Semantics: validity Issues Web Programming XML1 Slide
More informationCOMP327 Mobile Computing Session: Lecture Set 1a - Swift Introduction and the Foundation Framework Part 2
COMP327 Mobile Computing Session: 2018-2019 Lecture Set 1a - Swift Introduction and the Foundation Framework Part 2 73 Other Swift Guard Already seen that for optionals it may be necessary to test that
More informationCore 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 informationData 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 informationStanford CS193p. Developing Applications for ios. Winter CS193p! Winter 2015
Stanford CS193p Developing Applications for ios Today Objective-C Compatibility Bridging Property List NSUserDefaults Demo: var program in CalculatorBrain Views Custom Drawing Demo FaceView Bridging Objective-C
More informationProgramming for the Web with PHP
Aptech Ltd Version 1.0 Page 1 of 11 Table of Contents Aptech Ltd Version 1.0 Page 2 of 11 Abstraction Anonymous Class Apache Arithmetic Operators Array Array Identifier arsort Function Assignment Operators
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 informationJonathan Penn #inspect Brussels, Belgium CORE DATA
Jonathan Penn #inspect 2013 - Brussels, Belgium CORE DATA @jonathanpenn Slides n Sample Code cocoamanifest.net/features Why would I use Core Data? ONE DOES NOT SIMPLY USE CORE DATA It s a lifestyle. Goals:
More informationIntroductory 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 informationJava EE 7: Back-end Server Application Development 4-2
Java EE 7: Back-end Server Application Development 4-2 XML describes data objects called XML documents that: Are composed of markup language for structuring the document data Support custom tags for data
More informationStanford 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 informationJabra Suite for Mac - Mass Deployment guide Revision 3/
Table of Contents Introduction... 2 What do you need?... 2 Installing Apple Remote Desktop... 2 User Accounts and Remote Desktop... 4 Contents of Jabra Suite for Mac.zip... 5 How to install Jabra Suite
More informationCOMP519 Web Programming Lecture 12: JavaScript (Part 3) Handouts
COMP519 Web Programming Lecture 12: JavaScript (Part 3) Handouts Ullrich Hustadt Department of Computer Science School of Electrical Engineering, Electronics, and Computer Science University of Liverpool
More informationCloudKit Tips And Tricks
System Frameworks #WWDC15 CloudKit Tips And Tricks Session 715 Nihar Sharma CloudKit Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationIntroduction to JSON. Roger Lacroix MQ Technical Conference v
Introduction to JSON Roger Lacroix roger.lacroix@capitalware.com http://www.capitalware.com What is JSON? JSON: JavaScript Object Notation. JSON is a simple, text-based way to store and transmit structured
More informationMongoDB Web Architecture
MongoDB Web Architecture MongoDB MongoDB is an open-source, NoSQL database that uses a JSON-like (BSON) document-oriented model. Data is stored in collections (rather than tables). - Uses dynamic schemas
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 informationSwift. Introducing swift. Thomas Woodfin
Swift Introducing swift Thomas Woodfin Content Swift benefits Programming language Development Guidelines Swift benefits What is Swift Benefits What is Swift New programming language for ios and OS X Development
More informationManaging User Settings
Managing User Settings Katie English Manager, Professional Services JAMF Software Managing User Settings Philosophy What Where How Example - Computer level setting Examples - User level settings The way
More informationData Collections. Welcome to the Fourth Dimension (and beyond) Martin Phillips Ladybridge Systems Ltd. International Spectrum Conference, 2014
Data Collections Welcome to the Fourth Dimension (and beyond) International Spectrum Conference, 2014 Martin Phillips Ladybridge Systems Ltd Multivalue Are we at its limits? We all understand the power
More informationCore Data Best Practices
#WWDC18 Core Data Best Practices Session 224 Scott Perry, Engineer Nick Gillett, Engineer 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationStream 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 informationCOMP284 Scripting Languages Lecture 15: JavaScript (Part 2) Handouts
COMP284 Scripting Languages Lecture 15: JavaScript (Part 2) Handouts Ullrich Hustadt Department of Computer Science School of Electrical Engineering, Electronics, and Computer Science University of Liverpool
More informationITP 342 Mobile App Dev
ITP 342 Mobile App Dev REST Representational state transfer (REST) is a style of software architecture for distributed hypermedia systems such as the World Wide Web Conforming to the REST constraints is
More informationPatch Server for Jamf Pro Documentation
Patch Server for Jamf Pro Documentation Release 0.7.0 Bryson Tyrrell Mar 16, 2018 Contents 1 Change History 3 2 Setup the Patch Server Web Application 7 3 Add Your Patch Server to Jamf Pro 11 4 API Authentication
More informationJson Parse Error - No Json Object Could Be Decoded Django Rest Framework
Json Parse Error - No Json Object Could Be Decoded Django Rest Framework It supports REST framework's flexible request parsing, rather than just supporting form data. ParseError: JSON parse error - No
More informationBackends and Databases. Dr. Sarah Abraham
Backends and Databases Dr. Sarah Abraham University of Texas at Austin CS329e Fall 2016 What is a Backend? Server and database external to the mobile device Located on remote servers set up by developers
More informationFinding Bugs Using Xcode Runtime Tools
Session Developer Tools #WWDC17 Finding Bugs Using Xcode Runtime Tools 406 Kuba Mracek, Program Analysis Engineer Vedant Kumar, Compiler Engineer 2017 Apple Inc. All rights reserved. Redistribution or
More informationVMware AirWatch Software Development Kit (SDK) Plugin v1.1 for Xamarin
VMware AirWatch Software Development Kit (SDK) Plugin v1.1 for Xamarin Overview Use this document to install the VMware AirWatch SDK Plugin for Xamarin. The plugin helps enterprise app developers add enterprise-
More informationVMware AirWatch SDK Plugin for Xamarin Instructions Add AirWatch Functionality to Enterprise Applicataions with SDK Plugins
VMware AirWatch SDK Plugin for Xamarin Instructions Add AirWatch Functionality to Enterprise Applicataions with SDK Plugins v1.3 Have documentation feedback? Submit a Documentation Feedback support ticket
More informationSuch JavaScript Very Wow
Such JavaScript Very Wow Lecture 9 CGS 3066 Fall 2016 October 20, 2016 JavaScript Numbers JavaScript numbers can be written with, or without decimals. Extra large or extra small numbers can be written
More informationCOMP519 Practical 5 JavaScript (1)
COMP519 Practical 5 JavaScript (1) Introduction This worksheet contains exercises that are intended to familiarise you with JavaScript Programming. While you work through the tasks below compare your results
More informationJava SE7 Fundamentals
Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various
More informationRegistering for the Apple Developer Program
It isn t necessary to be a member of the Apple Developer Program if you don t intend to submit apps to the App Stores, or don t need the cloud-dependent features. We strongly recommend joining, though,
More informationDocument 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 informationVMware AirWatch SDK Plugin for Xamarin Instructions Add AirWatch Functionality to Enterprise Applicataions with SDK Plugins
VMware AirWatch SDK Plugin for Xamarin Instructions Add AirWatch Functionality to Enterprise Applicataions with SDK Plugins v1.2 Have documentation feedback? Submit a Documentation Feedback support ticket
More informationSalesforce Mobile App Security Guide
Salesforce Mobile App Security Guide Version 3, 0 @salesforcedocs Last updated: October 11, 2018 Copyright 2000 2018 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of salesforce.com,
More informationGOLD Language Reference Manual
GOLD Language Reference Manual Language Guru: Timothy E. Chung (tec2123) System Architect: Aidan Rivera (ar3441) Manager: Zeke Reyna (eer2138) Tester: Dennis Guzman (drg2156) October 16th, 2017 1 Introduction
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 informationFiles & 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 informationFile System Programming Guide
File System Programming Guide Contents About Files and Directories 8 At a Glance 8 The File System Imposes a Specific Organization 8 Access Files Safely 8 How You Access a File Depends on the File Type
More informationTH IRD EDITION. Python Cookbook. David Beazley and Brian K. Jones. O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo
TH IRD EDITION Python Cookbook David Beazley and Brian K. Jones O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo Table of Contents Preface xi 1. Data Structures and Algorithms 1 1.1. Unpacking
More informationIntroducing the Photos Frameworks
Media #WWDC14 Introducing the Photos Frameworks Session 511 Adam Swift ios Photos Frameworks 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationBaasBox. Open Source Backend as a Service. Otto Hylli
BaasBox Open Source Backend as a Service Otto Hylli Overview (1/2) Developed by BaasBox an Italian startup company Project was declared started on 1st of July 2012 on the BaasBox blog Open source under
More informationXcode 6 and ios 8 What s New for Software Developers
Xcode 6 and ios 8 What s New for Software Developers August 2014 Norman McEntire! norman.mcentire@servin.com Slides and Video of this presentation will be posted on Tuesday Aug 26 here: http://servin.com!1
More informationITP 140 Mobile Technologies. Mobile Topics
ITP 140 Mobile Technologies Mobile Topics Topics Analytics APIs RESTful Facebook Twitter Google Cloud Web Hosting 2 Reach We need users! The number of users who try our apps Retention The number of users
More informationNeoJSON. 1.1 An Introduction to JSON
C H A P T E R 1 Sven Van Caekenberghe with Damien Cassou and Stéphane Ducasse JSON (JavaScript Object Notation) is a popular data-interchange format. Neo- JSON is an elegant and efficient standalone Smalltalk
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 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 informationSTARCOUNTER. Technical Overview
STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation
More informationLanguage Reference Manual simplicity
Language Reference Manual simplicity Course: COMS S4115 Professor: Dr. Stephen Edwards TA: Graham Gobieski Date: July 20, 2016 Group members Rui Gu rg2970 Adam Hadar anh2130 Zachary Moffitt znm2104 Suzanna
More informationWhat s New in Foundation for Swift Session 207
App Frameworks #WWDC16 What s New in Foundation for Swift Session 207 Tony Parker Foundation, Apple Michael LeHew Foundation, Apple 2016 Apple Inc. All rights reserved. Redistribution or public display
More informationNotification Services
, page 1 Service Option Configuration, page 9 Notification in Policy Builder relates to pushing messages from Policy Builder to subscribers. Service Providers can use messages to alert the subscriber to
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 information