[SWIFT] Ich habe versucht, eine LINE-Klon-App zu erstellen

Einführung

Ich habe eine LINE-Klon-App erstellt, um die Grundkenntnisse von Firebase und der Chat-Funktion zu erlernen. Da es keinen bestimmten Ort für die Ausgabe gab, werde ich ihn als Zusammenfassung des Lernens und als Einführung in die erstellte Anwendung veröffentlichen. Bitte lesen Sie, wenn Sie interessiert sind.

In Verbindung stehender Artikel

Ich habe auf die folgende YouTube-Videoserie verwiesen. https://www.youtube.com/watch?v=XandgrGiV-8&list=PLJGQf09UDweLB6NGPoYnNL7j_z0Rzkpgr

Außerdem habe ich hier auf die Organisation der Artikel verwiesen.

App erstellt

output.gif

:octocat: GitHub https://github.com/ayukin/ChatApp

――Es ist ein persönliches Hobby, aber ich habe versucht, die Benutzeroberfläche des Bildschirms so nah wie möglich an LINE zu bringen.

Funktionseinführung

1. 1. Anmelden

output.gif

--Das Profilbild ist jetzt aus der Fotobibliothek ausgewählt. Es war möglich, die "Kamera" zu starten, aber ich habe sie weggelassen, weil ich nicht daran dachte, den Betrieb auf der tatsächlichen Maschine zu überprüfen.

2. Einloggen

output.gif

3. 3. Anzeige / Erstellung des Gesprächsraums

output.gif

4. Echtzeit-Chat-Funktion

output.gif

5. Anmelden Benutzerinformationen anzeigen / abmelden

output.gif

6. Firestore-Datenstruktur

スクリーンショット 2020-10-17 19.08.26.png

Technische Elemente

1. 1. die Architektur

Ich war mir der Architektur noch nie bewusst, deshalb habe ich mich dieses Mal für MVC entschieden.

MVC

--Modell: Behandelt Datenkommunikation, Speicherung, Geschäftslogik usw.

2. Bibliothek

Firebase

IQKeyboardManagerSwift

3. 3. Andere

Was mir bewusst war

1. 1. MVC Verantwortungsbereich

Teilen Sie die Verantwortlichkeiten von "Model", "View" und "Controller" in "FatViewController" auf, während Sie das Wissen über Design im Buch iOS App Design Pattern vertiefen Ich habe versucht, nicht zu werden.

2. Kenntnis von Variablennamen und Methodennamen

Obwohl es eine rudimentäre Sache ist, ist es beim Lesen eines Artikels, auf den in einer Anfängerbewertung hingewiesen zu werden scheint, schwierig zu verstehen, "Variablenname" und welche Art von Verarbeitung "Methodenname" darstellt Es wurde geschrieben, also habe ich versucht, ihm einen Namen zu geben, der so leicht wie möglich zu verstehen ist.

Zukünftige Aufgaben

Ich habe versucht, die folgenden Elemente zusätzlich zu implementieren, aber ich habe aufgegeben, weil ich auf meinem aktuellen Niveau nicht verstehen konnte. Es tut mir leid, aber ich werde es eines Tages erneut versuchen.

Zusammenfassung

Obwohl es immer noch ein Anfängerwissen und -verständnis ist, habe ich mich allmählich an Grammatik, Xcode, UIKit usw. gewöhnt. In Bezug auf das Entwerfen und Schreiben von Code unter Berücksichtigung der Architektur, die mir dieser Zeit bewusst war, konnte ich das Konzept usw. in Bücher und Artikel gutherziger Vorfahren eingeben, aber in Wirklichkeit hatte ich Probleme, die Verantwortlichkeiten aufzuteilen. Es wird gesagt, dass das Konzept von MVC je nach Schule unterschiedlich ist, aber wir als Anfänger denken, dass es am besten ist, mit einem leicht verständlichen Artikel oder der Meinung der Person fortzufahren, die unterrichten kann. Wenn Sie das Lernen vorantreiben und Ihre eigenen Gedanken haben oder einen Fehler bei der Erkennung bemerken, sollten Sie ihn zu diesem Zeitpunkt korrigieren. Auch das grundlegende Lernen von "Firebase" und "Chat-Funktion", das der Zweck dieser Studie war, ist nur "grundlegender Inhalt", aber ich denke, dass es an Stärke gewonnen hat. Wie ich in der Aufgabe erwähnt habe, habe ich mich entschlossen, mich in Zukunft der Implementierung angewandter Inhalte zu widmen.

Es ist seit langem ein Artikel wie ein Eindruck geworden, aber danke, dass Sie bis zum Ende gelesen haben.

Recommended Posts

Ich habe versucht, eine LINE-Klon-App zu erstellen
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
Versuchen Sie, eine Server-Client-App zu erstellen
[Azure] Ich habe versucht, eine Java-App für die Erstellung von kostenlosen Web-Apps zu erstellen. [Anfänger]
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
Ich habe versucht, eine Spring MVC-Entwicklungsumgebung auf einem Mac zu erstellen
Ich habe versucht, ein Personalmanagement-Tool zu entwickeln
Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen
Ich habe versucht, eine Website zu entwickeln, um Ausgaben zu erfassen.
Ich habe versucht, einen Server mit Netty zu implementieren
Ich habe versucht, den Block mit Java zu brechen (1)
[LINE @] Ich habe versucht, einen westlichen Kalender für einen japanischen Kalender zu konvertieren. BOT [Messaging API]
Ich habe versucht, ein Portfolio mit AWS, Docker, CircleCI, Laravel [mit Referenzlink] zu erstellen.
[Erste Umgebungskonstruktion] Ich habe versucht, eine Rails6 + MySQL8.0 + Docker-Umgebung unter Windows 10 zu erstellen.
Ich habe versucht, eine Webanwendung voller Fehler mit Spring Boot zu klonen
Ich habe versucht, eine Ramen-Shop-Sharing-Website zu entwickeln.
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Ich möchte eine generische Anmerkung für einen Typ erstellen
Ich habe eine Chat-App erstellt.
Ich habe versucht, yum-cron zu verifizieren
So erstellen Sie eine Methode
Ich habe versucht, mit Java und Spring eine Funktion / einen Bildschirm für den Administrator einer Einkaufsseite zu erstellen
Ich habe versucht, mit Wercker ein Docker-Image zu erstellen und zu veröffentlichen, mit dem GlassFish 5 gestartet wird
Ich habe versucht, eine Nachrichtenfunktion der Rails Tutorial-Erweiterung (Teil 1) zu erstellen: Erstellen Sie ein Modell
[Azure] Ich habe versucht, eine kostenlose Java-App zu erstellen ~ Mit FTP verbinden ~ [Anfänger]
Ich habe versucht, eine Java EE-Anwendung mit OpenShift zu modernisieren.
Ich möchte ein Formular erstellen, um die Kategorie [Schienen] auszuwählen
Ich habe versucht, eine React.js x TypeScript x Material-Benutzeroberfläche in einer Docker-Umgebung zu erstellen
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich möchte eine Parkettdatei auch in Ruby erstellen
Ich habe versucht, eine Webanwendung voller Fehler mit Kotlin zu implementieren
Ich habe einen RESAS-API-Client in Java erstellt
[Rails 6.0, Docker] Ich habe versucht, die Konstruktion der Docker-Umgebung und die zum Erstellen eines Portfolios erforderlichen Befehle zusammenzufassen
Ich habe versucht, eine Nachrichtenfunktion für die Erweiterung Rails Tutorial (Teil 2) zu erstellen: Erstellen Sie einen Bildschirm zum Anzeigen
Ich habe versucht, C # (Indexer) zu kauen.
Vorbereiten der Erstellung einer Rails-Anwendung
Ich habe eine shopify App @java erstellt
Ich habe ein wenig digdags docker.run_options ausprobiert
Ich habe versucht, die Unterstützung für iOS 14 zusammenzufassen
Erstellen Sie eine neue App mit Rails
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, die Methode zu erklären
Erstellen Sie eine Befehlszeilen-App mit maven
Ich habe versucht, das Java-Lernen zusammenzufassen (1)
Ich habe jetzt versucht, Java 8 zusammenzufassen
C # (Polymorphismus: Polymorphismus)
Ich habe eine passende App erstellt (Android App)
Ich habe versucht, Active Hash zu erklären
[Android] Ich habe eine Schrittzähler-App erstellt.
Ich möchte mit link_to [Hinweis] eine Schaltfläche mit einem Zeilenumbruch erstellen.
Ich habe versucht, den Weihnachtsbaum in einem Lebensspiel zu beleuchten
Ich habe versucht, Code wie eine Typdeklaration in Ruby zu schreiben