{"id":2441,"date":"2018-11-27T00:17:53","date_gmt":"2018-11-27T00:17:53","guid":{"rendered":"https:\/\/ionicframework.com\/?p=2441"},"modified":"2021-09-07T15:51:45","modified_gmt":"2021-09-07T15:51:45","slug":"ionic-appflow-devops-for-everyone","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone","title":{"rendered":"Ionic Appflow: DevOps for Everyone"},"content":{"rendered":"<p>Like most dev teams, you\u2019re probably on some form of an agile cadence, releasing working versions of your code every 1-2 weeks. In fact, most teams have it down pretty well by now: Backlog grooming, thorough sprint planning, velocity reviews and retros\u2014the whole nine yards.<\/p>\n<p>But, how often are you actually shipping these updates to users? And more than that, how much strain and pressure does this actually put on your team?<\/p>\n<p>If you\u2019re like 50 percent* of large enterprises, you\u2019re likely shipping code <strong>four times per year or less<\/strong>. So while most of us are completing new features and bug fixes every few weeks, the actual process of packaging up all those updates into a new native build, submitting the updated binary to the app stores for approval, and getting users to download and start benefiting from the new code is often measured in months or quarters.<\/p>\n<p>What this means is that despite working in sprints or having an agile team approach: It\u2019s not enough. For your users to really feel the impact of your updates, you should be shipping new features and fixes at the same rate your team is developing them.<\/p>\n<p><em>At Ionic, we\u2019ve been thinking about this a lot.<\/em><\/p>\n<p>Just like any development team, we appreciate truly agile processes that allow us to more easily provide users with the experiences they crave. That\u2019s why we revamped our latest product with a DevOps philosophy in mind to better enable teams to make changes and ship updates at the speed of development\u2014without having to be a DevOps expert.<\/p>\n<h2>Introducing Ionic Appflow<\/h2>\n<p>With that said, we\u2019re incredibly excited to introduce a new product for Ionic developers: <a href=\"https:\/\/ionicframework.com\/appflow\" rel=\"noopener\" target=\"_blank\">Ionic Appflow<\/a>. \ud83c\udf89<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"940\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/automations-screenshot.png\" alt=\"appflow screenshot\" class=\"aligncenter size-full wp-image-2450 lazyload\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/940;box-shadow:0px 2px 8px rgba(2,8,20,.08), 0px 8px 16px rgba(2,8,20,.1); border-radius:8px;margin: 40px -28px 48px;max-width: calc(100% + 56px);\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/automations-screenshot.png 1600w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/automations-screenshot-300x176.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/automations-screenshot-768x451.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/automations-screenshot-1024x602.png 1024w\" data-sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"940\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/automations-screenshot.png\" alt=\"appflow screenshot\" class=\"aligncenter size-full wp-image-2450\" style=\"box-shadow:0px 2px 8px rgba(2,8,20,.08), 0px 8px 16px rgba(2,8,20,.1); border-radius:8px;margin: 40px -28px 48px;max-width: calc(100% + 56px);\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/automations-screenshot.png 1600w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/automations-screenshot-300x176.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/automations-screenshot-768x451.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/automations-screenshot-1024x602.png 1024w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/noscript><\/p>\n<p>Put simply, Appflow is a DevOps solution for businesses building apps with Ionic. It helps teams increase agility, app quality, and time-to-market by automating key phases of the development lifecycle.<\/p>\n<p><!--more--><\/p>\n<p>With Appflow, Ionic makes it easier to generate native apps, ship real-time updates, streamline build processes, and organize approval workflows without the hassle of routine manual processes and complicated setups. Most importantly, Appflow takes care of the not so fun parts of shipping apps to free up your team to focus on the good stuff (innovation).<\/p>\n<p>Here are a few of the benefits you\u2019ll get when you integrate Ionic Appflow into your development lifecycle:<\/p>\n<h2>Reliable Native Builds in the Cloud<\/h2>\n<p>Does this sound familiar:<\/p>\n<blockquote><p><em style=\"color:#616E7E;\">\u201cOh, the app didn\u2019t build for you? Hmm. It works on my machine.\u201d \u00af_(\u30c4)_\/\u00af<\/em><\/p><\/blockquote>\n<p>The \u201cworks on my machine\u201d problem is a perpetual thorn in the side of all app developers working in teams.<\/p>\n<p>Well, one of the great things about Ionic Appflow is that you build your native binaries in a clean, consistent cloud-based environment, so there are no local dependencies to worry about. If it worked fine on your co-worker\u2019s machine, then it will work fine on yours.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"940\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/package-screenshot.png\" alt=\"\" class=\"aligncenter size-full wp-image-2452 lazyload\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/940;box-shadow:0px 2px 8px rgba(2,8,20,.08), 0px 8px 16px rgba(2,8,20,.1); border-radius:8px;margin: 40px -28px 48px;max-width: calc(100% + 56px);\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/package-screenshot.png 1600w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/package-screenshot-300x176.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/package-screenshot-768x451.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/package-screenshot-1024x602.png 1024w\" data-sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"940\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/package-screenshot.png\" alt=\"\" class=\"aligncenter size-full wp-image-2452\" style=\"box-shadow:0px 2px 8px rgba(2,8,20,.08), 0px 8px 16px rgba(2,8,20,.1); border-radius:8px;margin: 40px -28px 48px;max-width: calc(100% + 56px);\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/package-screenshot.png 1600w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/package-screenshot-300x176.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/package-screenshot-768x451.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/package-screenshot-1024x602.png 1024w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/noscript><\/p>\n<p>This is a huge benefit for distributed teams with lots of people collaborating on a single project, and we think you\u2019re really going to love it.<\/p>\n<h2>Real-time Updates<\/h2>\n<p>Another great feature built into Ionic Appflow is the ability to send live app updates directly to your users. With a feature we call Ionic Deploy (now part of Appflow) you can easily push hot code updates as frequently as you like all from the Appflow dashboard.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"940\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/deploy-screenshot.png\" alt=\"\" class=\"aligncenter size-full wp-image-2453 lazyload\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/940;box-shadow:0px 2px 8px rgba(2,8,20,.08), 0px 8px 16px rgba(2,8,20,.1); border-radius:8px;margin: 40px -28px 48px;max-width: calc(100% + 56px);\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/deploy-screenshot.png 1600w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/deploy-screenshot-300x176.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/deploy-screenshot-768x451.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/deploy-screenshot-1024x602.png 1024w\" data-sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"940\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/deploy-screenshot.png\" alt=\"\" class=\"aligncenter size-full wp-image-2453\" style=\"box-shadow:0px 2px 8px rgba(2,8,20,.08), 0px 8px 16px rgba(2,8,20,.1); border-radius:8px;margin: 40px -28px 48px;max-width: calc(100% + 56px);\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/deploy-screenshot.png 1600w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/deploy-screenshot-300x176.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/deploy-screenshot-768x451.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/deploy-screenshot-1024x602.png 1024w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/noscript><\/p>\n<p>Because Ionic apps are powered by web technology, most changes don\u2019t require binary modifications, and thus allow for immediate deployments. This is a massive advantage that we, as Ionic developers, are uniquely able to leverage to move faster and develop more efficiently. The ability to push updates live as they happen can end up saving you days, or even weeks, of wait time.<\/p>\n<p>We mentioned earlier that half of enterprises are releasing updates <strong>four times a year or less<\/strong>, according to <a href=\"https:\/\/www.forrester.com\/report\/Best+Practices+For+Mobile+Experience+Development+And+Delivery\/-\/E-RES140654\">research from Forrester<\/a>. In contrast, the average Ionic Deploy user is shipping updates <strong>3-4 times per month<\/strong>, with many releasing new versions of their app daily. This is what we mean when we say, \u201cShip at the speed of development.\u201d<\/p>\n<h2>Pipeline Automation: No Expertise Required<\/h2>\n<p>You can think of Ionic Appflow as DevOps for Everyone. Why? Because most tools out there require in-depth knowledge of continuous integration and continuous delivery (CI\/CD) to fully automate every step in the build and release process. And while that approach may work fine for some larger teams or incredibly savvy startups, for most everyone in between tackling DevOps can seem unattainable with not a lot of guidance on where to begin.<\/p>\n<p>With Ionic Appflow, you get automation out of the box. We give you pre-built workflows and smart defaults to automate your pipeline in minutes, with power and control to customize as you see fit. With CI\/CD best practices already built in, you don\u2019t have to be an expert to start improving your team\u2019s agility and delivery immediately. Everything is accessible in a highly intuitive dashboard; no custom scripting necessary.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"940\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/new-automation-screenshot.png\" alt=\"\" class=\"aligncenter size-full wp-image-2454 lazyload\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/940;box-shadow:0px 2px 8px rgba(2,8,20,.08), 0px 8px 16px rgba(2,8,20,.1); border-radius:8px;margin: 40px -28px 48px;max-width: calc(100% + 56px);\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/new-automation-screenshot.png 1600w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/new-automation-screenshot-300x176.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/new-automation-screenshot-768x451.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/new-automation-screenshot-1024x602.png 1024w\" data-sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"940\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/new-automation-screenshot.png\" alt=\"\" class=\"aligncenter size-full wp-image-2454\" style=\"box-shadow:0px 2px 8px rgba(2,8,20,.08), 0px 8px 16px rgba(2,8,20,.1); border-radius:8px;margin: 40px -28px 48px;max-width: calc(100% + 56px);\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/new-automation-screenshot.png 1600w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/new-automation-screenshot-300x176.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/new-automation-screenshot-768x451.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/new-automation-screenshot-1024x602.png 1024w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/noscript><\/p>\n<p>Automations come with powerful features that allow you to customize your builds to fit your team\u2019s workflow:<\/p>\n<ul>\n<li>\u26a1\ufe0f Automatically trigger builds when developers check in code. <\/li>\n<li>\ud83d\udd2e Attach custom environments to your automations to create multiple versions of you app for staging, QA, and production for the same code. <\/li>\n<li>\u2699\ufe0f Use native configurations to swap out the bundle id, app name, or deploy configuration on the fly so that you don&#8217;t need to manually configure them for each environment. <\/li>\n<\/ul>\n<h2>From Ionic Pro to Ionic Appflow<\/h2>\n<p>Longtime Ionic users will recognize Ionic Appflow as an evolution of what we previously called Ionic Pro. Many of the same features, including Ionic Deploy and Ionic Package, are included. The key difference (in addition to the name) is that we\u2019ve reshaped the experience to focus on mobile DevOps and continuous delivery as the key use cases.<\/p>\n<p>Automation is the first of many new features in Ionic Appflow that will help teams not only speed up their delivery pipeline, but also drastically simplify it. On the roadmap are further enhancements, including webhook integrations so you can automatically push your app to the app stores right from Appflow, send a new native build to your AWS Device Farm, or completely automate the review and approval of new changes.<\/p>\n<p>As we\u2019ve narrowed the focus of what used to be called Ionic Pro, the engineering team behind Appflow will be able to better assist development teams to focus on the critical stages of their app lifecycle.<\/p>\n<h2>Get started<\/h2>\n<p>We built Ionic Appflow with the developer in mind and hope that if you\u2019re a company looking to increase team agility, app quality, and time-to-market through the automation of key phases of the dev lifecycle, then this is the right tool for you.<\/p>\n<p>Ready to get started? Check out the Ionic Appflow <a href=\"https:\/\/ionicframework.com\/appflow\" rel=\"noopener\" target=\"_blank\">landing page<\/a> to learn more, or sign up for a <a href=\"https:\/\/ionicframework.com\/getting-started\" rel=\"noopener\" target=\"_blank\">free account<\/a> today! \ud83d\ude80<\/p>\n<div style=\"font-size:12px; color: #777;\">\n<hr style=\"margin-bottom:20px; margin-top:40px;\">\n* The above stats are based on recent research from <a href=\"https:\/\/www.forrester.com\/report\/Best+Practices+For+Mobile+Experience+Development+And+Delivery\/-\/E-RES140654\" rel=\"noopener\" target=\"_blank\">Forrester<\/a>. According to the report: <em>\u201cHalf the developers we survey tell us their teams release applications four times a year or less&#8230; And yet teams that build great mobile experiences release eight to 12 times a year. With regular feature updates from Apple (six to date in 2017) and Google (four in the past year) and evolving customer expectations, a high-velocity application release capability is table stakes.\u201d<\/em>  Source: Forrester, Best Practices For Mobile Experience Development And Delivery, December 2017\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Like most dev teams, you\u2019re probably on some form of an agile cadence, releasing working versions of your code every 1-2 weeks. In fact, most teams have it down pretty well by now: Backlog grooming, thorough sprint planning, velocity reviews and retros\u2014the whole nine yards. But, how often are you actually shipping these updates to [&hellip;]<\/p>\n","protected":false},"author":65,"featured_media":2442,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"publish_to_discourse":"0","publish_post_category":"23","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"","discourse_permalink":"","wpdc_publishing_response":"","wpdc_publishing_error":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1,120,122],"tags":[115,3,106],"class_list":["post-2441","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all","category-announcements","category-product","tag-devops","tag-ionic","tag-product-announcements"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.0 (Yoast SEO v23.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ionic Appflow: DevOps for Everyone - Ionic Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ionic Appflow: DevOps for Everyone\" \/>\n<meta property=\"og:description\" content=\"Like most dev teams, you\u2019re probably on some form of an agile cadence, releasing working versions of your code every 1-2 weeks. In fact, most teams have it down pretty well by now: Backlog grooming, thorough sprint planning, velocity reviews and retros\u2014the whole nine yards. But, how often are you actually shipping these updates to [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-27T00:17:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-07T15:51:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/announcing-appflow-img.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"The Ionic Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"The Ionic Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone\"},\"author\":{\"name\":\"The Ionic Team\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/e246c7618b04fe8244628949bb5d7f19\"},\"headline\":\"Ionic Appflow: DevOps for Everyone\",\"datePublished\":\"2018-11-27T00:17:53+00:00\",\"dateModified\":\"2021-09-07T15:51:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone\"},\"wordCount\":1238,\"commentCount\":7,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/announcing-appflow-img.png\",\"keywords\":[\"DevOps\",\"Ionic\",\"Product Announcements\"],\"articleSection\":[\"All\",\"Announcements\",\"Product\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone\",\"url\":\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone\",\"name\":\"Ionic Appflow: DevOps for Everyone - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/announcing-appflow-img.png\",\"datePublished\":\"2018-11-27T00:17:53+00:00\",\"dateModified\":\"2021-09-07T15:51:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/announcing-appflow-img.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/announcing-appflow-img.png\",\"width\":1440,\"height\":800},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ionic Appflow: DevOps for Everyone\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ionic.io\/blog\/#website\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"name\":\"ionic.io\/blog\",\"description\":\"Build amazing native and progressive web apps with the web\",\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ionic.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/ionic.io\/blog\/#organization\",\"name\":\"Ionic\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"width\":1920,\"height\":854,\"caption\":\"Ionic\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/ionicframework\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/e246c7618b04fe8244628949bb5d7f19\",\"name\":\"The Ionic Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/10\/ionic-team-blog.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/10\/ionic-team-blog.png\",\"caption\":\"The Ionic Team\"},\"sameAs\":[\"https:\/\/twitter.com\/ionicframework\",\"https:\/\/x.com\/ionicframework\"],\"url\":\"https:\/\/ionic.io\/blog\/author\/theionicteam\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ionic Appflow: DevOps for Everyone - Ionic Blog","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:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone","og_locale":"en_US","og_type":"article","og_title":"Ionic Appflow: DevOps for Everyone","og_description":"Like most dev teams, you\u2019re probably on some form of an agile cadence, releasing working versions of your code every 1-2 weeks. In fact, most teams have it down pretty well by now: Backlog grooming, thorough sprint planning, velocity reviews and retros\u2014the whole nine yards. But, how often are you actually shipping these updates to [&hellip;]","og_url":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone","og_site_name":"Ionic Blog","article_published_time":"2018-11-27T00:17:53+00:00","article_modified_time":"2021-09-07T15:51:45+00:00","og_image":[{"width":1440,"height":800,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/announcing-appflow-img.png","type":"image\/png"}],"author":"The Ionic Team","twitter_card":"summary_large_image","twitter_creator":"@ionicframework","twitter_site":"@ionicframework","twitter_misc":{"Written by":"The Ionic Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone"},"author":{"name":"The Ionic Team","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/e246c7618b04fe8244628949bb5d7f19"},"headline":"Ionic Appflow: DevOps for Everyone","datePublished":"2018-11-27T00:17:53+00:00","dateModified":"2021-09-07T15:51:45+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone"},"wordCount":1238,"commentCount":7,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/announcing-appflow-img.png","keywords":["DevOps","Ionic","Product Announcements"],"articleSection":["All","Announcements","Product"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone","url":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone","name":"Ionic Appflow: DevOps for Everyone - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/announcing-appflow-img.png","datePublished":"2018-11-27T00:17:53+00:00","dateModified":"2021-09-07T15:51:45+00:00","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/announcing-appflow-img.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/announcing-appflow-img.png","width":1440,"height":800},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/ionic-appflow-devops-for-everyone#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Ionic Appflow: DevOps for Everyone"}]},{"@type":"WebSite","@id":"https:\/\/ionic.io\/blog\/#website","url":"https:\/\/ionic.io\/blog\/","name":"ionic.io\/blog","description":"Build amazing native and progressive web apps with the web","publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ionic.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ionic.io\/blog\/#organization","name":"Ionic","url":"https:\/\/ionic.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","width":1920,"height":854,"caption":"Ionic"},"image":{"@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/ionicframework"]},{"@type":"Person","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/e246c7618b04fe8244628949bb5d7f19","name":"The Ionic Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/10\/ionic-team-blog.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/10\/ionic-team-blog.png","caption":"The Ionic Team"},"sameAs":["https:\/\/twitter.com\/ionicframework","https:\/\/x.com\/ionicframework"],"url":"https:\/\/ionic.io\/blog\/author\/theionicteam"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/announcing-appflow-img.png","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/2441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/users\/65"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=2441"}],"version-history":[{"count":0,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/2441\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/2442"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=2441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=2441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=2441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}