У обоих вариантов есть свои плюсы и минусы.
На Swift можно комфортно писать только под экосистему Apple. Xamarin же позволяет сделать кроссплатформенное приложение, но только с элементарным интерфейсом. Шаг в сторону от предложенных вариантов - и приложение начинает обрастать уродливыми проверками с платформозависимым кодом. Кроме того, бывают случаи, когда Apple выпускает обновление iOS, которое ломает совместимость с Xamarin и пока в Microsoft не выпустят патч, ваше приложение работать на новой операционке не будет.
Так что всё зависит от ваших предпочтений. Если знаете C# - то порог вхождения в Xamarin однозначно ниже. Но более применимой на практике технологией мне все равно кажется Swift.
Кроме того, для публикации приложений под iOS в обоих случаях потребуется физический Mac (или обходные пути для его получения) и платная лицензия разработчика.