Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
issue118:tutoriel2 [2017/03/05 15:13] – [4] auntiee | issue118:tutoriel2 [2017/03/07 07:35] (Version actuelle) – d52fr |
---|
This course is not a masterclass in which I explain something and others repeat them automatically. The idea is to publish chapters and complete the course documentation with the feedback of the other users. If a particular block gets more interest, it can be extended later. There is no problem in asking questions in the resources associated with the course.** | This course is not a masterclass in which I explain something and others repeat them automatically. The idea is to publish chapters and complete the course documentation with the feedback of the other users. If a particular block gets more interest, it can be extended later. There is no problem in asking questions in the resources associated with the course.** |
| |
Ce cours est un nouveau projet pour apprendre la programmation d'applications qui fonctionne sous Ubuntu Touch. Au fur et à mesure je générerait de la documentation comprenant toutes les phases du développement d'une application : l'acquisition des requis, l'implémentation et la distribution dans l'Ubuntu store. Un des problèmes qui rencontre Ubuntu Touch est le manque d'applications, à la fois en quantité et en fonctionnalité. Je ne m'attends pas à changer cette situation à court terme, mais une façon de la changer est en programmant des applications et en aidant les autres utilisateurs à faire de même. Ce n'est que comme cela qui la situation puisse être changée. | Ce cours est un nouveau projet pour apprendre la programmation d'applications qui fonctionne sous Ubuntu Touch. Au fur et à mesure, je générerai de la documentation comprenant toutes les phases du développement d'une application : l'acquisition des requis, l'implémentation et la distribution dans l'Ubuntu store. Un des problèmes que rencontre Ubuntu Touch est le manque d'applications, à la fois en quantité et en fonctionnalité. Je ne m'attends pas à changer cette situation à court terme, mais une façon de la changer est de programmer des applications et d'aider les autres utilisateurs à faire de même. Ce n'est que comme cela que la situation pourra changer. |
| |
Ce cours n'est pas une classe de maître où j'explique quelque chose et d'autres la répètent automatiquement. L'idée est de publier des chapitres et de compléter la documentation du cours avec les commentaires d'autres utilisateurs. Si on est très intéressé par un sujet précis, je pourrai l'étendre plus tard. Les questions ne posent aucun problème dans les ressources afférentes à ce cours. | Ce cours n'est pas une classe magistrale où j'explique quelque chose et d'autres la répètent automatiquement. L'idée est de publier des chapitres et de compléter la documentation du cours avec les commentaires d'autres utilisateurs. Si on est très intéressé par un sujet précis, je pourrai l'étendre plus tard. Les questions sur les ressources en lien avec ce cours ne posent aucun problème. |
| |
===== 2 ===== | ===== 2 ===== |
Finally I want to thank the users who have encouraged me to start this madness, among them are kain_X_X and LarreaMikel. A course of this type can not be done by a single user. Evolving and achieving larger goals is possible only when many people contribute.** | Finally I want to thank the users who have encouraged me to start this madness, among them are kain_X_X and LarreaMikel. A course of this type can not be done by a single user. Evolving and achieving larger goals is possible only when many people contribute.** |
| |
La documentation sera structurée comme un livre. L'accès y est gratuit et tout utilisateur pour la lire dans un navigateur ou comme fichier PDF, ePub ou Mobi. Il est possible d'ajouter des commentaires dans le livre, bien qu'il faille un comté créé dans Gitbook. Le code source des exemples et applications sera hébergé sur Launchpad en utilisant Bazaar comme version contrôle. Sur la même page vous trouverez une liste de discussion sur laquelle vous pouvez poser des questions. Pour compléter les ressources mentionnée plus tôt, il y a aussi un tableau Trello comportant le statut du cours. | La documentation sera structurée comme un livre. L'accès y est gratuit et tout utilisateur pourra la lire dans un navigateur ou en fichier PDF, ePub ou Mobi. Il est possible d'ajouter des commentaires dans le livre, bien qu'il faille un compte créé dans Gitbook. Le code source des exemples et applications sera hébergé sur Launchpad en utilisant Bazaar comme contrôle de version. Sur la même page, vous trouverez une liste de discussion sur laquelle vous pouvez poser des questions. Pour compléter les ressources mentionnées plus haut, il y a aussi un tableau Trello comportant le statut du cours. |
| |
Enfin, j'aimerais remercier les utilisateurs qui m'ont encouragé à démarrer ce projet fou, notamment kain_X_X et LarreaMikel. Un cours de ce type ne peut pas être assuré par un utilisateur seul. Des objectifs plus important ne peuvent ni évoluer ni être atteint qu'avec les contributions de très nombreux individus. | Enfin, j'aimerais remercier les utilisateurs qui m'ont encouragé à démarrer ce projet fou, notamment kain_X_X et LarreaMikel. Un cours de ce type ne peut pas être assuré par un utilisateur seul. Des objectifs si étendus ne peuvent évoluer ou être atteints qu'avec les contributions de très nombreux individus. |
| |
===== 3 ===== | ===== 3 ===== |
Connaissances préalables | Connaissances préalables |
| |
Étant donné le sujet même du cours, quelques compétences de programmation sont nécessaires. Dans ce cours nous utiliserons principalement XML pour l'interface utilisateur et JavaScript ou C/C++ pour la logique. Connaître l'un ou l'autre des langages pourrait vous aider, bien que ce ne soit pas vital. Dans chaque chapitre, les éléments de base seront expliqués et une bibliographie incluse afin que l'utilisateur incertain puisse la consulter. | Étant donné le sujet même du cours, quelques compétences de programmation sont nécessaires. Dans ce cours, nous utiliserons principalement XML pour l'interface utilisateur et JavaScript ou C/C++ pour la logique. Connaître l'un ou l'autre des langages pourrait vous aider, bien que ce ne soit pas vital. Dans chaque chapitre, les éléments de base seront expliqués et une bibliographie sera incluse afin que l'utilisateur incertain puisse la consulter. |
| |
Le Ubuntu Touch Software Devlopment Kit (SDK) est en train de sortir pour Ubuntu. Vous devrez donc utiliser Ubuntu ou une distribution qui est basée dessus. Ne pas remplir ce requis n'est pas non plus un problème sérieux, parce que vous pouvez tout faire dans une machine virtuelle ou avec une clé USB Live. | Le Ubuntu Touch Software Development Kit (SDK - Kit de développement logiciel) est en train de sortir pour Ubuntu. Vous devrez donc utiliser Ubuntu ou une distribution qui est basée dessus. Ne pas remplir cette exigence n'est pas non plus un problème sérieux, parce que vous pouvez tout faire dans une machine virtuelle ou avec une clé USB Live. |
| |
Pour faciliter le suivi du cours, je vais y inclure uniquement les parties les plus importantes du code source. Les autres fichiers se trouveront dans un dépôt source sur Launchpad. Connaître les commandes de base de Bazaar pourrait vous être utile. | Pour faciliter le suivi du cours, je vais y inclure uniquement les parties les plus importantes du code source. Les autres fichiers se trouveront dans un dépôt source sur Launchpad. La connaissance des commandes de base de Bazaar pourrait vous être utile. |
| |
===== 4 ===== | ===== 4 ===== |
Les objectifs du cours | Les objectifs du cours |
| |
L'objectif principal du cours est d'apprendre comment programmer des applications pour Ubuntu Touch tout en s'amusant. La programmation prend beaucoup de temps et il faut ce que vous faites vous plaise. Les applications peuvent être simple ou complexe, mais l'important est qu'elles comblent de réels besoins. Par exemple, une application qui comporte une liste de plantes dans le jardin et nous signale quand il faut les arroser. | L'objectif principal du cours est d'apprendre comment programmer des applications pour Ubuntu Touch tout en s'amusant. La programmation prend beaucoup de temps et il faut que ce que vous faites vous plaise. Les applications peuvent être simples ou complexes, mais l'important est qu'elles comblent de réels besoins. Par exemple, une application qui comporte une liste de plantes dans le jardin et nous signale quand il faut les arroser. |
| |
Une bonne conception logique de l'application peut sérieusement réduire le temps du développement. À contrario, une mauvaise conception peut nous inciter à jeter le code à la poubelle des papiers recyclables et recommencer, parce qu'il serait plus facile de démarrer avec une approche différente. | Une bonne conception de la logique de l'application peut sérieusement réduire le temps du développement. À contrario, une mauvaise conception peut nous inciter à jeter le code à la poubelle des papiers recyclables et recommencer, parce qu'il sera plus facile de démarrer avec une approche différente. |
| |
===== 5 ===== | ===== 5 ===== |
| |
Finally we have native applications (top right). In this case the applications can access all the resources of the phone, and are, eventually, more complex than the Web applications and the scopes. Applications are confined in Ubuntu Touch and can only access their own information. If we want to access information from other applications, we need to pass it through the content-hub. As an example of a native application, we have the calendar.** | Finally we have native applications (top right). In this case the applications can access all the resources of the phone, and are, eventually, more complex than the Web applications and the scopes. Applications are confined in Ubuntu Touch and can only access their own information. If we want to access information from other applications, we need to pass it through the content-hub. As an example of a native application, we have the calendar.** |
| |
| Les types d'applications |
| |
| Il y a trois types d'applications dans Ubuntu Touch : des Applications Web (WebApps), des Scopes et des applications natives. |
| |
| Une application Web (page suivante, en bas à gauche) est essentiellement l'onglet d'un navigateur Web qui s'exécute de façon indépendante. Il a sa propre icône dans Unity (le lanceur de l'application) et peut contenir des informations venant de n'importe où et de toute sorte. Pour des raisons de sécurité, une application Web ne peut pas accéder au contenu local du terminal. |
| |
| Le scope (en bas à droite) est le deuxième type d'application que l'on trouve dans Ubuntu Touch. Dans une certaine mesure, il se comporte comme un écran qui affiche des informations pour l'utilisateur. L'information peut être externe (les prévisions météo, par exemple) ou interne, sous forme d'un agrégateur d'informations. Un exemple de cela serait le scope « Today » (aujourd'hui). Ce scope affiche des informations provenant de diverses applications. |
| |
| Enfin, il y a les applications natives (en haut à droite). Dans ce cas, les applications peuvent accéder à toutes les ressources du téléphone et sont, le cas échéant, plus complexes que les applications Web et les scopes. Les applications sont confinées dans Ubuntu Touch et ne peuvent accéder qu'à leurs propres informations. Si nous voulons accéder aux informations d'autres applications, elles doivent passer par le hub de contenu. Le calendrier est un exemple d'une application native. |
| |
===== 6 ===== | ===== 6 ===== |
• Spam of any kind is not allowed. | • Spam of any kind is not allowed. |
• Attacking other users is not allowed.** | • Attacking other users is not allowed.** |
| |
| L'évolution du cours |
| |
| Un détail que je veux souligner (et qui vous suivront tout au long du cours même si vous vous en lassez) est que ce cours n'est pas une classe magistrale. Il est important que vous y contribuiez aussi, avec des questions, des suggestions ou des erreurs. L'ordre des chapitres peut varier et des chapitres déjà fermés peuvent être rouverts afin d'y ajouter du nouveau contenu. Ce cours est vivant et peut s'améliorer uniquement si nous nous impliquons tous. La simplicité des questions ou le qu'en-dira-t-on importent peu. La raison d'être de ce cours est l'apprentissage. Souvenez-vous : la seule question stupide est celle que vous ne posez pas. |
| |
| L'accès à la liste de discussion est ouvert et vous n'avez besoin que d'un compte sur Launchpad. Il n'y a pas de censure, sauf dans plusieurs cas logiques : |
| |
| • Les questions doivent avoir un rapport au cours. |
| • Tout spam de quelque sorte que ce soit est interdit. |
| • Il est également interdit de s'attaquer aux autres utilisateurs. |
| |
===== 7 ===== | ===== 7 ===== |
| |
Mailing List: https://launchpad.net/~ubuntu-touch-programming-course | Mailing List: https://launchpad.net/~ubuntu-touch-programming-course |
| |
| |
People who have collaborated | People who have collaborated |
| |
• Joan CiberSheep: revision of the English translation.** | • Joan CiberSheep: revision of the English translation.** |
| |
| Si jamais l'une de ces règles est enfreinte, la personne recevra un avertissement de ma part d'abord. Si le comportement de l'utilisateur continue, il sera prié de quitter la liste de discussion. J'espère que cela n'arrivera jamais. |
| |
| Ce cours n'est pas un tout déjà préparé et je vais l'écrire semaine après semaine. Pour cette raison, des erreurs sont possibles. Si c'est le cas, n'hésitez pas à m'en avertir pour que je la corrige. Ce cours est une occasion de créer du contenu et favoriser la croissance d'Ubuntu Touch. |
| |
| Ressources |
| |
| Liste de discussion : |
| https://launchpad.net/~ubuntu-touch-programming-course |
| |
| Mes collaborateurs : |
| |
| • Larrea Mikel : révision du chapitre en espagnol. |
| |
| • Cesar Herrera : révision de la traduction anglaise. |
| |
| • Joan CiberSheep : révision de la traduction anglaise. |
| |