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.
Algebra-Driven DesignSandy Maguire
A how-to field guide on building leak-free abstractions and algebraically designing real-world applications.
Production HaskellMatt Parsons
Are you excited about Haskell, but don't know where to begin? Are you thrilled by the technical advantages, but worried about the unknown pitfalls? This book has you covered.
Machine Learning EngineeringAndriy Burkov
"If you intend to use machine learning to solve business problems at scale, I'm delighted you got your hands on this book."
—Cassie Kozyrkov, Chief Decision Scientist at Google
"Foundational work about the reality of building machine learning models in production."
—Karolis Urbonas, Head of Machine Learning and Science at Amazon
The Hundred-Page Machine Learning BookAndriy Burkov
Everything you really need to know in Machine Learning in a hundred pages.
Ansible for DevOpsJeff Geerling
Ansible is a simple, but powerful, server and configuration management tool. Learn to use Ansible effectively, whether you manage one server—or thousands.
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.
Cloud StrategyGregor Hohpe
While most enterprises are moving to the cloud these days, many initiatives are driven by wishes or promises rather than a sound strategy. Harvested from half a decade of cloud migrations, this book shares frameworks, strategies, and anecdotes for a structured and decision-centric path to cloud success.
Sockets and PipesType Classes
Sockets and Pipes is not an introduction to Haskell; it is an introduction to writing software in Haskell. Using a handful of everyday Haskell libraries, this book walks through reading the HTTP specification and implementing it to create a web server.
C++ Best PracticesJason Turner
Level up your C++, get the tools working for you, eliminate common problems, and move on to more exciting things!
Practical FP in Scala: A hands-on approachGabriel Volpe
A practical book aimed for those familiar with functional programming in Scala who are yet not confident about architecting an application from scratch.
Together, we will develop a purely functional application using the best libraries in the Cats ecosystem, while learning about design patterns and best practices.
The Node.js Bundle
3 BooksThis bundle combines three bestselling Leanpub Node.js books into a package that gives you everything you need to get started with developing Node.js applications at an unbeatable price.
The Tester's Library
8 BooksThe Tester's Library consists of eight five-star books that every software tester should read and re-read. As bound books, this collection would cost over $200. Even as e-books, their price would exceed $80, but in this bundle, their cost is only $49.99. Here are the books, and why they should be in your library: Perfect Software and Other...
11 BooksIn this bundle, you will find 10 different agile books. They are about different aspects of being agile. - finding a job - doing coding dojo's - Retrospectives - Personal kanban - a non-typical coaching book and even a book that gives you an insight in the lives of some agile people.
WTFlop 6M + HU - Beta Bundle
Fifty Quick Ideas
3 BooksGet all three books for the price of two! Fifty Quick Ideas books are full of practical, real-world techniques that you can use to improve teamwork, build better products and build them in a better way.
Growing Agile: Coach's Guide Series
4 BooksThis bundle provides a collection of training and workshop plans for a variety of agile topics. The series is aimed at agile coaches, trainers and ScrumMasters who often find themselves needing to help teams understand agile concepts. Each book in the series provides the plans, slides, handouts and activity instructions to run a number of...
Marionette.js A to Z
Complete Scala Bundle
3 BooksScala is a general-purpose programming language and it's getting extremely popular these days. Some say that learning Scala could be a challenging task. My experience, however, suggests that this is actually a myth that has very little to do with reality. With the right approach, learning Scala can be easy, fun and rewarding.The first book from...
Build A Better Backbone App
3 BooksThe best way to learn new development skills is through experience, but that takes time you don't have.Get the best of both worlds with this bundle: you'll learn how to produce modern web applications by learning from experienced developers like Derick Bailey and David Sulc. BackboneJS is one of the favorite tools on the web today, but it...