Ked to budem pisat v tom, co je pre danu platformu primarny nastroj a natrafim na nejaky problem, tak je vacsia sanca, ze sa dogooglim k rieseniu. Ked to zlatam cez mono, stale to bude len zlatane.
Maju mobilne aplikacie taku sialenu aplikacnu logiku, ze je problem to prepisat? A to si este odmyslim, ze viem casto presunut logiku na nejaky server a na mobile len ukazovat vysledky.
Ano ma to zmysel, vzhladom na to ze sa primarne vyvyja na dve dnes najrozsirenejsie mobilne platformy - IOS a Android, ktore su diametralne odlisne aj co sa programovacich jazykov tyka aj co sa samotneho spustaniu kodu tyka. A ak je moznost zdielat cast business logiky a mat len specificky view pre tu ktoru plaformu tak to dost usetri cas ako aj opravovanie chyb. Nehovoriac o tom ze c# a java maju k sebe stale blizsie ako k Objective C a ak programator vyslovene nepochadza z MacOS pisekovivska tak je mala pravedepodobnost ze vobec prisiel do styku s ObjectiveC.
A ak tym ukazovanim vysledkov zo serveru mate na mysli nejaku js humusaren vo webe tak to potom tak vypada ako to vypada. Vecsinou zalagovane, nehovoriac ze prepojenie s OS a jeho funkciami (povedzme globelne ukladanie nastaveni app atd.)
je dost zle.
Praveze si nie som celkom isty, ci to usteri cas. Pretoze na druhej strane mi to moze kompenzovat to, ze pouzivam SDK, ktore pre danu platformu pouziva vacsina komunity a da sa predpokladat, ze je lepsie odladene a ma naozaj API ku vsetkemu, co ta platforma poskytuje a pod.
Ak chcem programovat pre nejaky system, zvladnutie standardnych nastrojov na to urcenych je proste zaklad. Ak mam tie zvladnute, mozem ist do nestandarnych postupov. Mne sa opak javi ako cesta do pekla.
Nejde len o technicke otazky ale aj personalne. Ludia sa menia, kod zostava. Povedzme, ze som spravil Android/iOS aplikaciu, ktora je uspesna a treba ju udrziavat. Budem mat stastie a najdem siikovneho iOS programatora. Miesto toho, aby som tie jeho skusenosti vyuzil, donutim ho pouzivat nejake Mono. Cas, co som ja som usetril ucenim sa Objective C, bude on musiet stravit ucenim niecoho nestandardneho, co mu s dost velkou pravdepodobnostou bude hadzat rozne polena pod nohy. Nehovorim o tom, ako mu bude stupat tlak, ked sa mu par krat stane, ze mu tam nepojde nieco, co by v standardnom jazyku a SDK slo.
Neviem, co je "humusaren vo webe" ale vacsina aplikacii na mojom telefone je proste jednoducha - pocasie, mestska doprava, bankomaty v okoli, maily a pod. S nejakym serverom tak ci tak komunikuje. Komplexne ulohy riesim na PC.
Prave to, ze pri mone sa clovek neuci ziadne ine API ale priamo API danej platformy, a ako dokumentaciu pouziva dokumentaciu od google a apple. Pouziva sice c# ako jazyk ale vsetko robi cez to iste api ako v jave/obj-c.
Sanca ze najdete c# developera je ovela vacsia ako obj-c developera. iOS api sa da - aspon zaklady naucit za cca 3 tyzdne a nie je problem pokracovat v projekte.
V tom je mono rozdielne oproti ostatnym frameworkom, ktore vymyslaju svoj "button" spolocny pre vsetky platformy a vsade vyzera ako z marsu.
To mi dava zmysel este menej. Naucit sa syntax jazyka je lahsie ako zvladnut kniznice tak, aby clovek kazdu blbost nehladal v manualy.
> Sanca ze najdete c# developera je ovela vacsia ako obj-c developera.
Vy nehladate C# developera. C# developer je taky ten clovek, co ovlada pojmy a technologie ako Windows Forms, WPF, WCF, vie co je global assembly cache atd. A frci na MS technologiach. Take nepotrebujete a nehladate. Pracovna pozicia, ktoru idete obsadit sa vola "iOS developer v C#".
Ak budete uchadzacovi prezentovat ako vyhodu to, ze sa nemusi naucit Objective-C, tak tym vacsinu rozumnych ludi len odradite. Lebo kto by chcel mat po 2-3 rokoch u vas v C.V. napisane "programujem pod iOS ale neviem Objective-C". Ked uz ma niekto motivaciu ist robit z Windows (C#) na iOS, preco by nemal mat silnu vnutornu motivaciu zvladnut aj syntax jazyka.
A co priklady kodu z netu? To bude vsetko, co najde prepisovat 1:1 do svojej minoritnej platformy?