A diferencia de los sistemas para escritorio, los sistemas operativos móviles tienen extrema seguridad en la forma en la que se instalan apps y en la que se accede a partes específicas de hardware.
Para lanzar una app, previamente se debe enviar a los que permitan distribuirla. Se debe declarar que permisos se usarán (escritura en disco, GPS, Cámara).
En Android existe la Google Play Store. También Amazon Fire Store.
En iOS solo existe la App Store.
Una serie de hackers rompieron la seguridad del sistema operativo para saltarse los anillos de privilegios y teníamos a Cydia, para poder instalar apps con Cydia habia que hacer Jailbreak al iPhone. así instalar una aplicación con permisos de admin desde Cydia. Hoy es casi imposible volver a instalar Cydia.
Se pide permiso por cosas como : GPS, cámara, acelerómetro, micrófono, contactos, galería, sistema de archivos.
**Android **: Permite acceder a la SD card, y al sistema de archivos linux (*nix).
**iOS **: Usa contenedores internos para las Apps llamado “SandBox”. Aísla a las apps para que no se pueda acceder a los archivos desde una app a otra.
Su sistema interno se basa en un API llamado “File Sharing API”. Cuando le damos a compartir archivo a una app, se crea un puente temporal entre ellas.
La forma en la que Apple espera que alguien guarde información desde a una app es iOS Cloud.
El único sistema de archivos que comparte tanto iOS como Android es la galería de fotos.
En ambos sistemas operativos podemos modificar los permisos, el tema es que muchas apps dependen de algunos de ellos.
iOS y Android = Nativamente C++
Pocos usan C++ para desarrollar sus apps.
**Android **= Nativamente JAVA con Api Dalvik.
**iOS **= Historicamente era Objective-C. Pero ahora es SWIFT.
Objective-C era un lenguaje viejo basado en Next, de más bajo nivel pero super rápido.
Swift es mas similar a Ruby o al nuevo JavaScript.
En ambos se puede con otros lenguajes como JavaScript c#, c++ gracias a API’s. Se puede desarollar Apps multiplataforma en entornos para juegos como Unity y Unreal.
Como entornos de desarrollo específicos para apps se puede usar AndroidStudio y Xcode para iOS.