SlideShare a Scribd company logo
Building CI/CD for Mobile
Development
● Nihal Shrestha
Gurzu Confidential
2
CI/CD
Continuous integration (CI) and continuous delivery
(CD) embody a culture, set of operating principles,
and collection of practices that enable application
development teams to deliver code changes more
frequently and reliably.
Gurzu Confidential
3
Mobile Tech Stack
React Native
React Native is a JavaScript framework
for writing real, natively rendering
mobile applications for iOS and
Android.
Two ways we can start building mobile
apps using React Native:
● Expo [Previously Used]
● Core React Native [Currently using]
Gurzu Confidential
Expo is a set of tools built and a wrapper around React Native.
● No need to setup tedious environment setup like Android Studio and Xcode.
● No need to have Mac for iOS development.
● Able to start building apps within a couple of minutes.
● Provides their own servers for building both Android and iOS apps. [Pipeline]
Limitations (Why we needed to shift to Core RN):
● Less control over both platforms.
● Limited number of native features inbuilt within expo. [like bluetooth services]
● Similarly, integrating with third parties native libraries that are not yet
supported by expo. [Esewa SDK, Khalti SDK]
● Larger build sizes.
4
Expo
Journey from Expo to Core RN
Fig 1: Expo
Fig 2: React Native
Gurzu Confidential
Expo provided us their own build server, where we used to build our apps
[Android & iOS]. The process of building and deploying was fairly easy and
faster.
But,
As we shifted to Core RN, each build became dependent upon dev’s local
machine. So, as the project moved ahead, developer had to build and
deploy every new release from their own system and, also the whole
development team became dependent upon it.
5
So, Why we didn’t need CI/CD previously and Why do
we need it now?
Gurzu Confidential
One key point to be noted before diving into the detailed
explanation of CI/CD:
● iOS apps can only be build on macOS system. i.e, We
somehow needed to make our CI system around a macOS
computer.
○ Meaning, We will be using an iMac as a build server for both Android and iOS.
6
Gurzu Confidential
7
General Flow Diagram
Gurzu Confidential
● Fastlane:
○ Fastlane is the easiest way to automate deployments and releases for your iOS and
Android apps. It handles all tedious tasks, like dealing with code signing, and releasing
your application.
○ All we have to do is configure a Fastfile that defines the steps needed to build and deploy
your mobile application.
○ Fastfile is written in ruby.
● Gitlab Runner:
○ GitLab Runner is an application that works with GitLab CI/CD
to run jobs in a pipeline.
○ A GitLab runner clones the project, reads the gitlab-ci.yml file
and do what it is instructed to do.
○ In our case, Gitlab runner is installed and used in
macOS(iMac).
[Supported OS: Linux, Windows, macOS]
8
Gurzu Confidential
● Firebase App Distribution:
Firebase App Distribution makes distributing your apps to trusted testers and teammates
painless. By getting your apps onto testers' devices quickly, you can get feedback early and
often.
Steps:
- Upload your latest pre-release build
- Invite testers
- Get feedback
- Release new beta builds
Firebase app distribution is fully supported with Fastlane. So, all of the task can be
automated using Fastlane ( from uploading the build files to sending an invitations ).
● Detailed Architectural Diagram for each platform:
9
Gurzu Confidential
10
Gurzu Confidential
● Main Steps to follow for Android (One time setup):
○ Fastfile configuration. Set of instructions for running build.
○ Certificate generation. (Keystore using keytool)
■ Key store password
■ Key alias
■ Key password
○ Generating firebase token.
All of these keys needs to be configured as an ENV variable in Gitlab CI which will be
used during build process.
11
Gurzu Confidential
12
Gurzu Confidential
● Main Steps to follow for iOS (One time setup):
○ Fastfile configuration. Set of instructions for running build.
○ Certificate generation using MATCH.
■ Type
■ App identifier
■ Keychain password
■ Team id
■ Profile name
○ Generating firebase token.
All of these keys needs to be configured as an ENV variable in Gitlab CI which will be
used during build process.
13
Gurzu Confidential
14
Results
We are currently achieving the following build time(avg):
1. Android: ~ 8 min
2. iOS: ~ 20 min
Note: Build time may vary according to the project requirements.
Gurzu Confidential
15
Different Mobile CI available in the market
1. Android: ~ 8 min [Gurzu]
2. iOS: ~ 20 min [Gurzu]
Gurzu Confidential
16
Thank You

More Related Content

PPTX
Mobile CICD
Gurzu Inc
 
PPTX
Serverless java
Vishwas N
 
PDF
3x3: Speeding Up Mobile Releases
Drew Hannay
 
PDF
3x3 Speeding Up Mobile Releases
Mobile Delivery Days
 
PDF
CI CD Jenkins for Swift Deployment
Bintang Thunder
 
PPTX
flutter_bootcamp_MUGDSC_Presentation.pptx
RakshaAgrawal21
 
PPTX
flutterbootcamp
RakshaAgrawal21
 
PDF
iOS CI/CD: Continuous Integration and Continuous Delivery Explained
Semaphore
 
Mobile CICD
Gurzu Inc
 
Serverless java
Vishwas N
 
3x3: Speeding Up Mobile Releases
Drew Hannay
 
3x3 Speeding Up Mobile Releases
Mobile Delivery Days
 
CI CD Jenkins for Swift Deployment
Bintang Thunder
 
flutter_bootcamp_MUGDSC_Presentation.pptx
RakshaAgrawal21
 
flutterbootcamp
RakshaAgrawal21
 
iOS CI/CD: Continuous Integration and Continuous Delivery Explained
Semaphore
 

Similar to Building CI_CD for Mobile Development.pptx (20)

PPTX
Mobile Application and Developments.pptx
GevitaChinnaiah
 
PPT
Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...
Teodoro Cipresso
 
PPTX
Green Custard Friday Talk 22: Flutter
Green Custard
 
PPTX
Max’s Birthday Adventure: #19 Kochi : Anypoint Code Builder
sandeepmenon62
 
PDF
High productivity web development workflow - JavaScript Meetup Saigon 2014
Oliver N
 
PDF
High Productivity Web Development Workflow
Vũ Nguyễn
 
PDF
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Giovanni Toraldo
 
PPTX
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
Pankaj Goyal
 
PDF
Automate App Container Delivery with CI/CD and DevOps
Daniel Oh
 
PPTX
Diploma 1st Year Project Internship Presentation.pptx
silentworld966
 
DOC
Srikanth_PILLI_CV_latest
Srikanth Pilli
 
PDF
Angular JS 2_0 BCS CTO_in_Res V3
Bruce Pentreath
 
PPTX
Serverless
Vishwas N
 
PDF
Expedia 3x3 presentation
Drew Hannay
 
PPTX
Building a scalable app factory with Appcelerator Platform
Angus Fox
 
PDF
Automation in iOS development
Cong Nguyen
 
PPTX
Nativescript with angular 2
Christoffer Noring
 
PDF
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
Szczepan Faber
 
PPTX
GoogleDSC_ GHRCE_ flutter_firebase.pptx
GoogleDeveloperStude22
 
PDF
Continuous Integration - What even is it?
Rob Jacoby
 
Mobile Application and Developments.pptx
GevitaChinnaiah
 
Innovate 2014: Get an A+ on Testing Your Enterprise Applications with Rationa...
Teodoro Cipresso
 
Green Custard Friday Talk 22: Flutter
Green Custard
 
Max’s Birthday Adventure: #19 Kochi : Anypoint Code Builder
sandeepmenon62
 
High productivity web development workflow - JavaScript Meetup Saigon 2014
Oliver N
 
High Productivity Web Development Workflow
Vũ Nguyễn
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Giovanni Toraldo
 
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
Pankaj Goyal
 
Automate App Container Delivery with CI/CD and DevOps
Daniel Oh
 
Diploma 1st Year Project Internship Presentation.pptx
silentworld966
 
Srikanth_PILLI_CV_latest
Srikanth Pilli
 
Angular JS 2_0 BCS CTO_in_Res V3
Bruce Pentreath
 
Serverless
Vishwas N
 
Expedia 3x3 presentation
Drew Hannay
 
Building a scalable app factory with Appcelerator Platform
Angus Fox
 
Automation in iOS development
Cong Nguyen
 
Nativescript with angular 2
Christoffer Noring
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
Szczepan Faber
 
GoogleDSC_ GHRCE_ flutter_firebase.pptx
GoogleDeveloperStude22
 
Continuous Integration - What even is it?
Rob Jacoby
 

More from GurzuInc (18)

PDF
Power of documentation | Aarati Shah | Gurzu.pdf
GurzuInc
 
PDF
The Art of Refactoring | Asmit Ghimire | Gurzu.pdf
GurzuInc
 
PDF
I'm Programmer _ Ganesh Kunwar _ Gurzu.pdf
GurzuInc
 
PDF
Obtaining Your Tax Clearance Certificate_ A Quick Guide | Deepak Rai | Gurzu.pdf
GurzuInc
 
PDF
Problem Solving Skill - Bishal Sapkota - Gurzu
GurzuInc
 
PDF
My experience with Mobile Testing - Asmita Poudel - Gurzu
GurzuInc
 
PPTX
Upgrading Services _ Ashraya Tuldhar _ Knowledge ketchup.pptx
GurzuInc
 
PDF
The real definition of done (1).pptx.pdf
GurzuInc
 
PPTX
Fantastic Blogs and How to Write Them | Alaka Acharya.pptx
GurzuInc
 
PDF
The power of saying no | Abinash Bhattarai | Gurzu.pdf
GurzuInc
 
PDF
DDOS Attack - Gurzu Nepal
GurzuInc
 
PDF
Hotwire and Turbo - Knowledge Ketchup - Prajit Bhandari.pdf
GurzuInc
 
PPTX
Automation Testing - G1 conference Ch13.pptx
GurzuInc
 
PPTX
CSS 101 - G1 conference Gurzu.pptx
GurzuInc
 
PPTX
Discussion Regarding benefits on taxes on income from employment.pptx
GurzuInc
 
PPTX
How not to Model Data - G1 conference.pptx
GurzuInc
 
PPTX
RTM and Test Closure Report Gurzu Inc.pptx
GurzuInc
 
PPTX
API Testing.pptx
GurzuInc
 
Power of documentation | Aarati Shah | Gurzu.pdf
GurzuInc
 
The Art of Refactoring | Asmit Ghimire | Gurzu.pdf
GurzuInc
 
I'm Programmer _ Ganesh Kunwar _ Gurzu.pdf
GurzuInc
 
Obtaining Your Tax Clearance Certificate_ A Quick Guide | Deepak Rai | Gurzu.pdf
GurzuInc
 
Problem Solving Skill - Bishal Sapkota - Gurzu
GurzuInc
 
My experience with Mobile Testing - Asmita Poudel - Gurzu
GurzuInc
 
Upgrading Services _ Ashraya Tuldhar _ Knowledge ketchup.pptx
GurzuInc
 
The real definition of done (1).pptx.pdf
GurzuInc
 
Fantastic Blogs and How to Write Them | Alaka Acharya.pptx
GurzuInc
 
The power of saying no | Abinash Bhattarai | Gurzu.pdf
GurzuInc
 
DDOS Attack - Gurzu Nepal
GurzuInc
 
Hotwire and Turbo - Knowledge Ketchup - Prajit Bhandari.pdf
GurzuInc
 
Automation Testing - G1 conference Ch13.pptx
GurzuInc
 
CSS 101 - G1 conference Gurzu.pptx
GurzuInc
 
Discussion Regarding benefits on taxes on income from employment.pptx
GurzuInc
 
How not to Model Data - G1 conference.pptx
GurzuInc
 
RTM and Test Closure Report Gurzu Inc.pptx
GurzuInc
 
API Testing.pptx
GurzuInc
 

Recently uploaded (20)

PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Software Development Methodologies in 2025
KodekX
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 

Building CI_CD for Mobile Development.pptx

  • 1. Building CI/CD for Mobile Development ● Nihal Shrestha
  • 2. Gurzu Confidential 2 CI/CD Continuous integration (CI) and continuous delivery (CD) embody a culture, set of operating principles, and collection of practices that enable application development teams to deliver code changes more frequently and reliably.
  • 3. Gurzu Confidential 3 Mobile Tech Stack React Native React Native is a JavaScript framework for writing real, natively rendering mobile applications for iOS and Android. Two ways we can start building mobile apps using React Native: ● Expo [Previously Used] ● Core React Native [Currently using]
  • 4. Gurzu Confidential Expo is a set of tools built and a wrapper around React Native. ● No need to setup tedious environment setup like Android Studio and Xcode. ● No need to have Mac for iOS development. ● Able to start building apps within a couple of minutes. ● Provides their own servers for building both Android and iOS apps. [Pipeline] Limitations (Why we needed to shift to Core RN): ● Less control over both platforms. ● Limited number of native features inbuilt within expo. [like bluetooth services] ● Similarly, integrating with third parties native libraries that are not yet supported by expo. [Esewa SDK, Khalti SDK] ● Larger build sizes. 4 Expo Journey from Expo to Core RN Fig 1: Expo Fig 2: React Native
  • 5. Gurzu Confidential Expo provided us their own build server, where we used to build our apps [Android & iOS]. The process of building and deploying was fairly easy and faster. But, As we shifted to Core RN, each build became dependent upon dev’s local machine. So, as the project moved ahead, developer had to build and deploy every new release from their own system and, also the whole development team became dependent upon it. 5 So, Why we didn’t need CI/CD previously and Why do we need it now?
  • 6. Gurzu Confidential One key point to be noted before diving into the detailed explanation of CI/CD: ● iOS apps can only be build on macOS system. i.e, We somehow needed to make our CI system around a macOS computer. ○ Meaning, We will be using an iMac as a build server for both Android and iOS. 6
  • 8. Gurzu Confidential ● Fastlane: ○ Fastlane is the easiest way to automate deployments and releases for your iOS and Android apps. It handles all tedious tasks, like dealing with code signing, and releasing your application. ○ All we have to do is configure a Fastfile that defines the steps needed to build and deploy your mobile application. ○ Fastfile is written in ruby. ● Gitlab Runner: ○ GitLab Runner is an application that works with GitLab CI/CD to run jobs in a pipeline. ○ A GitLab runner clones the project, reads the gitlab-ci.yml file and do what it is instructed to do. ○ In our case, Gitlab runner is installed and used in macOS(iMac). [Supported OS: Linux, Windows, macOS] 8
  • 9. Gurzu Confidential ● Firebase App Distribution: Firebase App Distribution makes distributing your apps to trusted testers and teammates painless. By getting your apps onto testers' devices quickly, you can get feedback early and often. Steps: - Upload your latest pre-release build - Invite testers - Get feedback - Release new beta builds Firebase app distribution is fully supported with Fastlane. So, all of the task can be automated using Fastlane ( from uploading the build files to sending an invitations ). ● Detailed Architectural Diagram for each platform: 9
  • 11. Gurzu Confidential ● Main Steps to follow for Android (One time setup): ○ Fastfile configuration. Set of instructions for running build. ○ Certificate generation. (Keystore using keytool) ■ Key store password ■ Key alias ■ Key password ○ Generating firebase token. All of these keys needs to be configured as an ENV variable in Gitlab CI which will be used during build process. 11
  • 13. Gurzu Confidential ● Main Steps to follow for iOS (One time setup): ○ Fastfile configuration. Set of instructions for running build. ○ Certificate generation using MATCH. ■ Type ■ App identifier ■ Keychain password ■ Team id ■ Profile name ○ Generating firebase token. All of these keys needs to be configured as an ENV variable in Gitlab CI which will be used during build process. 13
  • 14. Gurzu Confidential 14 Results We are currently achieving the following build time(avg): 1. Android: ~ 8 min 2. iOS: ~ 20 min Note: Build time may vary according to the project requirements.
  • 15. Gurzu Confidential 15 Different Mobile CI available in the market 1. Android: ~ 8 min [Gurzu] 2. iOS: ~ 20 min [Gurzu]