{"id":52731,"date":"2010-12-03T18:39:55","date_gmt":"2010-12-03T15:39:55","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=52731"},"modified":"2020-04-06T19:01:52","modified_gmt":"2020-04-06T16:01:52","slug":"opportunities-and-limitations-of-flex-development-for-iphone","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/","title":{"rendered":"Opportunities and Limitations of Flex Development for iPhone"},"content":{"rendered":"<p>Previously, the team at Altoros <a href=\"https:\/\/www.altoros.com\/blog\/adobe-air-2-5-cross-platform-mobile-applications-in-flex\/\">explored<\/a> the preview releases of Flex SDK and Flash Builder that feature new components for cross-platform mobile development. As a result, the team published a web-based Flex application for Android and iPhone. Our experts checked if all of the libraries functioned seamlessly and made sure the application supported accelerometer, multi-touch, and gestures.<\/p>\n<p>Now, we decided to take a step further. Using the preview versions\u2014<strong>Burrito<\/strong> (Flash Builder) and <strong>Hero<\/strong> (Flex SDK)\u2014our developers built a Flex application for Android 2.2. Then, we compiled the application on the iOS platform with the Adobe\u2019s Packager for iPhone. In this blog post, we explore how the Flex application supported a built-in camera, microphone, and GPS, as well as how the system interacts with the web.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_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\/opportunities-and-limitations-of-flex-development-for-iphone\/#Packager_for_iPhone\" >Packager for iPhone<\/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\/opportunities-and-limitations-of-flex-development-for-iphone\/#Operations_the_packager_performs\" >Operations the packager performs<\/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\/opportunities-and-limitations-of-flex-development-for-iphone\/#Further_reading\" >Further reading<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Packager_for_iPhone\"><\/span>Packager for iPhone<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Packager for iPhone based on Adobe AIR SDK 2.0.1 enables developers to reuse the existing code from the ActionScript 3 projects to create iOS-native applications. Earlier this year, Apple has banned applications that link to App Store Connect APIs through an intermediary translation or compatibility layer from the App Store. These restrictions forced the team at Adobe to freeze the development of the packager.<\/p>\n<p>In September 2010, Apple loosened the restrictions in the developer agreement. Now it is possible to convert applications based on the ActionScript 3 code to the iPhone applications, as long as they do not download any code. Nevertheless, the Flex SDK still does not offer rich support for development under iOS, as compiling applications with the packager (which is also a preview version) limits development options.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Operations_the_packager_performs\"><\/span>Operations the packager performs<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Our investigation revealed that the Flex application on iPhone supported the following features.<\/p>\n<ul>\n<li>Switching between the application and the phone mode to make calls and send SMS<\/li>\n<li>Uploading and sending graphics and text data using HTTP requests<\/li>\n<li>Building menus, tables, interactive networks, and diagrams<\/li>\n<li>Fully utilizing web services (e.g., Twitter)<\/li>\n<li>Launching and watching video files<\/li>\n<\/ul>\n<p>However, the application failed to access some built-in features of the iPhone.<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\">With the packager, we faced some difficulties when trying to get access to the camera and the microphone. It seems like the tool still cannot exchange data with these APIs.<\/li>\n<li style=\"margin-bottom: 6px;\">The coordinates are also cannot be received via the built-in GPS. Though the test demonstrated that its API was available, it was not active.<\/li>\n<\/ul>\n<p>In addition, there were some performance issues when comparing our Flex application against a native iPhone application.<\/p>\n<ul>\n<li>The Flex application runs slower than the iOS-based application.<\/li>\n<li>Its size is 2\u20133 times bigger than the size of a similar iOS-native application.<\/li>\n<\/ul>\n<p>Finally, as the development of the packager for iPhone was frozen for half a year, it still lacks the functionality to convert complex Flex applications to iOS. Interaction with the APIs of a built-in camera, GPS, and microphone is already incorporated, but not working yet.<\/p>\n<p>Adobe is likely to improve the support for iOS development soon. It would be great to have a full-featured interface for developing iOS applications in Flex, as the one AIR provides for Android. It is good news that most of the components have been optimized for working with mobile devices. We also hope that the final (beta) release will have the rest of the components optimized, as well.<\/p>\n<p>Anyway, it is already possible to build cross-platform Flex applications for iPhone even with this functionality.<\/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\/a-cross-platform-air-3-5-app-created-as-a-hobby-got-published-in-itunes-and-google-play\/\">A Cross-Platform AIR 3.5 App Created as a Hobby Got Published n iTunes and Google Play<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/air-3-0-migration-from-flex-to-mobile-with-less-limitations\/\">AIR 3.0: Migration From Flex to Mobile with Less Limitations<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/adobe-air-vs-mozilla-prism-two-ways-for-a-flex-developer-to-create-desktop-apps\/\">Adobe AIR vs. Mozilla Prism: Two Ways for a Flex Developer to Create Desktop Apps<\/a><\/li>\n<\/ul>\n<hr\/>\n<p><center><small>The post was written by <strong>Igor Razhnov<\/strong> and edited by <a href=\"https:\/\/www.altoros.com\/blog\/author\/alex\/\">Alex Khizhniak<\/a>.<\/small><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Previously, the team at Altoros explored the preview releases of Flex SDK and Flash Builder that feature new components for cross-platform mobile development. As a result, the team published a web-based Flex application for Android and iPhone. Our experts checked if all of the libraries functioned seamlessly and made sure [&#8230;]<\/p>\n","protected":false},"author":87,"featured_media":52741,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[7],"tags":[895],"class_list":["post-52731","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news-and-opinion","tag-research-and-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Opportunities and Limitations of Flex Development for iPhone | Altoros<\/title>\n<meta name=\"description\" content=\"This blog post explores how to build cross-platform Flex applications for iPhone with the existing Adobe functionality.\" \/>\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\/opportunities-and-limitations-of-flex-development-for-iphone\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Opportunities and Limitations of Flex Development for iPhone | Altoros\" \/>\n<meta property=\"og:description\" content=\"Previously, the team at Altoros explored the preview releases of Flex SDK and Flash Builder that feature new components for cross-platform mobile development. As a result, the team published a web-based Flex application for Android and iPhone. Our experts checked if all of the libraries functioned seamlessly and made sure [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2010-12-03T15:39:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-06T16:01:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/12\/flex-development-iphone-featured-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\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\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/\",\"name\":\"Opportunities and Limitations of Flex Development for iPhone | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/12\/flex-development-iphone-featured-image.png\",\"datePublished\":\"2010-12-03T15:39:55+00:00\",\"dateModified\":\"2020-04-06T16:01:52+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/a8bc482e9f16cdc8982df28d6122102c\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/12\/flex-development-iphone-featured-image.png\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/12\/flex-development-iphone-featured-image.png\",\"width\":640,\"height\":360},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Opportunities and Limitations of Flex Development for iPhone\"}]},{\"@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\/#\/schema\/person\/image\/\",\"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":"Opportunities and Limitations of Flex Development for iPhone | Altoros","description":"This blog post explores how to build cross-platform Flex applications for iPhone with the existing Adobe functionality.","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\/opportunities-and-limitations-of-flex-development-for-iphone\/","og_locale":"en_US","og_type":"article","og_title":"Opportunities and Limitations of Flex Development for iPhone | Altoros","og_description":"Previously, the team at Altoros explored the preview releases of Flex SDK and Flash Builder that feature new components for cross-platform mobile development. As a result, the team published a web-based Flex application for Android and iPhone. Our experts checked if all of the libraries functioned seamlessly and made sure [...]","og_url":"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/","og_site_name":"Altoros","article_published_time":"2010-12-03T15:39:55+00:00","article_modified_time":"2020-04-06T16:01:52+00:00","og_image":[{"width":640,"height":360,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/12\/flex-development-iphone-featured-image.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":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/","url":"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/","name":"Opportunities and Limitations of Flex Development for iPhone | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/12\/flex-development-iphone-featured-image.png","datePublished":"2010-12-03T15:39:55+00:00","dateModified":"2020-04-06T16:01:52+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/a8bc482e9f16cdc8982df28d6122102c"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/12\/flex-development-iphone-featured-image.png","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2010\/12\/flex-development-iphone-featured-image.png","width":640,"height":360},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/opportunities-and-limitations-of-flex-development-for-iphone\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Opportunities and Limitations of Flex Development for iPhone"}]},{"@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\/#\/schema\/person\/image\/","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\/52731","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=52731"}],"version-history":[{"count":4,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/52731\/revisions"}],"predecessor-version":[{"id":52734,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/52731\/revisions\/52734"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/52741"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=52731"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=52731"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=52731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}