
[ad_1]
Développement de l’application PinePhone : un guide de démarrage rapide

Au cours des dernières années, les appareils mobiles alimentés par Linux pur ont trouvé leur place dans le courant dominant. La possibilité d’exécuter un noyau personnalisé sur quelque chose comme un appareil Android n’est pas nouvelle, et la même chose peut être dite pour le jailbreak de l’iPhone.
La différence ici est que ces appareils (beaucoup d’entre eux au moins) sont construits à partir de zéro en mettant l’accent sur les technologies libres et open source. En tant que tels, ils visent à exécuter des systèmes d’exploitation basés sur Linux entièrement ouverts et, dans de nombreux cas, incluent des commutateurs matériels physiques pour désactiver divers composants afin de fournir une confidentialité supplémentaire aux utilisateurs.
La montée en puissance de puces ARM plus puissantes et peu coûteuses signifie désormais que de nombreux appareils ont le potentiel de fonctionner à des niveaux équivalents ou proches des appareils à source fermée de milieu de gamme exécutant iOS ou Android.
De nombreux amateurs et développeurs (comme moi) ont commencé à affluer pour obtenir ces appareils, laissant beaucoup d’entre nous avec la même question après en avoir acheté un : « C’est génial, mais comment puis-je créer mes propres applications pour cette chose? ». J’espère que cet article aidera certains d’entre vous à répondre à cette question et à développer vos propres applications pour ces appareils populaires !
L’un des téléphones Tux les plus populaires sur le marché est sans aucun doute le PinTéléphone (et plus récemment le PinePhone Pro) fabriqué par Pin64. Je n’ai malheureusement pas eu dans mon budget pour acquérir une nouvelle version Pro, j’ai donc dû me contenter de développer sur l’édition communautaire de première génération à la place. Le projet décrit ici n’est en aucun cas verrouillé pour fonctionner uniquement sur ces appareils. Si vous avez quelque chose comme un Librem 5 de Purism, voyez comment vous pouvez le faire fonctionner !

Dans mon article précédent, j’ai écrit sur un nouveau framework appelé Tauri que j’ai commencé à utiliser pour remplacer mes projets basés sur Electron (vérifiez-le). Contrairement à Electron, il utilise Rust pour gérer toutes les fonctionnalités backend et permet d’utiliser les technologies Web pour créer votre interface utilisateur sans avoir besoin d’utiliser un serveur pour communiquer. Un autre avantage de l’utilisation de Tauri est la taille globale considérablement réduite du fichier binaire final, ce qui facilite grandement le téléchargement, le partage et le transfert sur vos appareils.
Même si j’ai initialement utilisé Tauri pour créer une nouvelle application de bureau, j’ai pensé que ce serait génial de tester ses capacités sur le PinePhone ! Passons aux bonnes choses allons-nous?
La documentation Tauri fournit d’excellents guides sur la création de nouveaux projets à partir de zéro à l’aide de leur outil de ligne de commande, y compris la possibilité de générer un squelette complet à l’aide du framework frontal de votre choix. Comme j’avais déjà développé une application Web à l’aide de React, j’avais déjà mis en place la structure du code de l’interface utilisateur. Comme c’était le cas, tout ce que j’avais à faire était de créer les fichiers Rust et de configuration nécessaires à Tauri dans le répertoire du projet :
Installer l’outil CLI → yarn add -D @tauri-apps/cli
Initialiser Tauri → yarn tauri init
Si vous créez un tout nouveau projet à partir de zéro et que vous devez générer tous les fichiers nécessaires pour le front et le backend, vous exécuteriez :
yarn create tauri-app
Fonctions principales
Parce que je construisais une application de tableau de bord qui devait faire des requêtes GET régulières à un Raspberry Pi sur le réseau local, je devais m’assurer d’inclure la même fonction Backend Rust que les autres versions de mon application utilisent pour faire ces requêtes.
Avec Tauri, inutile de créer un preload.js
fichier pour que l’interface utilisateur appelle les fonctions principales. Au lieu de cela, tout ce qui est nécessaire est le @tauri-apps/api
bibliothèque ajoutée à votre package.json
dossier. Vous pouvez ensuite invoquer la fonction depuis votre code JavaScript/React avec l’import suivant :
import { invoke } from '@tauri-apps/api/tauri'
Utilisant invoke
, vous pouvez ensuite appeler votre fonction backend par son nom, en transmettant tous les arguments nécessaires. Pour mon application, j’effectue cet appel à l’aide d’une fonction JavaScript qui transmet le point de terminaison de l’URL à laquelle je fais la demande afin de récupérer une valeur de capteur particulière :
La fonction backend correspondante est incluse dans le main.rs
fichier que Tauri crée dans le projet src-tauri
annuaire:
Il est important de garder à l’esprit que puisque cette application est écrite pour fonctionner spécifiquement sur le PinePhone (ou un autre appareil mobile Linux), les tailles des composants et les dimensions des fenêtres doivent être prises en considération. Pour vous donner une idée des tailles qui ont bien fonctionné pour ce projet, j’ai décidé de créer un référentiel Gitlab public avec tout le code source, ainsi que des instructions pour exécuter l’application avec succès :

Une fois que vous avez suivi le processus de configuration de votre interface et de tous les appels de fonction backend, que vous avez tout testé et débogué, vous souhaitez probablement créer un produit final ! Étant donné que ces appareils fonctionnent sous Linux, Tauri construira un .deb
et .AppImage
binaire pour exécuter et distribuer votre application. Tout construire est aussi simple que d’exécuter :
yarn tauri build
J’ai remarqué un problème avec le script de construction automatisé AppImage lors de la tentative d’exécution sur le aarch64
plate-forme, donc pour terminer avec succès la création de l’AppImage pour mon application, j’ai simplement téléchargé et exécuté le appimagetool
utilitaire pour finir l’emballage :
Après cela, vous vous retrouverez avec une nouvelle AppImage brillante avec tout le nécessaire pour fonctionner intégré ! Rendez-le simplement exécutable et exécutez-le pour profiter de votre nouvelle application PinePhone (ou similaire) !
J’adore mon PinePhone, mais quand il s’agit de faire tout le développement uniquement sur l’appareil, je le déconseille. C’est amplement capablemais le rechargement à chaud peut prendre plus de temps que vous ne le souhaiteriez, et il en va de même pour la construction du binaire final.
J’ai trouvé que faire la majorité du développement et du débogage sur un appareil séparé alimenté par ARM (mon Raspberry Pi 4) était beaucoup plus rapide. Une fois que vous avez déterminé les bonnes dimensions de la fenêtre, le dev
L’aperçu fournit toujours un aperçu précis de l’évolution de l’application.
Après avoir construit l’exécutable final sur le Pi, il est très simple de le transférer sur le PinePhone en utilisant soit scp
ou un graphique SFTP
outil!
[ad_2]
Télécharger ici