Статьи

Оптимизация производительности приложений с новой версией для iOS

Новая Relic получила имя и известность как решение номер один для мониторинга производительности приложений. В нем рассказывается, что вам нужно знать о ваших приложениях, чтобы повысить производительность за счет сокращения времени отклика и увеличения пропускной способности приложений. Это поможет вам найти узкие места и контролировать инфраструктуру вашего сервера.

Тем не менее, вы читаете эту статью, потому что вы заинтересованы в мобильном телефоне. Не волнуйтесь, New Relic также прикрывает вашу спину. Новый Relic Mobile позволяет отслеживать производительность приложений для iOS и Android. Алан недавно написал о New Relic для Android, поэтому я предлагаю вам ознакомиться с его руководством, если вы заинтересованы в Android.

В этом уроке я покажу вам, как интегрировать New Relic в приложение для iOS. Вы узнаете, как легко настроить New Relic и что он может сделать для вашего iOS-приложения с точки зрения производительности и обеспечения того, чтобы ваши пользователи получали максимальную отдачу от использования вашего продукта.

Если вы считаете, что мониторинг производительности приложений полезен только в том случае, если вы поддерживаете крупномасштабное веб-приложение, такое как Facebook или Twitter, вас ждет сюрприз. Мониторинг производительности приложений всегда полезен, если вы заботитесь о пользовательском опыте вашего продукта и его пользователей.

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

Не так давно я разработал и поддерживал приложение для iPad, которое интегрировалось с Aperture и iPhoto. Несмотря на то, что концепция была довольно простой, я часто был озадачен тем, как люди использовали мое приложение. Поверьте мне, когда я скажу, что ваше приложение будет использоваться такими способами, о которых вы не ожидали или даже не думали. Это нормально и совершенно нормально, но убедитесь, что у вас есть решение, которое сообщит вам, что вам нужно знать о работоспособности и производительности вашего приложения, чтобы вы могли оптимизировать его для случаев использования, которые вы не учитывали при разработке.

Другое распространенное заблуждение заключается в том, что мобильные устройства работают молниеносно, и у всех есть доступ к невероятно быстрому соединению LTE. Боюсь, правда не так радужна. Новая Relic позволяет отслеживать запросы API, которые делает ваше приложение, сколько времени они занимают, и как это влияет на пользовательский опыт вашего приложения.

Если ваше приложение извлекает данные из API и этот запрос занимает несколько секунд, тогда ваши пользователи могут отказаться от вашего приложения во второй или третий раз, когда они его используют. Люди не любят ждать, и они ожидают, что все будет быстро.

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

Начало работы с New Relic бесплатно. Перейдите на сайт New Relic и создайте учетную запись, чтобы вы могли следить за ней. В новой учетной записи Relic выберите вкладку « Мобильные » слева и выберите iOS из списка платформ.

Дайте вашему приложению имя и нажмите « Продолжить», чтобы начать интеграцию New Relic в ваше приложение iOS.

Следующим шагом является интеграция New Relic SDK в ваше приложение iOS. Чтобы дать вам преимущество, я создал пример приложения, которое вы можете использовать, которое вы можете найти в исходных файлах этого руководства. Пример приложения — это простой клиент погоды, который я создал для другого урока . Это отлично подходит для New Relic Mobile.

У вас есть два варианта установки New Relic SDK, вручную или через CocoaPods . Поскольку пример приложения уже использует CocoaPods, я буду использовать CocoaPods для установки New Relic SDK.

Откройте Podfile проекта в корне проекта и обновите список зависимостей, как показано ниже.

1
2
3
4
5
6
platform :ios, ‘6.0’
 
pod ‘ViewDeck’, ‘~> 2.2.11’
pod ‘AFNetworking’, ‘~> 1.2.1’
pod ‘SVProgressHUD’, ‘~> 0.9.0’
pod ‘NewRelicAgent’, ‘~> 3.289’

Чтобы установить New Relic SDK, откройте окно терминала, перейдите к папке Podfile проекта и запустите pod update . Прелесть CocoaPods в том, что он также связывает проект с необходимыми фреймворками и библиотеками. Новый Relic SDK зависит от базовых структур телефонии и конфигурации системы, а также от библиотеки libz . Если вы используете CocoaPods, вам не нужно беспокоиться об этом.

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

Если вы новичок в CocoaPods, потратьте несколько минут, чтобы прочитать мой учебник по CocoaPods . CocoaPods стал де-факто инструментом управления зависимостями для разработки под iOS и OS X.

После установки New Relic SDK интегрировать New Relic просто. Откройте файл скомпилированного заголовка вашего проекта и добавьте следующую инструкцию импорта.

1
#import <NewRelicAgent/NewRelic.h>

Файл скомпилированного заголовка находится в файле поддержки и заканчивается в -Prefix.pch . Например, предварительно скомпилированный заголовочный файл примера приложения называется Rain-Prefix.pch .

Чтобы настроить New Relic, откройте делегат приложения и добавьте в приложение следующий фрагмент application:didFinishLaunchingWithOptions: Обязательно передайте свой собственный токен приложения в качестве аргумента startWithApplicationToken:

1
[NewRelicAgent startWithApplicationToken:@»XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX»];

Вы можете найти токен вашего приложения на панели инструментов New Relic.

Образец приложения использует Forecast для получения данных о погоде, поэтому замените ключ API в MTConstants.m своим собственным ключом API. Вы можете создать бесплатную учетную запись Forecast на веб-сайте Forecast .

1
2
3
#pragma mark —
#pragma mark Forecast API
NSString * const MTForecastAPIKey = @»XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX»;

После того, как вы успешно настроили New Relic для своего приложения iOS, оно автоматически начнет отправку данных на серверы New Relic. Объем данных, которые SDK собирает для вас, поразителен, а уровень детализации может быть даже ошеломляющим. Давайте на минутку посмотрим, какие данные New Relic собрала для нашего погодного приложения.

Войдите в свою учетную запись New Relic и выберите вкладку « Мобильные » слева, чтобы увидеть список мобильных приложений, за которыми следит New Relic. Этот список сразу дает вам представление о состоянии вашего приложения, показывая количество активных сеансов, производительность сети и возможные проблемы, обнаруженные New Relic. Нажмите « Дождь» для дальнейшего изучения данных, которые New Relic собирает для нас.

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

Вы просматриваете живые данные, но вы можете настроить шкалу времени в правом верхнем углу страницы для просмотра исторических данных.

Хотя производительность сети важна для большинства мобильных приложений, данные о производительности, которые собирает New Relic, этим не ограничиваются. Если вы откроете вкладку « Взаимодействия » вверху, вы увидите, сколько времени занимает определенное взаимодействие, и, что более важно, New Relic удобно показывает, какие взаимодействия являются самыми медленными.

Я тестировал Rain на старом iPhone 3GS под управлением iOS 6.1.3, и вас не должно удивлять то, что New Relic без усилий показывает нам, что наше приложение работает медленно на этом устройстве и на iOS 6.

Конечно, вам решать, как вы используете данные, которые New Relic собирает для вас. IPhone 3GS был представлен в 2009 году, и iOS 7 превысила 80% рынка, поэтому, возможно, не стоит настраивать ваше приложение для повышения производительности на iPhone 3GS под управлением iOS 6. Однако важно понимать, что это тоже ценная информация и это позволяет вам принимать соответствующие решения с точки зрения развития и направленности.

В дополнение к сбору данных о производительности приложений, New Relic также собирает информацию об использовании приложений, такую ​​как количество активных пользователей, информация об устройстве и т. Д. New Relic — это гораздо больше, чем решение для мониторинга производительности приложений.

New Relic — отличное решение для мониторинга производительности сетевых операций на мобильных устройствах. Он показывает, какие именно запросы делает ваше приложение, сколько времени они занимают, и появляются ли какие-либо ошибки.

Это может показаться бесполезным, если у вас нет собственного бэкенда, но оно помогает решить, какие запросы отправляются в какой момент, чтобы сделать ваше приложение более быстрым и отзывчивым. Разработчики часто ошибочно полагают, что ничего не может быть сделано, если приложение использует данные третьих сторон. Это просто неправда, и New Relic поможет вам избежать подобных проблем.

Оповещения являются одной из самых мощных и полезных функций New Relic. На вкладке « Настройки » вы можете установить одно или несколько пользовательских предупреждений, что особенно полезно, если ваше приложение подключается к бэкэнду, который вы поддерживаете и контролируете.

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

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

New Relic является ценным сервисом для каждого приложения iOS, которое имеет некоторую сложность. Люди загружают множество приложений каждый день, а это значит, что они без колебаний бросают ваше приложение ради следующей лучшей вещи. Поэтому важно убедиться, что ваше приложение работает хорошо, чтобы ваши пользователи были счастливыми пользователями. New Relic поможет вам в этом.