Trochu napřeskáčku...- V době, kdy ios měl JS aplikace, neměl Android nic. Pokud jde o čistotu, je to relativní, ale JS bylo dle mého názoru řešení z hlediska architektury poměrně čisté, byť samozřejmě ukrutně omezené.- Jinými slovy jakmile chci po aplikaci něco víc, než primitivní formulářové GUI, musím sáhnout po NDK (resp. musel jsem, postupně se to lepší, což píšu i výše).- C je etalonem portability a taky se kompiluje do nativního kódu. U NeXTu či později OS X dokonce bylo možno vytvořit fat binaries, kdy více architektur podporoval stejný spustitelný soubor. Ostatně i v současném iosu je těch architektur podporováno víc a funguje to (několik variant ARMů, x86 v simulátoru...)- Portabilita je hezká mantra, ale v praxi je to o dost horší. Pro různá zařízení se stejně musí upravovat GUI, řešit podpora hardware (pokud někdo přijde s něčím úplně novým) atd. Přebuildovat to pro jinou architekturu je to nejmenší. Jako majitele telefonu mě pochopitelně portabilita zajímá daleko méně než to, aby to všechno fungovalo.- Pokud jde o to šifrování, tak u defaultních systémových věcí věříte buď výrobci hw u iosu nebo dodavateli systému u Androidu. Pokud jim nevěříte, máte v obou případech možnost do svých aplikací dát nějakou opensource implementaci, kterou budete mít plně pod kontrolou. Jen u iosu to bude snazší, protože tam si odpustíte opruz s NDK.Mimochodem - nevím, co si mám představit pod pojmem „zašifruje bez zadních vrátek“. AES je symetrická šifra a zda jsou daná data správně našifrovaná daným klíčem si můžete snadno ověřit tím, že to předhodíte k rozšifrování jiné implementaci. U asymetrických šifer by asi šla ovlivnit náhodnost generátoru, ale opět Vám nic nebrání generovat si klíče jinde a šifrovat bez účasti systému. (Samozřejmě nebezpečí keyloggerů a různých práskacích backdoorů je v principu stejné u obou systémů.)