Вот мой ответ как человека, который купил MonoTouch и использует его в качестве основы для всех своих приложений для iPhone.
Нет ярлыков. Вы должны знать Objective-C и CocoaTouch, прежде чем даже подумать о чем-то еще. Вы не можете взять MonoTouch и начать кодировать для телефона, не зная нативных вещей, просто этого не произойдет.
MonoTouch достаточно легко расширять / изменять по мере необходимости, если вы уже достаточно хорошо знаете CocoaTouch и ObjC. Так что идея о том, что нативные фреймворки могут измениться, оставив вас в пыли, не столь актуальна.
По своему опыту я обнаружил, что приложения MonoTouch работают медленнее, чем их собственные аналоги, но их недостаточно. Если это имеет значение, вы всегда можете написать эту часть приложения с нативным кодом, и, возможно, ObjC будет недостаточно быстрым, и вам захочется перейти на чистый C даже в нативном приложении.
MonoTouch принес мне серьезный прирост производительности: от возможности использовать гораздо менее лаконичный и болтливый язык до возможности использовать библиотеки, такие как Rhino Mocks и NUnit, из коробки.
MonoDevelop - отличная IDE в теории. Это также намного превосходит xcode, в теории. Это легкий, простой, очень простой в использовании, отличный intellisense и макрос, и делает управление проектом iPhone намного проще, чем xcode. Но ... это действительно глючит. Это настоящее падение.