Mastering Swift package manager : build and test modular apps using Xcode /
Maintaining 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...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
[United States] :
Apress,
2021.
|
Temas: | |
Acceso en línea: | Texto completo (Requiere registro previo con correo institucional) |
Tabla de Contenidos:
- Intro
- 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
- What 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
- Be 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
- Three 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
- Logical 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?