001436898 000__ 06369cam\a2200613\a\4500 001436898 001__ 1436898 001436898 003__ OCoLC 001436898 005__ 20230309004119.0 001436898 006__ m\\\\\o\\d\\\\\\\\ 001436898 007__ cr\un\nnnunnun 001436898 008__ 210601s2021\\\\xxu\\\\\o\\\\\000\0\eng\d 001436898 019__ $$a1255226629$$a1262675983$$a1262687132 001436898 020__ $$a9781484270493$$q(electronic bk.) 001436898 020__ $$a1484270495$$q(electronic bk.) 001436898 020__ $$a9781484270509$$q(print) 001436898 020__ $$a1484270509 001436898 020__ $$z1484270487 001436898 020__ $$z9781484270486 001436898 0247_ $$a10.1007/978-1-4842-7049-3$$2doi 001436898 035__ $$aSP(OCoLC)1253353061 001436898 040__ $$aYDX$$beng$$epn$$cYDX$$dEBLCP$$dGW5XE$$dOCLCO$$dOCLCF$$dVT2$$dN$T$$dUKAHL$$dOCLCQ$$dCOM$$dOCLCO$$dOCLCQ 001436898 049__ $$aISEA 001436898 050_4 $$aQA76.73.S95 001436898 08204 $$a005.13/3$$223 001436898 1001_ $$aTsadok, Avi. 001436898 24510 $$aMastering Swift package manager :$$bbuild and test modular apps using Xcode /$$cAvi Tsadok. 001436898 260__ $$a[United States] :$$bApress,$$c2021. 001436898 300__ $$a1 online resource 001436898 336__ $$atext$$btxt$$2rdacontent 001436898 337__ $$acomputer$$bc$$2rdamedia 001436898 338__ $$aonline resource$$bcr$$2rdacarrier 001436898 347__ $$atext file 001436898 347__ $$bPDF 001436898 5050_ $$aIntro -- Table of Contents -- About the Author -- About the Technical Reviewer -- Chapter 1: Introduction -- Personal View -- The Future by Apple -- About This Book -- Chapter 2: Organized Mess -- Meet "Weathery" -- The Weathery Project -- Code Organization -- Separation of Concerns -- Presentation, Business, and Services -- It All Starts with Data Flow -- The Three-Layer Architecture -- Problems to Mini Problems -- Stability -- Teamwork -- Build Time -- Redesign Our App Architecture -- Take a Paper and Draw a UML -- Do This in Collaboration -- Relations Between Components 001436898 5058_ $$aWhat Side to Start? -- Opened and Closed Layers -- Define Design Patterns -- Define Your Entities -- Define Your Interfaces -- Summary -- Chapter 3: Swift Package to Rescue -- In the Meeting Room -- Let's Start with Terminology -- Module -- Library -- Framework -- Swift Package -- Code Location -- Dependencies -- Platform and System Version -- Versioning -- Create Our First Package -- Create a Package from the Command Line -- Xcode 11 and Swift Packages -- Package.swift -- Swift Tools and PackageDescription -- Products and Targets -- Naming -- What Are We Naming? -- Be Consistent -- Be Meaningful 001436898 5058_ $$aBe Unique -- Platforms -- Dependencies -- Working on Our Package -- Building -- Building from Xcode -- Creating a New Package from Xcode -- Summary -- Chapter 4: Design and Link Our First Package -- What Do We Do Next? -- Linking the Package Libraries -- Think As a Service Provider -- Design a Good API -- Think About the Developer As a Naïve One -- Access Control -- Private -- fileprivate -- Open/Public -- Parameters, Return Type, and Properties in Public Access Level -- Public Constructor -- Access Level in Testing -- Scenario-Driven Design 001436898 5058_ $$aThree Different Ways Produce Three Different Experiences -- Inout Parameter -- Naming -- Clarity -- Consistency -- Class/Protocol Names -- Method Names -- Comments -- Rendered Documentation -- The Basics -- Discussion and Summary -- Parameters, Returns, and Throws -- Code Blocks -- More Special Fields -- Document Classes, Structs, and Enum -- Summary -- Chapter 5: All About Dependencies -- A Utils Package -- Code Coupling -- Why Code Coupling Matters? -- Types of Coupling -- Structural Dependencies -- Inheritance -- Aggregation -- Usage -- Fan-Out Similarity -- Fan-Out Similarity with Inheritance 001436898 5058_ $$aLogical Coupling -- Dependencies Between Packages -- A Version-Based Requirement -- Semantic Versioning Standard -- Control Our Dependencies' Update -- Branch-/Commit-Based Requirement -- A Local Dependency -- Project's Remote Dependencies -- Some Best Practices About Dependencies -- Reducing Coupling Level -- Dependency Injection -- Using Closures -- The Responsibility Is on the App -- Summary -- Chapter 6: And Sharing for All -- Sharing Options -- Sharing Using a Public Git Repo -- There Is No Support for Multipackage Repositories -- Versioning -- Remember Semantic Versioning Standard? 001436898 506__ $$aAccess limited to authorized users. 001436898 520__ $$aMaintaining an iOS project often results in thousands of code files scattered around your folders. Did you ever wanted to reuse those files with other projects but found yourself making copies of Swift files? You are not alone! Many iOS developers struggle with this issue as well norganized projects, duplicated files, difficulty in testing, and long complication times. This book will show how Swift Package Manager can help you handle these problems by restructuring your project to make it efficient and straightforward. Swift Package Manager isn's magic, but you'll likely need a little guidance in using this nifty tool. You'll see how to reorganize projects smartly and efficiently, create your first Swift package, and learn what libraries are in this context. Then share your package with the rest of your projects. Next test your library's quality. And then take your library to the next level of power by including files that go beyond just code. By going over the methodology of big project organization, you will have the ability to extend your project into the future as Apple sees it. Make no mistake, the path for a modular and flexible project is not easy. With the help of Swift Package Manager, it becomes possible and worth it. You will: Create a Swift package both from the command line and from Xcode Manage Swift packages in public and private Git repositories Build test suites to test integrations between packages. 001436898 588__ $$aOnline resource; title from PDF title page (SpringerLink, viewed June 11, 2021). 001436898 63000 $$aiOS (Electronic resource) 001436898 650_0 $$aSwift (Computer program language) 001436898 650_0 $$aApplication software$$xProgramming. 001436898 650_6 $$aSwift (Langage de programmation) 001436898 650_6 $$aLogiciels d'application$$xProgrammation. 001436898 655_0 $$aElectronic books. 001436898 77608 $$iPrint version:$$z1484270487$$z9781484270486$$w(OCoLC)1240773064 001436898 852__ $$bebk 001436898 85640 $$3Springer Nature$$uhttps://univsouthin.idm.oclc.org/login?url=https://link.springer.com/10.1007/978-1-4842-7049-3$$zOnline Access$$91397441.1 001436898 909CO $$ooai:library.usi.edu:1436898$$pGLOBAL_SET 001436898 980__ $$aBIB 001436898 980__ $$aEBOOK 001436898 982__ $$aEbook 001436898 983__ $$aOnline 001436898 994__ $$a92$$bISE