Статьи

Приложения на базе IBM Worklight на базе iOS для Objective-C

IBM MobileFirst Foundation (также известный как IBM Worklight)  — это промежуточное решение для разработки мобильных приложений. В стандартной комплектации Worklight обеспечивает безопасность и аутентификацию, управление устройствами, зашифрованное хранилище, операционную аналитику, простые межплатформенные push-уведомления, удаленную регистрацию, доступ к данным и многое другое …

Исторически сложилось так, что большинство людей считают, что Worklight предназначен только для создания гибридных мобильных приложений (на основе HTML). Хотя это один из мощных рабочих процессов, которые позволяет Worklight, он также является общепризнанным «верхушкой айсберга». Worklight делает гораздо больше, чем просто обеспечивает основу для безопасных гибридных приложений. Worklight также обеспечивает надежную основу для собственных приложений и может быть легко включен в любое существующее (или новое) собственное приложение.

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

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

При желании вы можете использовать Worklight IDE — набор инструментов для разработчиков, созданный на основе среды разработки Eclipse . Если вы не хотите использовать Eclipse, это тоже нормально — Worklight можно установить и настроить с помощью интерфейса командной строки Worklight (CLI), и вы можете использовать любые инструменты разработчика, которые вы хотели бы создавать для своих приложений. Хотите привязать к Xcode? Нет проблем. Я буду использовать Worklight CLI для настройки среды разработки в этой серии.

Настройка сервера Worklight

Сервер Worklight является основой для предоставления функций Worklight. Для управления приложениями, удаленной регистрации, оперативной и сетевой аналитики и всех функций Worklight требуется сервер, поэтому первое, что вам нужно сделать, это настроить сервер для нашей среды. Посмотрите следующее видео, которое поможет вам настроить сервер / проект Worklight с помощью CLI.

Перво-наперво, вы должны запустить сервер Worklight. Если вы еще не настроили сервер Worklight, выполните команду create-server, чтобы выполнить первоначальную настройку — ее нужно запускать только один раз.

wl create-server

Теперь, когда сервер настроен, нам нужно создать проект Worklight. Для этого пошагового руководства я просто назову его «MyWorklightServer»:

wl create MyWorklightServer

Затем перейдите во вновь созданный каталог проекта и начните его.

cd MyWorklightServer
wl start

После запуска сервера добавьте платформу iOS:

wl add api

Вам будет предложено ввести имя API. Это может быть что угодно, но вы, вероятно, должны дать ему осмысленное имя, которое определяет, для чего будет использоваться API. В этом пошаговом руководстве я указываю имя «MyiOSNativeAPI».

01-Worklight-CLI

Далее вам будет предложено выбрать платформу, выберите «iOS»

Затем создайте проект, а затем разверните его на сервере:

wl build
wl deploy

Затем запустите консоль Worklight, чтобы увидеть, что проект был развернут и создан собственный API. Консоль запустится в системном веб-браузере.

wl console

02-Worklight-консоли


Консоль Worklight

Обязательно ознакомьтесь с документацией Worklight CLI для получения полной информации о командах CLI.

Интеграция XCode

Затем нам нужно настроить проект Xcode для подключения к вновь созданному серверу Worklight. Если вы добавляете Worklight в новый проект XCode или существующий проект XCode, подготовительные шаги будут такими же:

  1. Добавьте файлы Worklight в ваш проект Xcode
  2. Добавить каркасные зависимости
  3. Добавьте флаг компоновщика -ObjC

В следующем видео рассказывается о настройке вашего проекта Xcode и подключении к серверу Worklight (о чем мы поговорим далее):

В навигаторе проекта XCode создайте папку / группу для файлов Worklight, затем щелкните правой кнопкой мыши или нажмите CTRL и выберите «Добавить файлы в {ваш проект}»…

03-адд-файлы

Затем перейдите к вновь созданной папке MyiOSNativeAPI, выберите файл worklight.plist и папку WorklightAPI и нажмите кнопку «Добавить».

04-адд-файлы-2

После того, как мы добавили файлы в наш проект XCode, нам нужно связать необходимые зависимости фреймворка / библиотеки :

  • CoreData.framework
  • CoreLocation.framework
  • MobileCoreServices.framework
  • Security.framework
  • SystemConfiguration.framework
  • libstdc ++. 6.dylib
  • libz.dylib

Затем в настройках сборки проекта Xcode найдите «Другие флаги компоновщика» и добавьте следующий флаг компоновщика: «-ObjC».

05-линкер-флаг

Если вам нужны дополнительные подробности, не пропустите это учебное / стартовое приложение от Карлоса Сантаныhttps://github.com/csantanapr/wl-starter-ios-app

Подключение к серверу Worklight

Подключение к серверу Worklight — это всего лишь несколько простых строк кода. Вам нужно только реализовать протокол WLDelegate и вызвать wlConnectWithDelegate, а Worklight API обрабатывает остальную часть процесса подключения. Посмотрите видео ниже, чтобы пройти через этот процесс:

Внедрить протокол WLDelegate:

//in the header implement the WLDelegate protocol
@interface MAMAppDelegate : UIResponder <UIApplicationDelegate,
   WLDelegate> {
 
//in the implementation, add the protocol methods
-(void)onSuccess:(WLResponse *)response {
}
-(void)onFailure:(WLFailResponse *)response {
}

Подключитесь к серверу Worklight:

[[WLClient sharedInstance] wlConnectWithDelegate: self];

Далее, запустите приложение в симуляторе iOS.

Теперь вы подключены к серверу Worklight! На этом этапе вы можете использовать  управление приложениями и аналитику с помощью Worklight Console или начать внедрять класс OCLogger для записи журналов на стороне клиента на сервере.

Администрирование приложения через Worklight Console
Администрирование приложения через Worklight Console
Панель аналитики Worklight
Панель аналитики Worklight

Удаленный сбор клиентских логов

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

На сервере вам необходимо добавить профили журналов, чтобы включить сбор информации с клиентских компьютеров.

Добавление профилей журнала
Добавление профилей журнала

На клиентской стороне нам просто нужно использовать класс OCLogger для создания операторов логирования. Эти операторы будут выведены в консоль Xcode для локальных целей отладки. Если на сервере настроен профиль журнала, эти операторы также будут отправлены на сервер Worklight.

OCLogger *logger = [OCLogger getInstanceWithPackage:@"MyAppPackageName"];
[OCLogger setCapture:YES];
[OCLogger setAutoSendLogs:YES];
 
//now log something
[logger log:@"worklight connection success"];
[logger error:@"worklight connection failed 

Для получения полной информации о ведении журнала на стороне клиента обязательно ознакомьтесь с документацией API захвата журнала на стороне клиента .

Управление приложениями и администрирование

В стандартной комплектации Worklight также обеспечивает беспроблемное (и беспроблемное) управление приложениями. Это позволяет устанавливать уведомления для клиентских приложений Worklight и отключать приложения (отключение доступа к службам и предоставление URL-адресов для обновления и т. Д.). Это следующее видео познакомит вас с основами управления приложениями.

Обязательно ознакомьтесь с полной документацией к  приложению

Все сделано, верно?

На данный момент мы успешно реализовали интеграцию сервера Worklight в собственное приложение iOS. У нас есть удаленный сбор журналов на стороне клиента, мы можем использовать управление приложениями и собирать операционную аналитику (включая платформы, активные устройства и многое другое).

Если вы не хотите использовать какие-либо дополнительные функции Worklight, то обязательно отправьте их! Тем не менее, Worklight по-прежнему может предложить гораздо больше .

Предоставление данных через адаптеры

Worklight также имеет возможность создавать адаптеры для предоставления ваших данных  мобильным клиентам. Адаптеры написаны на JavaScript и работают на сервере. Они помогают ускорить разработку, повысить безопасность, преобразовать форматы сериализации данных и многое другое.

В следующих двух видеороликах мы рассмотрим процесс сбора информации в собственном приложении iOS и передачи ее в базу данных Cloudant NoSQL (хост через   службы IBM Bluemix ).

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

Теперь давайте взглянем на процесс предоставления доступа к базе данных Cloudant с помощью адаптера Worklight:

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

В следующем видео рассказывается о процессе загрузки данных в адаптер базы данных Cloudant из собственного клиентского мобильного приложения:

Еще раз, вам нужно будет реализовать протокол WLDelegate для обработки условий успеха / ошибки, и вызов процедуры реализован с использованием метода invoProcedure WLClient:

NSMutableDictionary *userProfile = [[NSMutableDictionary alloc] init];
[userProfile setValue:self.email.text forKey:@"email"];
[userProfile setValue:self.firstName.text forKey:@"firstName"];
[userProfile setValue:self.lastName.text forKey:@"lastName"];   
 
WLProcedureInvocationData * invocationData = [[WLProcedureInvocationData alloc] initWithAdapterName:@"CloudantAdapter" procedureName:@"putData"];
invocationData.parameters = @[userProfile];
 
[[OCLogger getInstanceWithPackage:@"UserProfile"] log:@"sending data to server"];
[[WLClient sharedInstance] invokeProcedure:invocationData withDelegate:self];

Это так просто.

IBM MobileFirst Foundation (он же Worklight) — это нечто большее, чем просто разработка гибридных приложений. Это безопасная платформа для оптимизации процессов разработки корпоративных приложений, включая все: от шифрования, безопасности и проверки подлинности до оперативной аналитики и ведения журналов, push-уведомлений и многого другого, независимо от того, нацелены ли вы на парадигмы разработки гибридных приложений или на нативные. iOS , родной Android или родной Windows Phone проекты.