Beaucoup de gens souhaitent développer leur propre application iOS, n'est-ce pas ? Il existe plusieurs méthodes pour développer des applications iOS. L’une est la méthode « formelle », qui est Xcode+ObjC. Mais de cette façon, vous devez apprendre le langage ObjC et créer un environnement de développement Xcode. Une fois que tout est fait, il est toujours très difficile de faire fonctionner l’application sur votre iPhone/iPad !
Cependant, le navigateur Safari fournit une fonction qui consiste à ajouter une page Web au bureau et à l'exécuter en tant qu'application indépendante. Avec cette fonctionnalité, super ! Nous pouvons utiliser directement le langage Web (HTML+CSS+JS) pour développer une application iOS, ce qui est très simple.
1. Configuration de l'environnement
1. Installer l'environnement Linux
Afin d'écrire une application à l'aide du Web, nous devons d'abord exécuter un service Web. Il existe deux méthodes pour cette étape.
La première : recherchez un serveur/ordinateur et exécutez le service Web dessus. Cette méthode est possible, mais elle nécessite un serveur avec une IP publique (sinon vous ne pourrez pas accéder à votre App de l’extérieur). Cependant, cette méthode peut « installer » votre application pour d’autres. Cet article n'utilise pas cette méthode.
La seconde : exécutez le service Web sur l'iPad. Cette méthode ne nécessite pas d'adresse IP publique, mais vous ne pouvez utiliser que votre propre application. Cet article utilise cette méthode.
iOS ne permet pas aux applications d'accéder à la couche sous-jacente, les services Web ne peuvent donc pas être exécutés directement sur iOS, même si iOS est basé sur Linux. Mais nous pouvons d'abord installer l'environnement Linux, puis installer le service Web dans l'environnement Linux.
Comment installer l’environnement Linux ?
En fait, il vous suffit d'installer une application appelée iSH dans l'App Store.
Une fois l'installation terminée, ouvrez l'application et vous obtiendrez un Linux Shell.
2. Installez quelques outils
iSH prend en charge le gestionnaire de packages apk. Nous pouvons installer le package avec la commande suivante :
apk add 软件包名
Installons le logiciel que nous utiliserons aujourd'hui :
apk add vim python3
Notez que lors de l'installation du progiciel, laissez l'application ouverte, sinon l'installation pourrait échouer.
3. Démarrez le service Web
Vous vous demandez peut-être : Pourquoi installer python3 ? Vous n'utilisez pas le développement Web ?
En fait, aujourd'hui, nous allons utiliser le service Simple HTTP fourni avec python3.
Créez d’abord un nouveau répertoire en tant que répertoire racine du service Web :
mkdir www
cd www
Démarrez ensuite le service HTTP avec Python3 :
python3 -m http.server 80
python3 utilisera le répertoire courant comme répertoire racine du site Web. 80 est le numéro de port.
Pourquoi ne pas utiliser Nginx/Apache ?
iSH est implémenté sur la base d'Alpine Linux. Alpine Linux est un système Linux plus petit et donc moins complet. Si vous exécutez Nginx sur iSH, vous ne pourrez pas y accéder. Je n'ai pas essayé Apache. Mais pour développer de petites applications, vous n'avez pas besoin d'un serveur Web aussi puissant.
4. Fonctionnement stable
Python3 n'est pas très stable. Parfois, vous constaterez que le serveur Web se ferme avec une erreur.
Afin de le rendre stable, il existe un moyen très simple : ajouter directement une boucle while true, afin qu'elle redémarre automatiquement après sa sortie automatique.
while true; do python3 -m http.server 80 > /dev/null 2> /dev/null; done &
Puisque http.server affichera automatiquement la requête HTTP reçue, afin d'empêcher sa sortie, ajoutez un > /dev/null 2 > /dev/null après la commande. Afin de le faire fonctionner en arrière-plan sans affecter le terminal, ajoutez un & après la commande.
5. Démarrer automatiquement après la mise sous tension
Si vous fermez l'application iSH (entrez la commande exit dans le terminal, ou appuyez deux fois sur le bouton d'accueil et fermez iSH, ou redémarrez votre iPhone/iPad) et rouvrez-la, le serveur Web ne fonctionnera pas. Pour qu'il fonctionne longtemps, il doit démarrer automatiquement au démarrage (c'est-à-dire qu'il s'exécutera automatiquement à l'ouverture d'iSH).
Comment faire?
En fait, il vous suffit d'éditer le fichier /etc/profile :
vim /etc/profile
Ajoutez ces trois lignes de code à la fin :
cd /root/www
while true; do python3 -m http.server 80 > /dev/null 2> /dev/null; done &
cd ~
Les commandes dans /etc/profile s'exécuteront automatiquement au démarrage.
Une fois la modification terminée, entrez exit et iSH se fermera automatiquement. Rouvrez l'application et le serveur Web s'exécutera automatiquement.
6. Exécuter en arrière-plan
Si votre iPhone/iPad a d'autres applications ouvertes, il ne pourra pas se connecter au serveur Web après 30 secondes. En effet, iOS place iSH en arrière-plan lorsque vous ouvrez d'autres applications. La suppression en arrière-plan d'iOS est très puissante. Lorsque iSH s'exécute en arrière-plan pendant 30 secondes, il sera suspendu par iOS.
ce qu'il faut faire?
Ou modifiez /etc/profile et ajoutez une ligne de code à la fin :
cat /dev/location > /dev/null &
Entrez ensuite exit et rouvrez iSH.
iSH vous demandera la permission d'obtenir l'emplacement. Assurez-vous de sélectionner « Toujours autoriser » ! (Si vous ne disposez pas de cette option, veuillez la définir sur « Toujours autoriser » dans Paramètres->Confidentialité->Emplacement)
Cela lui permettra de fonctionner en arrière-plan.
Que signifie cat /dev/location ?
/dev/location est un fichier de périphérique fourni avec iSH, indiquant l'emplacement géographique actuel. Si vous exécutez cat /dev/location, la latitude et la longitude seront affichées.
Pourquoi cela peut-il être fait en arrière-plan ?
Parce que s'il existe une application qui obtient constamment une localisation, iOS lui permettra de s'exécuter en arrière-plan.