ITECH 7602 PROJECT SRS and SADD Presentation Team

  • Slides: 40
Download presentation
ITECH 7602 - PROJECT • SRS and SADD Presentation Team members Divya Nalla -

ITECH 7602 - 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 STRUCTUREIMPLEMENTATION

SOFTWARE SPECIFICATIONS REQUIREMENT FOR AN IOS APPLICATION DESIGN PATTERN-CODING STRUCTUREIMPLEMENTATION

SYSTEM • Intel-Based Macintosh Computer with IOS DSK Installed • Applicable to All IOS

SYSTEM • Intel-Based Macintosh Computer with IOS DSK Installed • Applicable to All IOS Devices • Devices includes mobile devices like i. Pad, Iphone, i. Touch & i. Pod

DESIGN CHOICES • Pattern • Code Structure • Implementation

DESIGN CHOICES • Pattern • Code Structure • Implementation

APP DESIGN BASICS • Handling Events • Displaying Content on the Screen • Interacting

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

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 • i. Cloud Affects the Design of Your Data Model

APP STATES AND MULTITASKING • i. Cloud Affects the Design of Your Data Model and UI Layers • i. Cloud allows you to share the user’s data among multiple instances of your app running on different i. OS and Mac OS X devices

ICLOUD STORAGE • Apps Require Some Specific Resources • Apps include images, sounds, and

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

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

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 i. OS apps, performance means more than just writing fast code

PERFORMANCE • For i. OS 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

PERFORMANCE CONTD. , • You can tune your code • The types of changes that are likely to provide the most benefit

PERFORMANCE TUNING • The i. OS Environment Affects Many App Behaviours • There aspects

PERFORMANCE TUNING • The i. OS Environment Affects Many App Behaviours • There aspects of i. OS 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

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

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 i. OS 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 i. OS

PREREQUISITES • Practical aspects involved with implementing your app • installed the i. OS SDK and configured your development environment

PREREQUISITES CONTD. , • App Store provides information for Developing Environment on how to

PREREQUISITES CONTD. , • App Store provides information for Developing Environment on how to configure the Development Process and an overview

CLASS DIAGRAM

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

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

SOFTWARE ARCHITECTURE DESIGN DOCUMENT FOR IOS APP

IOS ARCHITECTURE • Layers 1) Cocoa Touch 2) Media 3) Core Services 4) Core

IOS ARCHITECTURE • Layers 1) Cocoa Touch 2) Media 3) Core Services 4) Core Operating System

FRAMEWORK • Dynamic Shared Library • Header Files • Images • Helper Apps

FRAMEWORK • Dynamic Shared Library • Header Files • Images • Helper Apps

DEVELOPMENT ENVIRONMENT • X-Code 1)Create 2)Test 3)Debug 4)Tune This is to be done in

DEVELOPMENT ENVIRONMENT • X-Code 1)Create 2)Test 3)Debug 4)Tune This is to be done in an i. OS Simulator

DEVELOPER LIBRARY • Documentation • Platform • Objective c • Google API

DEVELOPER LIBRARY • Documentation • Platform • Objective c • Google API

DESIGN PATTERNS • The great thing about these patterns is they work well regardless

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 i. OS, Java and Android, or C# and Windows Phone

EVOLUTION AND CHANGES IN APPS • Not just once or twice, but many times

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

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

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 → Data View → User Interface Controller → Core Logic

MODEL • The Model is your application’s data and, in i. OS, usually takes

MODEL • The Model is your application’s data and, in i. OS, 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

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.

CONTROLLER • The Controller acts as an intermediary between the Model and the View. The Controller is where your core logic goes

FLOW DIAGRAM

FLOW DIAGRAM

INTERACTION • User interacts with the view— • Touch • Tap • Pinch •

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,

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

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

EXAMPLE: CALCULATOR-CONTROL OBJECT

DEFECTS • A view is typically bound to a single view controller • Ultimately,

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

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

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

REFERENCES • http: //msmvps. com/blogs/kevinmcneish/archive/2012/12/ 16/building-a-solid-ios-app-architecture. aspx