Z pozice běžného vývojáře (za kterého se považuji, ale univerzální aplikae nevyvíjím) to není žádné velké terno. Univerzální aplikace s sebou táhnou potřebu napsat to tak, aby to fungovalo na desktopu se všemi omezeními z mobilu - tzn. nejdou přilinkovat obecné třeba LGPL knihovny, mám omezení na používání jazyků (např. perl AFAIK nejde), nejde přímo přistupovat k běžným funkcím jádra OS, musí se přes API apod.Teď předpokládejme, že moje aplikace je nějaká blbost a že mi toto nevadí, napíšu si teda "univerzální" aplikaci od píky a naučím se to používat. OK, ale má to pořád jeden zcela zásadní problém: Ta aplikace pojede jenom na Windows.Protože - pokud to má být klasická desktop aplikace, můžu ji napsat tak, že půjde přeložit a použít na Windows, Linuxu, Macu, BSD atd. stačí si vybrat správné portované knihovny, ale pak to nebude univerzální aplikace. Pokud budu naopak vyvíjet na mobil, budu cílit na platformy (asi) podle jejich rozšíření a tím pádem to taky nebudu dělat jako univerzální aplikaci, ale najdu si nějaký obecnější framework.Uvedu konkrétní případ ze života. Dělám aplikaci, která má zpřístupnit náš systém pomocí touchscreen zjednodušeného rozhraní (aby to vypadalo asi jako ovládání bankomatu), aby to mohl ovládat jednoduše skladník, dělník ve výrobě, pracovník expedice, manažer si zobrazí, co se už expedovalo atd. Cílovým zařízením jsou mobily, tablety, pevné stacionární "kiosky" montované na zeď, okrajově i PC, aplikace je úplně stupidní klient, který načte XML ze serveru a vykreslí obrazovku. Hurá, toto vypadá jako ideální případ pro univerzální aplikaci, nebo ne?Nó, ani ne. Problém je v tom, že manažer má svůj iPhone a univerzální aplikace je mu k prdu, do výroby nasazujeme pod tuto aplikaci linux, protože proč platit za licenci Windows a navíc tam běží pořád jenom ta jedna aplikace fullscreen, takže můžu mít univerzální image, který prostě pořád kopíruju na další PC (kiosky) - to ve Windows sice taky jde, ale ne každý zákazník má Enterprise. Dále běží testování s Raspberry Pi, tam univerzální aplikace zase nespustím a Windows taky ne. Pokud to chci dát pro inventuru na mobily zaměstnanců, aby jich tam mohlo běhat víc, má většina android, takže opět smolík.Konečné zjištění: "Univerzální" aplikace v pojetí MS prostě nejsou dost univerzální. A jak to vlastně děláme? V kivy. To je něco, co myslím vystihuje slovo "unverzální" mnohem lépe - stejný kód jde spustit na Windows (teda jako desktop app), linuxu, MacOS, androidu, iOS, BSD a všem možném. Trochu ironií je, že kapesní Windows zatím v seznamu cílových platforem chybí a nevím, jestli se tam kvůli politice MS vůbec kdy dostanou.