Upload
faris
View
39
Download
0
Tags:
Embed Size (px)
DESCRIPTION
ITECH7602 - PROJECT. SRS and SADD Presentation Team members Divya Nalla - 30107395 Raja Kandasamy - 30102984 Rajashekar Donti - 30106226 Ren Zhu - 30115339 Sadah Suliman - 30886830. Software Specifications Requirement for an IOS Application. Design Pattern-Coding Structure-Implementation. - PowerPoint PPT Presentation
Citation preview
ITECH7602 - PROJECT
• SRS and SADD Presentation
Team membersDivya Nalla - 30107395
Raja Kandasamy - 30102984Rajashekar Donti - 30106226
Ren Zhu - 30115339Sadah Suliman - 30886830
D E S I G N P AT T E R N - C O D I N G S T R U C T U R E - I M P L E M E N T AT I O N
SOFTWARE SPECIFICATIONS REQUIREMENT FOR AN IOS APPLICATION
SYSTEM
• Intel-Based Macintosh Computer with IOS DSK Installed• Applicable to All IOS Devices• Devices includes mobile devices like iPad, Iphone,
iTouch & iPod
DESIGN CHOICES
• Pattern• Code Structure• Implementation
APP DESIGN BASICS
• Handling Events• Displaying Content on the Screen• Interacting with the rest of the System• Run the application on background
CORE APP OBJECTS
• Must be Different in Background and Foreground• Runs Simultaneously apps in the background• Only one foreground App but multiple apps can
run in the background
APP STATES AND MULTITASKING
• iCloud Affects the Design of Your Data Model and UI Layers• iCloud allows you to share the user’s data among
multiple instances of your app running on different iOS and Mac OS X devices
ICLOUD STORAGE
• Apps Require Some Specific Resources• Apps include images, sounds, and other types of
resources for presenting the app’s content but the App Store also requires some specific resources be present
APP-RELATED RESOURCES
• Many App Behaviour's Can Be Customized• The core architecture of all apps may be the
same• These tweaks are how you add specific high-level
features, such as data protection and URL handling
ADVANCED APP TRICKS
• Apps Must Be Tuned for Performance• Great apps are always tuned for the best possible
performance• This application will provide consistency• The current data are retrieved from the Google
API
PERFORMANCE
• For iOS apps, performance means more than just writing fast code• App does not degrade battery life significantly
PERFORMANCE CONTD.,
• You can tune your code• The types of changes that are likely to provide
the most benefit
PERFORMANCE TUNING
• The iOS Environment Affects Many App Behaviours• There are aspects of iOS itself that impact how
you design and write applications• it takes a more active role in providing security
for apps
SECURITY
• Other system behaviours also affect everything from how memory is managed to how the system responds to hardware input• All of these system behaviours affect the way you
design your apps
APPENDIX: THE IOS ENVIRONMENT
• Important information about the core objects of your app and how they work together• Tour of the architecture that is common to all iOS
apps and highlights key places where you can modify that architecture to meet your needs
PREREQUISITES
• Practical aspects involved with implementing your app• installed the iOS SDK and configured your
development environment
PREREQUISITES CONTD.,
• App Store provides information for Developing Environment on how to configure the Development Process and an overview
CLASS DIAGRAM
REFERENCES
• http://weekendtechnologies.com/en/apps
• http://www.theinquirer.net/inquirer/feature/2274104/ios-7-specs-and-features-everything-you-need-to-know
SOFTWARE ARCHITECTURE DESIGN DOCUMENT FOR IOS APP
IOS ARCHITECTURE
• Layers1) Cocoa Touch2) Media3) Core Services4) Core Operating System
FRAMEWORK
• Dynamic Shared Library• Header Files• Images• Helper Apps
DEVELOPMENT ENVIRONMENT
• X-Code1)Create2)Test3)Debug4)TuneThis is to be done in an iOS Simulator
DEVELOPER LIBRARY
• Documentation• Platform• Objective c• Google API
DESIGN PATTERNS
• The great thing about these patterns is they work well regardless of the tools you are using—whether it’s Objective-C and iOS, Java and Android, or C# and Windows Phone
EVOLUTION AND CHANGES IN APPS
• Not just once or twice, but many times over—and that’s even before you release it to the App store for the first time• After it’s released, your App will change even
more as others use it, provide feedback and suggest enhancements
WHERE TO IMPLEMENT?
• User Interface(UI)• Core logic• Data• It is a Monolithic architecture that is difficult to
change• Creates a situation where you can’t change one
part of the App without changing the other
MODEL-VIEW-CONTROLLER
• A more formal way to look at the three main parts of an App is by means of the Model-View-Controller design pattern
Model → DataView → User InterfaceController → Core Logic
MODEL
• The Model is your application’s data and, in iOS, usually takes the form of entities. An entity represents an object in the real world• Customer entity, Order entity, and Product entity
VISION
Vision is the interaction between the user and the systems directly. The user interacts with objects like•Buttons •Slide bar•Dropdown boxes•Search bar
CONTROLLER
• The Controller acts as an intermediary between the Model and the View. The Controller is where your core logic goes
FLOW DIAGRAM
INTERACTION
• User interacts with the view—• Touch• Tap• Pinch• Flick a user-interface object
INTERACTION CONTD.,
• In response, the View passes a call to the Controller, and the Controller does something based on that interaction
ALTERNATIVE PROCESS INTERACTION
• Sometimes when saved, a Model entity, it gets new or default values
• For example, if you save a new invoice entity, it may be assigned an invoice number. So, the model can fire an event that tells the controller
EXAMPLE: CALCULATOR-CONTROL OBJECT
DEFECTS
• A view is typically bound to a single view controller • Ultimately, the view controller is a user-interface
object. It’s not the tight coupling between the view and the view controller that’s the problem—that’s perfectly fine
• The problem is the core logic code that’s in the view controller
DEFECTS CONTD.,
• Unfortunately, because the core logic is buried inside the view controller, there isn’t a clean way to reuse this logic in another App. It’s “stuck in the weeds” of the user interface
BETTER IMPLEMENTATION TECHNIQUES
• Put in the core logic in some other place where you can access it from multiple Apps, or from multiple view controllers in a single App
REFERENCES
• http://msmvps.com/blogs/kevinmcneish/archive/2012/12/16/building-a-solid-ios-app-architecture.aspx