Takže jsem pročetl všechny 3 díly a nějak mi pořád uniká ten smysl tvorby JEDNÉ aplikace pro více platforem. Původně jsem si naivně myslel, že konečně existuje něco kde 1x KLIKNU na NEW PROJECT, udělám společný kód (který třeba s nečím komunikuje, vyhodnocuje, počítá) a jen ho 3x hodím "do grafiky" v tom stejném projektu.
Jesli to ale chápu správě, tak celé je to o tom, že mám skrátka 3 různé projekty, které mají svůj design (jen si je zkrátka podobny a grafikcé elementy se stejně jmenují) a pak mám někde složku např. "Shared sources" ve které jsou C# soubory, které obsahují ony "společné funkce" a v každém z těchto 3 projektů mám tyto soubory jen "připojené". Je to tak, nebo mi stále něco uniká? Jediná výhoda tohoto přístupu je tedy pouze v tom, že je to psané v C# tudíž nemusím to "výpočetní jádro" přepisovat do více jazyků?
presne tak.
oplati sa to vtedy, ked:
1. mate velmi dobry knowledge v C# a nechcete sa nicim inym zaoberat. Zvladnut jazyk a veci okolo nie je az take jednoduche ked to clovek chce vediet dobre. Ked vie clovek dobre robit v c# s Threadmi, Taskami, Linqom atd.. viem si predstavit ze na iOS si vyberie Mono aj ked nechce nidke s nicim nic zdielat(a este k tomu na rozdiel od Androidu/Javy je objective-c trochu nezvycajne pre vacsinu developerov). V appstore je celkom dost aplikacii napisanych cez mono, ktore su len na jednu platformu.
2. aplikacia ma pomer creva/ui tak v prospech criev, ze UI je mensia cast projektu a teda vacsia cast - creva su zdielane. Pre male app ktore iba nieco zobrazia a stiahnu z netu a pod je to zbytocna vrstva naviac. Pre stredne a velke app sa da tymto pristupom zdielat 50-80% kodu. Vyhodu to ma v tom, ze nuti to developera mat krajsi navrh oddeleneho UI od logiky app.
3. Hry - MonoGame je velmi podarena platforma na hry, abstrahuje aj vykreslovanie, ui atd, takze zdielanie kodu je vacsie aj pre mensie projekty.
toto http://www.codenameone.com/ by mohlo splnat to co chces, ale zatial som to detaelne neotestoval, teda ak ma niekto s codenameone nejake skusenosti, napiste!!!