Firebase vs. Ruby: Was ist besser für das Backend bei der Entwicklung mobiler Apps?

Veröffentlicht: 2021-10-05

Die Auswahl des Back-End-Stack für Ihre iOS- oder Android-App kann schwierig sein. Aus diesem Grund betrachten wir hier Firebase vs. Ruby on Rails-geschriebenes Backend und untersuchen, ob es irgendwelche „Kamikaze-Auswahlmöglichkeiten“ der Backend-Technologie für die Entwicklung mobiler Anwendungen gibt. Gibt es Gründe, Firebase oder Ruby nicht zu verwenden? Ist es möglich, Firebase mit Ruby on Rails zu verwenden? Lassen Sie uns entdecken.

Würden Sie mir zustimmen, wenn ich sage, dass Marketing ein Wettbewerb um die Aufmerksamkeit der Menschen ist? Darüber hinaus ist Marketing zu wichtig, um es einer Marketingabteilung zu überlassen. Es hat seinen Weg sogar in die Nische gekrochen, die nichts mit Werbung zu tun zu haben scheint - Softwareentwicklung; und Marketing gehört bereits dazu. Entwickler wählen eine Lösung für ihr Projekt basierend auf den Sternen, die einige ähnliche Bibliotheken auf Github haben, und der Anzahl der „Tweets“ des Kontos können wir vorhersagen, welche Technologie dieses Jahr aktiv wachsen wird. Diese digitale Umgebung birgt die Gefahr, dass wir einem Hype zum Opfer fallen, bei dem wir in die Irre geführt werden könnten – einfach nur auf das sehr empfohlene Hype-Tool hereinfallen, das von teuflischen Vermarktern entwickelt wurde.

Eines der Tools, über die in letzter Zeit alle gesprochen haben, ist Firebase und seine API, eine Entwicklungsplattform für Mobil- und Webanwendungen, die 2011 von Firebase, Inc. entwickelt und dann 2014 von Google übernommen wurde, wie Wikipedia sagt. Bevor Firebase 2014 von Google übernommen wurde, gab es keine Anzeichen für das schnelle Wachstum des Produkts, und einige behauptete Firebase-Nachteile seien vorhanden. Obwohl sich seit dieser Zeit einiges geändert hat. Firebase wurde bei der Erstellung von Apps wie den folgenden implementiert:

  • Shazam
  • Alibaba Bestell- und Liefer-App
  • Todoist App-Organizer

Giganten wie Shazam würden offensichtlich nicht in vorsätzliche Budgetausgaben investieren, daher war Firebase für sie eine durchaus vernünftige Wahl. Wir haben versucht, die Vor- und Nachteile der Firebase-Implementierung zu untersuchen und herauszufinden, für welches Projekt sie gut geeignet wäre.

Bevor wir uns jedoch mit den Vorteilen von Firebase befassen, sind zwei Punkte zu beachten – um alle möglichen Missverständnisse zu beseitigen, die auftreten können:

  1. Firebase war ursprünglich nicht als Backend-Option gedacht, diese Plattform hat im Kern eine Datenbank. Es ist nicht so, dass es auf wundersame Weise entwickelte Apps ohne den integrierten Serverteil gibt.
  2. Es ist jedoch keine relationale Datenbank. Firebase ist eine NoSQL- Basis mit allen Vor- und Nachteilen + einer spezifischen Firebase-Entwicklungsumgebung und -Architektur.

Was ist eine NoSQL-Datenbank?

Firebase als NoSQL-Datenbank

Laut Basho ist NoSQL (das bedeutet „Not SQL“ oder „Not Only SQL“) ein Ansatz für Datenbanken, der eine Abkehr von traditionellen relationalen Datenbankmanagementsystemen (RDBMS) darstellt. Um NoSQL zu definieren, ist es hilfreich, mit der Beschreibung von SQL zu beginnen, einer von RDBMS verwendeten Abfragesprache. Relationale Datenbanken sind auf Tabellen, Spalten, Zeilen oder Schemas angewiesen, um Daten zu organisieren und abzurufen. Im Gegensatz dazu verlassen sich NoSQL-Datenbanken nicht auf diese Strukturen und verwenden flexiblere Datenmodelle. NoSQL ist besonders nützlich, um große Mengen unstrukturierter Daten zu speichern, die schneller gewonnen werden als strukturierte Daten.

Im Gegensatz dazu ist Structured Query Language (SQL) eine Programmiersprache, die von Datenbankarchitekten verwendet wird, um relationale Datenbanken zu entwerfen. In einer SQL-Datenbank wie MySQL, Sybase, Oracle oder IBM DM2 führt SQL Abfragen aus, ruft Daten ab und bearbeitet Daten durch Aktualisieren, Löschen oder Erstellen neuer Datensätze. SQL ist eine leichtgewichtige, deklarative Sprache, die eine Menge Schwerarbeit für die relationale Datenbank leistet und sich wie eine Datenbankversion eines serverseitigen Skripts verhält.
[Quelle: Upwork]

Nun, da wir versichert haben, dass wir auf der gleichen Seite sind, lassen Sie uns einige Vorteile der Verwendung von Firebase herausarbeiten.

1. Firebase ist möglicherweise weniger zeitaufwändig.

Sobald Sie eine Echtzeit-App mit Firebase als Backend erstellen, ist keine Serverteilentwicklung enthalten - da NoSQLs dies nicht benötigen. Kurzfristig kann die Entwicklung dieser Plattform also weniger Zeit in Anspruch nehmen. Sobald Sie eine einfache App mit einem winzigen No-Big-Data-Backend dafür erstellen möchten, kann Firebase schnell in das Projekt implementiert werden. Wenn Sie eine festgelegte Frist oder ein bevorstehendes Ereignis haben, kann Firebase eine anständige vorübergehende Lösung sein.

2. Firebase ist eine Echtzeitlösung.

Wenn Sie sofortige Push-Benachrichtigungen und Updates benötigen, benötigen Sie eine sogenannte Echtzeit-App. Im Fall von Firebase gibt es viele Codelabs, die dafür geschrieben wurden - und einige davon zeigen Ihnen, wie Sie eine Chat-Anwendung für verschiedene Plattformen erstellen:

  • iOS
  • Android
  • Netz

Das gibt uns Grund zur Anpassung - mit allen Vor- und Nachteilen von Firebase wird es den Anforderungen von Echtzeit-Kommunikations-Apps gerecht.

3. Die Entwicklung von Firebase ist eine ziemlich sichere Lösung.

Solange Firebase auf der Infrastruktur von Google aufbaut, gibt es gute Gründe zu behaupten, dass es sich um eine gut geschützte Lösung handelt. Obwohl Sie Ihre Sicherheit verdoppeln könnten, indem Sie die Regeln der NoSQL-Datenbank definieren, haben Sie standardmäßig keine Kontrolle über die gespeicherten Daten - sie werden auf den Servern von Google gehostet.

Jede Rose hat Dornen.

Wenn Sie also beabsichtigen, dass Tausende von Menschen Ihr Produkt verwenden, ist Firebase möglicherweise eine wertlose Lösung.

Nachdem Sie Firebase als primären Back-End-Stack ausgewählt haben, müssen Sie einige Punkte beachten. Nicht die Nachteile der Verwendung von Firebase, sondern nur Dinge, die Sie wissen müssen. Bei Firebase können Sie den Preisplan frei wählen – aber der für die Echtzeitanwendungen geeignete ist ein „ Pay as you go “-Plan. Bei diesem Plan zahlen Sie nur für die Ressourcen, die Sie verbrauchen. Je mehr Benutzer Ihre App erhält, desto mehr werden Sie für die Backend-Wartung kosten.

Viele Leute halten dies für einen weiteren Pluspunkt - da viele Benutzer Ihres Produkts fantastisch sind, nicht wahr? Am Anfang ist es jedoch schwierig, sie alle zu monetarisieren – Sie müssen zuerst die Leute dazu bringen, Ihr Produkt zu lieben. Und im Falle von Firebase können Sie für alle Ihre kostenlosen Benutzer Geld ausgeben. Wenn Sie also beabsichtigen, dass Tausende von Menschen Ihr Produkt verwenden, ist Firebase möglicherweise eine wertlose Lösung.

Gerüchten zufolge hat Firebase auch versteckte Kosten, wenn Sie nach einem schnellen Benutzer- oder Nutzungswachstum ohne Vorwarnung in Rechnung gestellt werden; Wenn Sie also keine Angst haben, geräuschlos aufgeladen zu werden, dann machen Sie es einfach.

Aus diesem Grund ist eine weitere gute Backend-Option für Ihre App ein Ruby-Backend + ein bestimmter Server zur Datenspeicherung (dies ist der Ansatz, den wir häufig bei der Arbeit an den Projekten unserer Kunden verwenden). Außerdem sind die Vorteile von Ruby on Rails und Firebase mehr oder weniger gleich. In Rubys Fall gehen sie wie folgt:

1. Ruby ist eine einfache Sprache.

Es gibt eine kurze Liste von Frameworks, die darauf implementiert werden können, auch wenn man sie mit der PHP-Sprache und ihrem Quellcode vergleicht, aber es gibt viele Juwelen - ein komplettes System von Mehrzweckbibliotheken für Ruby. Ebenso einfach ist das Architekturmuster der Sprachen - MVC, mit klaren Entitätsabhängigkeiten.

Lesen Sie mehr über die Arten und Funktionen von Architekturmustern

2. Rubys Community hat sich bewährt.

Im Gegensatz zur neu gegründeten Firebase-Entwicklergesellschaft ist die Community von Ruby gigantisch, sie verfügt über viele Open-Source-Juwelen, die es Programmierern ermöglichen, komplexe Anwendungen schnell zu öffnen und zu entwickeln. Darüber hinaus haben viele berühmte Dienste (wie Stripe) aufgrund des „Ruhms“ von Ruby vorgefertigte Bibliotheken für Ruby.

3. Sie können Ihren Code auf Ruby testen.

Ruby verfügt über eine fortschrittliche Entwicklungsinfrastruktur, die es ermöglicht, Unit-Tests im gesamten Projekt zu maximieren und zu schreiben - um Fehler in neuen und bestehenden Funktionen zu reduzieren. Dadurch werden auch die Kosten für die zukünftige Änderung mitten im Entwicklungsprozess gesenkt.

4. Sie sind nicht an einen bestimmten Datenbanktyp gebunden.

Genauer gesagt auf einen bestimmten Typ einer Datenbank. Ruby ermöglicht es Ihnen, beliebige relationale oder orientalische Datenbanken sowie NoSQL und andere verschiedene Technologien zu verwenden - einschließlich Elasticsearch, Reddis und andere weniger beliebte.

5. Die Syntax von Ruby ist ein Kinderspiel.

In Ruby gibt es keine Datentypen – bzw. muss nicht nachgesehen werden, ob die Datentypen entsprechend strukturiert sind. Darüber hinaus ist auch das Composable-Error-System (auch Logging-System genannt) vorhanden; Dies erleichtert die Suche nach einem Fehler und ermöglicht es dann, die auftretenden Fehler schneller zu beheben.

SO, Firebase vs RoR - Welches sollte man wählen und wann?

Nach dem Vergleich von Firebase vs Rails lautet die diplomatische Antwort - es hängt hauptsächlich von Ihren Zielen ab.

Firebase als Backend für die Entwicklung mobiler Apps ist das Richtige für Sie, wenn Sie eines der folgenden benötigen:

  • Eine kleine Echtzeit-App mit einfachen Funktionen
  • Eine einfache App, in der Sie Lasten und Lasten speichern müssen
  • Eine konzepterprobende App, die später komplett überarbeitet wird

Wenn Sie jedoch ein komplexes mobiles System mit verwirrenden Algorithmen und Funktionen erstellen möchten, ist das mobile App-Backend von Ruby on Rails ebenfalls eine gute Wahl. Außerdem, wenn eine Anwendung keine klare Struktur hat, können Sie in der nicht relationalen Datenbank, die das Firebase Cloud-Backend zweifellos ist, die Daten nicht richtig auswählen. Die auf Firebase erstellte Geschäftslogik wird normalerweise in die Basis übernommen. Aus diesem Grund kann ein Mischmasch auftreten, wenn die Anwendungslogik etwas verwirrt ist. Und vergessen wir nicht, dass Ihnen jedes Mal eine Gebühr berechnet wird, wenn Sie einen neuen Benutzer erhalten, auch ohne Sie zu informieren - Ihr Geld wird möglicherweise eines Morgens nach dem Aufwachen einfach überwiesen.

Hoffentlich hat Ihnen das Lesen geholfen, herauszufinden, wie Sie Firebase bei der Entwicklung mobiler Apps verwenden können – wenn Sie der Meinung sind, dass es Ihren Anforderungen entspricht.

Lesen Sie auch: React Native vs. Native App-Entwicklung – welche soll man wählen?

Geschrieben von Oleg Tsarenko & Elina Bessarabova