Suman B.K, iPhone Team Lead  Data Modelling  MVC-Design Patterns  Delegates & Notifications  Memory Management & Performance.

Slides:



Advertisements
Similar presentations
Android Application Development A Tutorial Driven Course.
Advertisements

View-Based Application Development Lecture 1 1. Flows of Lecture 1 Before Lab Introduction to the Game to be developed in this workshop Comparison between.
Apache Struts Technology
OOP Design Patterns Chapters Design Patterns The main idea behind design patterns is to extract the high level interactions between objects and.
Intro to Threading CS221 – 4/20/09. What we’ll cover today Finish the DOTS program Introduction to threads and multi-threading.
Process Management. External View of the OS Hardware fork() CreateProcess() CreateThread() close() CloseHandle() sleep() semctl() signal() SetWaitableTimer()
Performed by:Gidi Getter Svetlana Klinovsky Supervised by:Viktor Kulikov 08/03/2009.
IPhone Security: Understanding the KeyChain Nicholis Bufmack and Ryan Thomas CS 691 Summer 2009.
Stanford University EH&S A Service Oriented Architecture For Rich Internet Applications Sheldon M. Heitz.
Object-Oriented Analysis and Design
Friday, August 29, 2014 CSCI 351 – Mobile Applications Development.
Emerging Platform#4: Android Bina Ramamurthy.  Android is an Operating system.  Android is an emerging platform for mobile devices.  Initially developed.
UNIT-V The MVC architecture and Struts Framework.
CSE 381 – Advanced Game Programming 3D Game Architecture.
Behavioral Patterns  Behavioral patterns are patterns whose purpose is to facilitate the work of algorithmic calculations and communication between classes.
MVC pattern and implementation in java
Java Beans.
Introduction to .Net Framework
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
Microsoft ® Official Course Module XA Using Windows PowerShell ®
16 Services and Broadcast Receivers CSNB544 Mobile Application Development Thanks to Utexas Austin.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Objective C Basics. It’s C with Some Extras!  Cross Platform language  Mac  Linux/UNIX  Windows  Layer above C (Superset)  Adds Object-Oriented.
OS X Development Tom Schroeder. Table of Contents Who cares? HistoryObjective-CCocoaEnvironmentDesign.
(Chapter 10 continued) Our examples feature MySQL as the database engine. It's open source and free. It's fully featured. And it's platform independent.
CVSQL 2 The Revenge of the SQL. The present Read-only access to CVS repository logs Language is a subset of SQL XML interface for returning results Built-in.
10 Reasons to Choose the Yii Framework. The development of Yii framework began on January 1, 2008.Yii framework It is an open source application that.
Navigation in iPads splitViewController. Overview Create a Master-Detail application Switch Device Family to iPad Give the project a name and click “Use.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
View Controllers Content taken from book: “iPhone SDK Development” by Bill Dudney and Chris Adamson.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Amir Bishara and Dorin Danial Supervisors: Roiy Zysman Dr. Ilana David.
Introduction to Java Beans CIS 421 Web-based Java Programming.
Course Summary Xcode & iPhone Simulator
Proxy, Observer, Symbolic Links Rebecca Chernoff.
Computer Software Types Three layers of software Operation.
Open System Interconnection Describe how information from a software application in one computer moves through a network medium to a software application.
ANDROID AND MODEL / VIEW / CONTROLLER. Slide 2 Design Patters Common solutions to programming problems are called design patterns Design patterns are.
The Controller in MVC of iOS CS4521. The controller in the MVC  Controller  Knows about model and view objects  The brains of the operation  Manages.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Persistence CS 344 Mobile App Development Robert Muller.
1 CSE 331 Model/View Separation and Observer Pattern slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia.
The iOS Platform and SDK. iOS iPhoneiPad Mini iPad.
 An essential supporting structure of any thing  A Software Framework  Has layered structure ▪ What kind of functions and how they interrelate  Has.
Unit 4: Processes, Threads & Deadlocks June 2012 Kaplan University 1.
THE EYESWEB PLATFORM - GDE The EyesWeb XMI multimodal platform GDE 5 March 2015.
Apache Struts Technology A MVC Framework for Java Web Applications.
CHAPTER 9 File Storage Shared Preferences SQLite.
START Application Spencer Johnson Jonathan Barella Cohner Marker.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Accelerometer based motion gestures for mobile devices Presented by – Neel Parikh Advisor Committee members Dr. Chris Pollett Dr. Robert Chun Dr. Mark.
High degree of user interaction Interactive Systems: Model View Controller Presentation-abstraction-control.
The Ingredients of Android Applications. A simple application in a process In a classical programming environment, the OS would load the program code.
IPhone Training in Ahmedabad 1 TOPS Technologies -
Programming Paradigms, Software Architectural Patterns, and MVC CS 378 – Mobile Computing for iOS Dr. William C. Bulko.
Introducing the Microsoft® .NET Framework
Integrating ArcSight with Enterprise Ticketing Systems
Integrating ArcSight with Enterprise Ticketing Systems
IOS Design Patterns Sisoft Technologies Pvt Ltd
Introduction to Apple mobile technologies- I393
MVC Architecture, Symfony Framework for PHP Web Apps
In-situ Visualization using VisIt
Android Mobile Application Development
Chapter 3: Windows7 Part 4.
Application Development A Tutorial Driven Course
Emerging Platform#3 Android & Programming an App
Presentation transcript:

Suman B.K, iPhone Team Lead

 Data Modelling  MVC-Design Patterns  Delegates & Notifications  Memory Management & Performance.

 Choosing the right Data Model Data Model

Data FormsNature UserImages, Audio & Video files User PreferenceSaves app state information SensitiveUser Name & Password CacheData will be cached to the proper location.

 User controlled data  Unstructured Text files Property ListsXMLArchiving(NScoding) SQliteCoreData

 “plist”  Its mainly for Small Data.  Object  ----Attributes  --- organize.

 Light weight structured format that your app can easily read & write  Also it easily fits into iOS  NSXML, Libxml & Tiny xml parser available.

 Light weight yet powerful database engine.  Used in countless applications across many platforms.  SQLite uses a procedural Data

 It’s a Built-In Data model,available on MAC OS & iPhone OS 3.0 onwards.  Large or small kinds of DataSet.  Object Oriented Format.  Built-in SQLite data library.

 Saves the state Information.  It Make Use of NSUserDefaults  Light weight settings.  No heavy data-No Images or No video files

 Keychain is the place holder for the sensitive data.  All the data is encrypted  Best to keep password,licence key etc.  Backs up data when app is re-installed.

 Store data in the proper location.  Location: NSPathUtilities.h  Important: No Hardcoded path

 NSTemporaryDirectory : Cleared by the System but not backed up.  NSCachesDirectory : Saved in the directory but not backed up.  NSDocumentDirectory : Saved in directory and Backed up.

 MVC Model-View-Controller.  Best suited for iPhone Apps.  Object communication.

 Independent development modules.  Reusable interface, application logic, and data set.  reliable,flexible and robust code.

 Model objects encapsulate the data.  It manipulates and process the data.  It Communicates with Controller.  One-to-one and one-to-many.

 Displays UI and responds to user  view objects are typically decoupled from model objects.  Purpose:  Display data from the application’s model objects and  Enable the editing of that data.

 Intermediate between View & Model Objects.  Loads the View and also connects model to view.  Manages the flow of the APP.  Function:  Setup and coordinating tasks for an application and  Manage the life cycles of other objects.

 Its a Basic Building block.  One Screen One View Controller  Subclass to add your application logic  It encapsulates your data, view & logic  It Manages the Orientation  It Connects model to the view

My Favorite Actress – Information Flow Model Object: Class Actress. Name NSString. Age int. Details NSString. Hobbies List No of Movies int

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { actressListController=[[[ActressListTableViewController] alloc] init]; actressListController.managedObjectContext=self.manag edObjectContext; [navigationController pushViewController:actressListController animated:no]; return YES; }

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { ActressData *actressData=[fetchedResultController objectAtIndexPath:indexPath]; ActressDetailViewController *advc=[[ActressDetailViewController alloc] init]; ActressDetailViewController.actressData= actressData; self.actressDetailViewController= advice; [self.navigationController pushViewController: advc animated:no]; [advc release]; }

 Set of rules to communicate between the objects.  Its similar to java interface.  It avoids subclassing.  It allows two classes distantly related by inheritance to communicate with others.

 Powerful Design Pattern which preserves MVC structure.  It s mainly used to communicate between the two objects.  Delegate is implemented using a protocol.

 The delegating class has an outlet or property, usually one that is named delegate.  During an event, Delegating object sends the Message to delegate.  Message is sent only if the delegate implements the method.  One-to-One Communication Path

 Broadcast model= One-to-many  Sent Application – wide, not to a specific class.

 Simple Mechanism.  Process has an object called notification center.  Objects register with the notification centre in order to be notified

 3 important things.  Problem identification.  Analysis Tools.  Handling in ViewControllers

 Check for crashes.  CrashLogs without backtrace.  Messages in the Console

 How much memory is utilized in runtime  Analysis tools can be used on Simulator too

 Snow Leopard  Resolves retain/ release cycle  Manual Verification Essential

 Basic Building Blocks of an App.  Responds to Memory Warnings. -(void)didReceiveMemoryWarning { } -(void)viewDidUnload { }

 Do not Block the Main Thread.  Use memory efficiently.  Observing Low-Memory Warnings.

#2, 3 & 4 th floors, Above Chetty’s Corner Kumarapark West Serpentine Road Bangalore: Mobile: (Bangalore) Mobile: (Mumbai)