{"id":45496,"date":"2016-04-07T21:10:28","date_gmt":"2016-04-07T18:10:28","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=45496"},"modified":"2019-07-22T22:40:52","modified_gmt":"2019-07-22T19:40:52","slug":"using-predix-mobile-services-to-create-a-cross-platform-app","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/","title":{"rendered":"Using Predix Mobile Services to Create a Cross-Platform App"},"content":{"rendered":"<p>This tutorial introduces developers to mobile services available on GE&#8217;s Predix platform. The scenario for the article includes preparing a simple cross-platform application based on the <a href=\"https:\/\/cordova.apache.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Cordova<\/a> technology, as well as interacting with Predix Mobile services. We also want to see if there are any restrictions for using Predix Mobile services in a hybrid application.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#Prerequisites\" >Prerequisites<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#Preparation\" >Preparation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#Using_Predix_Mobile_services\" >Using Predix Mobile services<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#Accessing_Predix_services\" >Accessing Predix services<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#Further_reading\" >Further reading<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Prerequisites\"><\/span>Prerequisites<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services-in-a-hybrid-app.png\" alt=\"using-predix-mobile-services-in-a-hybrid-app\" width=\"140\" style=\"margin: 0px 0px 0px 15px;\" class=\"alignright size-medium wp-image-45497\" \/><\/p>\n<p>To follow our examples, you need:<\/p>\n<ul>\n<li>Node.js<\/li>\n<li>the Cordova CLI<\/li>\n<li>the Cloud Foundry CLI<\/li>\n<li>the Cloud Foundry UAA CLI<\/li>\n<li>the Predix Mobile CLI<\/li>\n<\/ul>\n<p>You can find more information in the <a href=\"https:\/\/www.predix.io\/docs#rae4EfJ6\" target=\"_blank\" rel=\"noopener noreferrer\">official Predix docs<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Preparation\"><\/span>Preparation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>After you install <a href=\"https:\/\/cordova.apache.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Cordova<\/a>, create a project and add platforms you want to test. We used AngularJS to write a sample JavaScript application.<\/p>\n<p>In our case, it is not necessary to deploy the application to Predix: the application will be located on a mobile device. For sure, you can deploy your application to the PaaS and use it via a browser.<\/p>\n<p>At the same time, you need to take care of Predix Mobile services that your application will communicate with. So, we will focus on how to prepare Predix to serve your application requests.<\/p>\n<p>The implementation of the JavaScript code for using Predix Mobile services is the same as you need in a RESTful application. You need to make <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">POST<\/code> or <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">GET<\/code> requests. Find the sample code in <a href=\"https:\/\/github.com\/Altoros\/predix-js-starter-app\" target=\"_blank\" rel=\"noopener noreferrer\">this GitHub repo<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Using_Predix_Mobile_services\"><\/span>Using Predix Mobile services<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To make a valid request and get data from Predix services, you need to create a service instance and then bind it to your application. To show what services are available for your application, run the following command.<\/p>\n<pre style=\"padding-left: 30px;\"><code>cf marketplace<\/code><\/pre>\n<p>As a result, you will get a list similar to the one displayed on the screenshot below.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services.png\" rel=\"attachment wp-att-9643\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services.png\" alt=\"using-predix-mobile-services\" width=\"640\" class=\"aligncenter size-full wp-image-45498\" \/><\/a><\/center><\/p>\n<p>With the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">cf create-service <em>service_name plan my_instance<\/em><\/code> command, create a service instance for your application.<\/p>\n<pre style=\"padding-left: 30px;\"><code>cf create-service log-stash-1 free myapp-log-service<\/code><\/pre>\n<p>The next step is to bind the new service to your application using the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">cf bind-service <em>your_app_name service_instance_name<\/em><\/code> command.<\/p>\n<pre style=\"padding-left: 30px;\"><code>cf bind-service testhw myapp-log-service<\/code><\/pre>\n<p>To update your environment and put the changes into effect, run the following command.<\/p>\n<pre style=\"padding-left: 30px;\"><code>cf restage <em>app_name<\/em><\/code><\/pre>\n<p>Use the command bellow to show your configuration information about the included services.<\/p>\n<pre style=\"padding-left: 30px;\"><code>cf env <em>app_name<\/em><\/code><\/pre>\n<p>For example, the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">VCAP_SERVICES<\/code> environment variable is shown on the image below.<\/p>\n<p><center><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services-configuration.png\" alt=\"using-predix-mobile-services-configuration\" width=\"638\" height=\"870\" class=\"aligncenter size-full wp-image-45499\" \/><\/center><\/p>\n<p>The next step is to set up access to the Predix services for making your requests.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Accessing_Predix_services\"><\/span>Accessing Predix services<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For this step, we use Predix tutorials as a guideline. You can find the details in <a href=\"https:\/\/www.predix.io\/resources\/tutorials\/tutorial-details.html?tutorial_id=1549&#038;tag=1613&#038;journey=Exploring%20security&#038;resources=1593,1594,1544,1549\" target=\"_blank\" rel=\"noopener noreferrer\">this tutorial<\/a> (<em>&#8220;Exploring Application Security: Create a Predix Service and set up a UAA ClientId&#8221;<\/em>). Here is the section that you need.<\/p>\n<p><center><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/setting-up-access-to-predix-services.png\" alt=\"setting-up-access-to-predix-services\" width=\"640\" class=\"aligncenter size-full wp-image-45500\" \/><\/center><\/p>\n<p>Our goal is to consecutively execute tasks from the menu below.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/predix-starter-kit-menu.png\" rel=\"attachment wp-att-9646\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/predix-starter-kit-menu.png\" alt=\"predix-starter-kit-menu\" width=\"116\" height=\"300\" class=\"aligncenter size-medium wp-image-45501\" \/><\/a><\/p>\n<p>We\u2019ll try to explain why this is necessary. Working with Predix Starter Kit, you create users who have access to the services you bind to an application. In the <strong>Update Client<\/strong> menu, you paste <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">authority-token<\/code> to add new authorities for accessing Predix services to your client.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/predix-access-credentials.png\" rel=\"attachment wp-att-9667\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/predix-access-credentials.png\" alt=\"predix-access-credentials\" width=\"640\" class=\"aligncenter size-full wp-image-45502\" \/><\/a><\/p>\n<p>Without this manipulation, a user can\u2019t get data from the service even with a valid token. You can input a queue of tokens for several services. Mark them with quotes and separate with spaces.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services-in-a-cross-platform-app-uaa-client.png\" rel=\"attachment wp-att-9666\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services-in-a-cross-platform-app-uaa-client.png\" alt=\"using-predix-mobile-services-in-a-cross-platform-app-uaa-client\" width=\"640\" class=\"aligncenter size-full wp-image-45503\" \/><\/a><\/p>\n<p>Now, you are ready to do a request to fill an asset. Use the Predix form to make a test request.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services-in-a-cross-platform-app.png\" rel=\"attachment wp-att-9649\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services-in-a-cross-platform-app.png\" alt=\"using-predix-mobile-services-in-a-cross-platform-app\" width=\"640\" class=\"aligncenter size-full wp-image-45504\" \/><\/a><\/center><\/p>\n<p>The sample Predix documentation has a mistake: the <strong>locomotive<\/strong> endpoint in the URL should be plural\u2014<strong>locomotives<\/strong>.<\/p>\n<p><i>Note:<\/i> The body of the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">POST<\/code> request should be wrapped in square brackets.<\/p>\n<p>We didn\u2019t find any obstacles for creating cross-platform applications using Predix Mobile services during our experiment. However, when working with Predix, you do need to care about managing Predix services and binding them to your application.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/deploying-an-asp-net-application-to-ge-predix\/\">Deploying an ASP.NET Application to GE Predix<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/predix-ga-ge-working-security-mobile-services-automating-ops\/\">Predix GA: GE Is Working on Security, Mobile Services, and Automating Ops<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<hr \/>\n<p><center><small>This tutorial was written by <b>Igor Razhnov<\/b>, edited <a href=\"https:\/\/www.altoros.com\/blog\/author\/viktoryia-fedzkovich\/\">Victoria Fedzkovich<\/a> and <a href=\"https:\/\/www.altoros.com\/blog\/author\/alex\/\">Alex Khizhniak<\/a>.<\/small><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial introduces developers to mobile services available on GE&#8217;s Predix platform. The scenario for the article includes preparing a simple cross-platform application based on the Cordova technology, as well as interacting with Predix Mobile services. We also want to see if there are any restrictions for using Predix Mobile [&#8230;]<\/p>\n","protected":false},"author":87,"featured_media":45503,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[873,117,647],"class_list":["post-45496","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-cloud-native","tag-iot","tag-predix"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Using Predix Mobile Services to Create a Cross-Platform App | Altoros<\/title>\n<meta name=\"description\" content=\"Learn how to create an app targeted at multiple platforms with a single code base\u2014by employing Apache Cordova and Predix Mobile services.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Predix Mobile Services to Create a Cross-Platform App | Altoros\" \/>\n<meta property=\"og:description\" content=\"This tutorial introduces developers to mobile services available on GE&#8217;s Predix platform. The scenario for the article includes preparing a simple cross-platform application based on the Cordova technology, as well as interacting with Predix Mobile services. We also want to see if there are any restrictions for using Predix Mobile [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-07T18:10:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-07-22T19:40:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services-in-a-cross-platform-app-uaa-client.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1184\" \/>\n\t<meta property=\"og:image:height\" content=\"575\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Igor Razhnov\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Igor Razhnov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/\"},\"author\":{\"name\":\"Igor Razhnov\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/a8bc482e9f16cdc8982df28d6122102c\"},\"headline\":\"Using Predix Mobile Services to Create a Cross-Platform App\",\"datePublished\":\"2016-04-07T18:10:28+00:00\",\"dateModified\":\"2019-07-22T19:40:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/\"},\"wordCount\":629,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/using-predix-mobile-services-in-a-cross-platform-app-uaa-client.png\",\"keywords\":[\"Cloud-Native\",\"IoT\",\"Predix\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/\",\"name\":\"Using Predix Mobile Services to Create a Cross-Platform App | Altoros\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/using-predix-mobile-services-in-a-cross-platform-app-uaa-client.png\",\"datePublished\":\"2016-04-07T18:10:28+00:00\",\"dateModified\":\"2019-07-22T19:40:52+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/a8bc482e9f16cdc8982df28d6122102c\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/using-predix-mobile-services-in-a-cross-platform-app-uaa-client.png\",\"contentUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/using-predix-mobile-services-in-a-cross-platform-app-uaa-client.png\",\"width\":1184,\"height\":575},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/using-predix-mobile-services-to-create-a-cross-platform-app\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Predix Mobile Services to Create a Cross-Platform App\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/a8bc482e9f16cdc8982df28d6122102c\",\"name\":\"Igor Razhnov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/Igor-Razhnov-96x96.png\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/Igor-Razhnov-96x96.png\",\"contentUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/Igor-Razhnov-96x96.png\",\"caption\":\"Igor Razhnov\"},\"description\":\"Igor Razhnov is a front-end engineer at Altoros with a strong background in JavaScript and ActionScript development. Having a long record of projects, he has become proficient in using Adobe Photoshop, Adobe Flash, Adobe Illustrator, Adobe Premiere, IntelliJ IDEA, WebStorm, and other technologies as his professional tools.\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/author\\\/razhnov-igor\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using Predix Mobile Services to Create a Cross-Platform App | Altoros","description":"Learn how to create an app targeted at multiple platforms with a single code base\u2014by employing Apache Cordova and Predix Mobile services.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/","og_locale":"en_US","og_type":"article","og_title":"Using Predix Mobile Services to Create a Cross-Platform App | Altoros","og_description":"This tutorial introduces developers to mobile services available on GE&#8217;s Predix platform. The scenario for the article includes preparing a simple cross-platform application based on the Cordova technology, as well as interacting with Predix Mobile services. We also want to see if there are any restrictions for using Predix Mobile [...]","og_url":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/","og_site_name":"Altoros","article_published_time":"2016-04-07T18:10:28+00:00","article_modified_time":"2019-07-22T19:40:52+00:00","og_image":[{"width":1184,"height":575,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services-in-a-cross-platform-app-uaa-client.png","type":"image\/png"}],"author":"Igor Razhnov","twitter_misc":{"Written by":"Igor Razhnov","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#article","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/"},"author":{"name":"Igor Razhnov","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/a8bc482e9f16cdc8982df28d6122102c"},"headline":"Using Predix Mobile Services to Create a Cross-Platform App","datePublished":"2016-04-07T18:10:28+00:00","dateModified":"2019-07-22T19:40:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/"},"wordCount":629,"commentCount":0,"image":{"@id":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services-in-a-cross-platform-app-uaa-client.png","keywords":["Cloud-Native","IoT","Predix"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/","url":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/","name":"Using Predix Mobile Services to Create a Cross-Platform App | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services-in-a-cross-platform-app-uaa-client.png","datePublished":"2016-04-07T18:10:28+00:00","dateModified":"2019-07-22T19:40:52+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/a8bc482e9f16cdc8982df28d6122102c"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services-in-a-cross-platform-app-uaa-client.png","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/07\/using-predix-mobile-services-in-a-cross-platform-app-uaa-client.png","width":1184,"height":575},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/using-predix-mobile-services-to-create-a-cross-platform-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using Predix Mobile Services to Create a Cross-Platform App"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/a8bc482e9f16cdc8982df28d6122102c","name":"Igor Razhnov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2020\/04\/Igor-Razhnov-96x96.png","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2020\/04\/Igor-Razhnov-96x96.png","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2020\/04\/Igor-Razhnov-96x96.png","caption":"Igor Razhnov"},"description":"Igor Razhnov is a front-end engineer at Altoros with a strong background in JavaScript and ActionScript development. Having a long record of projects, he has become proficient in using Adobe Photoshop, Adobe Flash, Adobe Illustrator, Adobe Premiere, IntelliJ IDEA, WebStorm, and other technologies as his professional tools.","url":"https:\/\/www.altoros.com\/blog\/author\/razhnov-igor\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/45496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=45496"}],"version-history":[{"count":19,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/45496\/revisions"}],"predecessor-version":[{"id":45596,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/45496\/revisions\/45596"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/45503"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=45496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=45496"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=45496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}