Smileey's blog

Quelques initiations à la geekerie

…et ne pas voir la poutre dans le sien », voilà une phrase qu’aurait dû méditer Micro$oft.

Les anglophones n’auront pas de mal à comprendre cette petite vidéo. Pour les autres, ce ne sont que des commentaires d’entreprises (fausses ?) qui critiquent le gratuiciel d’onéreux, pour cause de support.
Il est vrai que le logiciel gratuit comporte quelques difficultés d’utilisation, et de compatibilité, etc. Mais les Office-users aiment envoyer des « docx » par mail, sauf que, ce n’est pas un STANDARD (la vidéo critique également les standards…)

(si la vidéo ne s’affiche pas : cliquez ici)

En attendant, on ne sait rien d’Office 2010 avec cette pub !

Sachez que, comme je le disais précedemment, OpenOffice avait fait place à LibreOffice…
Des petits rigolos proposent un site pour télécharger OpenOffice, mais pour l’installation, il faut… donner un mot de passe, que l’on reçoit en envoyant « LP » (pourquoi LP?) au 81015.

Comble du canular, il propose d’instaurer « yaape.com » en tant que moteur de recherche par défaut, et l’exécutable est un… « .exe ».

Source très malveillante : http://openoffice.2010fr.net/

Ca y est, cette fameuse loi bidon, qui est passée malgré le pare-feu qu’est OpenOffice, est en marche. Enfin, il paraît qu’elle est mise en place.

Quoi qu’il en soit, un certain bonhomme a mis en ligne un enregistrement téléphonique entre lui et un hotliner; de l’Hadopi.

Je vous laisse savourer ce doux moment, de 80 minutes tout de même !

C’est en tout cas autant efficace qu’une hotline de FAI…

Ah tiens, j’y pense, OpenOffice a changé de nom, c’est LibreOffice maintenant. Croyez-vous que c’est à cause du pare-feu ?

Il y a quelques jours, l’entreprise Expertise Android a publié son rapport sur l’enquête nationale portant sur les utilisateurs et les utilisations d’Android. En effet, les chiffres que nous donne Google sont mondiaux !
Ils sont aujourd’hui disponibles pour la France.

Résultat de l’enquête

1. Votre premier document LaTeX

Bien, maintenant que vous avez tous installé les packages correspondant, nous allons pouvoir commencer à travailler. Cas d’utilisation : vous avez un compte rendu à faire. Le plan doit ressembler à :

1. Bilan de la journée
  1.1. Production
  1.2. Qualité
2. Etude de marché
3. Proposition d’évolution
4. Conclusion
  4.1. Financiaire
  4.2. Main d’oeuvre
  4.3. Générale

Votre préambule doit commencer par :
\documentclass[a4paper, 11pt]{article}

Vous pouvez ajouter ici tout plein de package, mais on ne va pas le faire, pour que vous compreniez à quoi ils servent, un par un. Donc faite suivre cette ligne par :
\begin{document}

Réflexe ! \end{document}, ça évite bien des surprises !!!

On va, avant toute chose, faire le plan du document. Voici comment procéder :

\section{Bilan de la journée}
  \subsection{Production}
  \subsection{Qualité}
\section{Etude de marché}
\section{Proposition d'évolution}
\section{Conclusion}
  \subsection{Financiaire}
  \subsection{Main d'oeuvre}
  \subsection{Générale}

Compilez pour vérifier que vous n’avez pas fait d’erreurs, et regarder le résultat :

$ pdflatex monfichier.tex
$ evince monfichier.pdf

Résultat

Premier problème, les accents n’apparaissent pas. Insérons dans le préambule la ligne suivante :
\usepackage[latin1]{inputenc}

Résultat

Le problème n’est toujours pas résolu. Vous avez deux possibilités :

  • Votre document ne sera compilé que chez vous, remplacez latin1 par utf8
  • Vous vous souciez de la portabilité, alors remplacez les accents de la façon suivante :
  •       é devient \’e
          è devient \`e
          à devient \`a
          ç devient \c{c}
          …

Vous pouvez dès à présent rédiger votre document.


\documentclass[a4paper, 11pt]{article}
\usepackage[latin1]{inputenc}
\begin{document}
\section{Bilan de la journ\'ee}
C'est une bonne journ\'ee.
      \subsection{Production}
      Belle production.

      \subsection{Qualit\'e}
      Pourrait faire mieux.

\section{Etude de march\'e}
L'entreprise va bien, on a des clients solides et fid\`eles. Cependant, on pourrait en avoir d'autres. Si on regarde attentivement les statistiques des entreprises de notre cat\'egorie, on s'aper\c{c}oit que si on faisait mieux, on vendrait plus.

\section{Proposition d'\'evolution}
Essayons de r\'eduire la production pour mettre plus d'int\'er\^et \`a la qualit\'e. Il faut attirer le client par la beaut\'e des produits.

\section{Conclusion}
      \subsection{Financiaire}
      Les finances vont bien.

      \subsection{Main d'oeuvre}
      On va transf\'erer les ouvriers de production vers les ateliers de qualit\'e.

      \subsection{G\'en\'erale}
      Voici une petite courbe :
\end{document}

Pour insérer une image, insérez \includegraphics{courbe.png} à l’endroit voulu. Ne pas oubliez d’ajouter le package correspondant dans le préambule (\usepackage{graphicx}).

Résultat
Résultat retaillé

Vous savez dès à présent rédiger un document LaTeX. Ce tutorial constitue la base de la création de document. En d’autres termes, si vous avez compris cela, vous savez à peu près tout faire ;) .

2. Bonus

Vous ne voyez pas l’intérêt de LaTeX, et pour cause, on n’a encore rien fait avec. Rassurez-vous, c’est faux.
Déjà, vous avez composé un document avec le strict minimum. Vous savez ce qu’à besoin LaTeX pour générer votre document, et vous n’avez pas importé de packages inutiles. Ah, aussi, vous n’avez presque rien payé, un simple éditeur de texte suffit :) .

Bon alors on va (avec ce document) faire apparaître votre nom et une table des matières. Géant non ?

Définissez-vous dans le préambule : \author{Moi}
Définissez le titre du document : \title{Titre}

Enfin, dans le document, insérez :

\maketitle %pour l'affichage de l'auteur, titre, date
\tableofcontents %table des matières, tdm
\newpage %pour faire beau

Pour l’affichage de la table des matières, il faut compiler deux fois. Une première fois pour générer le fichier .toc. Une deuxième pour générer la tdm.

Résultat

Pour l’affichage des annotations en français, insérez dans le préambule \usepackage[french]{babel}

Résultat

Pour fignoler le document, centrons l’image :

\begin{center}
  \includegraphics{courbe.png}
\end{center}

Résultat

Il serait bien d’utiliser toute la feuille disponible. Ecrire à l’européenne quoi ! Pas de problèmes, insérez dans le préambule \usepackage[left=3cm,right=3cm,top=3cm,bottom=3cm]{geometry}, recompilez et le tour est joué !

Résultat

Nous en avons enfin terminé avec ce tutorial ;)
Résultat
Fichiers utilisés dans ce tutorial

1. C’est quoi, une View ?

Nous y voilà. Tout juste avant de commencer, voici un bout de l’API Android concernant les Views :

La classe View hérite comme toute classe de java.lang.Object, il est donc clair que programmer Android se fait en Java. Eh bien détrompez-vous, enfin pas totalement, il est également possible de programmer en XML. Je vous le conseille même, cela permet de séparer (le plus possible) les vues du modèle. J’y vois en quelques sortes un usage du pattern MVC très connu et très utilisé pour la programmation Objet.
Cette séparation est très importante car elle permet un suivi de l’application beaucoup plus efficace. Autre argument : dans une équipe, il y a (au moins) un designer et (au moins) un developpeur. Et si jamais vous codez seul, redoublez de vigilance.

Parmi les Views existantes, on compte l’objet TextView, ImageView, ListView, mais aussi EditText, les Spinner… Bref, une vraie mine d’or.
Tous ces composants graphiques peuvent (et doivent) vous sembler familier, nombre d’entre eux existent dans n’importe quelle librairie graphique, citons par exemple Swing.

2. Un premier exemple

Décortiquons l’exemple fourni par Google.

Classe principale :
package blog.smiley;
import android.app.Activity;
import android.os.Bundle;
public class Main extends Activity {

 @Override
 public void onCreate(Bundle mBundle) {
  super.onCreate(mBundle);
  setContentView(R.layout.main);
 }
}

Fichier XML correspondant :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <TextView
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="@string/hello" />
</LinearLayout>

Je vais en remettre une couche : vous voyez la classe java ? Eh bien elle est vide ! En effet, tout se passe dans le fichier XML. Analysons-le.

C’est un fichier XML, comme son prototype l’indique. La première balise qu’il contient est un LinearLayout. Certains traduisent layout par gabarit, mais moi je parlerai de layout. Il est très important de déclarer le xmlns (pour XML NameSpace, vous l’aurez reconnu) afin d’importer les objets disponibles pour Android dans ce fichier. Et uniquement ce fichier, il faudra donc le faire pour tous… Ce layout permet d’insérer les vues les unes à la suite des autres, par défaut de manière horizontale.

L’attribut android:orientation="vertical" permet d’insérer les objets verticalement.
android:layout_width="fill_parent" et android:layout_height="fill_parent" définissent la taille de la vue, les valeurs disponibles sont fill_parent (toute la taille que le bloc parent rend disponible, losque le parent est l’écran, tout l’écran est disponible) et wrap_content (juste la taille de la vue). Il existe aussi la valeur match_parent depuis la version 2.2. Ces deux derniers attributs sont obligatoires dans la définition de chaque vue !

Le TextView se comprend de façon identique. On aperçoit un attribut supplémentaire : android:text="@string/hello". Il définit le texte de la vue.
Le « @ » dit au système compilant d’aller chercher dans les ressources la string qui s’appelle hello, et de mettre son contenu dans la valeur text. Pour un simple « Hello, world! », vous en conviendrez, c’est presque risible. Mais cela fait partie des bonnes manières à adopter. Toujours pour l’évolutivité des applications…

Revenons maintenant à la classe Java correspondant. Il y a le package et import habituels, une définition de classe qui extends Activity. Une Activity est vue par l’utilisateur dans un écran, et dans un seul. Vous voyez également la méthode surdéfinie (Override) onCreate, c’est ce code qui est exécuté au lancement de cette classe. Ainsi, comme toute méthode surdéfinie qui se respecte, super.onCreate, et le fameux setContentView(R.layout.main) !
Cette méthode importe le contenu du fichier pointé par R.layout.main et l’affiche à l’écran.

Note :
Android gère et génère la classe R automatiquement. Cette classe contient les identifiants de tout ce que vous avez défini dans votre projet (du texte, des images, des Views…). Evidemment, cette classe n’est pas modifiable. Enfin si, mais étant donné qu’elle est générée à chaque compilation… ;)
Autre chose, votre fichier s’appelle main.xml, mais vous importez main. Les extensions ne servent donc à rien.

3. A vous maintenant

Vous avez compris la forme d’une classe et de son fichier layout correspondant. Vous pouvez donc ajouter tous les éléments que vous voulez. Commençons par un nouveau TextView.

Première méthode, l’insertion de la balise dans le fichier XML : il suffit d’ajouter
<TextView
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:text="Ceci est mon premier TextView !"
  android:textColor="#FF0000"
  android:textSize="25dp" />

juste après le premier TextView et juste avant la fermeture du LinearLayout.

Deuxième méthode, directement dans la classe.
Il faut donner un identifiant à votre LinearLayout, par exemple android:id="@+id/mLinearLayout", puis insérer ce code dans la classe :

LinearLayout mLinearLayout = (LinearLayour) findViewById(R.id.mLinearLayout);
TextView mTextView = new TextView(this);
mTextView.setText("Ceci est mon premier TextView !");
mTextView.setTextColor(COLOR.Red);
mTextView.setTextSize(25.0f);
mLinearLayout.addView(mTextView);

Chacune des deux méthodes présente ses avantages et ses inconvénients. Il est toujours préférable d’utiliser les objets définis en dur dans le fichier XML, mais parfois, on est obligé de passer par la classe Java (pour l’instanciation dynamique par exemple).

Vous savez à présent insérer un TextView dans votre application !

4. Et pour les images ?

Insérons maintenant une image (ImageView). Les formats gérés par Android sont png, jpg et gif, avec une préférence pour le png. Lorsque vous avez créé votre projet, des dossiers drawable sont apparus. Ils contienent les images relatives aux différentes tailles d’écrans. Android est capable de retailler les images comme un grand, mais vous perdrez en rapidité si vous ne le faites pas à la main.
Pour l’exemple, nous allons nous contenter de l’image déjà existante dans le projet, icon.png

Admettons ce code :
<ImageView
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:src="@drawable/icon" />

et relancez l’application, cette fois, l’image s’affiche.

Certes, elle s’affiche, mais c’est très loin d’être optimisé.

— Suite au prochain épisode ;)

Encore une fois, un article contre l’iPhone4. Mais encore une fois, je ne suis pas anti-Apple.

C’est juste que notre cher Steve nous a inventé le 2 juillet (revoir le billet) que le problème de l’antenne venait d’une erreur de formule, etc. etc. Bref de quoi attiser le feu, temporairement.
De retour de ses fameuses vacances à Hawai (qui s’en fout ?), il annonce (non sans mauvaise foi !) que le problème n’est pas logiciel, et que seul 0.55% des utilisateurs ont téléphoné au SAV des émissions.

Le comble de la mauvaise foi est quand même cette page dédiée sur le site d’Apple : http://www.apple.com/antenna/.

Source : http://www.developpez.net/forums…

0. Prérequis

Il vaut mieux savoir programmer en Java et en XML pour réaliser à bien quelques applications Android. Il n’est cependant pas impossible d’apprendre ces deux langages avec Android, mais cela sera (à mon avis) à proscrire, pour des raisons d’optimisations.
Je renvoie à ce titre sur le site du zéro pour les tuto Java et XML.

1. Android, kézako ?

Android est un OS concurrent de iOS. Mais pas seulement.
C’est un OS libre, embarquant un noyau Linux, développé par Google. Le défi était, à partir du 15 novembre 2007 (date de sortie) d’intéresser les constructeurs (HTC, Motorola…). Ben oui, l’avantage (l’est-ce vraiment ?) d’Apple est qu’il n’y a qu’un seul téléphone, et donc qu’une seule cible de développement.Je vous le donne en mille, la licence pour développer pour iPhone est de 99 US $ et il faut que vos applications soient signées avant de pouvoir la tester sur votre iPhone. Et bien sûr, il faut un Mac pour développer.

Donc, revenons-en au plus important, Android est un OS en devenir, comme l’annoncent les chiffres en hausse environ à chaque sondage. Je ne vous les link pas car les sondages, on sait tous ce que ça vaut… Mais une petite analyse reste importante.

A l’heure actuelle, environ 30 smartphones embarquent Android, et la barre des 100.000 applications est bientôt franchie. Il existe de nombreux OS Android :

  • 1.0,
  • 1.1,
  • 1.5, dit « Cupcake »,
  • 1.6, dit « Donut »,
  • 2.0, dit « Eclair »,
  • 2.1, mise à jour mineure d’ »Eclair »,
  • 2.2 actuellement, dit Froyo,
  • 2.3 ou 3.0 selon rumeurs, dit Gingerbread.

Et ceci ne gêne pas les développeurs ! Et pour cause, le développeur n’a absolument pas à s’occuper de la taille de ses objets, un pourcentage suffit, et de toute façon, tout a été fait de manière à ce que le développeur ne s’occupe que du contenu.

Je vais terminer l’introduction par cette question : pourquoi développer pour Android ?
Pour plusieurs raisons :

  • Pour contribuer à la sphère du libre,
  • Pour augmenter ses compétences,
  • Pour réfléchir autrement (une application embarquée DOIT consommer moins de ressources !),
  • Pour passer le temps s’amuser,
  • Argent !!!

Une fois n’est pas coutume, il est vraiment important d’éviter les fuites mémoires, les while(true) sans break;, les ressources (images, sons, vidéos…) trop lourdes… Alors gare à vous, et à vos claviers/neurones !

2. Installation

Un site à conserver dans vos favoris : http://developer.android.com

Pour l’installation, je vous conseille un IDE, Eclipse ou Netbeans feront très bien l’affaire. Sachez tout de même que, malgré votre préférence, Eclipse est l’IDE retenu par Google, et que tout le monde l’utilise pour Android (disons tous les magazines, webzines…). A vous de faire votre choix.
Ensuite, je vous envoie sur cette page.

N’oubliez pas de rajouter le répertoire Android de votre disque dans vos variables d’environnement (tout est également dit dans la page précédente) ! Cela vous permettra de lancer l’émulateur via le terminal plus simplement :
$ android
plutôt que
$ répertoire_d_installation/tools/android .

Note : si vous avez loupé une étape, notamment celle pour lier le plugin à Eclipse, faire Help > Software Updates > Find and Install…. Pour Netbeans, ça doit être équivalent.

3. Premier démarrage

Pour éviter les clivages différends entre les IDE, je vais m’abstenir de parler d’untel ou d’untel. Bref. Créez un nouveau projet pour Android. Indiquez le nom, le package, les versions de l’OS Android (pour les tests), la version minimum…

Une architecture se crée sous vos yeux ébahis. On y voit plusieurs fichiers :

  • La classe « principale » de votre projet (supposons qu’elle s’appelle Main), ou plutôt celle où tout commence,
  • Le fichier layout main.xml,
  • La classe R qu’il est interdit de toucher (vous pouvez essayer, de toute façon elle est générée à chaque compilation !) !
  • Le fichier strings.xml qui contiendra vos string (ou autres, mais il est conseillé de faire plusieurs fichiers XML, on y reviendra),
  • Une icone icon.png, icone par défaut de votre application,
  • Et enfin, le manifest.

Le manifest est sans doute le fichier le plus important de votre projet. Il est défini le nom de l’application, la classe qui permet le lancement de votre application :

<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />

Il permet aussi de dire à votre smartphone quelles sont les permissions que vous donnez à l’application. Par défaut, votre application n’a pas le droit d’utiliser internet, ni les SMS, ni la caméra… A vous de lui autoriser !

<uses-permission android:name="android.permission.INTERNET" />

Eh oui, il faut être rigoureux ! Car ces oublis vous feront perdre un temps monstre (vous ne comprenez pas d’où vient l’erreur, vous insultez l’émulateur, vous insultez la plateforme…) car Android vous avertit de tous les problèmes par :


Supposant que vous ayez configuré un premier appareil sur l’émulateur, laissez-vous guider par la suite. Sinon,
$ android
puis créer un device avec l’API qui correspond à votre projet. Ensuite, empressez-vous de le lier à votre IDE.

3bis. Premier démarrage (le vrai)

Lancez l’application. Après que votre ordinateur a travaillé pendant environ 3min42, vous voyez l’application qui se lance. Oh, miracle ! Votre premier Hello, world! sous Android.

Ouais bon, c’est quand même pas vous qui avez fait le boulot ! Alors maintenant, c’est à vous de travailler.

— Suite au prochain épisode ;)

Ce blog n’est pas à vocation anti-Apple, je tiens à le faire remarquer :) .

Du coup, on va un peu voir ce qui se trame du côté concurrent, j’ai nommé Android.
Android est un OS portable, destiné à être embarqué par plusieurs constructeurs, et de ce fait par plusieurs smartphones. Un frustré trouve qu’il est difficile de programmer pour Android, mais quand on y regarde de plus près, les différentes tailles d’écran ne sont en rien un problème (tout s’adapte automatiquement).
Evidemment, sous prétexte que le développeur ait pris en compte (ou non) qu’il existait plusieurs écrans, il aura utilisé une mise en forme qui s’adapte (ou non). De toute façon, pour s’en rendre compte, il suffit de faire basculer son téléphone en mode paysage et voir si c’est moche ou non.
Bien sûr, il y a les problèmes de versions. En y jetant un oeil agguérit, je me suis rendu compte que, globalement, ce sont des évolutions qui améliorent la qualité des applications pour l’utilisateur. Bien que Flash (par exemple) soit livré nativement avec Froyo -Android 2.2-. En fait, c’est plutôt un problème hardware que software au niveau des applications. Du coup, il faut TESTER !
Sachez juste qu’actuellement, la répartition des OS se fait comme suit :

En attendant, Android gagne des parts de marché depuis un petit moment (je suis ces informations depuis l’an dernier), bien qu’il ait eu du mal à démarrer. Et dernièrement, il est même le seul à en gagner (source sous-citée).

En ce qui concerne les applications disponibles, voici un petit graphique mis à disposition par Androlib :

A l’heure où j’écris, 1,060,321,697 applications ont déjà été téléchargées. Encore quelques mois et on aura un integerOverFlow…

Pour les plus avertis d’entre vous, un tuto Android sera disponible ici dans quelques jours…

sources :
http://www.developpez.net/…
http://www.androlib.com/…

A l’heure où les critiques de l’iPhone 4 vont bon train, Consumer Reports nous préconise de ne pas l’acheter, car les problèmes d’antennes pourraient couper la connexion internet.

Et alors ?
Ben, euh… Quand y’en a marre, Apple censure ! (vous avez cru quoi ?)

source : http://www.20minutes.fr/…

Powered by WordPress Web Design by SRS Solutions © 2012 Smileey's blog Design by SRS Solutions