{"id":82255,"date":"2020-01-27T05:00:00","date_gmt":"2020-01-27T10:00:00","guid":{"rendered":"https:\/\/applausecomstaging.kinsta.cloud\/blog\/continuous-deployment-app-entwicklung\/"},"modified":"2025-07-21T11:24:29","modified_gmt":"2025-07-21T15:24:29","slug":"continuous-deployment-app-entwicklung","status":"publish","type":"post","link":"https:\/\/applausecomstaging.kinsta.cloud\/de\/blog\/continuous-deployment-app-entwicklung\/","title":{"rendered":"Continuous Deployment in der mobilen App-Entwicklung"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section preset--module--divi-section--31615dad-3f88-477f-a866-c2b40c889be5\"><div class=\"et_pb_row_0 et_pb_row et_flex_row\"><div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone et_flex_column_24_24_phoneWide et_flex_column_24_24_tabletWide et_flex_column_24_24_widescreen et_flex_column_24_24_ultraWide\"><div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module preset--group--divi-text--divi-font-body--default preset--group--divi-text--divi-font-body--h19rs5u--default preset--group--divi-text--divi-font-body--h1yjkjr--default preset--module--divi-text--4564d33f-bb24-4931-8445-a739e42249ca\"><div class=\"et_pb_text_inner\"><h1>Continuous Deployment in der mobilen App-Entwicklung<\/h1>\n<p>Der Einsatz von Continuous Integration (CI) und Continuous Delivery (CD) ist in den letzten Jahren zu einem selbstverst\u00e4ndlichen Bestandteil der Entwicklung webbasierter Anwendungen geworden. Unternehmen k\u00f6nnen bei Bedarf mehrmals t\u00e4glich neue App-Versionen oder Bugfixes in die Produktivumgebung einspielen. Mithilfe von Web-Deployment-Tools und einer soliden Deployment-Infrastruktur l\u00e4sst sich dieser Vorgang inzwischen wesentlich einfacher und zuverl\u00e4ssiger gestalten. Aber gilt das auch f\u00fcr Native Apps? Ist es angesichts der Review-Prozesse einiger App Stores \u00fcberhaupt m\u00f6glich, Apps rechtzeitig zu ver\u00f6ffentlichen?<\/p>\n<p>Beide Fragen lassen sich mit\u00a0<em>Ja\u00a0<\/em>beantworten. Im folgenden Artikel gehe ich n\u00e4her auf die Optionen ein, die sich bei nativen Apps bieten.<\/p>\n<h3><strong>In die mobile Infrastruktur investieren<\/strong><\/h3>\n<p>Continuous Integration und Continuous Delivery sind nicht umsonst \u2013 weder f\u00fcr Web-Applikationen noch f\u00fcr native Apps. Unternehmen m\u00fcssen Zeit und Geld in ihre mobile Infrastruktur investieren, um \u201eon demand\u201c neue Versionen ihrer nativen Apps bereitstellen zu k\u00f6nnen. Dank der heute verf\u00fcgbaren Software und Tools ist das recht einfach zu realisieren.<\/p>\n<p>Eine schlanke und leistungsstarke Basis f\u00fcr die Infrastruktur kann beispielsweise durch Open-Source-Software wie\u00a0<a role=\"link\" href=\"https:\/\/jenkins.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Jenkins<\/a>\u00a0(als Continuous-Integration-System) und\u00a0<a role=\"link\" href=\"https:\/\/fastlane.tools\/\" target=\"_blank\" rel=\"noreferrer noopener\">fastlane<\/a>\u00a0(als Build-and-Sign-Software) geschaffen werden. Anschlie\u00dfend kann \u00fcber einen Dienst wie Testflight, AppCenter oder Firebase problemlos ein Kanal zur App-Verteilung eingerichtet werden, um w\u00e4hrend der Entwicklungs- und Testphase mit Ger\u00e4ten zu testen.<\/p>\n<h3><strong>In Automatisierung investieren<\/strong><\/h3>\n<p><a role=\"link\">Testautomatisierung<\/a>\u00a0ist eng mit Continuous Integration und Continuous Delivery verbunden. Wenn eine Build-Pipeline vorhanden ist, besteht der n\u00e4chste logische Schritt darin, Zeit und Geld in den Aufbau einer Testautomatisierungs-Pipeline zu investieren.<\/p>\n<p>Durch die automatisierten Pr\u00fcfungen erh\u00e4lt das Team schnelleres Feedback zu \u00c4nderungen der Codebasis auf den verschiedenen Ebenen der mobilen App-Architektur. Dar\u00fcber hinaus kann ein Team neue App-Versionen schnell internen oder externen Tester zur Verf\u00fcgung stellen und weniger Aufwand f\u00fcr manuelle Tests betreiben.<\/p>\n<p>Je nach mobiler Anwendung k\u00f6nnen Teams die automatisierten Pr\u00fcfungen auf verschiedenen Ebenen implementieren. Dabei kann es sich um Unit-Tests, Integrationstests, API-Tests und End-to-End-UI-Tests handeln. Jedes Team muss die richtige Mischung von Tests finden, um eine schnellere Entwicklung zu unterst\u00fctzen und neue Anwendungsversionen mit mehr Sicherheit zu ver\u00f6ffentlichen.<\/p>\n<h3><strong>Bereitstellungsoptionen von App Stores<\/strong><\/h3>\n<p>Sobald die Infrastruktur samt Testautomatisierung steht, muss das Entwicklungsteam sich mit den unterschiedlichen Bereitstellungsoptionen der App Stores von Apple und Google vertraut machen \u2013 denn Unterschiede gibt es einige.<\/p>\n<p>Der gr\u00f6\u00dfte Unterschied betrifft den App-Review-Prozess. W\u00e4hrend im Apple App Store jede App vom\u00a0<a role=\"link\" href=\"https:\/\/developer.apple.com\/app-store\/review\/guidelines\/\" target=\"_blank\" rel=\"noreferrer noopener\">Apple Review Team<\/a>\u00a0genehmigt werden muss, kann eine App im\u00a0<a role=\"link\" href=\"https:\/\/support.google.com\/googleplay\/android-developer\/answer\/113469?hl=en\" target=\"_blank\" rel=\"noreferrer noopener\">Google Play Store sofort hochgeladen<\/a>\u00a0werden und die produktive App innerhalb weniger Stunden ersetzen.<\/p>\n<p>Als n\u00e4chstes ist zu \u00fcberlegen, wie native Apps f\u00fcr reale Benutzer oder Tester verf\u00fcgbar gemacht werden sollen. In beiden App Stores besteht die M\u00f6glichkeit einer gestaffelten Ver\u00f6ffentlichung (<a role=\"link\" href=\"https:\/\/help.apple.com\/app-store-connect\/#\/dev3d65fcee1\" target=\"_blank\" rel=\"noreferrer noopener\">iOS<\/a>,\u00a0<a role=\"link\" href=\"https:\/\/support.google.com\/googleplay\/android-developer\/answer\/6346149#increase\" target=\"_blank\" rel=\"noreferrer noopener\">Android<\/a>). Dabei wird die neueste App-Version schrittweise f\u00fcr Teile der Nutzer freigegeben. Auf diese Weise kann das Entwicklungsteam den Release-Fortschritt auf m\u00f6gliche Probleme \u00fcberwachen und die Verteilung im Bedarfsfall stoppen. Der Google Play Store bietet dar\u00fcber hinaus auch Alpha- und Beta-Releaseoptionen.<\/p>\n<p>Die verf\u00fcgbaren Release- und Testoptionen zu kennen ist entscheidend, um die richtige Art der Bereitstellung w\u00e4hlen zu k\u00f6nnen. Mit Blick auf die existierenden mobilen Entwicklungs- und Release-Tools und die Bereitstellungsoptionen der App Stores bieten sich zwei M\u00f6glichkeiten:<\/p>\n<h4><strong>Internes Continuous Deployment<\/strong><\/h4>\n<p>In diesem Fall wird die Bereitstellungssoftware so konfiguriert, dass alle Mitglieder des Teams oder Unternehmens sofort \u00fcber die neuesten App-Versionen informiert werden, wenn die Tests bestanden wurden und ein neuer App-Build durch die Distributionssoftware bereitgestellt wird. Je nach Unternehmensgr\u00f6\u00dfe wird die App von Hunderten oder Tausenden von Kollegen genutzt, die R\u00fcckmeldung zum aktuellen Zustand der App geben k\u00f6nnen und sollen. Dies ist ohne Beteiligung von Apple und Google m\u00f6glich, so dass das Entwicklungsteam die volle Kontrolle beh\u00e4lt.<\/p>\n<h4><strong>Externes Continuous Deployment<\/strong><\/h4>\n<p>Mit dieser Option kann dein Team entweder seine eigene Infrastruktur zur Verteilung nutzen oder jene von Apple und Google erweitern. Im ersten Fall m\u00fcssen entweder die Kunden zur Verteilung des neuen App-Builds in das eigene Verteilsystem eingeladen werden, was sich durch Software wie Testflight, AppCenter oder Firebase vereinfachen l\u00e4sst, oder man greift auf eine Community von Crowdtestern zur\u00fcck, deren Endger\u00e4te der Verteilerliste hinzugef\u00fcgt werden k\u00f6nnen. Das ist die optimale Methode, da man die Software realen Kunden und Testern zur Verf\u00fcgung stellen kann, ohne den Zulassungsprozess des App Stores durchlaufen zu m\u00fcssen.<\/p>\n<p>F\u00fcr Android-Apps kann die Infrastruktur des Google Play Stores genutzt werden, die sowohl Alpha- als auch Beta-Testkan\u00e4le bietet. \u00dcber den Alpha-Kanal ist eine Verteilung an bis zu 100 interne oder externe Kunden oder Tester basierend auf deren E-Mail-Adresse m\u00f6glich. Beim Beta-Kanal gibt es kein Limit bez\u00fcglich der Anzahl der Tester. Man kann w\u00e4hlen, ob der Zugang \u00f6ffentlich ist oder nur auf Einladung erfolgen soll. Sowohl Alpha- als auch Beta-Kanal k\u00f6nnen f\u00fcr das Continuous Deployment konfiguriert werden. Bei iOS-Apps besteht keine M\u00f6glichkeit zur Erstellung von Alpha- oder Beta-Releases. Apple bietet die Option einer\u00a0<a role=\"link\" href=\"https:\/\/help.apple.com\/app-store-connect\/#\/dev3d65fcee1\" target=\"_blank\" rel=\"noreferrer noopener\">gestaffelten Einf\u00fchrung<\/a>. Dabei werden Updates f\u00fcr iOS-Apps den Kunden schrittweise bereitgestellt und Feedback sowie Informationen zur Nutzung eingeholt.<\/p>\n<p>Ist das externe Deployment und Kundenfeedback zufriedenstellend, kann das mobile Entwicklungsteam das App-Update bei den App Stores einreichen. Das Team kann dann entscheiden, ob eine gestaffelte Einf\u00fchrung stattfinden soll oder nicht.<\/p>\n<h3><strong>Welche Art der Bereitstellung ist f\u00fcr dein Unternehmen geeignet?<\/strong><\/h3>\n<p>Das Continuous Deployment von mobilen Apps gibt es nicht zum Nulltarif. Eine allgemeing\u00fcltige L\u00f6sung existiert nicht, denn eine CI\/CD-Pipeline inklusive Testautomatisierung ist immer etwas Unternehmensspezifisches und der Aufbau erfordert Zeit und Geld.<\/p>\n<p>Zun\u00e4chst sollte man pr\u00fcfen, ob die f\u00fcr die Einf\u00fchrung eines Continuous-Deployment-Prozesses erforderlichen Skills und technischen M\u00f6glichkeiten im Team vorhanden sind.<\/p>\n<p>Wenn sowohl das Wissen als auch das technische Umfeld f\u00fcr CI\/CD verf\u00fcgbar sind, muss gemeinsam mit dem Team entschieden werden, welcher der genannten Ans\u00e4tze am besten passt.<\/p>\n<p>Um die richtige Bereitstellungsmethode zu finden, sollte man sich die folgenden Fragen stellen:<\/p>\n<ol>\n<li>Sind die zum Aufbau einer Deployment-Pipeline erforderlichen F\u00e4higkeiten im Unternehmen vorhanden?<\/li>\n<li>Gibt es eine bestehende Deployment-Infrastruktur, die weiterverwendet werden kann?<\/li>\n<li>K\u00f6nnen die internen Systeme mit externen Anbietern verbunden werden?<\/li>\n<li>An wen sollen die Alpha- und Beta-Builds verteilt werden?<\/li>\n<\/ol>\n<\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Welche Art der Bereitstellung ist am besten f\u00fcr dein Unternehmen geeignet?<\/p>\n","protected":false},"author":42,"featured_media":74439,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[282],"tags":[937,938],"resource-industry":[],"resource-solution":[],"resources\/types":[1244],"class_list":["post-82255","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-unkategorisiert","tag-mobile","tag-qa","resource-type-blogs-de"],"acf":[],"_links":{"self":[{"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/posts\/82255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/comments?post=82255"}],"version-history":[{"count":0,"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/posts\/82255\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/media\/74439"}],"wp:attachment":[{"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/media?parent=82255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/categories?post=82255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/tags?post=82255"},{"taxonomy":"resource-industry","embeddable":true,"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/resource-industry?post=82255"},{"taxonomy":"resource-solution","embeddable":true,"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/resource-solution?post=82255"},{"taxonomy":"resource-type","embeddable":true,"href":"https:\/\/applausecomstaging.kinsta.cloud\/de\/wp-json\/wp\/v2\/resources\/types?post=82255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}