400 likes | 498 Views
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.
E N D
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
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
References • http://weekendtechnologies.com/en/apps • http://www.theinquirer.net/inquirer/feature/2274104/ios-7-specs-and-features-everything-you-need-to-know
iOS Architecture • Layers • Cocoa Touch • Media • Core Services • Core Operating System
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 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 → Data View → User Interface Controller → 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
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
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