Определяем местоположение в симуляторе

Когда нет желаниявозможности тестировать на девайсе, а работать с геолокацей нужно, можно воспользоваться GPX-POI. Создаем файл .gpx, добаляем его в проект и в настройках схемы (Run -> Options) выбираем его из списка.

Проверка интерфейса на устойчивость к локализации

Заходим в “Edit scheme”, дальше в “Run”, далее в “Arguments” и добавляем в “Arguments Passed On Launch”:

-NSDoubleLocalizedStrings YES

Таким образом можно быстро с эмулировать длинные немецкие или русские слова и проверить, чтобы кнопки и лейблы не заезжали друг на друга.

Pro Tip: Scheme Editor можно также открыть след. образом: удерживая option нажать на Run.

Переход на Auto Layout

Буквально заставлял себя исследовать Auto Layout в Xcode. Понимаю что это необратимо, поэтому лучше раньше, чем потом жалеть.

Перевел приложение над котором сейчас тружусь полностью. Это совсем не весело. Как только речь заходит о сложном интерфейсе тратил больше часа на один экран. Кода действительно не пишешь, все, как всегда “просто работает”, но в какой-то момент был готов плюнуть и откатить все назад. Самое сложное перестроить голову и перестать думать фреймами. В любом случае опыт бесценный.

 

Вот книга, которая сильно помогла: iOS Auto Layout Demystified

(ссылка на Амазон, но можно вбить в гугловом поиске и добавить “pdf”)

 

Также очень советую обратить внимание вот на эти видео:
WWDC 2012. Session 232. Auto layout by example

WWDC 2012. Session 228. Best practices for mastering auto layout

WWDC 2013. Session 406. Taking Control of Auto Layout in Xcode 5

Константы для контроллеров в сториборд

Joris Kluivers придумал отличное способ побороть опечатки в названии вью контроллеров и сопутствующую ошибку:

has no segue with identifier 'openPreview'
  • Загружаем питоновский скрипт и кладем его в новую папку Scripts в корне проекта.
  • Меняем в скрипте PREFIX = “jbw” на тот который вам больше подходит.
  • Открываем проект и прописываем все идентификаторы для segue и вью контроллеров.
  • Добавляем Run Script в Build Phases и настраиваем все как на скриншоте:

  • После того как скрипт отработает, появятся два файла (JBWStroyboardIdentifiers.h /.m), которые нужно прописать в префикс файле проекта (.pch)

Теперь больше не будет проблем с опечатками, т.к. начнет работать автозаполение.

Сколько стоит сделать мобильное приложение?

На стандартный вопрос “а сколько будет стоить сделать?” теперь знаю как буду отвечать.

Очень советую почитать эту и эту статью людям, нанимающим мобильных разработчиков. Все советы очень дельные и я сам им придерживаюсь.