Outils pour utilisateurs

Outils du site


issue118:tutoriel2

Table des matières

1

This course is a new project to learn how to program applications that work on Ubuntu Touch. In the process, I will generate documentation with all the phases of development of an application: requirements acquisition, implementation, and distribution in the Ubuntu store. One of the problems found in Ubuntu Touch is the lack of applications, both in number and in functionality. I do not expect to change this situation in the short term, but one way to change it is by programming applications and helping other users do the same. Only in this way will it be possible to change this situation. 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é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 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

The documentation will be structured as a book. Its access is free and any user can read it in a browser or as a PDF, ePub or Mobi file. It is possible to add comments to the book, although it is necessary to have an account created in Gitbook. The source code for the examples and applications will be hosted on Launchpad using Bazaar as version control. On the same page there is a mailing list in which you can ask questions. Additional to the resources mentioned earlier, there is also a Trello board with the course status. 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 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 si étendus ne peuvent évoluer ou être atteints qu'avec les contributions de très nombreux individus.

3

Previous Knowledge Due to the subject of the course itself, some programming skills are required. In this course we will mainly use QML for the user interface and JavaScript or C/C++ for the logic. It helps to know either of the two languages, ​​although it will not be critical. Each chapter will explain the basic elements and a bibliography will be included for the user to consult if in doubt. The Ubuntu Touch Software Development Kit (SDK) is being released for the Ubuntu distribution. It will therefore be necessary to use Ubuntu or any of the distributions that take it as a base. Not meeting this requirement is not a serious problem either, because you can do the same in a virtual machine or using a Live USB. To make it easier to follow the course, I will include only the most important parts of the source code. The rest of the files will be in a source repository in Launchpad. It would be helpful knowing the basic commands of Bazaar.

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 sera incluse afin que l'utilisateur incertain puisse la consulter.

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. La connaissance des commandes de base de Bazaar pourrait vous être utile.

4

Objectives of the Course The main objective of the course is to learn how to program applications for Ubuntu Touch while having fun. Programming is a time-consuming task, and you have to like what you are doing. Applications can be simple or complex, the important thing is that they solve a need that we have. For example, an application that has a list of plants in the garden and lets us know when we have to water them. A good design in the logic of the application can greatly reduce development time. In the same way, a bad design can cause us to throw the code to the recycle bin and start over, because it is easier to start with a different approach.

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 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 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

Types of Applications Ubuntu Touch has three types of applications. We can find Web Applications (WebApps), Scopes, and Native Applications. A web application (next page, bottom left) is basically a web browser tab that runs independently. It has its own icon in Unity (the application launcher) and can contain remote information of any type. For security reasons, a Web application does not have access to the local content of the terminal. The scope (bottom right) is the second type of application found in Ubuntu Touch. To some extent it behaves like a screen that shows information to the user. The information can be external, for example the weather forecast, or internal in the form of information aggregator. An example of this case would be the “Today” scope. This scope shows information from different applications. 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

Evolution of the Course One detail that I want to point out (and that you will get tired of reading throughout the course) is that this course is not a masterclass. It is important that you participate with either questions, suggestions or errors. The order of the chapters can vary and chapters that were already closed can be opened to add new content. This course is alive and can be improved only if we all get involved. It doesn’t matter if questions are very basic or what the other users would say. The main reason for following this course is learning. Remember: The only stupid question is the one that you don’t ask. Access to the mailing list is open, and only a Launchpad account is needed. There is no censorship except several cases of common sense: • The questions must be related to the course. • Spam of any kind 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

If any of these rules is broken, I will warn the person first. If the user continues with his attitude, he will be asked to leave the mailing list. I hope I never have to get to that end. This course is not set as a whole and therefore I will write it week after week. For this reason, it is possible that some error appears. If this is the case, do not hesitate to warn me in order to correct it. This course is an opportunity to create content and give a boost to Ubuntu Touch. Resources Mailing List: https://launchpad.net/~ubuntu-touch-programming-course People who have collaborated • Larrea Mikel: revision of the chapter in Spanish. • Cesar Herrera: 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.

issue118/tutoriel2.txt · Dernière modification : 2017/03/07 07:35 de d52fr