Ostatnio widziałem to pytanie (i jego odmiany). Dziwi mnie to, jak często ludzie reagują, ale jak mało odpowiedzi .
Mam swoje preferencje (podobają mi się oba stosy), ale w tym przypadku większość „odpowiedzi” zaczyna się mylić. Nie powinno dotyczyć tego, czego chcę (ani tego, czego chce ktoś inny).
Oto, w jaki sposób przystąpiłbym do określania wartości MonoTouch - oczywiście nie mogę być obiektywny, ale myślę, że jest to dość wolne od zapału:
Czy to dla zabawy czy w interesach? Jeśli chcesz skorzystać z konsultacji w tej dziedzinie, możesz bardzo szybko odzyskać 399 USD.
Czy chcesz nauczyć się platformy od podszewki, czy „po prostu” chcesz dla niej pisać aplikacje?
Czy podoba Ci się .Net na tyle, że użycie innego stosu deweloperów zabrałoby Ci to przyjemność? Znów lubię oba zestawy (Apple i Mono), ale dla mnie MonoTouch sprawia, że wrażenia są o wiele przyjemniejsze. Nie przestałem używać narzędzi Apple, ale głównie dlatego, że naprawdę lubię oba zestawy . Kocham iPhone'a i kocham .Net. W takim przypadku MonoTouch nie był dla mnie żadnym problemem.
Czy czujesz się komfortowo pracując z C? Nie mam na myśli Objective-C, ale C - ma to znaczenie, ponieważ Objective-C to C. Jest to przyjemna, fantazyjna, przyjazna wersja OO, ale jeśli wskazówki dadzą ci gęsią skórkę, MonoTouch jest twoim przyjacielem. I nie słuchaj naysayers, którzy myślą, że jesteś deweloperem, jeśli zdarzy się, że nie lubisz wskaźników (lub C itp.). Kiedyś chodziłem z kopią IBM ROM BIOS Pocket Reference, a kiedy pisałem asembler i zmuszałem komputer do śmiesznych trybów wideo oraz pisałem własne bity do renderowania czcionek i (co prawda tandetne) systemy okienkowe, nie zrobiłem tego. Uważam, że deweloperzy QuickBasic byli złośliwi. Ja byłamprogramista QuickBasic (oprócz reszty). Nigdy nie poddawaj się nerdom machismo. Jeśli nie lubisz C i jeśli nie lubisz wskaźników, i jeśli chcesz trzymać się jak najdalej od ręcznego zarządzania pamięcią (i, szczerze mówiąc, wcale nie jest tak źle w ObjC). .. MonoTouch. I nie bierz za to żadnych żartów.
Czy chcesz kierować reklamy do użytkowników lub firm? Nie ma to dla mnie większego znaczenia, ale wciąż istnieją ludzie na Edge, a faktem jest: możesz stworzyć znacznie mniejszy pakiet do pobrania, jeśli używasz stosu Apple. Bawiłem się MonoTouch i mam przyzwoitą małą aplikację, która po skompresowaniu zmniejsza się do około 2,7 MB (podczas przesyłania aplikacji do dystrybucji zamykasz ją - gdy aplikacje są pobierane ze sklepu, „ ponownie spakowane - więc kiedy zastanawiasz się, czy Twoja aplikacja ma wejść poniżej limitu 10 MB OTA, najpierw spakuj przyssawkę - MonoTouch będzie mile zaskoczony). Ale poza szczęściem MT, pół megapiksela w porównaniu do prawie trzech (na przykład) to coś, co może być dla Ciebie ważne, jeśli kierujesz reklamy do użytkowników końcowych. Jeśli myślisz o pracy w przedsiębiorstwie, kilka MB w ogóle nie będzie miało znaczenia. I, dla jasności - wkrótce zamierzam przesłać do sklepu aplikację opartą na MT i nie mam żadnych problemów z rozmiarem. Wcale mi to nie przeszkadza. Ale jeśli to będzie dotyczyłoty , a następnie stos Apple wygrywa ten.
Wykonujesz jakąkolwiek pracę XML? MonoTouch. Kropka.
Manipulacja ciągiem? Data manipulacji? Milion innych drobiazgów, do których przyzwyczailiśmy się w ramach .NET-wszystko-I-zlewozmywaki kuchenne? MonoTouch.
Usługi internetowe? MonoTouch.
Składniowo oba mają swoje zalety. Cel C jest bardziej szczegółowy , gdy trzeba go napisać . Przekonasz się, że piszesz kod w C #, którego nie musiałbyś pisać w ObjC, ale działa to w obie strony. Ten konkretny temat może wypełnić książkę. Wolę składnię C #, ale po przejściu przez moją początkową, nieziemską reakcję na Objective-C, nauczyłem się całkiem z tego korzystać. I śmieją się z niego trochę w rozmowach (to jest dziwne dla deweloperów, którzy są przyzwyczajeni do C # / Java / etc.), Ale prawda jest taka, że mam Objective-C w kształcie miejsce w moim sercu, że czyni mnie szczęśliwym.
Czy zamierzasz korzystać z Konstruktora interfejsów? Ponieważ nawet w tej wczesnej wersji robię znacznie mniej pracy, aby zbudować moje interfejsy użytkownika przy użyciu IB, a następnie użyć ich w kodzie. Wydaje się, że brakuje całego sposobu wykonywania rzeczy w Objective-C / IB i jestem prawie pewien, że dzieje się tak, ponieważ brakuje wszystkich kroków w sposobie wykonywania rzeczy w Objective-C / IB. Do tej pory i nie sądzę, że wystarczająco przetestowałem, ale do tej pory MonoTouch jest tutaj zwycięzcą o ile mniej pracy musisz wykonać.
Czy uważasz, że fajnie jest uczyć się nowych języków i platform? Jeśli tak, iPhone ma wiele do zaoferowania, a stos Apple prawdopodobnie wyciągnie cię ze strefy komfortu - co dla niektórych deweloperów jest fajne (Cześć - jestem jednym z tych deweloperów - żartuję z tego i daję Apple ma trudny czas, ale dobrze się bawiłem, ucząc się programowania iPhone'a za pomocą narzędzi Apple).
Jest tyle rzeczy do rozważenia. Wartość jest tak abstrakcyjna. Jeśli mówimy o kosztach i czy warto, odpowiedź sprowadza się do mojego pierwszego punktu: jeśli chodzi o interesy i jeśli możesz dostać pracę, natychmiast zwrócisz swoje pieniądze.
Więc ... to jest tak obiektywne, jak tylko mogę. Oto krótka lista pytań, które możesz sobie zadać, ale jest to punkt wyjścia.
Osobiście (porzućmy na chwilę obiektywizm), uwielbiam i używam obu. I cieszę się, że nauczyłem się najpierw stosu Apple. Łatwiej było mi zacząć korzystać z MonoTouch, kiedy znałem już świat Apple. Jak powiedzieli inni, nadal będziesz pracować z CocoaTouch - będzie to po prostu środowisko .Net.
Ale jest coś więcej. Ludzie, którzy nie korzystali z MonoTouch, zwykle się na tym kończą - „bla bla bla bla” - to nie jest MonoTouch.
MonoTouch daje dostęp do tego, co CocoaTouch ma do zaoferowania, a jednocześnie daje dostęp do tego, co (podzbiór) .Net ma do zaoferowania, IDE, z którym niektórzy czują się bardziej komfortowo (jestem jednym z nich), lepszą integrację z Konstruktorem interfejsów i chociaż nie zapomnisz całkowicie o zarządzaniu pamięcią, zyskujesz swobodę działania.
Jeśli nie jesteś pewien, chwyć stos Apple (jest bezpłatny) i chwyć stos ewaluacyjny MonoTouch (jest bezpłatny). Dopóki nie dołączysz do programu deweloperskiego Apple, oba będą działały tylko przeciwko symulatorowi, ale to wystarczy, aby dowiedzieć się, czy zdecydowanie wolisz jeden od drugiego, i możliwe, czy MonoTouch jest dla Ciebie wart 399 USD.
I nie słuchaj fanatyków - zwykle to oni nie korzystali z technologii, której się bronią :)