En aquest mòdul, explorarem com implementar CI/CD en un projecte d'aplicació mòbil. Aquest cas d'estudi proporcionarà una visió pràctica de com configurar i gestionar pipelines de CI/CD per a aplicacions mòbils, incloent-hi la construcció, proves i desplegament.

Objectius del Mòdul

  • Comprendre els requisits específics de CI/CD per a aplicacions mòbils.
  • Configurar un pipeline de CI/CD per a una aplicació mòbil.
  • Automatitzar la construcció i les proves d'una aplicació mòbil.
  • Desplegar una aplicació mòbil a un entorn de producció.

Requisits Previs

  • Coneixements bàsics de CI/CD.
  • Familiaritat amb el desenvolupament d'aplicacions mòbils (Android/iOS).
  • Coneixements bàsics d'eines de CI/CD com Jenkins, GitLab CI/CD, etc.

  1. Requisits Específics de CI/CD per a Aplicacions Mòbils

1.1. Complexitat de la Construcció

  • Compilació per a múltiples plataformes: Android (Gradle) i iOS (Xcode).
  • Gestió de dependències: Utilització de gestors de dependències com Gradle, CocoaPods, etc.

1.2. Proves

  • Proves unitàries: Proves de codi a nivell de mòdul.
  • Proves d'integració: Proves de funcionalitat entre mòduls.
  • Proves UI: Proves d'interfície d'usuari per assegurar que l'aplicació funciona correctament en diferents dispositius.

1.3. Desplegament

  • Distribució interna: Distribució de versions beta a testers interns.
  • Publicació a botigues d'aplicacions: Automatització del procés de publicació a Google Play Store i Apple App Store.

  1. Configuració d'un Pipeline de CI/CD per a Aplicació Mòbil

2.1. Estructura del Pipeline

  1. Construcció: Compilació del codi font.
  2. Proves: Execució de proves unitàries, d'integració i UI.
  3. Desplegament: Distribució interna i/o publicació a botigues d'aplicacions.

2.2. Eines Recomanades

  • Jenkins: Per a la configuració i gestió del pipeline.
  • Fastlane: Per a l'automatització de tasques repetitives com la construcció, proves i distribució.
  • Firebase Test Lab: Per a l'execució de proves UI en diferents dispositius.

  1. Automatització de la Construcció

3.1. Configuració de Jenkins

  • Instal·lació de plugins necessaris: Android, Xcode, Fastlane, etc.
  • Configuració de nodes esclaus: Per a la construcció en diferents plataformes (Android/iOS).

3.2. Script de Construcció

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/usuari/projecte-mobil.git'
            }
        }
        stage('Build Android') {
            steps {
                sh './gradlew assembleRelease'
            }
        }
        stage('Build iOS') {
            steps {
                sh 'fastlane ios build'
            }
        }
    }
}

Explicació:

  • Checkout: Clona el repositori de codi.
  • Build Android: Compila l'aplicació Android utilitzant Gradle.
  • Build iOS: Compila l'aplicació iOS utilitzant Fastlane.

  1. Proves Automatitzades

4.1. Proves Unitàries

  • Android: Utilització de JUnit i Mockito.
  • iOS: Utilització de XCTest.

4.2. Proves UI

  • Android: Utilització d'Espresso.
  • iOS: Utilització de XCUITest.

4.3. Integració de Proves en el Pipeline

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/usuari/projecte-mobil.git'
            }
        }
        stage('Build Android') {
            steps {
                sh './gradlew assembleRelease'
            }
        }
        stage('Test Android') {
            steps {
                sh './gradlew test'
                sh './gradlew connectedAndroidTest'
            }
        }
        stage('Build iOS') {
            steps {
                sh 'fastlane ios build'
            }
        }
        stage('Test iOS') {
            steps {
                sh 'fastlane ios test'
            }
        }
    }
}

Explicació:

  • Test Android: Execució de proves unitàries i UI per a Android.
  • Test iOS: Execució de proves unitàries i UI per a iOS.

  1. Desplegament

5.1. Distribució Interna

  • Firebase App Distribution: Per a la distribució de versions beta a testers interns.

5.2. Publicació a Botigues d'Aplicacions

  • Google Play Store: Utilització de Fastlane per a la publicació automàtica.
  • Apple App Store: Utilització de Fastlane per a la publicació automàtica.

5.3. Integració de Desplegament en el Pipeline

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/usuari/projecte-mobil.git'
            }
        }
        stage('Build Android') {
            steps {
                sh './gradlew assembleRelease'
            }
        }
        stage('Test Android') {
            steps {
                sh './gradlew test'
                sh './gradlew connectedAndroidTest'
            }
        }
        stage('Deploy Android') {
            steps {
                sh 'fastlane android deploy'
            }
        }
        stage('Build iOS') {
            steps {
                sh 'fastlane ios build'
            }
        }
        stage('Test iOS') {
            steps {
                sh 'fastlane ios test'
            }
        }
        stage('Deploy iOS') {
            steps {
                sh 'fastlane ios deploy'
            }
        }
    }
}

Explicació:

  • Deploy Android: Publicació de l'aplicació Android utilitzant Fastlane.
  • Deploy iOS: Publicació de l'aplicació iOS utilitzant Fastlane.

  1. Resum

En aquest mòdul, hem vist com configurar un pipeline de CI/CD per a una aplicació mòbil, incloent-hi la construcció, proves i desplegament. Hem utilitzat eines com Jenkins i Fastlane per automatitzar aquestes tasques, assegurant una integració i desplegament continus eficients.

Punts Clau

  • La construcció d'aplicacions mòbils pot ser complexa degut a la necessitat de suportar múltiples plataformes.
  • Les proves automatitzades són essencials per assegurar la qualitat de l'aplicació.
  • L'automatització del desplegament facilita la distribució interna i la publicació a botigues d'aplicacions.

Amb aquest coneixement, estàs preparat per implementar CI/CD en projectes d'aplicacions mòbils, millorant l'eficiència i la qualitat del teu procés de desenvolupament.

© Copyright 2024. Tots els drets reservats