Home / Entwicklung / Nati­ve, hybri­de oder Web-Apps – was ist die bes­te Lösung?
Nati­ve, hybri­de oder Web-Apps – was ist die bes­te Lösung?

Nati­ve, hybri­de oder Web-Apps – was ist die bes­te Lösung?

In vie­len Pro­jek­ten wird die­se Fra­ge spä­tes­tens bei der Auf­wands­schät­zung rele­vant. Wir stel­len hier die ver­schie­de­nen Vari­an­ten vor und beschrei­ben deren Vor- und Nach­tei­le für unter­schied­li­che Pro­jekt-Sze­na­ri­en.

Nati­ve Apps

Nati­ve Apps sind in der jewei­li­gen Hoch­spra­che geschrie­be­ne Anwen­dun­gen. Dies sind Apps, die ganz spe­zi­fisch für ein bestimm­tes Betriebs­sys­tem, sel­ten auch für eine spe­zi­el­le Ver­si­on ent­wi­ckelt wur­den und die alle Funk­tio­nen und Fähig­kei­ten opti­mal aus­nut­zen kön­nen. Auf Apple-Gerä­ten sind das etwa in Objective‑C oder Swift geschrie­be­ne Appli­ka­tio­nen, die meist mit­hil­fe von X‑Code umge­setzt wer­den. Für Andro­id-Smart­pho­nes und Tablets sind die Anwen­dun­gen in Java geschrie­ben. Nati­ve Apps nut­zen neben der jewei­li­gen Spra­che auch direkt die bereit­ge­stell­ten APIs und Pro­gram­mier­richt­li­ni­en des jewei­li­ge Sys­tems. In sel­te­nen Fäl­len wer­den Apps auch in ande­ren Hoch­spra­chen als den Stan­dard­spra­chen geschrie­ben. Ein gutes Bei­spiel sind rei­ne C‑Apps für iOS.

Ein­ge­setz­te Tech­no­lo­gi­en:

  • Objective‑C (Apple, iOS)
  • Java (Goog­le, Andro­id)
  • C# (Micro­soft, Win­dows Pho­ne)

Vor­tei­le von nati­ven Apps?

  • Opti­ma­ler (Schnell ohne Ver­zö­ge­rung) Zugriff auf die Res­sour­cen des Geräts
  • Zugriff auf alle Hard­ware-Funk­tio­nen
  • Ver­tei­lung über die App-Stores
  • Mög­li­che Bugs kön­nen meist gelöst wer­den
  • Eta­blier­te Zah­lungs­mög­lich­kei­ten, meist durch die Anbie­ter der App-Stores

Nach­tei­le von nati­ven Apps

  • Für jede Platt­form ist eine sepa­ra­te Ent­wick­lung not­wen­dig
  • Hoher Pfle­ge- und War­tungs­auf­wand
  • Höhe­re Erstel­lungs­kos­ten

Opti­ma­le Ein­satz­ge­bie­te aus Kos­ten/­Nut­zen-Sicht:

  • Spie­le
  • Hard­ware- und Per­for­mance-kri­ti­sche Apps
  • Bei sehr hohen Sicher­heits­an­for­de­run­gen

Web-Apps

Eine Web-App ist eine Web­sei­te, die z. B. mit einem Web­view in einen nati­ven Rah­men gela­den wird, also eine Anwen­dung, die mit­hil­fe eines Brow­sers auch über eine URL auf­ge­ru­fen wer­den könn­te.

Web-Apps kön­nen theo­re­tisch auch in gän­gi­gen Brow­sern genutzt wer­den. Auf mobi­len End­ge­rä­ten kön­nen die­se zudem ein Icon auf dem Start­bild­schirm erhal­ten, um sie schnel­ler auf­ru­fen zu kön­nen. Letzt­lich wird aber die Web­sei­te auf­ge­ru­fen, und das bedingt in den aller­meis­ten Fäl­len auch eine Online-Ver­bin­dung. In eini­gen Fäl­le nut­zen Web-Apps auch einen Off­line-Spei­cher, der aller­dings sehr begrenzt ist und auch ande­ren tech­ni­schen Restrik­tio­nen unter­liegt.

Ein­ge­setz­te Tech­no­lo­gi­en:

  • HTML 4/5 und CSS3
  • WebGL

Vor­tei­le von Web-Apps

  • Kos­ten­güns­ti­ge Ent­wick­lung
  • Leicht an unter­schied­li­che End­ge­rä­te anpass­bar
  • Sehr schnel­le Updates

Nach­tei­le von Web-Apps

  • Stark begrenz­te Mög­lich­kei­ten
  • Meist schlech­te­re Usa­bi­li­ty als ande­re Apps
  • Kein Zugriff auf Hard­ware-Funk­tio­nen, wie z. B. Kom­pass, Kame­ra oder Blue­tooth
  • Kei­ne Dis­tri­bu­ti­on über den jewei­li­gen Appsto­re (Dies wür­de dann eine hybri­de App erfor­dern)

Hybri­de Apps

Bei die­sem Ansatz wer­den eine Web-App mit einer nati­ven App kom­bi­niert. Dabei wird mög­lichst viel Logik über eine Web-App umge­setzt und nur in kri­ti­schen Berei­chen auf nati­ve Ent­wick­lun­gen zurück­ge­grif­fen. Die Bestand­tei­le der Web-App kön­nen sowohl online gela­den als auch direkt in der App mit­aus­ge­lie­fert wer­den.

Ein­ge­setz­te Tech­no­lo­gi­en:

  • HTML 4/5 inklu­si­ve CSS3
  • WebGL
  • Cordova/Phonegap oder ein selbst­ent­wi­ckel­ter Rah­men in der jewei­li­gen Hoch­spra­che

Vor­tei­le:

  • Platt­form­über­grei­fen­de Ent­wick­lung mög­lich
  • Ver­tei­lung und Bezah­lung über App-Stores
  • Zugriff auf Hard­ware-Funk­tio­nen wie Kame­ra und GPS
  • Kos­ten­güns­ti­ge Ent­wick­lung

Nach­tei­le:

  • Aktua­li­sie­run­gen müs­sen eben­falls über die App-Stores erfol­gen.
  • Per­for­mance-Pro­ble­me im Web-App-Bereich

Schwer­punk­te:

Hybri­de Apps sind, je nach Ein­satz, das Bes­te oder Schlech­tes­te aus zwei Wel­ten. Die Kos­ten­ein­spa­rung gegen­über rein nati­ven Apps spre­chen für einen Ein­satz in nicht 100% Per­for­mance-hung­ri­gen Apps, bei wel­chen Kosten/Nutzen eine stär­ke­re Rol­le spielt.

Cross­com­pi­le Apps

Eine neue­re Technologie, die es ermög­licht aus einer Code­ba­sis ver­schie­de­ne nati­ve Apps zu kom­pi­lie­ren. Dies ermög­licht es, eine platt­form­über­grei­fen­de Ent­wick­lung von Fea­tures mit Aus­spie­lun­gen für unter­schied­li­che (mobi­le) Betriebs­sys­te­me zu ent­wi­ckeln. Einer der bekann­ten Anbie­ter, Xama­rin (Mono), ver­wen­det C#, wel­ches dann in Java, bzw. Objective‑C über­setzt wird. Aus Sicht des Betriebs­sys­tems sieht eine der­ar­ti­ge App nicht anders als eine echt-nati­ve aus. Hier­bei ist es wich­tig, dass nicht alle Bestand­tei­le durch den Cross­com­pi­le abge­deckt wer­den. Bei Xama­rin wird das Front­end meist platt­form­spe­zi­fisch ent­wi­ckelt. Je nach Pro­jekt kön­nen ca. 40–60% des Codes wei­ter genutzt wer­den.

Aus­ge­wähl­te Tech­no­lo­gi­en:

  • Xama­rin

Vor­tei­le von Cross­com­pi­le Apps:

  • Platt­form­über­grei­fen­de Ent­wick­lung mög­lich
  • Ver­tei­lung und Bezah­lung über App-Stores.
  • Zugriff auf Hard­ware-Funk­tio­nen wie Kame­ra und GPS.
  • Kos­ten­güns­ti­ge­re Ent­wick­lung

Nach­tei­le:

  • Lizenz­kos­ten pro App
  • 40 – 60% platt­form­ab­hän­gi­ger Code

Fazit

Je nach Anfor­de­rung gibt es ver­schie­de­ne Lösun­gen, die ziel­füh­rend sind. Nach einer Anfor­de­rungs­ana­ly­se kann eine ent­spre­chen­de Ein­schät­zung erfol­gen. Meist soll­ten hier­für aber auch Kri­te­ri­en, wie die gewünsch­te User­ex­pe­ri­ence oder die zukünf­ti­ge Pla­nung, gewich­tet wer­den. Eine zu schnel­le Ent­schei­dung, z.B. nur nach dem Kos­ten­as­pekt für eine der erwähn­ten App-Tech­no­lo­gi­en, kann zu hohen (Folge-)Kosten und auch nega­ti­vem Kun­den­feed­back füh­ren. In eini­gen Fäl­len ist ein mehr­stu­fi­ges Vor­ge­hen über einen Pro­to­ty­pen mit abschlie­ßen­dem User­test das bes­te Vor­ge­hen. Anschlie­ßend kann die App mit den gewon­ne­nen Erkennt­nis­sen auf der rich­ti­gen tech­ni­schen Basis imple­men­tiert wer­den.