A Practical Guide to iOS DevOps (Unfinished)
A Practical Guide to iOS DevOps (Unfinished)
Continuous Integration & Delivery of Swift iOS apps through Build, Test and Deployment Automation.
About the Book
P.S: THIS BOOK PUBLISHED as HALF FINISHED, without reviewed as author joins Apple. Some chapters are outdated. The author is no longer maintaining the book.
For a while now, IT industries are hearing buzzwords like continuous delivery and DevOps to speed up the delivery of the new features. Continuous Delivery and DevOps practices proved to be worked well for web applications. However, mobile application developments have unique challenges and require different skill to enable those practices. The traditional DevOps practices don't help or scale a lot in mobile application development. This initiates need for Mobile DevOps. The DevOps and Continuous Delivery applied to the mobile platform like iOS, Android and other mobile platforms.
This book is aimed to solve the above-mentioned challenges of iOS development by applying practical Mobile DevOps and Continuous Delivery techniques. It will also help your iOS team to automate the entire release process of iOS apps including analysing, building, testing, achieving and distribution to App Store through Continuous Integration. You will also learn about dealing with complex iOS development tasks like Apple development certificates, provisioning profiles, code signing and distribution to App Store Connect. This book aims to be practical, as there will be code snippets, GitHub repositories, images all over the book to demonstrate things in reality.
What This Book Covers
The target audience for this book is iOS Developers all around the world. They might be having different skill sets so not everyone will want to read this book end to end but it would be good to go sequentially and skip chapters that you already know about. Once the basics are covered then you can attack different part needed for your current context.
This book is divided into six main parts.
Part 1 – Basics of Continuous Delivery and Mobile DevOps
This part describes how practices like Mobile DevOps and Continuous Delivery help to ease the pain of iOS releases. This will cover basics general concepts of DevOps and Continuous delivery applied to iOS
Chapter 1, “Basics of DevOps and CI/CD” outlines general concepts of DevOps and Continuous Delivery that are currently being used in the IT industry for deploying applications. This chapter also covers the benefits of adopting DevOps and Continuous Delivery practices.
Chapter 2, “iOS Development Challenges” starts with some common challenges that we see in the iOS development teams.
Chapter 3, “ iOS: Mobile DevOps” highlights different between traditional DevOps and Mobile DevOps. This chapter also explains the unique challenges of mobile deployment for iOS apps and why we need DevOps for iOS apps.
Part 2 – iOS Package Managers
This part explains the project structure of iOS apps and basic concepts of iOS development including Xcode project, build sets, targets, schemes etc. The main goal of this chapter is to understand the concept of package managers like CocoaPods, Cartage and Swift package Manager.
Chapter 4, “iOS and Xcode Project” gives a basic overview of an iOS application in Xcode and understanding concepts like targets, schemes, build phases and build settings.
Chapter 5, “CocoaPods”, covers the most popular iOS package manager. This chapter will cover the basics of CocoaPods and using CocoaPods in iOS apps. We will also cover the internals of CocoaPods and how CocoPods affect Xcode project.
Chapter 6, “Carthage”, covers another popular iOS package manager which is Carthage. This chapter will cover the basics of Cartage and using Carthage in iOS apps. We will also cover steps involved in the setting up Carthage for iOS app with example app.
Chapter 7, “Swift Package Manager” gives an overview of Swift Package manager with detailed examples. Currently, Swift Package Manager doesn’t officially support iOS but it will be in the future.
Chapter 8 “Selecting the right Package Manager” covers the tips to select the right package manager for iOS app. We will explore what are the pros and cons of each package manager and evaluate the criteria for selecting the right package manager.
Part 3: iOS Code Signing
Chapter 9 "iOS Code Signing Basics" covers all the internal aspects of the code signing.
Chapter 10 "Certificates and Provisioning Profiles" covers the details of the code signing certificate and provisioning profiles.
Chapter 11 "Code Signing iOS apps" covers how Xcode code sign iOS apps. This chapter will also include code signing iOS apps from the command line.
Part 4 – iOS Deployment Pipeline Automation
This part of the book is one of the biggest as it covers automation of the entire iOS deployment pipeline. Starting from command line Apple developer tools, we will cover how to automate each iOS development task in details e.g building, testing, archiving of iOS app.
Chapter 12, “Command Line Apple Developer Tools” introduces useful command line tools provided by Apple for scripting iOS development tasks. We will cover tools like xcodebuild, xcrun, Xcode-select etc
Chapter 13, “Basics of Ruby and Fastlane” covers the basic introduction to Ruby tools for Fastlane setup.
Chapter 14, “Automating iOS Builds” discusses the ways of automating static code analysis, building, testing, deploying using both native tools and Fastlane.
Part 5: iOS Continuous Integration
Chapter 15, ‘iOS Continuous Integration’ gives an overview of the Continuous Integration for iOS which covers both self-hosted and cloud-based CI options. This chapter will also cover some tips to select the right Continuous Integration server and why it’s important for any iOS project.
Chapter 16, “Implementing CI/CD with Xcode Server”, presents Continuous Integration Service from Apple for iOS apps. This chapter shows end to end process of setting up Xcode Server Continuous Integration for any iOS app with detailed architecture.
Chapter 17, “Implementing CI/CD with Cloud-Based CI Services”, demonstrate setting up cloud-based CI server for iOS Continuous Integration and Deployment. This chapter will also cover how the cloud base CI server differs from self-hosted CI servers. We will demonstrate one of the popular iOS cloud-based CI services like TravisCI, CircleCI, BuddyBuild, Bitrise and Nevercode.
Chapter 18, “Continuous Integration for iOS SDK” covers how to add CI for iOS libraries and SDKs. Why adding CI for libraries is equally important as the main app.
Chapter 19, “Managing Self-Hosted CI Servers” discusses the configuration management tools like Ansible that can be used for provisioning and manage iOS CI servers.
Chapter 20, “Managing Release Trains” sets out practices to manage build train in the current version and automate releases on GitHub or similar source control.
Part 6: App Store Connect & App Store Connect API
Chapter 21, “App Store Connect” covers how to make use of TestFlight and AppStore Connects features efficiently for iOS Continuous Delivery. This chapter will discuss multi-build features of TestFlight and Phased releases features of App Store Connects.
Chapter 22 “AppStore Connect API” covers the basics of the AppStore Connect API. This chapter will explore App Store Connect API using JWT token generation process to access API.
Note: This is tentative structure of our book and might change as we go on writing. Please let me know if we miss something to cover in this book, we will happy to cover anything about DevOps, CI/CD or Test Automation in this book.
The Leanpub 45-day 100% Happiness Guarantee
Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers), EPUB (for phones and tablets) and MOBI (for Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
C++ Best PracticesJason Turner
Level up your C++, get the tools working for you, eliminate common problems, and move on to more exciting things!
OpenIntro StatisticsDavid Diez, Christopher Barr, Mine Cetinkaya-Rundel, and OpenIntro
A complete foundation for Statistics, also serving as a foundation for Data Science.
Leanpub revenue supports OpenIntro (US-based nonprofit) so we can provide free desk copies to teachers interested in using OpenIntro Statistics in the classroom and expand the project to support free textbooks in other subjects.
More resources: openintro.org.
Functional Design and ArchitectureAlexander Granin
Software Design in Functional Programming, Design Patterns and Practices, Methodologies and Application Architectures. How to build real software in Haskell with less efforts and low risks. The first complete source of knowledge.
R Programming for Data ScienceRoger D. Peng
This book brings the fundamentals of R programming to you, using the same material developed as part of the industry-leading Johns Hopkins Data Science Specialization. The skills taught in this book will lay the foundation for you to begin your journey learning data science. Printed copies of this book are available through Lulu.
C++20 is the next big C++ standard after C++11. As C++11 did it, C++20 changes the way we program modern C++. This change is, in particular, due to the big four of C++20: ranges, coroutines, concepts, and modules.
I am a Software Engineer and I am in ChargeAlexis Monville and Michael Doyle
I am a Software Engineer and I am in Charge is a real-world, practical book that helps you increase your impact and satisfaction at work no matter who you work with.
In the book, we will follow Sandrine, a fictional character who learns to think in a new way enabling her to take a different course of action.
Atomic KotlinBruce Eckel and Svetlana Isakova
For both beginning and experienced programmers! From the author of the multi-award-winning Thinking in C++ and Thinking in Java together with a member of the Kotlin language team comes a book that breaks the concepts into small, easy-to-digest "atoms," along with exercises supported by hints and solutions directly inside IntelliJ IDEA!
Invest In Digital Health - The Medical Futurist's GuideDr. Bertalan Mesko
Artificial Intelligence and Digital Health are booming. In this book, we explain why now it's a good time to invest in Digital Health and give recommendations on where to invest by looking at the top 24 technological trends we find the most promising.
The Hundred-Page Machine Learning BookAndriy Burkov
Everything you really need to know in Machine Learning in a hundred pages.
Mastering STM32Carmine Noviello
With more than 600 microcontrollers, STM32 is probably the most complete ARM Cortex-M platform on the market. This book aims to be the first guide around that introduces the reader to this exciting MCU portfolio from ST Microelectronics and its official CubeHAL.
Software Architecture for Developers: Volumes 1 & 2 - Technical leadership and communication
2 Books"Software Architecture for Developers" is a practical and pragmatic guide to modern, lightweight software architecture, specifically aimed at developers. You'll learn:The essence of software architecture.Why the software architecture role should include coding, coaching and collaboration.The things that you really need to think about before...
CCIE Service Provider Ultimate Study Bundle
2 BooksPiotr Jablonski, Lukasz Bromirski, and Nick Russo have joined forces to deliver the only CCIE Service Provider training resource you'll ever need. This bundle contains a detailed and challenging collection of workbook labs, plus an extensively detailed technical reference guide. All of us have earned the CCIE Service Provider certification...
The Future of Digital Health
6 BooksWe put together the most popular books from The Medical Futurist to provide a clear picture about the major trends shaping the future of medicine and healthcare. Digital health technologies, artificial intelligence, the future of 20 medical specialties, big pharma, data privacy and how technology giants such as Amazon or Google want to conquer...
Cisco CCNA 200-301 Complet
4 BooksCe lot comprend les quatre volumes du guide préparation à l'examen de certification Cisco CCNA 200-301.
CCDE Practical Studies (All labs)
3 BooksCCDE lab
"The C++ Standard Library" and "Concurrency with Modern C++"
2 BooksGet my books "The C++ Standard Library" and "Concurrency with Modern C++" in a bundle. The first book gives you the details you should know about the C++ standard library; the second one dives deeper into concurrency with modern C++. In sum, you get more than 600 pages full of modern C++ and about 250 source files presenting the standard library...
Modern Management Made Easy
3 BooksRead all three Modern Management Made Easy books. Learn to manage yourself, lead and serve others, and lead the organization.
Linux Administration Complet
4 BooksCe lot comprend les quatre volumes du Guide Linux Administration :Linux Administration, Volume 1, Administration fondamentale : Guide pratique de préparation aux examens de certification LPIC 1, Linux Essentials, RHCSA et LFCS. Administration fondamentale. Introduction à Linux. Le Shell. Traitement du texte. Arborescence de fichiers. Sécurité...
Programming with Ease
3 BooksAlle drei Bände der Serie Programming with Ease in einem Paket. Darin findest du alles, was ich dir zu den wichtigsten Phasen der Softwareentwicklung im Hinblick auf Clean Code Development für langfristig hohe Produktivität sagen kann.Im Band Slicing findest du die Anforderungsanalyse im Rahmen eines iterativ-inkrementellen Vorgehensmodells aus...
2 BooksUnveil the power of Ansible and Vagrant with this bundle at a special price. You'll have everything you need to get started with Vagrant - learn the basics and how to create your virtual development environments, using Ansible as provisioner! About Vagrant Cookbook Vagrant Cookbook is a complete guide to get started with Vagrant and create your...