Sistemas operativos móviles vs desktop

Clase 22 de 32Fundamentos de Ingeniería de Software

Resumen

Los sistemas operativos móviles priorizan seguridad extrema, control de permisos y distribución cerrada de aplicaciones. Entender cómo operan iOS y Android te ayuda a lanzar productos confiables, optimizados y alineados con las reglas de cada plataforma.

¿Cómo se distribuyen las apps y qué implica la seguridad?

La distribución móvil exige declarar permisos por adelantado y usar tiendas autorizadas. Android permite más caminos, mientras iOS mantiene un ecosistema cerrado. En desktop, la instalación es abierta y diversa, lo que contrasta con móviles.

¿Qué opciones de distribución existen en Android e iOS?

  • Android ofrece Google Play Store y la llamada Amazon Fire Store. Puedes distribuir por ambas tiendas.
  • Es posible instalar la tienda de Amazon en cualquier Android con un hack especial.
  • iOS solo permite distribuir vía App Store.
  • Históricamente existió Cydia, que requería hackear el iPhone para instalar apps con privilegios elevados. Hoy prácticamente no es viable y se usa App Store.

¿En qué difieren Mac, Windows y Linux en instalación?

  • Mac permite instalar vía App Store o archivos DMG.
  • Windows permite instalar desde la Windows Store o con un .EXE clásico: next, next, finish.
  • Linux usa gestores de paquetes como aptget o yum con repositorios controlados por la distribución.
  • También hay gestores de paquetes en desktop orientados a entusiastas: Homebrew en Mac y Chocolatey en Windows.

¿Qué permisos y hardware controla el sistema?

Las apps deben solicitar permisos específicos y el usuario puede activarlos o revocarlos en settings. Algunas apps dependen de ellos para funcionar y pueden fallar si no se otorgan.

¿Qué permisos debe declarar una app móvil?

  • Declaración previa: GPS, escritura en disco y otros accesos.
  • Envío a tienda: especificar manifiestamente cada permiso necesario.
  • Distribución condicionada: solo se publica si la app declara lo que usará.

¿Qué accesos sensibles existen y por qué importan?

  • Cuentas del sistema: permiso interno accounts para acceder a cuentas de Gmail, Twitter o Facebook compartidas entre apps.
  • Sensores y hardware: acelerómetro, cámara y micrófono, con controles estrictos para evitar escuchas o capturas sin consentimiento.
  • Contactos: útil para redes sociales o mensajería; también un vector de spam si se abusa.
  • Galería de fotos: acceso útil para adjuntar imágenes, pero sensible si una app intenta subir fotos en secreto.

¿Cómo funciona el sistema de archivos en Android y iOS?

  • Android: acceso a tarjeta SD (si existe) y almacenamiento interno con base Linux/NIX. Las apps pueden guardar datos localmente y opcionalmente sincronizar con cloud.
  • iOS: aislamiento por Sandbox con contenedores por app. Un archivo de una app no es visible para otra.
  • file sharing API: crea un puente temporal al compartir un archivo entre apps.
  • iCloud: vía esperada por Apple para persistencia y sincronización. Google Cloud existe, pero no con la misma integración directa en iOS.
  • Espacio común: la galería multimedia es el único sistema de archivos compartido si la app obtiene permiso.

¿Con qué lenguajes y herramientas se desarrolla y cómo se monetiza?

Android y iOS permiten desarrollo nativo y también opciones híbridas. En ingresos, en 2014, Google Play entregó a desarrolladores 7 billion dollars y la App Store 10 billion dollars; Apple lideró ese periodo. En Android es común ganar con anuncios (AdSense y AdMob), mientras que en iOS predomina el cobro directo gracias a su base de tarjetas de crédito.

¿Qué lenguajes y runtimes son nativos?

  • Android: principalmente Java con la extensión o runtime Dalvik.
  • iOS: Objective C (cercano al procesador y veloz) y Swift (más sencillo, similar a Ruby/Python/JavaScript moderno, con ligero costo en rendimiento; suficiente para la mayoría de casos).
  • Ambos: pueden usar C y C++, aunque es menos común.
  • Motores multiplataforma para videojuegos: Unity 3D y Unreal Engine.

¿Qué IDEs se usan para crear apps nativas?

  • iOS: Xcode, el entorno de Apple para iOS, Mac, Apple Watch y Apple TV.
  • Android: Android Studio, originalmente basado en Eclipse, hoy optimizado para desarrollo móvil nativo.

¿Qué opciones híbridas existen y cuándo usarlas?

  • Xamarin: usa C# y permite apps para iOS, Android y Windows.
  • React Native: desarrollo con JavaScript y respaldo de Facebook.
  • Ionic: basado en AngularJS para crear apps multiplataforma.
  • Consideración clave: el rendimiento suele ser inferior al nativo por emulación; decide caso por caso.
  • Nota histórica: PhoneGap está en desuso frente a opciones más modernas.

¿Te gustaría profundizar en un caso real, comparar permisos entre plataformas o elegir el stack ideal para tu próxima app? Cuéntame en los comentarios y armamos el plan.