Qué es la programación móvil (Mobile Programming)

Los móviles son parte integral de la sociedad actual. Nos permiten mantener comunicación constante con el mundo. Han habido varios avances en métodos para transmitir datos entre móviles y proveedores de contenido. Esto se denomina programación móvil.

WAP (Wireless Application Protocol)

WAP fue uno de los primeros métodos para entregar contenido de Internet a móviles. Muy basado en texto, casi sin imágenes/media. Desde su primer uso en 1997, fue la forma más simple de distribuir datos a usuarios móviles.

Web Móvil (Mobile Web)

La experiencia rica de Internet actual en móviles de gama alta se conoce como "Web Móvil". Esta versión entrega experiencia más rica a usuarios mediante versión simplificada de webs populares. Altamente interactiva y puede entregar streaming vídeo, audio, imágenes alta resolución.

Apps (Aplicaciones nativas)

La programación móvil dio un gran salto con el desarrollo reciente de apps de móvil. Estas versiones en miniatura de programas de ordenador se ven en smartphones como iPhone, Droid (Android), y Windows Phone. Proporcionan función específica al usuario en entorno autocontenido.

Evolución y estado actual 2024

Tecnologías base

  • WAP/WML: Obsoleto (2013). Reemplazado por HTML/CSS/JS estándar.
  • HTML5 + CSS3 + JavaScript (ES6+): Estándar universal. Web Responsive / PWA.
  • PWA (Progressive Web Apps): Web instalable, offline, push notifications, background sync, acceso hardware (Bluetooth, USB, NFC, sensores, cámara, micrófono, geolocalización). Unifica web + app nativa.
  • WebAssembly (Wasm): Código C/C++/Rust/Go en navegador a velocidad nativa. Juegos, CAD, vídeo, IA en web.

Desarrollo nativo (2024)

  • iOS/iPadOS: Swift / SwiftUI / Xcode / TestFlight / App Store. SwiftUI declarativo, multi-plataforma Apple.
  • Android: Kotlin (oficial) / Jetpack Compose (UI declarativa) / Android Studio / Play Console. Multi-dispositivo (teléfono, tablet, Wear, TV, Auto, XR).
  • Cross-platform: Flutter (Dart), React Native (JS/TS), .NET MAUI (C#), Tauri (Rust+Web), Capacitor/Ionic (Web->Native), Kotlin Multiplatform (KMP).

Arquitecturas y patrones modernos

  • Clean Architecture / MVVM / MVI / VIPER (separación capas, testabilidad)
  • Reactive: RxJava/Kotlin Flow / Combine / RxSwift / Dart Streams
  • Offline-first: Room / Realm / SQLite / WatermelonDB / IndexedDB (PWA)
  • Modularización: Dynamic Feature Modules (Play Feature Delivery), KMP shared logic

Backend & Cloud para móvil

  • Firebase / Supabase / Appwrite / NHost / PocketBase (BaaS: Auth, DB, Storage, Functions, Push, Analytics, Remote Config)
  • GraphQL / tRPC / REST / gRPC (APIs)
  • Edge: Cloudflare Workers, Vercel Edge, Deno Deploy, AWS Lambda@Edge

Distribución alternativa

  • F-Droid / IzzyOnDroid / Obtainium / Accrescent (Android open source)
  • AltStore / SideStore / Sideloadly (iOS sideload, UE DMA)
  • Web / PWA: Sin store, URL directa, actualización instantánea.

Conclusión: "Programación móvil" hoy = Ingeniería de software full-stack con foco en: UX táctil, offline-first, batería/red limitadas, seguridad/privacidad, fragmentación dispositivos, stores gatekeepers, actualizaciones continuas, medición/analytics, monetización (IAP, ads, sub), cumplimiento legal (RGPD, DMA, CCPA, COPPA, leyes locales).