{"id":793,"date":"2018-01-08T16:58:48","date_gmt":"2018-01-08T15:58:48","guid":{"rendered":"http:\/\/chezdom.net\/etu\/?p=793"},"modified":"2018-01-08T18:47:28","modified_gmt":"2018-01-08T17:47:28","slug":"android-mini-projets","status":"publish","type":"post","link":"https:\/\/chezdom.net\/etu\/2018\/01\/08\/android-mini-projets\/","title":{"rendered":"Android Mini-Projets"},"content":{"rendered":"<h2>Travail \u00e0 r\u00e9aliser<\/h2>\n<p>Pour chaque sujet, vous avez 3 t\u00e2ches \u00e0 accomplir, dont 2 travaux \u00e0<br \/>\nrendre. Vous \u00eates en bin\u00f4me et vous devez tout rendre le 29 janvier<br \/>\n2018 (3 semaines).<\/p>\n<ol>\n<li>Vous devrez chercher la documentation correspondant \u00e0 votre<br \/>\nsujet. Privil\u00e9giez bien s\u00fbr la source la plus fiable :<br \/>\n<a href=\"https:\/\/developer.android.com\">https:\/\/developer.android.com<\/a>. Vous pouvez aussi vous inspirer de<br \/>\ntutos et de forums sur le Web. (par exemple<br \/>\n<a href=\"https:\/\/stackoverflow.com\">https:\/\/stackoverflow.com<\/a>, <a href=\"http:\/\/www.vogella.com\">http:\/\/www.vogella.com<\/a> etc.) Attention<br \/>\ntoutefois \u00e0 la <em>fra\u00eecheur<\/em> des documentations que vous consultez :<br \/>\nv\u00e9rifiez la date. Si vous trouvez un tuto correspondant \u00e0 votre t\u00e2che<br \/>\nmais que sa date est 2006 ou m\u00eame 2012, les API auront probablement<br \/>\npas mal \u00e9volu\u00e9 depuis.<\/p>\n<\/li>\n<li>\n<p>D\u00e9velopper une petite application de test suivant les consignes<br \/>\ndonn\u00e9es dans votre sujet. Les applications de test doivent \u00eatre en 2<br \/>\nlangues (fran\u00e7ais et anglais pr\u00e9f\u00e9r\u00e9es). <br \/>\nAttention quand votre application demande des permissions, il faut les<br \/>\nattribuer \u00e0 la main (dans les pr\u00e9f\u00e9rences, menu Applications, <em>selon<br \/>\nvotre version d&rsquo;Android<\/em>).<\/p>\n<\/li>\n<li>\n<p>Pr\u00e9parer une pr\u00e9sentation de 20 min, l\u00e0 aussi en respectant les<br \/>\nconsignes donn\u00e9es dans votre sujet. Il s&rsquo;agit en fait d&rsquo;un mini-cours<br \/>\npour expliquer aux autres \u00e9tudiants comment faire ! Les pr\u00e9sentations<br \/>\nauront lieu le 29 janvier \u00e0 partir de 14h.<\/p>\n<\/li>\n<\/ol>\n<h2>Sujets<\/h2>\n<h3>Sujet 1 &#8211; Utiliser l&rsquo;API <em>camera<\/em><\/h3>\n<p>Android permet d&rsquo;utiliser l&rsquo;appareil photo directement. Cela permet<br \/>\nde prendre une photo sans lancer d&rsquo;activit\u00e9 ext\u00e9rieure (une autre<br \/>\nsolution pour prendre une photo est d&rsquo;ailleurs de lancer l&rsquo;activit\u00e9<br \/>\nde prise de vue).<\/p>\n<p>Pour cela vous utiliserez l&rsquo;API <em>Camera\u00a0\u00bb. Elle permet de se connecter<br \/>\n\u00e0 une des cam\u00e9ras de l&rsquo;appareil (il y en a 1 ou 2), d&rsquo;afficher une<br \/>\n*preview<\/em> et de prendre une photo.<\/p>\n<h4>Exercice \u00e0 faire<\/h4>\n<p>D\u00e9velopper une application capable de prendre une photo en utilisant<br \/>\nl&rsquo;API <em>Camera<\/em>.<\/p>\n<p>D&rsquo;autre part la photo ne doit pas \u00eatre enregistr\u00e9e dans la galerie,<br \/>\nmais dans un dossier sp\u00e9cifique (\u00e0 votre l&rsquo;application).<\/p>\n<h4>Pr\u00e9sentation<\/h4>\n<p>Expliquer les 2 fa\u00e7ons de prendre une photo : en utilisant l&rsquo;activit\u00e9<br \/>\nprise de vue (via un Intent) et en utilisant l&rsquo;API <em>Camera<\/em>.<\/p>\n<h3>Sujet 2 &#8211; Services<\/h3>\n<p>Il s&rsquo;agit d&rsquo;un composant d&rsquo;application correspondant soit \u00e0 une<br \/>\nop\u00e9ration n&rsquo;ayant pas besoin d&rsquo;interaction avec un utilisateur, soit<br \/>\nde fournir une fonctionnalit\u00e9 a d&rsquo;autres applications. Un service n&rsquo;a<br \/>\ndonc pas d&rsquo;\u00e9cran associ\u00e9 (il est juste d\u00e9fini dans un fichier java et<br \/>\nn&rsquo;a donc pas de fichier xml de layout).<\/p>\n<p>L&rsquo;exemple typique consiste \u00e0 jouer un son : si le son est jou\u00e9 dans<br \/>\nune activit\u00e9, lorsque l&rsquo;on va sortir de l&rsquo;activit\u00e9 le son cesse d&rsquo;\u00eatre<br \/>\njou\u00e9. L&rsquo;utilisation d&rsquo;un service va donc permettre de continuer \u00e0<br \/>\njouer le son lorsqu&rsquo;on aura chang\u00e9 d&rsquo;activit\u00e9 ou qu&rsquo;on aura \u00e9teint<br \/>\nl&rsquo;\u00e9cran.<\/p>\n<p>Dans la pratique, une activit\u00e9 va d\u00e9marrer le son. C&rsquo;est sur cette<br \/>\nactivit\u00e9 que se trouve l&rsquo;interface utilisateur : boutons <code>play\/pause<\/code>,<br \/>\n<em>etc.<\/em> Lorsque l&rsquo;utilisateur appuie sur <code>play<\/code>, l&rsquo;activit\u00e9 lance le<br \/>\nservice qui va jouer le son. L&rsquo;utilisateur peut alors sortir de<br \/>\nl&rsquo;activit\u00e9, utiliser d&rsquo;autres activit\u00e9s ou m\u00eame \u00e9teindre<br \/>\nl&rsquo;\u00e9cran. Lorsque que l&rsquo;utilisateur revient vers l&rsquo;activit\u00e9 initiale et<br \/>\nappuie sur stop, cette dernier envoie un message au service pour<br \/>\narr\u00eater le son.<\/p>\n<h4>Exercice \u00e0 faire<\/h4>\n<p>Cr\u00e9er un service capable d&rsquo;afficher des toasts r\u00e9guli\u00e8rement.<\/p>\n<h4>Pr\u00e9sentation<\/h4>\n<p>Expliquer ce qu&rsquo;est un service, comment cr\u00e9er et lancer un service.<\/p>\n<h3>Sujet 3 &#8211; Localisation \/ GPS et autres<\/h3>\n<p>Android dispose de diff\u00e9rentes de localisation (dont en particulier le<br \/>\nGPS, mais aussi la localisation via le r\u00e9seau GSM). On peut utiliser<br \/>\nles donn\u00e9es cartographiques de l&rsquo;application Maps pour afficher une<br \/>\ncarte sur l&rsquo;\u00e9cran.<\/p>\n<h4>Exercice \u00e0 faire<\/h4>\n<p>Afficher la localisation, avec la pr\u00e9cision. L&rsquo;application devra<br \/>\npouvoir mettre \u00e0 jour la position r\u00e9guli\u00e8rement : un bouton permettra<br \/>\nd&rsquo;activer ou de d\u00e9activer la mise \u00e0 jour automatique de la<br \/>\nposition. Une carte doit afficher la position du t\u00e9l\u00e9phone.<\/p>\n<h4>Pr\u00e9sentation<\/h4>\n<p>Expliquer le principe de la localisation sur Android, et comment aller<br \/>\nchercher la carte pour l&rsquo;afficher dans votre application.<\/p>\n<h3>Sujet 4 &#8211; Capteurs et \u00e9cran tactile<\/h3>\n<p>Les t\u00e9l\u00e9phones mobiles sont truff\u00e9s de capteurs : GPS, acc\u00e9l\u00e9rom\u00e8tre, etc.<br \/>\nLe syst\u00e8me permet de v\u00e9rifier si les capteurs sont pr\u00e9sents ou non, et<br \/>\nde faire diff\u00e9rents r\u00e9glages.<\/p>\n<p>D&rsquo;autre part l&rsquo;\u00e9cran tactile permet de reconna\u00eetre la position d&rsquo;un<br \/>\ndoigt. Les appareil r\u00e9cents sont capables de d\u00e9tecter plusieurs doigts<br \/>\nsimultan\u00e9s.<\/p>\n<h4>Exercice \u00e0 faire<\/h4>\n<p>D\u00e9velopper une d\u00e9mo permettant de faire bouger une balle en fonction<br \/>\nde l&rsquo;inclinaison de l&rsquo;appareil : plus l&rsquo;inclinaison est forte plus<br \/>\nla balle ira vite, dans le sens de l&rsquo;inclinaison. Elle devra<br \/>\nrebondir sur les bords et aussi sur le doigt si l&rsquo;utilisateur pose son<br \/>\ndoigt sur l&rsquo;\u00e9cran (reconna\u00eetre au moins 1 doigt).<\/p>\n<h4>Pr\u00e9sentation<\/h4>\n<p>Expliquer comment v\u00e9rifier la pr\u00e9sence d&rsquo;un capteur et comment<br \/>\nr\u00e9cup\u00e9rer des donn\u00e9es dessus.<br \/>\nExpliquer le fonctionnement de l&rsquo;\u00e9cran tactile.<\/p>\n<h3>Sujet 5 &#8211; Notifications<\/h3>\n<p>Android permet de programmer des notifications qui vont appara\u00eetre sur<br \/>\nl&rsquo;\u00e9cran \u00e0 un moment donn\u00e9. Ces notifications peuvent signaler un<br \/>\n\u00e9v\u00e9nement (par exemple la fin d&rsquo;un morceau jou\u00e9 par le lecteur<br \/>\nmultim\u00e9dia), ou un rappel (de type alarme), ou encore signaler un<br \/>\n\u00e9v\u00e9nement ext\u00e9rieur (re\u00e7u par le t\u00e9l\u00e9phone, comme une news par exemple).<\/p>\n<h4>Exercice \u00e0 faire<\/h4>\n<p>D\u00e9velopper une application permettant d&rsquo;afficher une notification \u00e0<br \/>\nune heure donn\u00e9e (type rappel).<\/p>\n<h4>Pr\u00e9sentation<\/h4>\n<p>Pr\u00e9sentez les diff\u00e9rents types de notifications et indiquez comment<br \/>\nenvoyer une notification.<\/p>\n<h2>Bin\u00f4mes<\/h2>\n<ul>\n<li>bin\u00f4me 1 : Tony\/Guillaume &#8211; Sujet 3 &#8211; Localisation<\/li>\n<li>bin\u00f4me 2 : J\u00e9r\u00e9my\/Yasmina &#8211; Sujet 4 &#8211; Capteurs\/\u00e9cran tactile<\/li>\n<li>bin\u00f4me 3 : Nassim\/Raouia  &#8211; Sujet 1 &#8211; Appareil photo<\/li>\n<li>bin\u00f4me 4 : Walid\/Assia    &#8211; Sujet 2 &#8211; Service<\/li>\n<li>Sujet 5 &#8211; Dom<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Travail \u00e0 r\u00e9aliser Pour chaque sujet, vous avez 3 t\u00e2ches \u00e0 accomplir, dont 2 travaux \u00e0 rendre. Vous \u00eates en bin\u00f4me et vous devez tout rendre le 29 janvier 2018 (3 semaines). Vous devrez chercher la documentation correspondant \u00e0 votre<span class=\"ellipsis\">&hellip;<\/span> <span class=\"read-more\"><a href=\"https:\/\/chezdom.net\/etu\/2018\/01\/08\/android-mini-projets\/\">Lire la suite &#8250;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-793","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9qu1A-cN","_links":{"self":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/posts\/793","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/comments?post=793"}],"version-history":[{"count":2,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/posts\/793\/revisions"}],"predecessor-version":[{"id":796,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/posts\/793\/revisions\/796"}],"wp:attachment":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/media?parent=793"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/categories?post=793"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/tags?post=793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}