001454723 000__ 06266cam\a22005777i\4500 001454723 001__ 1454723 001454723 003__ OCoLC 001454723 005__ 20230314003225.0 001454723 006__ m\\\\\o\\d\\\\\\\\ 001454723 007__ cr\cn\nnnunnun 001454723 008__ 230221s2023\\\\nyua\\\\o\\\\\001\0\eng\d 001454723 019__ $$a1370912488$$a1371215002 001454723 020__ $$a9781484290699$$q(electronic bk.) 001454723 020__ $$a1484290690$$q(electronic bk.) 001454723 020__ $$z1484290682 001454723 020__ $$z9781484290682 001454723 0247_ $$a10.1007/978-1-4842-9069-9$$2doi 001454723 035__ $$aSP(OCoLC)1370902999 001454723 040__ $$aORMDA$$beng$$erda$$epn$$cORMDA$$dEBLCP$$dGW5XE$$dYDX$$dAU@ 001454723 049__ $$aISEA 001454723 050_4 $$aQA76.754 001454723 08204 $$a004.167$$223/eng/20230221 001454723 1001_ $$aGarcía, Raúl Ferrer,$$eauthor. 001454723 24510 $$aiOS architecture patterns :$$bMVC, MVP, MVVM, VIPER, and VIP in Swift /$$cRaúl Ferrer García. 001454723 250__ $$a[First edition]. 001454723 264_1 $$aNew York, NY :$$bApress,$$c[2023] 001454723 300__ $$a1 online resource (409 pages) :$$billustrations 001454723 336__ $$atext$$btxt$$2rdacontent 001454723 337__ $$acomputer$$bc$$2rdamedia 001454723 338__ $$aonline resource$$bcr$$2rdacarrier 001454723 347__ $$atext file$$bPDF$$2rda 001454723 500__ $$aIncludes index. 001454723 5050_ $$aIntro -- Table of Contents -- About the Author -- About the Technical Reviewer -- Acknowledgments -- Introduction -- Chapter 1: Introduction -- What Is Software Architecture? -- Architecture Patterns -- Why Do We Need an Architecture Pattern for Our Applications? -- Design from High Level to Low Level -- Design Patterns -- Creational Patterns -- Factory Method -- Abstract Factory -- Builder -- Singleton -- Prototype -- Structural Patterns -- Adapter -- Bridge -- Composite -- Decorator -- Façade -- Flyweight -- Proxy -- Behavioral Patterns -- Chain of Responsibility -- Command -- Interpreter 001454723 5058_ $$aIterator -- Mediator -- Memento -- Observe -- State -- Strategy -- Template Method -- Visitor -- SOLID Principles -- Single-Responsibility Principle (SRP) -- Open-Closed Principle (OCP) -- Liskov Substitution Principle (LSP) -- Interface Segregation Principle (ISP) -- Dependency Inversion Principle (DIP) -- How to Choose the Right Architectural Pattern -- Most Used Architecture Patterns -- In Search of a "Clean Architecture" -- Clean Architecture Layers -- Domain Layer -- Presentation Layer -- Data Layer -- The Dependency Rule -- Advantages of Applying a Clean Architecture 001454723 5058_ $$aMyToDos: A Simple App to Test Architectures -- App Screens -- Launch Screen -- Home Screen -- Add List Screen -- Tasks List Screen -- Add Task Screen -- App Development -- Technologies Used -- How to Remove Storyboard Dependence -- Core Data Configuration -- How to Create Database and Entities -- Create CoreDataManager -- Summary -- Chapter 2: MVC: Model-View-Controller -- What Is MVC? -- A Little History -- Apple Model-View-Controller -- Components in MVC -- Model -- View -- Controller -- Advantages and Disadvantages of MVC -- Advantages of the MVC Pattern -- Disadvantages of the MVC Pattern 001454723 5058_ $$aMVC Application -- MVC Layers -- Model -- Core Data -- Models -- Services -- Extensions -- Constants -- View -- Controller -- MyToDos Application Screens -- Information Flow -- Delegate Pattern -- How to Implement Delegate Pattern -- AppDelegate and SceneDelegate -- Home Screen -- HomeViewController -- HomeView -- Add List Screen -- AddListViewController -- AddListView -- Tasks List Screen -- TaskListViewController -- TaskListView -- Add Task Screen -- AddTaskViewController -- AddTaskView -- Testing -- How Should the Tests Be? -- Let's Create the First Test -- Helper Classes 001454723 5058_ $$aMVC-MyToDos Testing -- TasksListServiceTest -- Mocking Services -- Controllers Testing -- Views Testing -- Summary -- Chapter 3: MVP: Model-View-Presenter -- What Is MVP? -- A Little History -- How It Works -- Components in MVP -- Model -- View -- Presenter -- Advantages and Disadvantages of the MVP -- Advantages -- Disadvantages -- MVP Application -- MVP Layers -- Model -- Core Data -- Models -- Services -- Extensions -- Constants -- View -- Presenter -- MyToDos Application Screens -- AppDelegate and SceneDelegate -- Home Screen -- HomeController -- HomeView -- HomePresenter -- Add List Screen 001454723 506__ $$aAccess limited to authorized users. 001454723 520__ $$aDevelop well-structured applications using tested techniques and patterns. When you start to develop an application, you not only have to think about the idea of the finished application, but also about how it will evolve as it is built. This book shows you how to plan for changes, scope creep, and for the possibility of other developers joining in. Start by learning what architecture patterns for an application are. You'll find out why it's important for your applications to be based on these patterns and which ones are the most common. Then you'll look at the MVC as one of the best known and used patterns. You'll see how and when it can be implemented in your applications, as well as its advantages and disadvantages. From there, you'll discover the first evolution of the MVC model: the MVP, which introduces a new layer (Presenter) to better manage views. The next evolution after that is the MVVM, which introduces the ViewModel layer and its connection with the views through Data Binding. With those prominent patterns covered, you'll read about VIPER and VIP, Architecture Patterns that seeks to make applications easily maintainable, modularized, and highly scalable. All of which are hallmarks of Clean Architecture. Architecture patterns have developed and evolved to give your applications solid foundations. Understanding these patterns, you will reduce the problems that may arise when modifying existing functions, adding new ones, or correcting errors that may arise in the development process. 001454723 63000 $$aiOS (Electronic resource) 001454723 650_0 $$aSoftware architecture. 001454723 650_0 $$aApple computer. 001454723 655_0 $$aElectronic books. 001454723 77608 $$iPrinted edition$$z9781484290682 001454723 77608 $$iPrinted edition$$z9781484290705 001454723 852__ $$bebk 001454723 85640 $$3Springer Nature$$uhttps://univsouthin.idm.oclc.org/login?url=https://link.springer.com/10.1007/978-1-4842-9069-9$$zOnline Access$$91397441.1 001454723 909CO $$ooai:library.usi.edu:1454723$$pGLOBAL_SET 001454723 980__ $$aBIB 001454723 980__ $$aEBOOK 001454723 982__ $$aEbook 001454723 983__ $$aOnline 001454723 994__ $$a92$$bISE