Eine App Konstruieren: React Native und Ionic

Ist es möglich Geld zu sparen und dennoch eine gute Benutzererfahrungen zu liefern? Diese Frage ist in jedem Geschäftsbereich, der sowohl Produktion als auch Dienstleistungen beinhaltet, gerechtfertigt. Es ist besonders wahr, wenn ein anspruchsvoller Kunde sein Produkt so schnell wie möglich erhalten will und gleichzeitig eine hervorragende Qualität dieses Produktes erwartet. Und natürlich will er sich sicher sein, dass sein Geld am effizientesten umgesetzt wird. Unter großen Mengen von Entwicklungsunternehmen, welche ständig wie Pilze aus dem Waldboden sprießen (und das bedeutet Wettbewerb), ist das Liefern guter Benutzererfahrung ein Minimum dessen, was erbracht werden muss. Ihr Wettbewerbsvorteil kann die Verwendung einer innovativen Technologie sein, die Ihnen hilft den Entwicklungsprozess zu optimieren.

Wenn Sie anfangen neue Technologien zu verwenden, können Sie sich nicht sicher sein, dass es die beste Lösung sein wird. In den meisten Fällen sind einige Probleme die begrenzte Zeit und große Anzahl an Projekten. In diesem Artikel werden wir einen Vergleich von zwei Frameworks machen, React Native und Ionic, basierend auf unserer Echtzeit-Erfahrung in der Frontend-Entwicklung.

Bei der Entwicklung verschiedener Produkte, entweder für uns selbst oder für die Kunden, gab es schon immer eine Frage, die uns interessiert hat: Wie können wir die Zeit und die Kosten der Produktentwicklung verringern.

Android und vor allem iOS-Entwickler wurden immer sehr geschätzt, kosten eine Menge Geld und bei der Entwicklung für zwei Plattformen muss man das Doppelte berappen.

Irgendwann experimentierten wir mit Cordova, aber es fühlte sich nicht an, als könnten wir größeren Wert daraus ziehen.

Dann bemerkten wir Ionic. Vom Blickwinkel des Ingenieurs aus war es genau das, was wir brauchten — ein modernes Framework mit Fokus auf mobile Apps und scheinbare Einfachheit.

Wir verwendeten dieses Framework in ein paar Apps als Komponente und erstellten so über ein Dutzend Apps rein mit diesem Framework.

Über eine längere Zeit rangen bei uns jedoch einige Alarmglocken. Die Projekte konnten nicht rechtzeitig beendet werden, manchmal hat das Debugging zu viel Zeit in Anspruch genommen. Wir dachten, dass all diese Probleme durch die Verbesserung unserer Praktiken gelöst werden könnten und brachten viel Aufmerksamkeit für Design- und Architekturverbesserungen auf. Doch in Wirklichkeit war das Problem nicht der Prozess, sondern die Technik.

Da wir Ihnen einen Vergleich von zwei Frameworks geben wollen, haben wir uns entschlossen die wichtigsten Ionic-Probleme zu skizzieren, auf die wir gestoßen sind:

* Reaktionszeit. Selbst bei der Verwendung einiger Tech-Tricks war sie immer noch super;

* Arbeit mit Slide-Out-Tastatur und Eingabe insgesamt. Es hat eine Menge Probleme verursacht und war wirklich schwer, es auf große Menge an Geräten zu halten;

* Debugging, vor allem für die Projekte, welche Hardware-Features von ngCordova verwenden;

In diesem Abschnitt teilen wir mit Ihnen unsere Erfahrungen mit Ionic und definieren Hauptproblemen, die während unserer Arbeit aufgetreten sind. In unserem nächsten Artikel werden wir detailliert auf Side-By-Side-Framework-Vergleich eingehen und Ihnen erklären, warum React Native die bessere Lösung darstellt.

Hinterlassen Sie uns Ihre E-Mail, um unsere Artikel zu erhalten und über DashBouquet Development News auf dem Laufenden zu bleiben!

In diesem Teil des Artikels möchten wir Ihnen detaillierte Rahmenbedingungen vermitteln und Ihnen erklären, warum React Native die bessere Lösung für unsere Entwickler ist.

Wir haben immer versucht mehr Know-how in verschiedenen Technologien zu sammeln und dieses in der Praxis zu nutzen, um die beste Lösung zu finden. Deshalb haben wir parallel zu den Projekten auf Angular mit React begonnen und mit der Zeit wurden die Ideen, welche die Community dem Ökosystem vorstellte, für unsere Projekte so offensichtlich nützlich, dass Angular langsam aus Tech-Lösungen herausgedrängt wurde. Sie können ausführlichere Informationen dazu in unserem Angular vs React Artikel lesen.

Wir beobachteten React Native von dem Moment an, als Facebook die Unterstützung für Android angekündigt hatte und wir begannen, ein bisschen zu experimentieren. Wir beobachteten auch Ioinc2, das eine Innovation werden sollte, welche viele Probleme lösen würde, welche wir beim Arbeiten mit Ionic1 hatten.

Die Ansätze gegebenen Frameworks sind sehr unterschiedlich aber für uns ist React Native der ultimative Sieger.

Wir wählten die Hauptvorteile von React Native, die in Beziehung zu Ionic1/2 überlegen sind:

* Reaktionszeit, die mit Native-Apps verglichen werden könnte

* Die Fähigkeit zur Wiederverwendung der Code-Segmente (nicht der gesamte Code) für Desktops (Web-Apps), Mobilgeräte (Mobile Apps) und sogar für den Server (:-))

* Unglaublich bequeme Toolchain für Entwickler, die es ermöglicht schnell zu entwickeln und die App zu debuggen

* Große Menge an ausgearbeiteten Komponenten von Facebook

* Noch größere Mengen an Komponenten aus der Community

* Die Fähigkeit, die Ideen der funktionalen Programmierung in der Entwicklung zu verwirklichen, was große Stabilität und Zuverlässigkeit der App und relative Einfachheit der Skalierung gewährleistet

Allerdings machen wir hier nicht den Punkt, dass React Native 100% perfekt ist. Wir haben auch einige React Native-Nachteile im Vergleich zu Native-Apps gefunden:

* Die Code-Segmente, welche mit der Arbeit mit Hardware-Lösungen, Kamera, der Integration externer Bibliotheken, etc. verbunden sind, werden noch in Native-Segmenten durchgeführt

* Die Schnittstelle zwischen Javascript und Native-Segmenten ist nicht so einfach (aber nicht komplizierter als Cordova)

* React Native ist kein “Einmal schreiben, überall ausführen”-Framework, es ist eine separate Geschichte, die erforscht werden muss

Wann kann man also Ionic/2 verwenden? Wir haben uns für zwei passende Situationen entschieden, um das gegebene Framwork zu verwenden:

* Wenn Sie bereits eine App mittels Ionic/Angular geschrieben haben

* Wenn Ihre App in hohem Maße von dem fertigem Code abhängt, welcher für Ionic die beste Wahl wäre (wie in unserem Fall, als wir MathJax und mathquill benutzten, um mathematische Ausdrücke anzuzeigen und einzutragen)

Wenn Sie über Tools sprechen, mit denen Sie arbeiten, können Sie nicht objektiv bleiben. Es wird immer eines geben, das sie bevorzugen. Diese Wahl hängt von Ihrem Projekt, Ihrem Team und den Anforderungen ab, die Sie haben. Wir haben mit Ihnen hier nur unsere Erfahrung geteilt. Wählen Sie die beste Option für sich selbst.


Geschrieben von Anton Shaleynikov