Что значит обновление контента на айфоне. Обновление контента IPhone приложения

24 апреля 2010 в 21:22

Обновление контента IPhone приложения

  • Разработка под iOS

Многие мобильные приложения показывают пользователю контент с сервера, и этот контент можно показывать в онлайне и оффлайне. Работа в онлайне тривиальна - при определенном UI событии, приложение читает данные с сети и показывает их пользователю. Работа в оффлайне может быть гораздо интереснее - возможность работы с документами в метро и тп. Но работа вне сети приносит и проблемы: теперь необходимо проводить синхронизацию данных и этот процесс не должен блокировать интерфейс пользователя.

Элементы в исходном коде

- доступ к сетевым ресурсам
- обработка xml
- доступ к файловой системе
- работа с потоками

Требования к приложению

Приложение должно показывать текстовые файлы с сервера в режиме оффлаин. При каждом старте происходит синхронизация. При этом процесс обновления не должен блокировать работу пользователя с интерфейсом. Сам процесс обновления состоит из двух шагов:
1. Чтение списка файлов с сервера

Дизайн кода

Для управления всем процессом мы создадим класс UpdateManager, который будет управлять объектами «Updaters». На данный момент нам надо два «Updater"а»: один для чтения списка файлов и второй для работы с файлами. Для них определим единый фасад, что позволит расширять систему в будущем. Этот фасад будет иметь как минимум один метод - start - который будет вызваться UpdateManager"ом для каждого Updater"а по-очереди.

Мы заранее знаем, что будем использовать асинхронное соединение для доступа к сети. Это вынуждает нас явно продолжать работу UpdateManager"а после завершения работы каждого Updater"а.
Объявим два протокола:

@protocol UpdaterProtocol -(void)startUpdate:(id) manager;

UpdateManagerProtocol объявляет один метод, который вызывается каждым Updater"ом по завершению работы.

Наши классы выглядит так:

Все Updater"ы работают одинаково:

XMLListUpdater выполняет шаги:
1. Читает xml файл с сервера в буфер
2. Разбирает xml
3. Добавляет каждый файл в очередь

FileUpdater выполняет шаги:
1. Получает следующий файл из очереди
2. Проверяет, если файл уже существует на диске
3. Скачивает файл
4. Повторяет процесс, если очередь не пуста

Исходный код

Для начала напишем код, без упоминания потоков.

UpdateManager.h объявляет один статический метод для старта всего процесса. В конструкторе (init) инстанса происходит создание всех Updater"ов, добавление их в очередь и вызов одного за другим.

Так как каждый Updater читает данные с сети, то общий код можно вынести в отдельный класс - NetworkClient. Он имплементирует UpdaterProtocol вместе с методом для запуска асинхронного соединения (startNetworkCall).

Первый Updater - XMLFileUpdater. При старте, он читает xml в память с заранее известного адреса. По завершению, XMLListUpdater создает xml парсер для обработки данных. Каждый файл из списка добавляется в очередь для обработки следующим Updater"ом.

Второй шаг обновления контента FilesUpdater - он должен прочитать очередь и скачать каждый отсутствующий файл.

Теперь мы можем стартовать процесс UpdateManager, при загрузке главного view - и приложение синхронизирует контент.

View содержит только одну кнопку, без каких либо действий. При обновлении контента интерфейс будет блокироваться и нажатие на кнопку это выявит. Позже мы избавимся от блокировки добавив новый поток.

Добавление отдельного потока

Так как у нас уже есть весь код работы с данными, то нам остается запустить отдельный поток и в нем выполнить обновление.
Добавим новый метод в UpdateManager - startInThread. С простыми шагами:
1. Создать NSAutoReleasePool
2. Запустить процесс обновления
3. Запустить RunLoop
4. Освободить pool

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

RunLoop более интересная штука. Если закомментировать RunLoop и запустить приложение, то вы увидите сообщение о начале сетевого соединения, но остальные события - как прием данных из сети, завершение соединения - не произойдут. Проблема в раннем завершении потока - который заканчивается при выходе из метода «startInThread». Поэтому мы запускаем RunLoop для того чтобы поток оставался активным.

Теперь инициализацию UpdateManager можно передвинуть в main.m.

Замечания по исходному коду

UpdateManager.h содержит директивы компиляции - WORK_IN_SEPARATE_THREAD. Если она установлена в ноль, то новый поток не будет создаваться и UI будет блокироваться. При единице, обновление будет происходить в отдельном потоке

Исходный текст проекта.

Если вы думали, что батарея iPad или iPhone просто не способна разряжаться еще быстрее, перейдите на iOS 7. Одна из главных претензий к новой операционной системе связана именно с тем, что та слишком активно сажает батарею. К счастью, есть способы помешать этому и подарить себе несколько дополнительных часов работы с устройством. Представляем вашему вниманию ряд маленьких хитростей, которые позволят девайсам на iOS работать дольше. Суть их состоит в том, чтобы найти и обезвредить наиболее энергоемкие процессы и приложения.

1. Обновление контента

Пожалуй, вот один из главных врагов долгой работы батареи — новая функция под названием «Обновление контента», которая по умолчанию включена в iOS 7. Из-за этого в фоновом режиме используются службы геолокации и обновляется контент программ всегда, когда работает Wi-Fi или сотовая связь (в зависимости от ваших настроек). iOS честно предупреждает, что выключение данной функции позволит продлить время работы батареи, но, чтобы увидеть надпись об этом, необходимо сначала зайти в Настройки > Основные > Обновление контента. У вас есть выбор: отключить обновления полностью или для отдельных программ.

2. Службы геолокации

Многие приложения — от карт Google и Твиттера до камеры iOS — постоянно отслеживают ваши координаты. Службы геолокации можно отключить полностью (Настройки > Приватность > Службы геолокации) или для выбранных приложений. Рекомендуем второй вариант, так как в некоторых случаях отслеживание местоположения может быть крайне полезно, например для поиска потерянного аппарата.

Есть еще кое-что — пункт «Системные службы» внизу списка приложений, для которых можно отключить службы геолокации. Он отвечает за ряд возможностей, активно поедающих заряд, вроде «Популярное рядом» и «Часто посещаемые места».

3. Параллакс

Apple украсила свою новую операционку разного рода анимацией и функцией «Параллакс», из-за которой рабочий стол выглядит объемным и его обои движутся за иконками приложений. Все это требует лишней энергии. Кроме того, сразу после обновления системы некоторые пользователи жаловались, что от нововведения их укачивает. В общем, если вы готовы отказаться от параллакса, вот ваш путь: Настройки > Основные > Универсальный доступ > Уменьшение движения.

4. Автоматическое обновление

iOS 7 позволяет автоматически загружать и устанавливать обновления приложений — без посещения App Store. Это удобно, но только не в тот момент, когда заряд батареи стремится к нулю. Если зарядка у вас не всегда под рукой, возможно, есть смысл отключить эту опцию (Настройки > iTunes, App Store > Автоматические загрузки).

5. AirDrop

AirDrop позволяет делиться файлами с другими пользователями, находящимися в той же самой сети. Если это вам не нужно, пожалейте аккумулятор и отключите соответствующий пункт в меню: зайдите в центр управления, «смахнув» пальцем вверх по экрану, и нажмите «Выключить» в пункте AirDrop.

6. Spotlight

Внутренний поисковый механизм Spotlight весьма удобен и получить доступ к нему можно с любого экрана, «смахнув» пальцем вниз, однако из-за постоянного процесса индексации он расходует заряд. Если вы готовы временно урезать функциональность поиска, идите в Настройки > Основные > Поиск Spotlight и отключайте то, что вам не надо, вроде поиска по подкастам или событиям.

7. Автоматические настройки яркости экрана

Наконец, старый добрый проверенный метод, который на перестал быть актуальным и с выходом iOS. Если вы уже отключили все лишнее, идите в Настройки > Обои и яркость, отключайте «Автояркость» и вручную снижайте яркость экрана, смещая бегунок влево. Это уж точно поможет.

По материалам Mashable.com.

Всем доброго времени суток. Замечали, что у вас пропадают деньги со счета? Возможно ваш смартфон «протягивает» обновления. Давайте же отключим их!

Первый способ – отключение обновлений в Play Market

  • Заходим в меню своего устройства и ищем значок Google Play или Play Market, как он назывался раньше.

  • В самой программе «магазина» нужно зайти в меню, снимаем «птичку» напротив надписи «Уведомления». Переходим к пункту «Автообновление приложений» и в выпадающем меню выбираем «Обновление только через WI-FI».

Вот и все, после таких манипуляций ваши приложения будут обновляться, только если устройство подключено к стабильному соединению WI-FI. Это сэкономит ваши деньги, ведь обновлять игру весом до гигабайта может быть очень затратно.

Способ два - отключение синхронизации

Что делать, если вы хотите полностью отключить любые обновления (не только приложений Google Play) или вообще избавится от любого контакта вашего смартфона с всемирной паутиной?

  • Зайдите в настройки устройства и найдите пункт «Аккаунты и синхронизация».

  • Снимите «птичку» с пункта «Фоновый режим» (на некоторых устройствах название данного пункта может отличаться).

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

Отключение обновления прошивки на Android смартфонах

  • Переходим в настройки – «Об устройстве».

  • Выбираем подпункт «Обновление ПО».

  • Теперь перед вами появится окно настройки обновления программного обеспечения. Чтобы Android не обновлялся автоматически нужно снять галочку с логичным названием « Автообновление».

Вот и все, теперь устройство не будет проверять наличие новой версии программного обеспечения для вашего устройства. Также в том же меню (под пунктом «Автообновление») можно включить функцию «Только WI-FI», которая позволит вам разрешить автоматическое обновление версии системы, но только при условии наличия проверенного и стабильного соединения со скоростным интернетом.

Если понадобиться, то статья о том, как обновить Андроид.

iOS 8 вызывает весьма неоднозначную реакцию пользователей. Даже если закрыть глаза на , в ней достаточно новых функций, которые для многих оказались совершенно ненужными. Popular Mechanics составили список возможностей iOS-устройств, которые вам, вполне вероятно, захочется отключить. Мы расскажем, как это сделать.

Предиктивный ввод
Все, кому хоть раз доводилось писать более-менее длинный текст на английском с использованием новой клавиатуры в iOS 8, наверняка оценили удобство предиктивного ввода и ждут его появления для русскоязычной клавиатуры. Однако, как выяснилось, если часто вводить свой пароль, предиктивная клавиатура однажды может предложить вам его в открытом виде, что несколько небезопасно. Зайдите в настройки, затем Основные, Клавиатура, и отключите предиктивный набор. Другие раздражающие вас функции клавиатуры отключаются в том же меню.

Airdrop
Фотографии и различную другую информацию мы отправляем часто. А как часто мы используем для этого Airdrop? Лично я за все время его существования на iOS использовал его дважды. Отключите его, и это, может, немного поможет сберечь заряд аккумулятора. Делается это просто. Откройте Центр управления, проведя пальцем снизу вверх, нажмите на Airdrop, и отключите его.

Фоновые обновления
Автоматическое обновление приложений из App Store – определенно удобная функция, но она может сработать тогда, когда мы этого не хотим. Есть вероятность, что не все приложения нам захочется обновлять. Это также негативно влияет на время автономной работы устройства. В разделе настроек « , App Store» вы можете отключить автоматические обновления и обновлять программы вручную тогда, когда вам это будет удобнее всего.

Голосовые сообщения
iMessage в iOS 8 позволяет делиться с собеседником не только текстом, но и своим голосом. Эти сообщения автоматически удаляются, чтобы ваша беседа не отнимала слишком много памяти на устройстве, но если вы находите эти записи ценными, просто измените время удаления аудиосообщений в разделе настроек «Сообщения».

Параллакс
Замечали движение иконок и обоев на домашнем экране iPhone, когда вы меняете угол наклона? Эта функция появилась еще в iOS 7, но смысла в ней, как вы можете догадываться, немного. Ко всему прочему, ее отключение может положительно сказаться на производительности и времени автономной работы. Если вы хотите отключить этот эффект, включите уменьшение движения в меню «Универсальный доступ» раздела настроек «Основные».

Службы геолокации
Наверняка вы обратили внимание на то, что многие приложения желают знать о вашем местоположении. А скольким из них действительно это полезно? Все бы ничего, но определение геолокации весьма существенно отнимает заряд аккумулятора, поэтому список приложений, которые могут запрашивать эту информацию, стоило бы сократить. Сделать это можно в меню настроек «Конфиденциальность», в разделе «Службы геолокации».

Обновление контента
Еще один совет по увеличению времени автономной работы. Отключив фоновое обновление контента в меню настроек «Основные» для некоторых или для всех приложений, вы поможете своему iPhone жить дольше. Это рекомендуется сделать для некоторых особенно прожорливых приложений вроде Facebook.

Handoff
Эта функция позволяет запустить программу на одном устройстве и продолжить ей пользоваться на другом. Handoff — весьма полезный и мощный инструмент для тех, кто выбрал для себя экосистему устройств от Apple. Но что делать тем, кто владеет лишь одним устройством, например, iPhone или iPad? Просто выключить эту бесполезную для себя функцию в меню настроек «Основные», открыв раздел «Handoff и предлагаемое ПО».

Spotlight
Поиск Spotlight в iOS 8 был усовершенствован и теперь способен выдать гораздо больше информации. Однако, если какие-то данные в поисковой выдаче вам совершенно не нужны, вы можете настроить Spotlight исходя из собственных к нему требований. Поиск настраивается все в том же разделе настроек «Основные».

Уведомления
Далеко не все уведомления от установленных приложений являются полезными. Некоторые же просто начинают надоедать. Ненужные уведомления можно отключить в одноименном разделе настроек. Вы также можете настроить виджеты в центре уведомлений, не выходя из него, нажав кнопку «Изменить».