Советы по созданию надежного приложения для iPhone с использованием онлайн-сервисов - PullRequest
1 голос
/ 08 февраля 2011

Я смотрел на какое-то очень отличное приложение для iPhone, например Twitter. Это очень надежно, я не могу вывести приложение из строя, что бы я ни делал.

Когда я пытаюсь его создать, у меня всегда возникают сбои, когда что-то не так, например, нет интернета, неправильных паролей и т. Д. Особенно я замечаю, что мое приложение падает, когда я слишком быстро переключаюсь между панелями вкладок (когда одна из них ожидает например, для ответа с сервера Twitter). Как мне решить эту проблему?

Есть ли какие-нибудь советы по созданию приложений, которые никогда не ломаются, например, Twitter для iPhone?

Ответы [ 3 ]

3 голосов
/ 08 февраля 2011

Сбои, как правило, происходят по одной из двух причин:

  1. Вы ссылаетесь на освобожденный объект
  2. Вы превысили объем памяти, который вам разрешено использовать, из-за утечек, не из-за отложенной загрузки или просто из-за плохого дизайна.

Что касается подключения к Интернету, этот вопрос StackOverflow охватывает ваши базы.

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

2 голосов
/ 08 февраля 2011

Я написал такое приложение (приложение для покупок, которое использует сеть для всего).Вот несколько советов:

  • Реализация достижимости, чтобы вы знали, когда сеть есть (и продолжайте проверять ее)
  • Запускать весь доступ к сети асинхронно, чтобы приложение не зависало, потоковая сетькогда вы можете.
  • Отправлять и получать наименьшее количество данных за запрос.Например, в моем приложении для покупок я получаю только 50 товаров за поиск, только с SKU, описанием и ценой.Используйте JSON.
  • В оба конца - запрашивайте сетевые данные - как можно реже и не чаще одного раза на экран.Если вы можете использовать данные, хранящиеся в памяти, сделайте это.
  • Ленивая загрузка изображений
  • Отмените все сетевые подключения как можно скорее.Как только вкладка изменится, уничтожьте любой доступный сетевой доступ.
  • Кэш, кэш, кэш.Всегда быстрее получать данные локально.

Надеюсь, это поможет.

0 голосов
/ 08 февраля 2011

Одним из больших отличий между отличными сетевыми приложениями и ужасными сетевыми приложениями является обработка задержки в сети. Я не могу вынести приложения, в которых пользовательский интерфейс останавливается или прерывается, когда данные запрашиваются из сети, или когда весь интерфейс часто блокируется индикатором активности. Я имею тенденцию выходить и удалять эти типы приложений прямо сейчас. Иногда не совсем очевидно, как разрешить пользователю продолжать взаимодействие с приложением, когда от сети требуются некоторые данные, но отличительной чертой отличного дизайна является то, что вы заранее обдумываете эти проблемы. Действительно, эти длительные показатели активности срыва являются большим провалом! в моей книге.

Я сам пишу приложение для работы с сетевыми данными и реализую действительно простой одноэлементный класс для кэширования изображений URL-адресов и «ленивый» подкласс UIImageView, который загружает изображения в фоновом режиме с помощью NSOperationQueue. приложение работает гладко, как стекло:).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...