Mastering Swift package manager build and test modular apps using Xcode - Tsadok, Avi (Apress, 2021)
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.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
Chapter 1 – Introduction – Clean Your Room ; Introduction; Personal View; Modularity is not a slogan – it’s a way of living; The Future by Apple; How to read this book; Summary; ; Chapter 2 – Organized Mess; Introduction; Our Weather App; The Project Navigator; Modular Apps; Principles; Design a modular app.; Frameworks and Bundles; Cocoapods and Carthage; Static and Dynamic Libraries; Summary; ; Chapter 3 – Swift Package to the Rescue; Introduction; Create our first package; Command Line Tool; Or from Xcode; Document your package with Readme.md file; Meet the package brain – the manifest file; Integrate our package within the app; Summary; ; Chapter 4 – Manage Dependencies; Introduction; Dependencies’ Methodologic; Reorganize our project.; Remote Dependency; Manifest File; Version Lock; Local Dependency; Swift Build command; Summary; ; Chapter 5 – Move to GIT; Integrate; Upload our first package to git; Integrate our package to Xcode; Integrate our package to another package; Dealing with private repositories; The importance of Integration Tests; Summary; ; ; Chapter 6 – Stay Local with Mono Repo; Introduction; Code Sharing is Not Simple; Meet Mono Repo; Mono Repo Best Practices; Summary; ; Chapter 7 – Unit and Integration Tests; Introduction; Testing is carrying; Writing the package unit test; Test a package from the command line; Build an integration test project; Summary; ; ; Chapter 8 – Add Some Spice with Resources; Introduction; Adding Files to a swift package; Types of resources; Images; Localization files; UI files (Xib, storyboards); SwifttUI; Use Cases ; Summary