MonoTouch vs Objective-C na iPhone'a / iPoda / iPada [zamknięty]

25

Czy dla kogoś, kto ma doświadczenie w .Net i chce tworzyć dla iPhone'a / iPoda / iPada, warto nauczyć się Celu C? Czy MonoTouch jest dobrą alternatywą? Jakie są niektóre kompromisy podczas korzystania z MonoTouch w porównaniu do kodowania w Objective-C?

ysolik
źródło
1
Wygląda na to Apple, czyni to łatwiejsze: apple.com/pr/library/2010/09/09statement.html
JeffO
2
Trzymaj się wersji WP7 i rozwijaj ją. ;)
Adam Lear
@Jeff O, dlatego interesują mnie ludzkie doświadczenia związane z MonoTouch. Zakodowałem w Objective-C, ale wolę C #.
ysolik
Jeśli możesz głosować i uważasz, że jest to przydatne pytanie lub poniżej znajdziesz przydatne odpowiedzi, zagłosuj. Witryny StackExchange potrzebują głosów, aby zbudować dobrą społeczność. Możesz dać 30 głosów dziennie, nie marnuj ich. Specjalnie użytkownicy z wysokiej reputacji i niskiej liczenia głosów oddanych proszę przeczytać: meta.programmers.stackexchange.com/questions/393/...
Maniero
Jestem również zainteresowany wypróbowaniem MonoTouch. Niestety, po prostu nie mam czasu na osiągnięcie celu-c i mam tutaj sklep pełen ekspertów .NET. Chciałbym móc wykorzystać ich wiedzę!
Nodey The Node Guy

Odpowiedzi:

17

MonoTouch to fantastyczna alternatywa. Używam go od prawie roku i nigdy nie wyobrażam sobie powrotu do celu-c. Najważniejsze cechy: LINQ, LINQ to XML, LINQ, C #, LINQ, Garbage collector, LINQ, MonoTouch.Dialog i wiele innych rzeczy.

Poważnie, chociaż ... obecnie większość aplikacji zawsze pobiera dane z Internetu i trzeba je konwertować na obiekty, przechowywać je na listach, sortować i filtrować oraz przesyłać do baz danych. Te rzeczy są tak proste w C # i LINQ, że nie wyobrażam sobie ludzi, którzy robią to w innych językach.

Koszt 400 USD nie jest niski, ale prawdopodobnie możesz odzyskać te pieniądze w ciągu około miesiąca bez reklam. A zaoszczędzony czas MT z łatwością to zrównoważy. Pamiętaj również, że nie musisz płacić, dopóki aplikacja nie będzie gotowa do testowania na urządzeniu, więc jest bezpłatna do nauki.

Powiedziawszy to, tak, nadal całkowicie warto nauczyć się Celu C. Dzięki temu będziesz lepszym programistą platformy, zrozumiesz, dlaczego niektóre rzeczy są takie, jakie są i tak dalej. Będziesz także mógł czytać przykłady Obj-C w sieci i tłumaczyć je na C #.

Na koniec, oto moja sugestia: jeśli zastanawiasz się nad rozwojem iOS, przejdź do MonoTouch. Spędź kilka tygodni, używając go, a następnie podejmij decyzję o przejściu do Obj-C. Najtrudniejszą częścią przejścia na rozwój iOS nie jest język Obj-C, wszystkie nowe frameworki, których musisz się nauczyć. Możliwość nauczenia się ich w C # to OGROMNA oferta, od samego początku będziesz o wiele bardziej produktywny. Zaraz po tym, jak wiesz, że te rzeczy sprawdzają się w Obj-C: wszystko będzie już znane, więc wszystko będzie łatwe do zrozumienia.

Eduardo Scoz
źródło
13

Jestem doświadczonym programistą C, C ++, Delphi i .NET. Niedawno musiałem zająć się projektowaniem aplikacji na iOS z zapleczem .NET. Początkowo byłem bardzo podekscytowany MonoTouch i wspiąłem się tylko po to, by przekonać się, że krzywa uczenia się nie była tak naprawdę językiem, ale raczej wzorami projektowymi.

Zauważyłem również, że wsparcie społeczności dla MonoTouch było znacznie mniejsze niż dla Xcode i Objective-C.

Moja rada, nie spiesz się i naucz się Celu C. Przeczytaj wskazówki dla programistów Apple i dowiedz się, jak to zrobić poprawnie.

Craig Nicholson
źródło
Podoba mi się przypomnienie, że MonoTouch będzie wymagał przynajmniej trochę nauki, nawet jeśli jesteś doświadczonym programistą .NET. Patrzę też na aplikację na iOS łączącą się z zapleczem SQL Server / .net. Czy możesz wskazać mi coś, co działało dla ciebie?
Jason S
3

Jeśli chcesz szybko wyciągnąć coś z drzwi, uważam, że monotouch byłby dobrym rozwiązaniem.

Złe: Pamiętaj, że MonoTouch kosztuje 399 USD za jednego programistę. Oznacza to, że jeśli Twoja aplikacja kosztuje 0,99 USD, to w zasadzie musisz sprzedać ponad 400 aplikacji, aby nawet zarobić pieniądze. To nie bierze pod uwagę, że nie otrzymasz pełnego 0,99 USD za każdy zakup aplikacji. Inną rzeczą do przemyślenia jest to, że jeśli chcesz, aby inni programiści dołączyli do twojego projektu, zdecydowana większość deweloperów iPhone'ów nadal korzysta z Objective-C, więc prawdopodobnie trudniej będzie znaleźć partnerów.

Dobra: czas rozwoju będzie znacznie szybszy. Wczesne wprowadzenie na rynek jest zazwyczaj wielką zaletą.

Neutralny: nadal musisz nauczyć się bibliotek iPhone'a, cyklu życia aplikacji i wszystkich innych drobnych niuansów iPhone'a. Więc nawet jeśli nie musisz uczyć się Celu C, nadal musisz nauczyć się frameworka. Tak czy inaczej, twoja aplikacja może być równie niesamowita, ponieważ pod koniec dnia jest to wciąż system iOS.

Ryan Hayes
źródło
Nauczysz się czegoś nowego, chyba że Twoim podejściem jest stworzenie aplikacji Windows, która będzie działała na iPadzie.
JeffO
1

Zaczynam opracowywać aplikację za pomocą MonoTouch i uważam, że to dobre doświadczenie. MonoTouch ma tendencję do bycia produktywnym, a nie do nauki nowych technologii. Ogólne wrażenie jest takie, że Novell wykonał świetną robotę, udostępniając funkcjonalność iOS programistom .NET, a teraz dzięki ostatnim zwolnieniom Apple z licencjonowania (pozwalają teraz na aplikacje na iPhone'a / iPada opracowane przez narzędzia innych firm) MonoTouch zyska na popularności . Jeśli spojrzysz na tag #monotouch twitter, zobaczysz nawet niektórych programistów / devshopów PORTUJĄCYCH swoje aplikacje Obj-C do .Net, ponieważ w dłuższej perspektywie łatwiej / szybciej będzie utrzymywać / ewoluować. Aha, i nadal obowiązują wszystkie wytyczne Apple, nawet jeśli pracujesz w .NET - w rzeczywistości uważam je za bardzo pomocne.

Z MonoDroid w drodze, będziesz prawdopodobnie mógł ponownie korzystać z podstawowych bibliotek własnej aplikacji w aplikacjach na iPhone'a i Androida - jakie to fajne?

Oto całkiem optymistyczny wywiad z Wallace'm Mclure'em, który uchwycił trochę tego, o czym mówię:

http://adtmag.com/articles/2010/09/29/monotouch-qa-with-wallace-mcclure.aspx

Powiedziałbym: idź po to!

Mark Gibaud
źródło
0

Jest artykuł na temat doświadczenia jednego deweloperów .NET w przenoszeniu zestawu umiejętności na iOS.

Ten post na blogu opisuje moje doświadczenia związane z nauką pisania oprogramowania dla systemu iOS po wielu latach spędzonych wyłącznie w świecie programowania .NET. Zawiera ostrzeżenia, sugestie i wskazówki dla osób zainteresowanych nauką programowania dla systemu iOS. Post kończy się jakościowym porównaniem programowania w WPF i iOS.

gbjbaanb
źródło