توضیحاتی در مورد کتاب Mastering Swift Package Manager: Build and Test Modular Apps Using Xcode
نام کتاب : Mastering Swift Package Manager: Build and Test Modular Apps Using Xcode
ویرایش : 1
عنوان ترجمه شده به فارسی : تسلط بر Swift Package Manager: ساخت و آزمایش برنامه های مدولار با استفاده از Xcode
سری :
نویسندگان : Avi Tsadok
ناشر : Apress
سال نشر : 2021
تعداد صفحات : 214
ISBN (شابک) : 1484270487 , 9781484270486
زبان کتاب : English
فرمت کتاب : pdf
حجم کتاب : 4 مگابایت
بعد از تکمیل فرایند پرداخت لینک دانلود کتاب ارائه خواهد شد. درصورت ثبت نام و ورود به حساب کاربری خود قادر خواهید بود لیست کتاب های خریداری شده را مشاهده فرمایید.
توضیحاتی در مورد کتاب :
حفظ یک پروژه iOS اغلب منجر به پراکنده شدن هزاران فایل کد در پوشه های شما می شود. آیا تا به حال بخواهید از آن فایلها برای پروژههای دیگر استفاده مجدد کنید اما متوجه شدید که از فایلهای سوئیفت کپی میکنید؟ تو تنها نیستی! بسیاری از توسعهدهندگان iOS و همچنین پروژههای سازمانیافته، فایلهای تکراری، مشکل در آزمایش و زمانهای طولانی پیچیدگی، با این مشکل دست و پنجه نرم میکنند. این کتاب نشان میدهد که چگونه Swift Package Manager میتواند به شما در رسیدگی به این مشکلات با بازسازی پروژهتان برای کارآمد و سادهتر کردن آن کمک کند.
Swift Package Manager جادویی نیست، اما احتمالاً برای استفاده از این ابزار عالی به راهنمایی کمی نیاز خواهید داشت. خواهید دید که چگونه پروژه ها را به طور هوشمندانه و کارآمد سازماندهی مجدد کنید، اولین بسته سوئیفت خود را ایجاد کنید و یاد بگیرید که کتابخانه ها در این زمینه چیست. سپس بسته خود را با بقیه پروژه های خود به اشتراک بگذارید. سپس کیفیت کتابخانه خود را آزمایش کنید. و سپس با گنجاندن فایل هایی که فراتر از کد هستند، کتابخانه خود را به سطح بعدی از قدرت ببرید.
با مرور روششناسی سازماندهی پروژههای بزرگ، این توانایی را خواهید داشت که پروژه خود را در آینده، همانطور که اپل میبیند، گسترش دهید. اشتباه نکنید - مسیر یک پروژه ماژولار و انعطاف پذیر آسان نیست. با کمک Swift Package Manager این امکان پذیر می شود و ارزشش را دارد.
آنچه یاد خواهید گرفت
- یک بسته سوئیفت هم از خط فرمان و هم از Xcode
- مدیریت بستههای Swift در مخازن عمومی و خصوصی Git
- ساخت مجموعههای آزمایشی برای آزمایش ادغام بین بستهها
< div>
این کتاب برای چه کسانی است
برنامهنویسان ارشد iOS و رهبران تیم که قبلاً تجربه حرفهای با Swift دارند .
فهرست مطالب :
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?
Testing
Remember, Public Is Public
Distribute Your Package
Readme.md File
Readme.md File Location and Formatting
Readme.md Markdown Formatting
Readme.md Best Practices
Adding Pictures and Animations
Private Git Repository
What Is the Problem Exactly?
Personal Access Token
Generating New Token in Git
The Problem with Personal Access Token
Using SSH
What Is SSH Connection?
Generating SSH Keys
Editing SSH Config File
Adding the Keys to the Agent
Adding the Public Key to GitHub
Going Back to the Package.swift File
Other Machines
The Monorepo Solution
What Is a Monorepo?
Dependencies’ Management Can Be Simpler
Cross-Project Changes Are Easier
How to Move Forward with Only One Project?
Monorepo Also Has Disadvantages
Solutions to Monorepo Issues
Disassemble Your Monorepo
Summary
Chapter 7: Testing Is Caring
Swift Packages and Testing
The Importance of Testing
The Package.swift File
Our First XCTestCase
@importable Import
allTests Variable
Adding More Test Methods
Test Methods Start with “test”
Arrange ➤ Act ➤ Assert
Running Tests
Straight from the Code Editor
Running Tests from the Test Navigator
Adding/Removing Tests from Our Scheme
Running from Terminal
Integration Tests
Why Are Integration Tests Important?
Setup Integration Tests with Swift Packages
Link a Package to the Test Target
Summary
Chapter 8: Spicing Up with Resources
Why Do We Need That?
Swift Tools 5.3
So How Do I Add Resources?
Bundles
Does a Swift Package Have a Bundle?
Access the Package Bundle from Code
Access Package Resources from the Main App and Vice Versa
Explicitly Declare Resources
Adding a Whole Folder of Resources
Process vs. Copy
Exclude Resources
Localization
“defaultLocalization” Property
“lproj” Folders
Process
Explicitly Declare Files Outside lproj Folders
Provides Localization Texts with Dependency Injection
Summary
Chapter 9: XCFrameworks
Swift Package Downsides
Meet XCFrameworks
XCFramework Creation
Start a New Project
Archive the Framework
The xcodebuild Command
The Output
Create XCFramework
The Swift Package Connection
Creating a Binary Target
Local Path
Using URL
Summary
Index
توضیحاتی در مورد کتاب به زبان اصلی :
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―unorganized 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’t 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.
What You'll Learn
- 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
Who This Book Is For
Senior iOS developers and team leaders who already have professional experience with Swift.