INTRO

Les dues grans plataformes

🤖

Android (Google)

Arquitectura oberta. Domina ~80% del mercat global. Es desenvolupa amb Android Studio usant Java o Kotlin.

🍎

iOS (Apple)

Ecosistema privat i molt tancat. Es desenvolupa amb Xcode usant Objective-C o Swift.

7.1

L'Entorn: Android Studio i l'Emulador

Per programar o provar coses en Android, necessitem l'entorn oficial: Android Studio.

📱

Emulador Virtual

Obre una finestra al teu ordinador amb una pantalla de mòbil tàctil simulada. Funciona com un mòbil físic sense necessitat d'endollar el telèfon real.

📋

Logcat

Panell integrat a Android Studio per llegir els missatges interns d'error del sistema del telèfon en temps real.

7.2

L'Anatomia del disseny i el Testing

Les aplicacions mòbils no tenen pàgines HTML, tenen Activities (finestres úniques de la interfície d'usuari). Aquestes pantalles s'estructuren amb fitxers XML on definim la posició dels botons (amb ConstraintLayout per adaptar-se a tauletes i mòbils de mides diverses).

⚠️
Regla d'or pel Testing de mòbils: Tots els ginys visuals (textos, botons, llistes) dins del fitxer XML han de tenir obligatòriament la propietat android:id (ex: @+id/boto_login). El robot de testing el buscarà per fer clic simulant el dit humà.
7.3

Appium: El "Selenium" dels mòbils

Així com fem servir Selenium pels navegadors, per a mòbils fem servir Appium.

🎯
Aproximació de Caixa Negra: No ens importa si l'app la va fer l'equip amb Java, Kotlin o React Native. Com a testers, no necessitem tocar el codi de l'aplicació. Escrivim els tests en Python.

L'Arquitectura Client-Servidor d'Appium (3 parts)

🐍

Client

El nostre script en Python. Diu: "fes clic al botó X".

→ WebSocket →
⚙️

Servidor Appium

Programa en NodeJS. Recull el "clic" de Python i el tradueix al llenguatge natiu del mòbil.

→ ADB/XCTest →
📱

Dispositiu

Emulador (o mòbil real). Rep la instrucció i executa l'acció mecànica del clic.

7.4

Escrivint el primer test d'Appium

Abans que l'script pugui obrir el mòbil, cal definir quin mòbil hem d'atacar. Això es fa creant un diccionari Python anomenat Capabilities:

Python test_app.py
capabilities = {
    "platformName": "Android",
    "deviceName": "emulator",
    "appPackage": "com.nom.aplicacio"  # El "DNI" intern de l'app
}

Un cop connectats, Appium buscarà elements usant el seu android:id o mitjançant arbres de cerca anomenats XPATH (per exemple, cercar el text "Bateria" al menú de configuració de l'Android) i automatitzem seqüències per validar que l'aplicació navega correctament.

🗂️ Resum Ràpid — Mòdul 7

Android vs iOSAndroid ~80% mercat, obert. iOS, tancat. Entorns: Android Studio / Xcode.
EmuladorMòbil virtual a l'ordinador. No cal telèfon físic per fer proves.
ActivityEquivalent a una "pàgina web" en Android. Definida amb XML + ConstraintLayout.
android:idObligatori a tots els elements. El robot el fa servir per trobar i interactuar amb ells.
AppiumEl "Selenium" dels mòbils. Caixa Negra. Tests escrits en Python.
CapabilitiesDiccionari Python que defineix quin dispositiu i quina app ha d'atacar Appium.