Bu soruyu (ve bununla ilgili varyasyonları) son zamanlarda çok gördüm. Beni şaşırtan şey insanların ne sıklıkta yanıt verdiği , ancak ne kadar az cevap verdiği .
Tercihlerim var (her iki yığının da tadını çıkarıyorum), ancak çoğu "yanıtın" yanlış gitmeye başladığı yer burası. Ne istediğim (ya da başka birinin ne istediği) ile ilgili olmamalı.
İşte MonoTouch'ın değerini belirlemeye nasıl devam edeceğim - Açıkçası objektif olamıyorum, ama bunun oldukça zealotry içermediğini düşünüyorum:
Bu eğlence veya iş için mi? Bu alanda danışmanlık almak istiyorsanız, 399 $ 'ınızı çok hızlı bir şekilde geri alabilirsiniz.
Platformu içten dışa öğrenmek mi istiyorsunuz yoksa "sadece" bunun için uygulamalar mı yazmak istiyorsunuz?
Farklı bir dev yığını kullanmanın eğlenceyi sizin için çıkarmasına yetecek kadar Net'i seviyor musunuz? Yine, her iki yığını da (Apple ve Mono) seviyorum, ama benim için MonoTouch deneyimi çok daha eğlenceli hale getiriyor. Apple'ın araçlarını kullanmayı bırakmadım, ancak bunun nedeni esasen her iki yığının da tadını çıkarmam . İPhone'u ve .Net'i seviyorum. Bu durumda, benim için MonoTouch beyinsizdi.
C ile çalışmak rahat mı? Ben Objective-C ortalama yok ama C - Objective-C, çünkü bu konularda olduğu işaretçileri size içini karartmak eğer C. adlı, fantezi, dost OO versiyonu, ama, MonoTouch arkadaşın güzel bir. Ve sen bu durumda size bir dev ödlek olduğunu düşünüyorum Muhaliflere dinlemiyorum yok işaretçiler (veya C, vs.) gibi. IBM ROM BIOS Pocket Reference'ın bir kopyasıyla dolaşıyordum ve montaj yazarken ve bilgisayarımı komik video modlarına zorlarken ve onlar için kendi yazı tipi oluşturma bitlerimi ve (kuşkusuz değersiz) pencereleme sistemlerini yazarken, QuickBasic geliştiricilerinin wusses olduğunu düşünüyorum. Ben olduQuickBasic geliştiricisi (diğerlerine ek olarak). Asla nerd machismo'ya vermeyin. C'yi sevmiyorsanız ve işaretçileri sevmiyorsanız ve manuel bellek yönetiminden mümkün olduğunca uzak kalmak istiyorsanız (ve adil olmak gerekirse, ObjC'de hiç de fena değil). .. MonoTouch. Ve bunun için hiç bir şey yapma.
Kullanıcıları veya işletmeleri hedeflemek ister misiniz? Benim için çok önemli değil, ama Edge'de hala insanlar var ve gerçek şu ki: Apple'ın yığınını kullanıyorsanız çok daha küçük bir indirme paketi oluşturabilirsiniz. MonoTouch ile oynuyorum ve sıkıştırıldıktan sonra yaklaşık 2,7 MB'a inen iyi bir küçük uygulamam var (uygulamanızı dağıtım için gönderirken, fermuarlıyorsunuz - uygulamalar mağazadan indirildiğinde, yeniden sıkıştırılmış - yani uygulamanızın 10MB OTA sınırının altına girip girmeyeceğini çözerken, önce enayi sıkıştırın - MonoTouch ile hoş bir sürpriz olacaksınız). Ancak, MT mutluluğu bir yana, yarım meg ve neredeyse üç (örneğin), son kullanıcıları hedefliyorsanız sizin için önemli olabilecek bir şeydir. Kurumsal çalışmayı düşünüyorsanız, birkaç MB hiç önemli olmayacaktır. Ve, sadece net olmak gerekirse - yakında MT tabanlı bir uygulamayı mağazaya göndereceğim ve boyutla ilgili herhangi bir sorunum yok. Beni hiç rahatsız etmiyor. Ama bu endişelenecek bir şeyseEğer , daha sonra Apple'ın yığını bunu kazanır.
XML çalışıyor mu? MonoTouch. Dönemi.
Dize düzenleme? Tarih manipülasyonu? .Net'in mutfak lavabosu her şeyi ile alıştığımız bir milyon küçük şey daha var mı? MonoTouch.
Ağ hizmetleri? MonoTouch.
Sözdizimsel olarak, her ikisinin de avantajları vardır. Objective-C yazmanız gereken yerde daha ayrıntılı olma eğilimindedir . Kendinizi ObjC ile yazmak zorunda kalmayacağınız C # ile kod yazarken bulacaksınız, ancak her iki şekilde de gider. Bu konu bir kitabı doldurabilir. C # sözdizimini tercih ederim, ancak Objective-C'ye bu ilk dünya-ötesi tepkimi aştıktan sonra biraz keyif almayı öğrendim. Ben (o bunu tekrarlamak eğlenceli görüşmelerinde biraz yapmak olduğunu C # / Java / vb alıştığınız cihazlarý garip.), Ama gerçek şu ki bir Objective-C beni mutlu ediyor kalbimde nokta şeklinde olması.
Interface Builder'ı kullanmayı planlıyor musunuz? Çünkü, bu erken versiyonda bile, kendimi UI'larımı IB ile oluşturmak ve daha sonra kodda kullanmak için çok daha az iş yapıyor buluyorum. Bu, tüm adımların bir şeyler yapmanın Objective-C / IB tarzında eksik olduğu hissine kapılır ve bunun eminim çünkü tüm adımlar bir şeyler yapmanın Objective-C / IB tarzında eksiktir. Şimdiye kadar ve yeterince test ettiğimi sanmıyorum, ancak şimdiye kadar , MonoTouch ne kadar az iş yapmanız gerektiğinin galibi.
Yeni diller ve platformlar öğrenmek eğlenceli mi? Öyleyse, iPhone'un sunacağı çok şey var ve Apple'ın yığını sizi muhtemelen konfor alanınızdan çıkaracak - ki bu, bazı geliştiriciler için eğlenceli (Merhaba - Ben bu geliştiricilerden biriyim - şaka yapıyorum ve verdim Apple zor zamanlar geçirdi, ancak Apple'ın araçları aracılığıyla iPhone geliştirmeyi öğrenirken çok eğlendim).
Dikkate alınacak çok şey var. Değer çok soyut. Maliyetten ve buna değip değmeyeceğinden bahsedersek, cevap ilk mermi kalemime gelir: eğer bu iş içinse ve işi alabiliyorsanız, paranızı hemen geri alacaksınız.
Yani ... bu olabildiğince objektif. Bu, kendinize ne sorabileceğinizin kısa bir listesidir, ancak bu bir başlangıç noktasıdır.
Şahsen (nesnelliği bir anlığına bırakalım), ikisini de seviyorum ve kullanıyorum. Öncelikle Apple yığınını öğrendiğime sevindim. Apple'ın dünyasında yolumu zaten bildiğimde MonoTouch ile çalışmaya başlamak benim için daha kolaydı. Diğerlerinin söylediği gibi, hala CocoaTouch ile çalışacaksınız - sadece .Net-izled bir ortamda olacak.
Ama bundan daha fazlası var. MonoTouch kullanmayan insanlar orada durma eğilimindedir - "Bu bir sarıcı falan falan filan" - bu MonoTouch değil.
MonoTouch size CocoaTouch'ın neler sunduğuna erişmenizi sağlarken aynı zamanda (bir alt küme) neler sunabileceğinize de erişmenizi sağlar. ve bellek yönetimini tamamen unutamasanız da, güzel bir derece elde edersiniz.
Emin değilseniz, Apple'ın yığınını (ücretsiz) ve MonoTouch eval yığınını (ücretsiz) alın. Apple'ın dev programına katılıncaya kadar, her ikisi de sadece simülatöre karşı çalışır, ancak birini diğerini büyük ölçüde tercih edip etmediğinizi ve MonoTouch'ın sizin için 399 $ değerinde olup olmadığını anlamanıza yardımcı olmak için yeterlidir.
Ve zelotları dinlemeyin - korkuluk ettikleri teknolojiyi kullanmayanlar olma eğilimindedirler :)