[JAVA] Versuchen Sie, eine Server-Client-App zu erstellen

Über diese Seite

Zum Lernen habe ich eine Smartphone-Anwendung vom Typ Server-Client erstellt. Dieser Artikel ist ein Referenzartikel, der die Websites zusammenfasst, auf die bei der Implementierung verwiesen wurde. Es ist 1 Bildschirm, 1GetAPI, aber es gibt viele Dinge zu tun und es war eine großartige Lernerfahrung.


【Überblick】 ぷれぜんてーしょん1概要図.png


Bereiten Sie die Entwicklungsumgebung vor


image.png  Die Server-Entwicklungsumgebung ist Eclipse, die ich immer benutze. Kein Kommentar im Besonderen.


image.pngimage.png Bootstrap Studio wird als Designtool verwendet. Ich denke nicht, dass es für professionelle Designer ist, Wenn von einem Nicht-Designer wie mir entworfen

Diese beiden Punkte sind sehr nützlich.

Es ist eine Shareware von ungefähr 3000 Yen, aber es gibt keine zusätzlichen Kosten mit einer permanenten Lizenz.


image.pngimage.pngimage.png Dieses Mal wurde CORDOVA für die Front-End-Entwicklung übernommen. Es gibt zwei Gründe.

Monaca ist eine integrierte Entwicklungsumgebung für die Front-End-Entwicklung und kann von der Implementierung bis zur Erstellung ausgeführt werden. Es gibt einen freien Rahmen. Gott.


image.png circleci ist ein Build-Tool wie Jenkins und andere. Es gibt eine kostenlose Stufe. Eigentlich war es für Docker & Jenkins geplant, aber es starb, um die Serverkostenbelastung zu reduzieren. Dieses Mal wurde nur das CI-Tool von Server implementiert.


Erstellen Sie den Rest-API-Dienst mit Spring Boot


image.pngimage.pngimage.png Ich habe zunächst Hello World mit Spring Boot ausgeführt und es dann auf die Rest-API erweitert.


Die Namensregel ist aufgrund der Entwicklung durch eine Person angemessen geworden, aber ich denke, sie hätte zuerst geübt werden müssen.


Packen Sie den Quell- und Testcode ein, während Sie sich die Abdeckung ansehen


image.png image.png Ich habe Spock für den Testcode und Jacoco für die Abdeckungsmessung verwendet. Ich habe den Testcode und den Abdeckungsbericht zum ersten Mal verwendet, aber er ist sehr nützlich. Ich war glücklich und genoss es, dass der Quellcode und der Testcode für einander robuster wurden.


JUnit hat Spock übernommen, weil es Probleme mit der Lesbarkeit hat, aber es war auch sehr einfach zu handhaben.


Die Berichterstattung war eine Gelegenheit, über das Spektrum der zu ergänzenden Aktivitäten und Testfälle nachzudenken.


API-Dokumentation erstellen


image.pngimage.png Fragen Sie Swagger. Es ist in Ordnung, wenn Sie SpringFOX in Gradle und erklärenden Text in der Hauptklasse schreiben.


Erstellen Sie eine Bereitstellungsumgebung


image.png image.png AWS war ideal, aber ich entschied mich, einen monatlichen CentOS-Server zu mieten, der aufgrund der Lernkosten verwaltet wurde.


Was zu tun ist 1. Ermöglicht die Arbeit mit Teraterm, WinSPC

Was zu tun ist 2. Installieren Sie das JDK, damit Spring Boot funktioniert

Was zu tun ist 3. Stellen Sie den Betrieb von Jar of Spring Boot bereit und überprüfen Sie ihn

SpringBoot enthält Tomcat und kann von jar alleine ausgeführt werden, ohne einen Tomcat-Server einzurichten.

[Schritt 1. Versuchen Sie es vorerst zu verschieben] ① Übertragen Sie die JAR auf den Server (per WinSCP senden) (2) Führen Sie den Dienst mit Java Jar (Pfad des von Hand gesendeten Glases) aus. ③ Bestätigen Sie den Vorgang unter http: // (Server-IP): 8080 /

[Schritt 2. Als Resident Service registrieren] Im eigentlichen Service in werden die folgenden Arbeiten ausgeführt, um ihn resident zu machen.


Entspricht CORS


Wenn Sie mit diesem Punkt fortfahren, wird die Implementierung für jeden Server und Client fortgesetzt. Auf der anderen Seite muss CORS (Cross-Origin Resource Sharing) unterstützt werden, um tatsächlich kombinieren und kommunizieren zu können.


Beim Senden wie POST müssen die Einstellungen auf die Preflight-Anforderung aufmerksam gemacht werden.


Unterstützt die SSL-Kommunikation


image.png image.png Es scheint, dass Chrome unter Android keine Kommunikation mit der API zulässt, es sei denn, es handelt sich um HTTPS. Da es keine Hilfe dafür gibt, habe ich SSL auf der Serverseite festgelegt, um die HTTPS-Kommunikation zu aktivieren.


Was zu tun ist 1. Legen Sie Ihre eigene Domain fest

Was zu tun ist 2. Holen Sie sich ein SSL-Zertifikat

Ich habe Let's Encrypt verwendet, das von einer gemeinnützigen Organisation in den USA kostenlos zur Verfügung gestellt wird. Das Let's Encrypt-Zertifikat läuft in 3 Monaten ab. Es empfiehlt sich daher, cron hinzuzufügen.


Was zu tun ist 3. Installieren Sie nginx und ordnen Sie es dem SSL-Zertifikat zu

Der Grund, warum ich nginx eingeführt habe, war, dass ich nicht verstehen konnte, wie SSL direkt in Spring Boot integriert werden kann. ..


Im App Store einreichen


image.png Wenn Sie an den App Store senden möchten, benötigen Sie einen Mac (Xcode), um die Release-Version im Prinzip zu erstellen. Ich habe Monacas Build-Service für Windows-Benutzer verwendet. Es wird die Release-Version für 3300 Yen für eine Anwendung ausgeführt.


Sie werden außerdem aufgefordert, Ihr Gerät als Build-Informationen zu registrieren. Ich habe ein gebrauchtes iPhone 6 (Rang B) gekauft, um die eigentliche Maschine zu debuggen. Über 9000 Yen. Wenn Sie die Möglichkeit haben zu kommunizieren, werden Sie von Ihren Freunden, die Apple-Benutzer sind, alt.


Um Ihre iOS-App zu veröffentlichen, müssen Sie die Überprüfung bestehen. Selbst wenn es sich um NG handelt, wird der Chat höflich kommentiert. Korrigieren Sie ihn also und reichen Sie ihn gemäß den Anweisungen erneut ein.


Bei Google Play einreichen


image.png Es gibt keine App-Überprüfung bei Google Play. Fügen Sie einfach die erforderlichen Informationen hinzu und senden Sie sie ab.


Das fertige Produkt


image.png Eine App, die die morphologischen Ergebnisse von Mecab und einige Wörter mit Bedeutung zurückgibt, wenn Sie einen klassischen Satz eingeben. Ich hatte wirklich die Idee, als ich mit meiner Frau fernsah.


Schließlich (Zeit und Geld ausgegeben)


Element Kosten
Bauzeit Mai-Oktober 2019(6 Monate)
Anstrengung Über 180 Stunden(Durchführung ca. 1 Stunde am Tag)
Servergebühr 6930 Yen(990 Yen x 7 Monate)
Registrierungsgebühr für den App Store Über 10.000 Yen
Registrierungsgebühr für Google Dev Über 3000 Yen
Monaca bezahlte Plan Über 2000 Yen
Monaca Build Service 3300 Yen
Gebrauchtes iPhone 6 Über 9000 Yen
BootStrapStudio Über 3000 Yen
gesamt Über 37230 Yen

In dem Artikel ist es ein Blatt, aber alle waren die ersten und es dauerte einige Zeit, um beim Stolpern zu arbeiten. Ich hatte etwas Geld, aber (in Bezug auf die Effizienz) hörte ich auf, mich an keine Kosten zu halten, und versuchte, es zu löschen.


Das ist alles für die Einführung. Ich habe es gut gemacht, deshalb möchte ich wieder Verbesserungen und neue Apps vornehmen.

Recommended Posts

Versuchen Sie, eine Server-Client-App zu erstellen
Versuchen Sie, ein Bulletin Board in Java zu erstellen
Ich habe versucht, eine LINE-Klon-App zu erstellen
So erstellen Sie eine Methode
[Einführung] Erstellen Sie eine Ruby on Rails-Anwendung
Versuchen Sie, einen einfachen Rückruf zu tätigen
Vorbereiten der Erstellung einer Rails-Anwendung
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
Erstellen Sie eine neue App mit Rails
Versuchen Sie, einen Iterator zu erstellen, der einen Blick darauf werfen kann
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
Versuchen Sie, die Rails-App für EC2-Teil 1 bereitzustellen.
So erstellen Sie ein Maven-Repository für 2020
Erstellen Sie eine TODO-App in Java 7 Create Header
Lassen Sie uns eine Taschenrechner-App mit Java erstellen
[Swift5] So erstellen Sie einen Begrüßungsbildschirm
[Rails 5] Erstelle eine neue App mit Rails [Anfänger]
Erstellen Sie mit Selenide in 5 Minuten eine automatische Browser-Betriebsumgebung
Schritte zum Erstellen einer einfachen Kamel-App mit Apache Camel Spring Boot-Startern
So erstellen Sie überall eine H2-Datenbank
Erstellen Sie mit Spring Boot eine einfache Such-App
Android App: Versuchen Sie, Ereignisse und Hörer zusammenzufassen
[Android] Erstellen Sie eine neue Klasse, indem Sie ImageView erben
[Rails] Rails neu, um eine Datenbank mit PostgreSQL zu erstellen
[Rails] So erstellen Sie ein Diagramm mit lazy_high_charts
So erstellen Sie Pagenationen für das "Kaminari" -Array
So erstellen Sie eine Klasse, die Klasseninformationen erbt
So erstellen Sie ein Thema in Liferay 7 / DXP
[1.] So erstellen Sie ein Spring-MVC-Framework-Projekt
So erstellen Sie einfach ein Pulldown mit Rails
[Rails] So erstellen Sie eine Twitter-Freigabeschaltfläche
[Ruby on Rails] Versuchen Sie, einen Service zu erstellen, der einheimische Katzen glücklich macht
[Azure] Ich habe versucht, eine Java-App für die Erstellung von kostenlosen Web-Apps zu erstellen. [Anfänger]
Versuchen Sie es mit Trailblazer
Erstellen Sie ein Docker-Image, um eine einfache Java-App auszuführen
3. Erstellen Sie eine Datenbank für den Zugriff über das Webmodul
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
So führen Sie die SpringBoot-App als Dienst aus
Versuche Edelstein freizugeben
Erstellen Sie einen wöchentlichen Git-GUI-Client. [5] Erste Desktop-App
[Java] Erstellen Sie einen Filter
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
[Spring Boot] So erstellen Sie ein Projekt (für Anfänger)
Erstellen Sie eine Chat-App mit WebSocket (Tyrus) + libGDX + Kotlin
Was tun, wenn Sie versehentlich ein Modell erstellen?
Ein Memorandum beim Versuch, eine GUI mit JavaFX zu erstellen
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
So erstellen Sie einen Daten-URI (base64) in Java
Erstellen Sie einen Docker-Container, um EPS in eine PGF-Quelle zu konvertieren
So erstellen Sie Docker-Compose
Versuchen Sie, ein eingeschränktes FizzBuzz-Problem in Java zu lösen
[Vollständige Programmierung] §5 Erstellen Sie eine Überprüfungsverwaltungs-App in Ruby
Erstellen Sie eine JAVA WEB App und probieren Sie OMC APM aus