[JAVA] Essayez de créer une application client serveur

À propos de cette page

Dans un but d'apprentissage, j'ai construit une application smartphone de type serveur-client. Cet article est un article de référence qui résume les sites auxquels il a été fait référence lors de sa mise en œuvre. C'est 1 écran, 1GetAPI, mais il y a beaucoup de choses à faire et ce fut une excellente expérience d'apprentissage.


【Vue d'ensemble】 ぷれぜんてーしょん1概要図.png


Préparer l'environnement de développement


image.png  L'environnement de développement du serveur est Eclipse, que j'utilise toujours. Pas de commentaire en particulier.


image.pngimage.png Bootstrap Studio est utilisé comme outil de conception. Je ne pense pas que ce soit pour les designers professionnels, Conçu par un non-designer comme moi

Ces deux points sont très utiles.

C'est un shareware d'environ 3000 yens, mais il n'y a pas de coût supplémentaire avec une licence permanente.


image.pngimage.pngimage.png Cette fois, CORDOVA a été adopté pour le développement front-end. Il y a deux raisons.

Monaca est un environnement de développement intégré pour le développement frontal et peut être exécuté de l'implémentation à la construction. Il y a un cadre libre. Dieu.


image.png circleci est un outil de construction comme Jenkins et d'autres. Il existe un niveau gratuit. En fait, il était prévu pour Docker & Jenkins, mais il est mort pour réduire le fardeau des coûts du serveur. Cette fois, seul l'outil CI de Server a été implémenté.


Créer un service d'API Rest avec Spring Boot


image.pngimage.pngimage.png J'ai commencé par exécuter Hello World avec Spring Boot, puis je l'ai étendu à l'API Rest.


La règle de dénomination est devenue appropriée en raison du développement par une seule personne, mais je pense qu'elle aurait dû être mise en pratique en premier.


Emballez le code source et testez tout en regardant la couverture


image.png image.png J'ai utilisé Spock pour le code de test et Jacoco pour la mesure de la couverture. J'ai utilisé le code de test et le rapport de couverture pour la première fois, mais c'est très utile. J'étais heureux et j'ai apprécié le processus de renforcement du code source et du code de test.


JUnit a adopté Spock car il avait des problèmes de lisibilité, mais il était également très facile à gérer.


La couverture a été l'occasion de réfléchir à l'éventail d'activités et de cas de test à compléter.


Créer une documentation API


image.pngimage.png Demandez à Swagger. Ce n'est pas grave si vous écrivez SpringFOX dans Gradle et un texte explicatif dans la classe principale.


Construire un environnement de déploiement


image.png image.png AWS était idéal, mais j'ai décidé de louer un serveur CentOS mensuel qui était géré en raison des coûts d'apprentissage.


Que faire 1. Vous permet de travailler avec Teraterm, WinSPC

Que faire 2. Installez le JDK pour que Spring Boot fonctionne

Que faire 3. Déployer et vérifier le fonctionnement de Jar of Spring Boot

SpringBoot inclut Tomcat et peut être exécuté uniquement par jar sans configurer de serveur Tomcat.

[Étape 1. Essayez de le déplacer pour le moment] ① Transférez le jar sur le serveur (envoi par WinSCP) (2) Exécuter le service avec java jar (chemin du jar envoyé à la main) ③ Confirmez l'opération sur http: // (IP du serveur): 8080 /

[Étape 2. S'inscrire en tant que service résident] Dans le service réel en, le travail suivant est effectué pour le rendre résident.


Correspond à CORS


Si vous passez à ce stade, la mise en œuvre se poursuivra pour chaque serveur et client. D'autre part, pour combiner et communiquer réellement, il est nécessaire de prendre en charge CORS (Cross-Origin Resource Sharing).


Lors d'un envoi tel que POST, il est nécessaire de rendre les paramètres conscients de la demande de contrôle en amont.


Prend en charge la communication SSL


image.png image.png Il semble que Chrome sur Android n'autorise pas la communication avec l'API sauf s'il s'agit de HTTPS. Puisqu'il n'y a aucune aide pour cela, j'ai défini SSL du côté du serveur pour activer la communication HTTPS.


Que faire 1. Définissez votre propre domaine

Que faire 2. Obtenez un certificat SSL

J'ai utilisé Let's Encrypt, qui est fourni gratuitement par une organisation à but non lucratif aux États-Unis. Le certificat Let's Encrypt expire dans 3 mois, c'est donc une bonne idée d'ajouter cron.


Que faire 3. Installez nginx et associez-le au certificat SSL

La raison pour laquelle j'ai introduit nginx était que je ne pouvais pas comprendre comment incorporer SSL directement dans Spring Boot. ..


Soumettre à l'App Store


image.png Si vous souhaitez soumettre à l'App Store, vous avez besoin de Mac (Xcode) pour créer la version de sortie en principe. J'ai utilisé le service de compilation de Monaca pour les utilisateurs de Windows. Il exécutera la version publiée pour 3300 yens pour une application.


Il vous sera également demandé d'enregistrer votre appareil en tant qu'informations de construction. J'ai acheté un iPhone 6 d'occasion (rang B) pour déboguer la machine réelle. Environ 9000 yens. Si vous avez le pouvoir de communiquer, vieillissez avec vos amis qui sont des utilisateurs Apple.


Pour publier votre application iOS, vous devez passer l'examen. Même si c'est NG, il commentera poliment le chat, alors corrigeons et soumettons à nouveau selon les instructions.


Soumettre à Google Play


image.png Il n'y a pas d'examen d'application sur Google Play, il suffit d'ajouter les informations nécessaires et de soumettre.


Le produit fini


image.png Une application qui renvoie les résultats morphologiques de Mecab et quelques mots avec un sens lorsque vous entrez une phrase classique. J'ai vraiment eu l'idée qui m'est venue quand je regardais la télé avec ma femme.


Enfin (temps et argent dépensés)


élément Coût
Période de construction Mai-octobre 2019(6 mois)
Effort Environ 180 heures(Réalisé environ 1 heure par jour)
Frais de serveur 6930 yens(990 yens x 7 mois)
Frais d'inscription à l'App Store Environ 10000 yens
Frais d'inscription Google Dev Environ 3000 yens
Forfait payant Monaca Environ 2000 yens
Service de construction Monaca 3300 yens
IPhone 6 d'occasion Environ 9000 yens
BootStrapStudio Environ 3000 yens
total Environ 37230 yens

Dans l'article, il s'agit d'une feuille, mais toutes étaient les premières et il a fallu du temps pour travailler en trébuchant. J'avais de l'argent, mais (en termes d'efficacité) j'ai arrêté de m'en tenir à aucun coût et j'ai essayé de l'éteindre.


C'est tout pour l'introduction. J'ai pu bien le faire, alors j'aimerais à nouveau apporter des améliorations et de nouvelles applications.

Recommended Posts

Essayez de créer une application client serveur
Essayez de créer un babillard en Java
J'ai essayé de créer une application de clonage LINE
Comment créer une méthode
[Introduction] Créer une application Ruby on Rails
Essayez de faire un simple rappel
Préparation à la création de l'application Rails
[Rails] J'ai essayé de créer une mini application avec FullCalendar
Créer une nouvelle application avec Rails
Essayez de créer un itérateur qui puisse être vu
J'ai essayé de créer une application cartographique simple dans Android Studio
Essayez de déployer l'application Rails sur EC2-Part 1-
Comment créer un référentiel Maven pour 2020
Créer une application TODO dans Java 7 Créer un en-tête
Créons une application de calcul avec Java
[Swift5] Comment créer un écran de démarrage
[Rails 5] Créer une nouvelle application avec Rails [Débutant]
Créez un environnement de fonctionnement automatique du navigateur en 5 minutes à l'aide de Selenide
Étapes pour créer une application chameau simple avec les démarreurs Apache Camel Spring Boot
Comment créer une base de données H2 n'importe où
Créez une application de recherche simple avec Spring Boot
Application Android: essayez de résumer les événements et les auditeurs
[Android] Créez une nouvelle classe en héritant d'ImageView
[Rails] rails nouveau pour créer une base de données avec PostgreSQL
[Rails] Comment créer un graphique à l'aide de lazy_high_charts
Comment créer des pages pour le tableau "kaminari"
Comment créer une classe qui hérite des informations de classe
Comment créer un thème dans Liferay 7 / DXP
[1st] Comment créer un projet de framework Spring-MVC
Comment créer facilement un pull-down avec des rails
[Rails] Comment créer un bouton de partage Twitter
[Ruby on Rails] Essayez de créer un service qui rend heureux les chats locaux
[Azure] J'ai essayé de créer une application Java pour la création d'applications Web gratuites - [Débutant]
Essayez de créer avec Trailblazer
Créer une image docker pour exécuter une application Java simple
3. Créez une base de données à laquelle accéder à partir du module Web
Comment créer un environnement Java en seulement 3 secondes
Comment exécuter l'application SpringBoot en tant que service
Essayez de libérer la gemme
Créer un client GUI hebdomadaire [5] Première application de bureau
[Java] Créer un filtre
Comment créer un projet Spring Boot dans IntelliJ
[Spring Boot] Comment créer un projet (pour les débutants)
Créez une application de chat avec WebSocket (Tyrus) + libGDX + Kotlin
Que faire si vous créez accidentellement un modèle
Un mémorandum lors de la tentative de création d'une interface graphique à l'aide de JavaFX
J'ai essayé de créer une compétence Clova en Java
Comment créer un URI de données (base64) en Java
Créer un conteneur Docker pour convertir EPS en source PGF
Comment créer docker-compose
Essayez de résoudre un problème FizzBuzz restreint en Java
[Programmation complète] §5 Créer une application de gestion des avis dans Ruby
Créez une application JAVA WEB et essayez OMC APM