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】
L'environnement de développement du serveur est Eclipse, que j'utilise toujours. Pas de commentaire en particulier.
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.
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.
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é.
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.
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.
Demandez à Swagger. Ce n'est pas grave si vous écrivez SpringFOX dans Gradle et un texte explicatif dans la classe principale.
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.
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.
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.
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.
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.
Cette fois, nous demanderons à nginx de le gérer au lieu d'Apache, veuillez donc ignorer la partie d'installation d'Apache dans l'article suivant.
La raison pour laquelle j'ai introduit nginx était que je ne pouvais pas comprendre comment incorporer SSL directement dans Spring Boot. ..
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.
Il n'y a pas d'examen d'application sur Google Play, il suffit d'ajouter les informations nécessaires et de soumettre.
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.
é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.