<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: FOLMER Thomas</title>
    <description>The latest articles on DEV Community by FOLMER Thomas (@ailelame).</description>
    <link>https://dev.to/ailelame</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1006686%2F25ced7e6-ed47-4f3c-9be0-9ccacd6c4847.png</url>
      <title>DEV Community: FOLMER Thomas</title>
      <link>https://dev.to/ailelame</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ailelame"/>
    <language>en</language>
    <item>
      <title>Dans les mystères du code d'Android</title>
      <dc:creator>FOLMER Thomas</dc:creator>
      <pubDate>Mon, 23 Jan 2023 07:18:28 +0000</pubDate>
      <link>https://dev.to/jetdev/dans-les-mysteres-du-code-dandroid-4d00</link>
      <guid>https://dev.to/jetdev/dans-les-mysteres-du-code-dandroid-4d00</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;(Crédit image: Olloweb agency _ Unsplash)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Récemment, alors que je regardais un &lt;a href="https://www.youtube.com/@DevCafe" rel="noopener noreferrer"&gt;DevCafé&lt;/a&gt;, il a été sujet de la propriété DISALLOW_FUN dans le UserManager. &lt;br&gt;
Ni une, ni 2, ça m'a rappelé d'autres easter eggs dans Android et voilà ce que j'ai trouvé !&lt;/p&gt;

&lt;h3&gt;
  
  
  Oeufs de Pâques d'Android
&lt;/h3&gt;

&lt;p&gt;Tout d'abord il y a les oeufs de pâques Android, disponible dans chaque version d'Android depuis la 2.3 &lt;br&gt;
Facilement accessible même aux non-développeurs, il suffit d'aller dans &lt;code&gt;Paramètres&lt;/code&gt; -&amp;gt; &lt;code&gt;A propos du téléphone&lt;/code&gt; -&amp;gt; Taper plusieurs fois sur la version d'Android. &lt;br&gt;
&lt;a href="https://www.androidauthority.com/android-easter-eggs-818694/" rel="noopener noreferrer"&gt;Retrouvez tous les œufs de version ici&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  UserManager
&lt;/h3&gt;

&lt;p&gt;Le UserManager est un endroit privilégié pour cacher des curiosités. &lt;/p&gt;

&lt;p&gt;Selon le code, il est possible de résoudre des petits soucis de téléportations incontrôlées avec :  &lt;a href="https://developer.android.com/reference/android/os/UserManager#isUserAGoat()" rel="noopener noreferrer"&gt;&lt;code&gt;isUserAGoat()&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdgswcyd92xhleh81kqh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdgswcyd92xhleh81kqh.png" alt="isUserAGoat()"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Libérez la puissance de votre code avec la technologie avancée de reconnaissance des chèvres d'Android, mais gardez à l'esprit qu'il est demandé de respecter la vie privée de la chèvre..&lt;/p&gt;

&lt;p&gt;Si vous ne trouvez pas ça si drôle, on a prévu autre chose. &lt;/p&gt;

&lt;p&gt;Vous pourrez contrôler le plaisir de votre utilisateur avec &lt;a href="https://developer.android.com/reference/android/os/UserManager#DISALLOW_FUN." rel="noopener noreferrer"&gt;&lt;code&gt;DISALLOW_FUN&lt;/code&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1tirt9bet4wz8n5rbp82.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1tirt9bet4wz8n5rbp82.png" alt="Capture d'écran de la base de code android pour DISALLOW_FUN"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Comme nous pouvons le voir, le fun est désactivé par défaut pour nos utilisateurs. J'invite les développeurs Android à réparer ce méfait et à activer le fun pour tous vos utilisateurs. &lt;br&gt;
Il est de notre responsabilité de faire du monde un endroit meilleur. &lt;/p&gt;

&lt;h3&gt;
  
  
  Prêt pour l'espace
&lt;/h3&gt;

&lt;p&gt;Si DISALLOW_FUN n'est pas suffisant pour rendre le monde meilleur, il est temps de construire une étoile de la mort ! &lt;br&gt;
Heureusement, Android peut nous aider en fournissant la gravité de l'Étoile de la Mort. &lt;br&gt;
Dans le Sensor Manager on a &lt;a href="https://developer.android.com/reference/android/hardware/SensorManager#GRAVITY_DEATH_STAR_I" rel="noopener noreferrer"&gt;&lt;code&gt;GRAVITY_DEATH_STAR_I&lt;/code&gt;&lt;/a&gt;&lt;br&gt;
Ca doit être important si ils l'ont ajouté dans la toute première API...&lt;/p&gt;

&lt;h3&gt;
  
  
  WTF
&lt;/h3&gt;

&lt;p&gt;Vous avez eu une longue journée ? Vous vous grattez la tête depuis trop longtemps à cause de comportements bizarres ? &lt;br&gt;
Balancez donc du WTF : &lt;br&gt;
&lt;a href="https://developer.android.com/reference/android/util/Log#wtf(java.lang.String,%20java.lang.String)" rel="noopener noreferrer"&gt;&lt;code&gt;Log.wtf()&lt;/code&gt;&lt;/a&gt;&lt;br&gt;
WTF -&amp;gt; " What (a) Terrible Failure ".&lt;/p&gt;

&lt;h3&gt;
  
  
  Le jazzman
&lt;/h3&gt;

&lt;p&gt;Si votre application est utilisée par des utilisateurs très agiles et que vous avez besoin de gérer plusieurs clics en même temps, &lt;a href="https://developer.android.com/reference/android/content/pm/PackageManager#FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND" rel="noopener noreferrer"&gt;&lt;code&gt;FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND&lt;/code&gt;&lt;/a&gt; est pour vous ! &lt;br&gt;
Bien joué, Android ;) &lt;/p&gt;

&lt;h3&gt;
  
  
  Chats et développeurs
&lt;/h3&gt;

&lt;p&gt;Que serait l'internet et par extension les développeurs sans les chats ! &lt;br&gt;
J'ai trouvé &amp;gt; 200 fichiers contenant meow dans les sources d'android. -&amp;gt; &lt;a href="https://cs.android.com/search?q=Meow" rel="noopener noreferrer"&gt;https://cs.android.com/search?q=Meow&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Le Final Countdown
&lt;/h3&gt;

&lt;p&gt;Quelle meilleure façon de clore cet article qu'avec un Final Countdown ! &lt;br&gt;
L'utilisation de &lt;a href="https://developer.android.com/reference/android/widget/Chronometer#isTheFinalCountDown()" rel="noopener noreferrer"&gt;&lt;code&gt;Chronometer(context).isTheFinalCountDown()&lt;/code&gt;&lt;/a&gt; va lancer youtube et jouer... Le Final Countdown !&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F532t9ejo0347chj6m4nf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F532t9ejo0347chj6m4nf.png" alt="Codebase du compte à rebours final"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tadada da tadadadada tadada da tadadadadadada...&lt;/p&gt;

&lt;p&gt;Sources :&lt;br&gt;
Explorateur de code source Android &lt;br&gt;
&lt;a href="https://cs.android.com" rel="noopener noreferrer"&gt;https://cs.android.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Le compte à rebours final&lt;/code&gt;&lt;br&gt;
&lt;a href="https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/widget/Chronometer.java;l=163;bpv=1;bpt=1?q=finalcountdown" rel="noopener noreferrer"&gt;https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/widget/Chronometer.java;l=163;bpv=1;bpt=1?q=finalcountdown&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La plupart de l'inspiration vient de cet article &lt;br&gt;
&lt;a href="https://blog.danlew.net/2015/04/18/is-your-user-a-goat/" rel="noopener noreferrer"&gt;https://blog.danlew.net/2015/04/18/is-your-user-a-goat/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>mobile</category>
      <category>resume</category>
      <category>french</category>
    </item>
    <item>
      <title>Android codebase easter eggs</title>
      <dc:creator>FOLMER Thomas</dc:creator>
      <pubDate>Mon, 16 Jan 2023 07:17:44 +0000</pubDate>
      <link>https://dev.to/jetdev/android-codebase-easter-eggs-and-pranks-5h4i</link>
      <guid>https://dev.to/jetdev/android-codebase-easter-eggs-and-pranks-5h4i</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;(Image by the Olloweb agency on Unsplash)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Android codebase is full of surprises that we have yet to discover. &lt;br&gt;
Recently, I came across a presentation of the weird property &lt;a href="https://developer.android.com/reference/android/os/UserManager#DISALLOW_FUN."&gt;&lt;code&gt;DISALLOW_FUN&lt;/code&gt;&lt;/a&gt; in the UserManager, and it made me want to look for the other easter eggs, pranks and small jokes hidden in the Android codebase.&lt;br&gt;
Without further ado ! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/SGujC3SmOI5Vu/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/SGujC3SmOI5Vu/giphy.gif" alt="Interrogation Gif" width="240" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Android easter eggs
&lt;/h3&gt;

&lt;p&gt;The first thing that should come to mind when speaking of easter eggs in Android, is the one that can be found for every Android Version since 2.3 &lt;br&gt;
Easily accessible to even non-developers, just go to &lt;code&gt;Settings&lt;/code&gt; -&amp;gt; &lt;code&gt;About Phone&lt;/code&gt; -&amp;gt; Repeatedly tap on the Android version &lt;br&gt;
&lt;a href="https://www.androidauthority.com/android-easter-eggs-818694/"&gt;Find all the version easters eggs here&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  UserManager
&lt;/h3&gt;

&lt;p&gt;In the code, the UserManager is probably the go-to place to hide curiosities. &lt;/p&gt;

&lt;p&gt;Might your users be subject to teleportation ? I have something for you !  &lt;a href="https://developer.android.com/reference/android/os/UserManager#isUserAGoat()"&gt;&lt;code&gt;isUserAGoat()&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iMx51dK7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xdgswcyd92xhleh81kqh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iMx51dK7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xdgswcyd92xhleh81kqh.png" alt="isUserAGoat()" width="880" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unleash the power of your code with Android's advanced goat recognition technology and please, respect the goat's privacy.&lt;/p&gt;

&lt;p&gt;And who says that the goats cannot have fun?&lt;/p&gt;

&lt;p&gt;You'll be able to control the fun of your user with &lt;a href="https://developer.android.com/reference/android/os/UserManager#DISALLOW_FUN."&gt;&lt;code&gt;DISALLOW_FUN&lt;/code&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PxEe26KD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1tirt9bet4wz8n5rbp82.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PxEe26KD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1tirt9bet4wz8n5rbp82.png" alt="Screenshot of the android codebase for DISALLOW_FUN" width="880" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As we can see, the fun is disabled for our users by default. I invite Android Developers to repair this mischief and turn on the fun for all your users. &lt;br&gt;
It is our responsibility to make the world a better place. &lt;/p&gt;

&lt;h3&gt;
  
  
  Ready for space
&lt;/h3&gt;

&lt;p&gt;If you could not make the world a better place with DISALLOW_FUN, time to build a Death Star ! &lt;br&gt;
Luckily Android can help us by providing the expected gravity of the Death Star. &lt;br&gt;
Use the Sensor Manager and use the &lt;a href="https://developer.android.com/reference/android/hardware/SensorManager#GRAVITY_DEATH_STAR_I"&gt;&lt;code&gt;GRAVITY_DEATH_STAR_I&lt;/code&gt;&lt;/a&gt;&lt;br&gt;
Seems important as they added it in the very first API...&lt;/p&gt;

&lt;h3&gt;
  
  
  WTF
&lt;/h3&gt;

&lt;p&gt;Are you having a long day ? Have you been scratching your head for too long about weird behaviors ? &lt;br&gt;
Just release pressure and place some WTF on your code : &lt;br&gt;
&lt;a href="https://developer.android.com/reference/android/util/Log#wtf(java.lang.String,%20java.lang.String)"&gt;&lt;code&gt;Log.wtf()&lt;/code&gt;&lt;/a&gt;&lt;br&gt;
WTF -&amp;gt; "What a terrible Failure"&lt;/p&gt;

&lt;h3&gt;
  
  
  The jazzman
&lt;/h3&gt;

&lt;p&gt;You app will be used by very agile users and you need to handle multiple clicks at the same time, &lt;a href="https://developer.android.com/reference/android/content/pm/PackageManager#FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND"&gt;&lt;code&gt;FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND&lt;/code&gt;&lt;/a&gt; is for you ! &lt;br&gt;
Nice touch, Android ;) &lt;/p&gt;

&lt;h3&gt;
  
  
  Cats and developers
&lt;/h3&gt;

&lt;p&gt;What would be the internet and by extension the developers without cats?! &lt;br&gt;
I found &amp;gt;200 files containing meow in the source of android. -&amp;gt; &lt;a href="https://cs.android.com/search?q=Meow"&gt;https://cs.android.com/search?q=Meow&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  The final countdown
&lt;/h3&gt;

&lt;p&gt;What better way to close this article than the final countdown?! &lt;br&gt;
Using &lt;a href="https://developer.android.com/reference/android/widget/Chronometer#isTheFinalCountDown()"&gt;&lt;code&gt;Chronometer(context).isTheFinalCountDown()&lt;/code&gt;&lt;/a&gt; will launch youtube and play... The final countdown !&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PVmzcWtp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/532t9ejo0347chj6m4nf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PVmzcWtp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/532t9ejo0347chj6m4nf.png" alt="Final countdown codebase" width="880" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sources :&lt;br&gt;
Android source code explorer &lt;br&gt;
&lt;a href="https://cs.android.com"&gt;https://cs.android.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;The final countdown&lt;/code&gt;&lt;br&gt;
&lt;a href="https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/widget/Chronometer.java;l=163;bpv=1;bpt=1?q=finalcountdown"&gt;https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/widget/Chronometer.java;l=163;bpv=1;bpt=1?q=finalcountdown&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most of the inspiration come from this article &lt;br&gt;
&lt;a href="https://blog.danlew.net/2015/04/18/is-your-user-a-goat/"&gt;https://blog.danlew.net/2015/04/18/is-your-user-a-goat/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>mobile</category>
      <category>resume</category>
    </item>
  </channel>
</rss>
