Согласен с тем, что с ручным layout будет работать быстрее. Доклад видел, статью читал. Ремарка была по поводу поддержки кода, стоит ли овчинка выделки?!
Надо еще привести цифры по времени на поддержку и написания ручного layout. На счет фпс — надо мерять и смотреть. В большинстве случаев неоправданно писать ручной layout. Хотя скайпу с его тормозами он бы явно не помешал.
Можно лейаут расчитывать один раз для всех ячеек перед reloadData с использованием Autolayout. И все тоже прекрасно летает. А расчет ручного лейаута — сущий ад. И правильно упоминалось в докладе, что тормоза хорошо проявляются при большом количетве ячеек. Если их до сотни, то вряд ли можно ощутить существенную разницу.
Я стараюсь держать все .m файлы до 100 строк. Максимум 150.
Хотел бы посмотреть как организовываете контроллеры. Сильно маленькие классы — это уже другая крайность. Я стараюсь, чтобы в классе было не больше 600 строк. А #pragma mark — полезная вещь.
Еще добавил бы папку Network для реквестов и класса для работы с сетью. Аналогично папка Database. Также удобна отдельная папка для категорий. Базовые классы модели храню в папке Models, для вьюконтроллеров — в папке для для вьюконтроллера. Локализационные файлы храню в папке Resources.
Ну неудобно каждый раз для тестирования заливать билд в itunes connect. Да и проблему с отсутствием SDK для новых команд до сих пор не полечили. Пока от покупки apple testflight, как сервис, проиграл.
Я думаю что реалтайм и постоянная передача данных — разные вещи. В нашем приложении мы используем вебсокет, как раз для реалтайма. А передача данных происходит всего несколько раз в минуту. То есть по расходу батареи мы в этом случае выигрываем, так как не дергаем сервер каждые 5-10 секунд для синхронизации.
Простите, а на чем основано ваше предположение, что вебсокет дорог для батареи? Насколько я знаю, то батарею ест не поддержка постоянного соединения, а количество данных передаваемых через сеть.
А зачем было блочить swipe-to-back?
Хотел бы посмотреть как организовываете контроллеры. Сильно маленькие классы — это уже другая крайность. Я стараюсь, чтобы в классе было не больше 600 строк. А #pragma mark — полезная вещь.
Приложение может находится в 5 состояниях: Not running, Inactive, Active, Background and Suspended.
Если под закрытым имелось в виду «Not running», то в этом состоянии iBeacon не работают.
As we talked about in the What's New with Multitasking session at WWDC in June, this is changing for iOS 7. When a user kills an app in iOS 7, the OS will not relaunch it for any reason. Dead means dead. So what you are seeing is expected on iOS 7. The only way your app will resume getting location manager delegate callbacks is if the user relaunches the app explicitly.