18. Okt

Die APP-CMS Plattform: App-Entwicklung neu definiert! #OpenSource

Mit unserer APP-CMS Plattform haben wir unsere größten Probleme und Schwachstellen in der App-Entwicklung gelöst. In die Entwicklung sind die Erfahrung aus vielen Jahren App-Entwicklung, auch von größeren Projekten wie für Bosch oder Wüstenrot, eingeflossen. Vorbei ist die Zeit mit aufwendiger und doppelter Mehrentwicklung für iOS und Android – und vorbei ist vor allem die Zeit für den Einsatz von hybriden Frameworks wie Titanium Mobile oder PhoneGap. Mit der APP-CMS Plattform haben wir die App-Entwicklung neu definiert und kombinieren das beste aus den nativen und webbasierten Welten zu einer flexiblen, nachhaltigen und ganzheitlichen Lösung. Das APP-CMS Backend, sowie das dazugehörige APP-CMS SDK für iOS und Android ist ab Ende des Jahres unter einer Open-Source-Lizenz verfügbar.

Das APP-CMS

Das APP-CMS

Bereits vor einiger Zeit haben wir über die Probleme bei einer hybriden App-Entwicklung berichtet und unseren Lösungsansatz, die Web-Native-Strategie, vorgestellt. Web-Native bedeutet die Kombination der Vorteile aus beiden Welten (native und webbasierte Entwicklung), ohne von restriktiven Vorgaben hybrider Frameworks abhängig zu sein. Vordergründiges Ziel des Web-Native-Ansatzes ist eine Kosten-Nutzen-optimierte App-Entwicklung bei hoher Qualität, Wartbarkeit und vor allem Flexibilität. Mit der APP-CMS Plattform können Sie frei wählen, welche Bereiche in der App Sie nativ und welche webbasiert umsetzen. Und obendrauf bekommen Sie einen Synchronisations-Mechanismus, der Ihre Daten vom APP-CMS Backend und den mobilen Apps automatisch abgleicht.

Das APP-CMS Backend

Das APP-CMS Backend ist ein webbasiertes Redaktionssystem auf Basis von PHP und MySQL, mit dem völlig frei definierbare Datenstrukturen online verwaltet werden können.

Technisch liegt dem APP-CMS Backend das schlanke PHP-Framework Silex und Symfony Components zu Grunde. Kernstück des Systems ist aber Doctrine, über das sogenannte Entitäten (vgl. mit Datenbank-Tabellen) frei definert werden können. Technisch gesehen ist Doctrine ein ORM („Objekt-Relationaler Mapper“), mit dem Datenbanken auf Basis von Objekten beschrieben und abgerufen werden. Es wird lediglich definiert welche Tabellen, Felder und Verknüpfungen bestehen – um den Rest kümmert sich Doctrine. Auf Basis dieser Definitionen erstellt das APP-CMS Backend automatisch eine webbasierte, moderne und reaktive AngularJS-Oberfläche zum Verwalten der Daten und eine Schnittstelle (API) zur Kommunikation mit den mobilen Apps (oder auch anderen externen Systemen).

Eine einfache sogenannte Entitäten-Konfiguration ist als PHP-Klasse definiert und kann wie folgt aussehen:

In diesem Beispiel wird eine Tabellen (im ORM-Sprachgebrauch heißt Tabelle = EntitätFirma mit den Feldern Name, Strasse, PLZ und Ort definiert. Die genauen Vorgaben – also ob z.B. ein Feld ausgefüllt werden oder ob es sich dabei um Zahlen, Texten oder ein Datum handeln muss – werden als PHP-Kommentare über sogenannte Annotationen beschrieben. Es können dabei die kompletten Standard-Annotationen von Doctrine verwendet werden, ergänzt  um spezielle Annotationen des APP-CMS. Hier kann z.B. konfiguriert werden, ob das Feld in der webbasierten Oberfläche in der Liste dargestellt oder ob eine spezielle Eingabemethode (z.B. ein RTE) verwendet werden soll.

Aus dieser Beschreibung einer Entität (oder Tabelle im Datenbank-Sprachgebrauch) erstellt das APP-CMS Backend automatisch die benötigte Datenbankstruktur in MySQL und folgende Oberfläche zum Verwalten dieser Daten:

APP-CMS Backend - Auflistungen

APP-CMS Backend Formular

Das APP-CMS Backend ergänzt die normale Verwaltung von Inhalten um ein flexibles Berechtigungssystem und um eine komfortable Medienverwaltung. Darüber hinaus ist das APP-CMS sowohl in der PHP-Programmierung, als auch im AngularJS-Frontend flexibel und projektabhängig anpassbar.

APP-CMS Backend Berechtigungen

Das APP-CMS Backend lässt sich auf nahezu jedem Server/Hoster installieren, der PHP und MySQL unterstützt. Gerne bieten wir Ihnen als App-Agentur natürlich auch ein SSL-geschütztes Hosting des APP-CMS. Sprechen Sie uns an.

Das APP-CMS SDK für iOS und Android

Um in mobilen Apps auf die im APP-CMS Backend erstellten/verwalteten Daten zugreifen zu können, steht ein kostenloses SDK für iOS und Android zur Verfügung. Für die App-Entwicklung unter iOS ist das SDK als Framework-Datei zur manuellen Integration oder CocoaPod erhältlich. Einmalig in das eigene Xcode-Projekt integriert, steht der einfachen App-Entwicklung mit automatischem Synchronisations-Mechanismus nichts mehr im Wege!

Initialisierung des SDK

Das APP-CMS SDK kann beispielsweise im AppDelegate instanziert werden und steht damit überall im ganzen Projekt zur Verfügung.

Das SDK, bzw. die App kann mit einem festen API-Token (der im Backend erstellt werden kann)  oder mit einem individuellen Login versehen werden. Für das individuelle Login stehen im SDK folgende Methoden zur Verfügung:

Beim individuellen Login speichert das APP-CMS den vom Backend zurückgegebenen Token sicher im Schlüsselbund des Gerätes. Sobald ein Token zur Verfügung steht, kann das APP-CMS SDK mit dem APP-CMS Backend kommunizieren. Über einen Synchronisations-Mechanismus werden automatisch alle Inhalte (und Bilder/Dateien) im Hintergrund vom und ans Backend geladen. Der Start der Synchronisierung kann dabei (manuell) über folgenden Befehl gestartet werden.

 Alle synchronisierten Daten stehen damit offline auf dem iOS-Gerät zur Verfügung. Die Datenhaltung erfolgt intern im APP-CMS SDK über die dokumentenorientierte, NOSQL-Datenbankbank Couchbase Mobile. Zum Abruf/Bearbeiten der Daten stellt das SDK folgende CRUD-Methoden zur Verfügung. Diese können z.B. verwendet werden, um die Daten in einer UITableView darzustellen:

 Um die Entwicklung zu Vereinfachen, bzw. um grundlegende Oberflächen einheitlich für iOS und Android zu entwickeln, kommt im Folgenden unser Web-Nativ-Ansatz zum Tragen. Anstatt unsere Firmenliste (siege Beispiel oben aus dem APP-CMS Backend) in einer nativen UITableView anzuzeigen, wollen wir für die Darstellung HTML und CSS verwenden. Dazu reicht es im Storyboad von Xcode einen leeren ViewController anzulegen und diesen mit folgender Klasse zu verbinden:

Das war es schon an nativem Code – der Rest wird vom SDK und über folgendes HTML-Template erledigt, das ebenfalls im Xcode-Projekt abgelegt wird:

Mit der Template-Engine des APP-CMS SDK können die üblichen Kontrollstrukturen (foreach, if, includes, …) umgesetzt und beliebige CSS- oder JS-Frameworks wie Bootstrap oder jQuery eingebunden werden. Die kompletten Templates sind dabei plattformübergreifend gleich – was z.B. die Umsetzung von aufwendigen Detailseiten enorm vereinfacht. Und als weiteres Highlight können die Templates natürlich auch im APP-CMS Backend angelegt und verwaltet werden. Vorteil: Für Änderungen von Oberflächen und Designs ist nicht mehr zwingend ein aufwendiges Update über die App-Stores nötig!

Die Web-Native Kommunikation

Eine reine webbasierte Darstellung würde nicht viel nützen. Die webbasierten Komponenten müssen natürlich auch mit dem nativen Code kommunizieren. Das APP-CMS SDK unterstützt sie dabei: Um beispielsweise eine Klick-Geste auf eine Tabellenzeile abzufangen und an den nativen Code weiterzuleiten, genügt im HTML-Template folgender Aufruf:

Über den Template-Befehl call wird die native Funktion openDetails aufgerufen und firma als Dictionary-Parameter übergeben. Die letztendlichen Aufrufe und Parameter-Umwandungen übernimmt das APP-CMS SDK für Sie. Im nativen ViewController muss lediglich die Methode openDetails registriert und implementiert werden.

Natürlich wird vom APP-CMS SDK auch der Weg zurück, bzw. vom nativen zum webbasierten Code unterstützt. Im ViewController reicht hierbeu folgende Zeile, um eine Javascript-Funktion mitsamt Parameter aufzurufen:

Natürlich muss die JS-Methode test() auch im HTML-Template entsprechend implementiert sein. Als Parameter können skalare Werte wie Strings, aber auch umfangreiche Dictionary-Objekte übergeben werden. Das APP-CMS SDK wandelt die Parameter automatisch in die korrekten Javascript-Variablen oder -Objekte um.

Hinweis: Technisch basiert die Template-Engine und der ACSWebViewController des APP-CMS SDK auf Apples WebKit und setzt damit mindestens iOS 8.0 voraus. 

Die APP-CMS Plattform wird Open-Source!

github-logoDerzeit ist die APP-CMS Plattform in den Endzügen der Entwicklung für eine finale Release-Version. Intern ist das APP-CMS Backend und das APPC-CMS SDK bereits bei mehreren Kunden im Einsatz. Da wir als Web- und App-Agentur seit Jahren bereits von Open-Source-Projekten profitieren, wollen wir einen Teil an die Community zurückgeben.

Das APP-CMS Backend wird daher bis Ende des Jahres unter einer Open-Source-Lizenz auf Github veröffentlicht. Das APP-CMS SDK für iOS und Android werden wir ebenfalls kostenlos als Download, bzw. über die bekannten Paketmanager anbieten. Für die ganze APP-CMS Plattform arbeiten wir derzeit intensiv an einer Dokumentation und an einem Forum/Ticketsystem für den Austausch in der dann hoffentlich großen Community.

Und ja – wir leben auch nicht nur von Wasser und Brot. Natürlich werden wir als App-Agentur dann rund um die APP-CMS Plattform kostenpflichtige Dienstleistungen, Support und Premium-Module (z.B. Webbasierter ER-Designer, Workspace-Modul mit Vorschaumöglichkeit in definierten App-Clients,…) anbieten. Ihr dürft gespannt sein – wir sind es jedenfalls! 

Bei Fragen – oder wenn ihr ein potentielles Einsatzgebiet für die APP-CMS Plattform habt – könnt ihr euch jederzeit gerne an support@das-app-cms.de wenden.

Über den aktuellen Stand der Entwicklung und das Release-Datum für die Open-Source-Variante halten wir euch hier im Blog und über folgende Kanäle auf dem Laufenden:

Seid dabei, wenn die App-Entwicklung mit der APP-CMS Plattform neu definiert wird!

 

2 Antworten zu “Die APP-CMS Plattform: App-Entwicklung neu definiert! #OpenSource”

  1. Johannes sagt:

    Gibt es schon ein Datum an dem das APP-CMS auf GitHub verfügbar sein wird? Ich warte schon sehnsüchtig auf ein solches System.

    • Hallo Johannes, leider verschiebt sich die Veröffentlichung auf GitHub ein wenig, da wir derzeit noch mit Kundenprojekten etwas ausgelastet sind (zum großen Teil auf Basis des APP-CMS). Wir sind gerade dabei die Dokumentation anzufertigen. Zum jetzigen Stand wird das System Ende Februar als Open-Source veröffentlicht.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.