MVP von einem einzelnen Entwickler

Angesichts des enormen Wettbewerbs digitaler Produkte und der hohen Geschwindigkeit bei der Einführung neuer Produkte ist es erforderlich, die Realisierbarkeit von Produktideen schnell und kostengünstig zu testen. In diesem Artikel werde ich über die Erfahrungen bei der internen Erstellung von MVP sprechen, d. H. in der Tat von einem iOS-Entwickler. Wie ich beim Erstellen von MVP nach Ausgewogenheit gesucht habe, über Tools, Schwierigkeiten und deren Lösung. Wenn Sie die ersten Projekte in der mobilen Entwicklung implementieren möchten oder einem vorhandenen Produkt einen neuen Funktionszweig hinzufügen möchten, ist dieser Artikel genau das Richtige für Sie.

Bild

Erinnern wir uns zuerst daran, was MVP ist.

MVP ( Minimum Viable Product) ist ein Produkt mit minimalen, aber ausreichenden Funktionen, um die ersten Verbraucher zufrieden zu stellen.

Die Hauptaufgabe von MVP besteht darin, Feedback zu erhalten, um Hypothesen für die weitere Entwicklung zu formulieren und insgesamt die Angemessenheit zu bewerten. Jene. es sollte im Falle eines Ausfalls so billig wie möglich und gleichzeitig in einem positiven Szenario rentabel sein. Daher kann die Hauptaufgabe auf die berüchtigte Suche nach Gleichgewicht in jeder Entwicklungsphase reduziert werden.

Anwendungsfunktionalität




Daher musste ich eine mobile Anwendung mit den folgenden Grundfunktionen erstellen:

  • Genehmigung;
  • Sprachkonferenzen;
  • Admin-Panel und kleine Serverseite;
  • Laden von Inhalten durch Benutzer;
  • synchronisierte Anzeige von Inhalten;
  • grundlegende Analyse.

Zeit und Personal


Die Mindestressourcen für dieses Projekt sind ein iOS-Entwickler und 2 Monate für Entwicklung und Test. Eher eine Herausforderung. Aber keine Panik! Natürlich habe ich vorgefertigte Entwicklungen verwendet. MVP ist es definitiv nicht wert, eigene Bibliotheken zu entwickeln. Wir haben uns also ein paar Tage Zeit genommen, um vorgefertigte Lösungen und die notwendigen Open-Source-Projekte auszuwählen.

Design


Eines der weniger offensichtlichen Dinge aus dem für MVP festgelegten Mindestsatz ist das Design. Es scheint, dass es für ihn ausreicht, die Namen der Bildschirme aufzulisten und wofür sie verantwortlich sind. In der Realität beschleunigt eine sorgfältig gestaltete Benutzeroberfläche den Prozess erheblich, sodass der Entwickler viele Unsicherheiten in der Arbeit beseitigen kann. Die Entwicklung des Designs in den frühen Phasen ermöglicht ein klareres Verständnis des Benutzerflusses, ermöglicht es Ihnen, unnötige Funktionen zu entfernen und sich auf minimal ausreichende Funktionen für die erste Implementierung des Projekts zu konzentrieren.

Natürlich sollte sich der Fokus nicht auf komplexe Animationen verlagern, aber der erste Eindruck kann nur einmal gemacht werden! Daher benötigen wir eine einfache, aber angenehme Benutzeroberfläche und ein intuitives Tutorial.

In meinem Fall war das endgültige Design der Anwendung fast bereit, mit der Entwicklung zu beginnen.

Die Architektur


Es ist wahrscheinlich leicht zu erraten, dass ich an einem iOS-Client gearbeitet habe, und dies ist der Teil, der in diesem Projekt gespeichert und weiterentwickelt werden musste. Daher legen wir eine solide Architektur fest und wählen in den Modulen diejenigen Teile aus, die nur minimal lebensfähig sind und in den nächsten Entwicklungsstadien ersetzt werden.

Basierend auf diesen Anforderungen ist auch klar, dass die Anwendung nicht nur den Client, sondern auch die grundlegende Logik im Backend benötigt. Jene. Sie benötigen eine Autorisierung, die Logik des Beitritts und Austritts, die Erstellung und Verwaltung von Inhalten sowie das Senden von Push-Benachrichtigungen.

Suche nach einer Lösung


Eines der notwendigen Tools ist eine Cloud-Datenbank. Dazu habe ich einige der beliebtesten Optionen verglichen.



Aus der obigen Tabelle geht hervor, dass Firebase eine hervorragende integrierte Lösung von Google ist, die die meisten Anforderungen der entwickelten Anwendung abdecken kann. 

Mit solchen Lösungen können Sie alle Steuerelemente an einem Ort aufbewahren: Benutzerkonten, eine Liste der Räume und ihrer Einstellungen, Analysen und Informationen zu Abstürzen. In diesem Fall können Sie die Räume und ihren Inhalt auch über das Firebase-Administrationsfenster verwalten - dies ist sehr praktisch. Irgendwann könnte man sogar denken, dass dies eine Werbung ist, aber es hat mir sehr gut gefallen und vor allem haben diese Tools geholfen.

Darüber hinaus ist der Service kostenlos (vorbehaltlich Einschränkungen), und für MVP sollten sie mit einer Marge ausreichen. Gute DokumentationEs gibt bereits eine Reihe von Artikeln und Tutorials zu allen Diensten, bis hin zu Ihren eigenen Video-Tutorials auf YouTube. Sie lassen einfach keine Chance, aussortiert zu werden.

Als Ergebnis nahm ich von Firebase:

  • Autorisierung 'Firebase / Auth';
  • Cloud-Datenbank 'Firebase / Firestore';
  • Backend 'Firebase / Funktionen';
  • 'Firebase / Storage'-Speicher
  • Analytics 'Firebase / Analytics';
  • Crashlytics-Absturzbericht.

So sieht die Autorisierung aus:



Für die zugewiesenen Aufgaben wurde die anonyme Autorisierung eher vereinfacht, wenn dem Benutzer nur eine eindeutige ID zugewiesen wurde.

So sehen Push-Benachrichtigungseinstellungen auf dem Client aus:



Es werden nur wenige Zeilen benötigt. Sie müssen ein bestimmtes Thema abonnieren, das wiederum Pushbacks von hinten sendet.

So sieht das Senden an TypeScript (JavaScript) über das Firebase SDK aus:



Es musste nur noch eine kostengünstige Lösung für Sprachkonferenzen gefunden werden, aber alles stellte sich als nicht so offensichtlich heraus. Firebase kann diese Funktionalität leider nicht abdecken. 

Die Hauptanforderungen sind plattformübergreifende und einfache Integration. Hier ist eine kleine Auswahl ähnlicher Tools.

Die Aufmerksamkeit zog Jitsi an- Dies ist ein Open Source-Projekt mit Unterstützung für iOS / Android-, Audio- und Video-Chats auf WebRTC. Zu Beginn reicht das kostenlose Hosting aus, und in Zukunft können Sie umziehen. Außerdem können die Konferenzen selbst direkt in der Webversion getestet werden, was das Debuggen von Anrufen erheblich vereinfacht.



Jitsi hat eine sehr einfache Integration und den Start der Konferenz selbst. Nach dem Start des Anrufs wird die Konferenz jedoch direkt über Webview verwaltet. Sie können die Konversation nur programmgesteuert beenden. Bei der Auswahl dieses Tools wurde nicht gedacht, dass es beispielsweise mit den im Code verfügbaren Methoden unmöglich ist, die Stummschaltung / Stummschaltung aufzuheben. Daher musste ich diese Methoden verfeinern und zur Bibliothek hinzufügen sowie die Interaktion mit Steuerelementen konfigurieren. Ich musste auch einige Parameter für mich selbst anpassen. Natürlich hat es etwas länger gedauert - es hat eine zusätzliche Woche gedauert, aber es ist immer noch ein Vielfaches weniger als nötig, um Ihre Entscheidung zu schreiben. 

Zusammenfassung


Nach anderthalb Monaten war die Anwendung fertig. Wir haben die erforderlichen Analysen hinzugefügt, um die interessierenden Produktindikatoren zu messen. Zum Testen und anschließenden Verbesserungen wurden zwei Wochen benötigt. Somit dauerte die Entwicklung wie geplant 2 Monate. Ich stelle fest, dass Sie selbst bei kleinen Projekten anscheinend immer noch etwas reparieren können, um eine bessere Lösung zu finden. Diese Wünsche führen weg von der Hauptaufgabe von MVP.

Leider erhielt das Unternehmen nicht die erforderlichen Kennzahlen, was den Abschluss des Projekts bedeutete. Dies ist jedoch eines der Ergebnisse: Wir haben die Hypothese getestet und vor allem - schnell und kostengünstig.

Ich möchte Sie noch einmal an die wichtigsten Punkte erinnern, die Sie bei der Entwicklung einer MVP-Anwendung für iOS beachten sollten:

  • Sparen Sie bei allem, aber nicht bei der Qualität.
  • Das fertige Design beschleunigt den Prozess erheblich.
  • MVP ;
  • .

All Articles