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.