Freitag, 9. Juni 2017

React Native: welche Vorteile?

Welche Vorteile bietet die App-Entwicklung mit React Native.


  • Wann macht React Native für die Entwicklung von Apps Sinn?  
  • Warum ist diese Technik so beliebt?
  • Wer nutzt bereits die Vorteile von React Native Programmierung? (Einige Referenzen)
  • Für welche Projekte ist dieses Methode geeignet?


Pro und Contra:  in diesem Beitrag eine Liste von Vorteilen; die Nachteile in einem späteren Beitrag.


Ich liste einfach mal die Ergebnisse aus dem Brainstorming auf und lasse die Kollegen das dann die React Native Vorteile schrittweise ergänzen. .... im weitesten Sinne entsteht dieser Beitrag agil und auf eine MVP basierend ;-)  ... fehlt nur noch das Buzzword "microservices", dann hätte ich indirekt schon die Stichworte zu den Vorteilen zusammen.


React Native Apps

Die Entwicklung von Apps erfolgt fast immer für die zwei wichtigen Welten der Smartphone-Betriebssoftware:  IOS und Android.  Entwickelt man für jede Welt native, muß man sehr unterschiedliche Programmierung verwenden. Das benötigt zwei Teams und ergibt meist schon in der ersten Version leicht unterschiedlichen Versionen der App.   Bei jeder Weiterentwicklung steigt dieses Risiko von Versionenunterschieden.

Wenn man IOS native und Android native entwickelt, fallen auch für jede Entwicklung Projektmanagement (PM) und Test und Quality-Assurance (QA) Kosten an.  Das macht in Projekten meist zwischen 25 und 40 % der Kosten aus, steigt mit jeder Weiterentwicklung sogar noch.

Mit der Entwicklung in React Native hat man den Vorteil, dass die App zuerst in javascript in nur einer Variante programmiert werden muß und diese dann zu zwei nativen Apps in IOS und Android automatisch umgewandelt wird.  Da muß man dann manchmal noch Anpassungen vornehmen, doch die Hauptarbeit ist mit einer Programmierung gemacht.

Weitere Vorteile?   Dazu die folgende Liste!  (siehe auch Blog Teil 2 React Native Apps)


Vorteile

Sicher

Weil das Entwicklerteam an einer Basis arbeitet und erst am Schluß die beiden nativen Apps erzeugt, ist das Ergebnis ziemlich sicher.  Denn es stehen mehr Ressourcen für Testing und einheitliche App-Strukturierung zur Verfügung. Eine Entwicklung => zwei native Apps.



Kongruente Ergebnisse

React Native führ zu weitestgehend einheitlichen Apps.  Lediglich bei IOS und Android Spezifka gibt es notwendigerweise kleine Unterschiede. Die Funktionen befinden sich jedoch immer auf einheitlichem Stand.



Flexibler

Software muß flexibel entwickelt werden können und sich beständig weiterentwickeln können. Auch diesbezüglich ist es ein großer Vorteil, einheitlich die Basis zu programmieren und in einem automatischen Prozess die beiden nativen IOS und Android Apps auszuwerfen.



große Entwicklergemeinde

Eine große Entwicklergemeinde ist wichtig, damit die Entwickler nicht für jede Teil-Funktion das Rad neu erfinden müssen. Eine große Entwicklergemeinde bedeutet, dass fast alle Fragen schnell gelöst werden können. Für den Auftraggeber bedeutet das auch, dass immer sichergestellt ist, dass ein Team ergänzt oder neu zusammengestellt werden kann.


viele getestete Lösungen und Bausteine

In direktem Zusammenhang mit der großen Entwicklergemeinde und dem großen Erfolg dieser Technik steht auch der Vorteil, dass es eine sehr große Bibliothek fertiger Bausteine gibt.  Das beschleunigt die Entwicklung und hebt die App auf ein höheres und moderneres Niveau, als wenn jede Komponente individuelle neu erfunden werden müsste.



Zukunftssicher: ein wichtiger Aspekt

Zukunftssicherheit ist ganz wichtig. Zum einem für die Stabilität der Anwendbarkeit, zum anderen in Bezug auf die Optionen beständiger Weiterentwicklung.  Im React Native Framework sind notwendge technische Updates einfach möglich und sind sicher, weil von einer großen Entwicklergemeinde getestet.



Top-Referenzen

Erfolgreiche Internetunternehmen nutzen diese Entwickler-Technik. Hohe Zugriffzahlen und beständige Weiterentwicklung machen diese Apps aus.  Davon können auch Start Ups und etablierte Unternehmen bei der Entwicklung Ihrer Apps profitieren.


React Native Referenzen:

  • Google
  • Facebook
  • Soundcloud
  • Wallmart
  • Airbnb
  • Box
  • Vogue
  • GitHub
  • Instagram
  • LinkedIn
  • Microsoft
  • Pinterest
  • Pixar Animation Studios
  • Baidu mobile,
  • Tesla
  • tmDrive
  • Twitter
  • Uber
  • WhatsApp 


....  verwenden react code.

Im Bereich B2C und auch B2B Apps und auch komplexen Softwarelösungen kann und wird React Native eingesetzt.


Günstigere Entwicklung: das ist doch ein deutlicher Vorteil, oder?

Weniger Kosten bei der App Entwicklung bei gleichzeitig höherer Qualität und schnellerer Entwicklungszeit. Die Kostenfaktoren QA und PM fallen nur einmal an, ggf noch bei einzelnen IOS und Android Anpassungen. Zusätzlich ist nur ein Entwicklerteam beteiligt statt zwei Teams für die App Entwicklung einzusetzen. Das macht erfahrungsgemaäß eine Gesamterparnis von bis zu 50 % aus.



Unabhängigkeit für den Auftraggeber

Große Entwicklergemeinde und übersichtlichere Dokumentation plus internation jedes Semester neue junge Programierer, die react native, Javascript (die ideale Einsteiger Programmiersprache), microservices, Python und AWS können: als Auftraggeber bleibt man deutlich unabhängiger!



für kleine schnelle App Projekte geeignet

React native ist wegen der schnelleren Entwicklung und der automatischen Kompilierung auch bei kleineren Projekten sinnvoll einsetzbar. Denn es entstehen keine Extrakosten durch die Nutzung von Ract Native Technik.



für große komplexe Projekte geeignet

Große Projekte bedürfen mit jedem Entwicklungsschritt zunehmender QA und PM Anteile. Die Kostenersparnis wird mit jeder weiteren Iteration deutlicher zu erkennen sein.


MVP geeignet

Bei den meisten Projekten individueller Software-Entwicklung macht es Sinn, mit einer MVP zu starten. Der flexible Entwicklungsprozess von React Native unterstützt dieses.



 Ergo: React Entwicklung ist fast immer besser!

Microservices Software-Architektur

Das Thema microservices Softwarearchitektur spielt in Zusamennhang mitv React Entwicklung insofern eine Rolle, indem damit besonders flexibel und recht sicher react Softwarekomponenten mit Komponenten, die in anderer Programmiersprache geschrieben wurden, verbudnen werden können.

Das ist sowohl für eine MVP-orientiertes lean Startup als auch bei großen Projekten und integrierten B2B Softwarelösungen von Interesse.


Microservices

Was sind Microservices?

Hier geht es um eine Frage des Softwaredesigns. Im Gegensatz zu den bislang dominierenden sog. Monolithen kann man durch die Aufteilung in viele kleine Aggregate viele Vorteile und Freiheiten erzeugen.   Ich finde, die Wikipedialeute haben die Definition sehr zu formuliert, daher hier einfach als Zitat:

"Microservices sind ein Architekturmuster der Informationstechnik, bei dem komplexe Anwendungssoftware aus kleinen, unabhängigen Prozessen komponiert wird, die untereinander mit sprachunabhängigen Programmierschnittstellen kommunizieren. Die Dienste sind klein, weitgehend entkoppelt und erledigen eine kleine Aufgabe. So ermöglichen sie einen modularen Aufbau von Anwendungssoftware"
(Wikipedia 09.06.2017)


Vorteile

Die Vorteile dieser Microservices Architektur sind vielfältig und ich würde bei der App-Programmierung gerade bei komplexeren Softwarekonstrukten mmer prüfen, inwieweit die microservices einen Vorteil bringen.

Insbesondere die viele Vorteile bei Anpassungen und Erweitereungn sollen hier schon einmal hervorgehoben werden. Weitere Vorteile liste ich mal in einem gesonderten Blogbeitrag auf.



Kombination mit React Native Apps 

Die Kombination von React Native und microservices Software-Architektur macht oft Sinn. Man kann für jeden Baustein einer komplexen Software die jeweil optimale Programmiersprache wählen.

Bei updates und Erweiterungen braucht man immer nur die kleine betroffene Einheit (Aggregat) ändern. Dadurch braucht man nicht zu befürchten, das Gesamtsystem zu verändern und zu destabilisieren.

Da sich Software / Apps laufend weiterentwickeln, ist dieser Aspekt wohl der wichtigste Vorteil gegenüber traditionellen monolithischen Softwarestrukturen.

-----

React Native Apps.  Welche Vorteile gibt es. 
Wer App Entwickler sucht, sollte über diese Technologie nachdenken.




Zu diesem App Blog:

Nicht Programmierer sonder Anwender sind die Zielgruppe. Die Beiträge sollen einzelen Aspekte ausfzeigen, die man bei der Entwicklung von Apps, bzw. der Beauftragung an einen App-Programmierer beachten könnte / sollte.    Der Autor ist nicht Programmierer und versucht die Pro und Contra aus Anwenderperspektive zu sehen. Das Wissen erhalte ich aus Interviews und Recherchegesprächen.  Für die Richtigkeit der gemachten Aussagen kann ich nicht garantieren. Alle Angaben sind daher ohne Gewähr.


Profis sollte das Kommentarfeld für Berichtigungshinweise und Kritik nutzen. Leute, die einen App Programmierer suchen, können das Kommentarfeld für Fragen nutzen.


.

--------
Musik Tipp heute: Erik Truffaz Quartet.
Geplant:  die documemta d14 besuchen!
Mittwoch Golem Freejazz

1 Kommentar:

  1. wann macht microservice software architektur bei der app entwicklung sinn? ist das für native sowie hybride apps geeigent?

    AntwortenLöschen