Дело в том, что constraints удобны для использования только в IB. Если отрисовывать интерфейс полностью кодом, то проще реализовать старый добрый layoutSubviews. А уже IB vs программная отрисовка — это отдельная большая тема для рассуждений: в каких-то случаях лучше одно, в других — другое.
Когда добавят поддержку арма и релизных сборок — можно начинать пробовать. Кроме этого из списка в нашем проекте есть только MapKit. Ехидно посмеиваюсь над любителями IB, автолэйаутов и свифта :)
Хм, а как в тройке реализована защита от несанкционированной записи? Иными словами, если хитрый человек каким-либо образом разберет алгоритм пополнения (реверс, утечка информации, etc), то он теоретически сможет ездить бесплатно, ведь карта-то оффлайновая?
Тулза, бесспорно, полезная, но это отнюдь не статический анализатор, а очень даже инструмент для выявления рейсов в рантайме, причем с недетерминированным результатом (нельзя гарантировать, что если рейс есть, то эта тулза его обязательно найдет).
Лично меня в свифте уже один только восклицательный знак убивает. Как можно при описании методов использовать такой символ? Вообще, язык выглядит как движение в сторону JavaScripta, что лично я считаю неприемлемым.
Отличная идея сервиса, и количество камер поражает воображение. Еще хочу отметить очень хороший фреймрейт (визуально не увидел ни одной камеры с менее чем 25 FPS). Но вот интерфейс какой-то странный: почему по клику на камеру она добавляется в список вместо того, чтобы просто начать проигрывать видео с нее?
Я бы посоветовал использовать стандартную UIScrollView для свайпа, чтобы использовать замечательный метод делегата scrollViewWillEndDragging:withVelocity:targetContentOffset:. В таком случае, если использовать targetContentOffset для определения момента, когда свайп был достаточен для удаления, будет учитываться его скорость. Сейчас, чтобы совершить действие, нужно сделать слишком длинный жест.
Последние 3 слова в названии метода относятся к параметру.