<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>app &amp;mdash; pylapp</title>
    <link>https://write.as/pylapp/tag:app</link>
    <description>Software crafter, digital punker - &lt;a href=&#34;https://pylapersonne.info&#34; title=&#34;Personal web site&#34;&gt;pylapersonne.info&lt;/a&gt;</description>
    <pubDate>Mon, 24 Aug 2026 12:19:19 +0000</pubDate>
    <item>
      <title>A little story about an insignificant Android app: birth, growth and death...</title>
      <link>https://write.as/pylapp/a-little-story-about-an-insignificant-android-app-birth-growth-and-death?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[h1A little story about an insignificant Android app: birth, growth and death sentence/h1&#xA;&#xA;i🇺🇸 - Monday, September, 21st 2020/i&#xA;&#xA;biMots clés : #Android, #GooglePlay, #root, #clicker, #app/i/b&#xA;&#xA;    How a simple app I forged was used and hacked by users before being kicked by iGoogle/i without warning.&#xA;&#xA;    Few years ago when I was an impetuous-padawan-developer I discovered useless but must-have apps to waste time like a href=&#34;https://play.google.com/store/apps/details?id=org.dashnet.cookieclicker&#34; title=&#34;Coockie Clicker on Google Play&#34;Cookie Clicker/a and a href=&#34;https://play.google.com/store/apps/details?id=com.mlt.woy&#34; title=&#34;Woy ! on Google Play&#34;Woy !/a. The aim of Cookie Clicker was simple: tap on the screen to get more cookies.  emWoy !/em was an app created by colleagues which helped to define notifications (useful or dumb) to send to contacts (but was removed from Google Play). Thus I started to work on an app which may help me to trigger a lot of clicks to these kinds of apps, during day and nights. emYes, I need to fill my week-ends and I wanted to spam my friend 😁/em.        &#xA;&#xA;h2The first issue I met was the open source license to use. 🐧/h2&#xA;    &#xA;    In fact I wanted to create a free project, and finally chose the MIT license. Much simpler and smaller than Apache 2.0, and didn’t want to use contaminative licences like GPL.emI wasn’t yet an enough bearded linuxian/em. My mood was something like em“use it, ant that’s it”/em&#xA;&#xA;    img src=&#34;https://pylapersonne.info/data/cdn/blog/16/license.png&#34; title=&#34;MIT license text&#34; alt=&#34;Text of MIT license&#34; class=&#34;centerImage toBigImage&#34;/&#xA;&#xA;h2Next, the tools. 🛠️/h2&#xA;&#xA;    Nothing original, a href=&#34;https://github.com/pylapp/SmoothClicker&#34; title=&#34;Source code on GitHub&#34; alt=&#34;source of on GitHub&#34;created a repo on iGitHub/i/a, listed the features I wanted to implement in a poor plain text file em(too lazy to create at that time a Trello or Wekan account)/em. I decided to upload the app on Google Play, my first baby project! I thought about alternative stores like F-Droid but decided to not use it ; youngster laziness em(remember my baby-linuxian beard? I had only a moustache)/em. First project, wanted to keep it simple.&#xA;&#xA;h2Then, the tests. ✅/h2&#xA;    &#xA;    How could I ensure my software was enough stable for release? How could I ensure to find any regressions? So I decided to play with unit tests using iJUnit/i and functional tests with iEspresso/i and iUI Automator/i. Nice choice! I was quite confident about the coverage of my tests em(too much?)/em, even if the core of the app was tricky to test with automated tools. I should had used iTDD/i and iclean code/i principles to make things cleaner and better. With hindsight I should have been more careful about the coverage of my sources (to ensure all cases have been properly tested).      &#xA;&#xA;    img src=&#34;https://pylapersonne.info/data/cdn/blog/16/test.png&#34; title=&#34;Very verbose functional tests ❤&#34; alt=&#34;Java-written functional test source code&#34; class=&#34;centerImage toBigImage&#34;&#xA;&#xA;h2After that, I tried to build an HTML doc using JavaDoc because I chose Java. ☕/h2&#xA;&#xA;    Yes, I love comments, and iJava/i was one of the two first programming languages I discovered, it has a special flavor for me. Maybe I wrote too much of comments in that project. But having a nice bunch of iHTML/i pages is fun for me. The boring thing was more about the use of iJava/i instead of iKotlin/i, but at that time iKotlin/i was not ready at all. iJavaDoc/i was cool and quite efficient to have a quick look on the API.&#xA;&#xA;    img src=&#34;https://pylapersonne.info/data/cdn/blog/16/code.png&#34; title=&#34;Java + comments + hungarian convention… oh shit 😱&#34; alt=&#34;Java source code sample of a click async task&#34; class=&#34;centerImage toBigImage&#34;/&#xA;&#xA;h2First project, so first occasion to use fun third-party components. 🧱/h2&#xA;&#xA;    For example I integrated a a href=&#34;https://github.com/saurabharora90/MaterialArcMenu&#34; title=&#34;Material Arc Menu on GitHub&#34; alt=&#34;Material Arc Menu on GitHub&#34;material arc menu/a, a href=&#34;https://github.com/kyleduo/SwitchButton&#34; title=&#34;Switch Button on GitHub&#34; alt=&#34;Switch Button on GitHub&#34;custom switch buttons/a, a href=&#34;https://github.com/AppIntro/AppIntro&#34; title=&#34;AppIntro on GitHub&#34; alt=&#34;AppIntro on GitHub&#34;introduction screens/a, a href=&#34;https://github.com/roughike/SwipeSelector&#34; title=&#34;Swipe Selector on GitHub&#34; alt=&#34;Swipe Selector on GitHub&#34;swipe selectors/a, and a href=&#34;http://github.com/MrBIMC/MaterialSeekBarPreference&#34; title=&#34;Material Seekbar Preference on GitHub&#34; alt=&#34;Material Seekbar Preference on GitHub&#34;material seek bars/a. I tried to have a simple but nice UI. Time to get pleasure!&#xA;&#xA;    img src=&#34;https://pylapersonne.info/data/cdn/blog/16/ui.png&#34; title=&#34;Tried to make a cool material UI 😊&#34;  class=&#34;centerImage toBigImage&#34;/&#xA;&#xA;h2Then, the features. ⚙️/h2&#xA;&#xA;    At that era, it was not possible for an app to make clicks outside itself ; thus no app was able to click on other components. However if the smartphone in use is rooted, let&#39;s party! A whole API is reachable, a lot of funny things can be done using a shell with sudo rights. With this low-level API all actions can be triggered, like clicks or swipes. It worked during a long time but it seems it will be the pretext for iGoogle/i to use the shotgun. The use case was simple: define a list of points to tap on the screen, apply a configuration (duration of clicks, breaks between them, …), ask for sudo access and go. Simple, isn&#39;t it? The app allowed also to export configurations, use predefined scenarii and could be triggered from outside. A more curated list of features is in the a href=&#34;https://github.com/pylapp/SmoothClicker/blob/master/README.md&#34; title=&#34;README in the repository&#34; alt=&#34;README file in the repository&#34;README/a.&#xA;&#xA;h2One of the cool part of this story was the unexpected third-party contributions, about translations. 🌍/h2&#xA;&#xA;    Indeed like a naive developer I used dumbly iGoogle Translate/i to translate my wording (in english and french) to other languages. In fact I saw thanks to the Play Store developer console a lot of users lived in plenty of countries, from Russia to Spain, Iran to Middle-East, Korea to South America. But the translations I integrated were awful. Users were complaining a lot about how bad it was ; the UI was not usable at all! I should had used only languages I was able to read, write and understand. iDeepL/i was not launched. However a Russian and a German users some day send to me the translations in its mother language, and an Italian user made a pull request for new translations. Motivating! It was free, efficient and clear, thanks to these guys!&#xA;&#xA;    img src=&#34;https://pylapersonne.info/data/cdn/blog/16/translation.png&#34; title=&#34;Google Translate spotted 😭&#34; alt=&#34;Very bad comment on Google Play Store about bad translations&#34; class=&#34;centerImage toBigImage&#34;/&#xA;&#xA;h2The interesting thing was about the use of the app, and firstly the metrics I got. 📋/h2&#xA;&#xA;    I saw there was a two-sided relationship between users and the app: love and hate. Reading the store stars, I had a big split with high stars numbers with the worst mark (1 star) and… the best (5 stars). But why? Why did I received such rude and offensive comments on a side, and enjoying and motivating comment on the other side?&#xA;&#xA;    img src=&#34;https://pylapersonne.info/data/cdn/blog/16/stars.png&#34; title=&#34;Love and hate.&#34; alt=&#34;App page review with 322 marks, an average rank to 3.0 and highest scores in 5 stars and 1 star.&#34; class=&#34;centerImage toBigImage&#34;/&#xA;&#xA;    It was because… I did not mentioned the app was for rooted device. Woops. Yes the promise was cool em(click on everything!)/em but it was also fucking disappointing for users if the device was not capable. Thus I mentioned in CAPSLOCK in the title of the store page the app was for unleashed smartphones, and things were a bit better. saying in the description of the app was not enough.&#xA;&#xA;    img src=&#34;https://pylapersonne.info/data/cdn/blog/16/store.png&#34; title=&#34;It was for ROOTED devices❗️&#34; alt=&#34;Header of the app&#39;s page on Google Play Store with the icon, the name and screen shots.&#34; class=&#34;centerImage toBigImage&#34;/&#xA;&#xA;h2Few months later, I asked search engines like Google and Duck Duck Go... 🦆/h2&#xA;&#xA;    ...to check if there were some contents about the app, like reviews, counterfeiting and videos about it. I was both kindly surprised and upset about the things I &#xA;    &#xA;    In the hand I saw the app was available on third-party platforms, kinds of APK aggregators. I was upset: no consent was given to them to steal the app and provide it on foreign platforms. I checked also the content: I found some of the provided APK were compromised! em&#xA;Thank you guys, my project, my app, open sourced it, and you altered it to make I-don&#39;t-know-what operations. Sincerely, emgo fuck yourself/em. You deserve nothing, and because of you and the stupidity of some users (using blindly such tools) you give to Google too much points to say third-party stores are hazardous (even if Yalp and F-Droid are reliable!).&#xA;        /em&#xA;&#xA;    The other things I got, a more pleasant one, was some users hacked my app so as to use it for other things: get more followers on iInstagram/i! From my point of view we should have the right to hack apps and use them for use cases we want, and that was pleasant to see people talking about iSmooth Clicker/i on iYouTube/i! It was not expected at all but it made my smile 😊. a href=&#34;https://youtu.be/NrsHuvliSJA?t=155&#34; title=&#34;اوتو تاج للاندرويد و حل مشكله برنامج hiromacro&#34;A review here/a and a href=&#34;https://youtu.be/-iQ23FcSq6Y?t=217&#34; title=&#34;2 Methods to get free instagram followers without following anybody { 2017 NEW}&#34;another here/a 😄.&#xA;&#xA;h2However shit had finally come for my app: the Google head shot with a railgun. Painful and rough. 💥/h2&#xA;&#xA;    Some day I received an email from iGoogle/i whistling the end: em &#34;Hey guy, we found your app was violating our terms of uses, in fact you altered the state of the device and we disliked that. So, say goodbye to your project! Best regards ❤&#34;. /em  Holly crap. That was unexpected. I tried to have a look and the console but… nothing! Because the app has been blocked, every fucking thing has been hidden or disabled. Comments ? Nope. App reviews? Nope? Crash reports? Ahah, nope. Metrics about the devices of users? Stop dreaming, blocked.&#xA;&#xA;    img src=&#34;https://pylapersonne.info/data/cdn/blog/16/suspended.png&#34; title=&#34;Woops 😆✌️😇😭&#34; alt=&#34;Email of Google saying the app has been ssuspended because of rules 4.8 and 4.9 violations of Play Store terms of uses&#34; class=&#34;centerImage toBigImage&#34;/&#xA;    &#xA;    Maybe I should have appealed. In fact my app did not changed the state of phones: it only triggered the sudo mode of rooted devices (but did not root them) and call ADB primitives to make clicks. Ok, the app had links in the settings page to help people to make their devices rooted using dedicated tools. But it&#39;s ok, be fair-play, it was a bit borderline 😛.        &#xA;&#xA;    img src=&#34;https://pylapersonne.info/data/cdn/blog/16/tap.png&#34; title=&#34;Ok, borderline 😛&#34; alt=&#34;Java code which builds an ADB command and processes it in a SUDO processus&#34; class=&#34;centerImage toBigImage&#34;/&#xA;&#xA;    Even if I appealed it won&#39;t be very useful for me to get access to the app to make patches: in fact like a moron I formatted my laptop. Guess what was the file I forgot to save? The keystore file with keys to sign the APK 😒. In fact I had a backup, but a too old one. A full jackass. Credentials lost. Woops.        &#xA;&#xA;    Later I saw my Git history was fucked up (in fact a certain amount of repositories I used were in a big mess). Heavy files commited (woops!), non-linear history, saved secrets, I was a newbie and also my personal email was used in commits. Bots found that and I received between 50 and 100 emails per day with scams. So, I decided to change my emails accounts and burn all my repositories. Fresh start, cleaner history, good base. Not smooth but I didn&#39;t care.        &#xA;&#xA;h2And so what?/h2&#xA;&#xA;    iSmooth Clicker/i was my first junior side project, and it was pleasant. Doc, tests, design patterns, open source, in production and hacked by people, between 50k and 100K downloads… it was incredible. The main feature with the Shell ADB commands was cool to implement, and I learned a lot. Good skills have been got and will be used in the future. I have a lot of regrets about the Google sentence: I would have liked to have a warning instead of such one-shot. But it&#39;s the game: I tried, and it not accepted. But it was a cool journey! I would liked to go further with the app but it&#39;s a sad fact: the i2.1.3 version/i (icode name Juicy Jellyfish/i) will be the last.&#xA;&#xA;    img src=&#34;https://pylapersonne.info/data/cdn/blog/16/downloads.png&#34; title=&#34;Between 50,000 and 100,000 downloads 🙃&#34; alt=&#34;Extract of app page saying there was between 50,000 and 100,000 downloads&#34; class=&#34;centerImage toBigImage&#34;/&#xA;&#xA;    img src=&#34;https://pylapersonne.info/data/cdn/blog/16/terminated.png&#34; title=&#34;Terminated. 😵&#34; alt=&#34;Error message in Google Play saying the app is not available anymore&#34; class=&#34;centerImage toBigImage&#34;/&#xA;&#xA;--&#xA;iDernière mise à jour : mercredi 9 février 2022/i&#xA;iPrécédemment sur a href=&#34;https://medium.com/@pylapp&#34; title=&#34;Profile on Medium.com, deleted account&#34; alt=&#34;Profile on Medium.com, deleted account&#34;Medium/a et a href=&#34;https://paper.wf/pylapp&#34; title=&#34;Profile on paper.wf instance, deleted account&#34; alt=&#34;Profile on paper.wf instance, deleted account&#34;paper.wf/a&#xA;--&#xA;&#xA;Did you enjoy reading this blog?&#xD;&#xA;a href=&#34;https://pylapersonne.info/buymeacoffee&#34; title=&#34;Profile of pylapp in buymeacoffee.com&#34; aria-label=&#34;Go to buymeacoffee.com&#34;Give me a beer 🍺/a or use a href=&#34;https://pylapersonne.info/donate&#34; title=&#34;Page for support in pylapersonne.info web site&#34; aria-label=&#34;Use another way to support on pylapersonne.info website&#34;something else/a ❤️‍🔥&#xD;&#xA;Licensed under a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/&#34;CC-BY-SA 4.0/a.&#xD;&#xA;Opinions are my own.&#xD;&#xA;To contact me, feel free to choose a href=&#34;https://pylapersonne.info/menu&#34; title=&#34;Menu page of my web site with social networks and contact mediums&#34;the most suitable medium for you/a, or for example a href=&#34;https://framapiaf.org/@pylapp&#34; title=&#34;Mastodon profile&#34;Mastodon/a.]]&gt;</description>
      <content:encoded><![CDATA[<h1>A little story about an insignificant Android app: birth, growth and death sentence</h1>

<p><i>🇺🇸 – Monday, September, 21st 2020</i></p>

<p><b><i>Mots clés : <a href="https://write.as/pylapp/tag:Android" class="hashtag"><span>#</span><span class="p-category">Android</span></a>, <a href="https://write.as/pylapp/tag:GooglePlay" class="hashtag"><span>#</span><span class="p-category">GooglePlay</span></a>, <a href="https://write.as/pylapp/tag:root" class="hashtag"><span>#</span><span class="p-category">root</span></a>, <a href="https://write.as/pylapp/tag:clicker" class="hashtag"><span>#</span><span class="p-category">clicker</span></a>, <a href="https://write.as/pylapp/tag:app" class="hashtag"><span>#</span><span class="p-category">app</span></a></i></b></p>

<p>    How a simple app I forged was used and hacked by users before being kicked by <i>Google</i> without warning.</p>

<p>    Few years ago when I was an impetuous-padawan-developer I discovered useless but must-have apps to waste time like <a href="https://play.google.com/store/apps/details?id=org.dashnet.cookieclicker" title="Coockie Clicker on Google Play">Cookie Clicker</a> and <a href="https://play.google.com/store/apps/details?id=com.mlt.woy" title="Woy ! on Google Play">Woy !</a>. The aim of Cookie Clicker was simple: tap on the screen to get more cookies.  <em>Woy !</em> was an app created by colleagues which helped to define notifications (useful or dumb) to send to contacts (but was removed from Google Play). Thus I started to work on an app which may help me to trigger a lot of clicks to these kinds of apps, during day and nights. <em>Yes, I need to fill my week-ends and I wanted to spam my friend 😁</em>.</p>

<h2>The first issue I met was the open source license to use. 🐧</h2>
    

<p>    In fact I wanted to create a free project, and finally chose the MIT license. Much simpler and smaller than Apache 2.0, and didn’t want to use contaminative licences like GPL.<em>I wasn’t yet an enough bearded linuxian</em>. My mood was something like <em>“use it, ant that’s it”</em></p>

<p>    <img src="https://pylapersonne.info/data/cdn/blog/16/license.png" title="MIT license text" alt="Text of MIT license" class="centerImage toBigImage"/></p>

<h2>Next, the tools. 🛠️</h2>

<p>    Nothing original, <a href="https://github.com/pylapp/SmoothClicker" title="Source code on GitHub">created a repo on <i>GitHub</i></a>, listed the features I wanted to implement in a poor plain text file <em>(too lazy to create at that time a Trello or Wekan account)</em>. I decided to upload the app on Google Play, my first baby project! I thought about alternative stores like F-Droid but decided to not use it ; youngster laziness <em>(remember my baby-linuxian beard? I had only a moustache)</em>. First project, wanted to keep it simple.</p>

<h2>Then, the tests. ✅</h2>
    

<p>    How could I ensure my software was enough stable for release? How could I ensure to find any regressions? So I decided to play with unit tests using <i>JUnit</i> and functional tests with <i>Espresso</i> and <i>UI Automator</i>. Nice choice! I was quite confident about the coverage of my tests <em>(too much?)</em>, even if the core of the app was tricky to test with automated tools. I should had used <i>TDD</i> and <i>clean code</i> principles to make things cleaner and better. With hindsight I should have been more careful about the coverage of my sources (to ensure all cases have been properly tested).</p>

<p>    <img src="https://pylapersonne.info/data/cdn/blog/16/test.png" title="Very verbose functional tests ❤" alt="Java-written functional test source code" class="centerImage toBigImage"></p>

<h2>After that, I tried to build an HTML doc using JavaDoc because I chose Java. ☕</h2>

<p>    Yes, I love comments, and <i>Java</i> was one of the two first programming languages I discovered, it has a special flavor for me. Maybe I wrote too much of comments in that project. But having a nice bunch of <i>HTML</i> pages is fun for me. The boring thing was more about the use of <i>Java</i> instead of <i>Kotlin</i>, but at that time <i>Kotlin</i> was not ready at all. <i>JavaDoc</i> was cool and quite efficient to have a quick look on the API.</p>

<p>    <img src="https://pylapersonne.info/data/cdn/blog/16/code.png" title="Java + comments + hungarian convention… oh shit 😱" alt="Java source code sample of a click async task" class="centerImage toBigImage"/></p>

<h2>First project, so first occasion to use fun third-party components. 🧱</h2>

<p>    For example I integrated a <a href="https://github.com/saurabharora90/MaterialArcMenu" title="Material Arc Menu on GitHub">material arc menu</a>, <a href="https://github.com/kyleduo/SwitchButton" title="Switch Button on GitHub">custom switch buttons</a>, <a href="https://github.com/AppIntro/AppIntro" title="AppIntro on GitHub">introduction screens</a>, <a href="https://github.com/roughike/SwipeSelector" title="Swipe Selector on GitHub">swipe selectors</a>, and <a href="http://github.com/MrBIMC/MaterialSeekBarPreference" title="Material Seekbar Preference on GitHub">material seek bars</a>. I tried to have a simple but nice UI. Time to get pleasure!</p>

<p>    <img src="https://pylapersonne.info/data/cdn/blog/16/ui.png" title="Tried to make a cool material UI 😊" class="centerImage toBigImage"/></p>

<h2>Then, the features. ⚙️</h2>

<p>    At that era, it was not possible for an app to make clicks outside itself ; thus no app was able to click on other components. However if the smartphone in use is rooted, let&#39;s party! A whole API is reachable, a lot of funny things can be done using a shell with sudo rights. With this low-level API all actions can be triggered, like clicks or swipes. It worked during a long time but it seems it will be the pretext for <i>Google</i> to use the shotgun. The use case was simple: define a list of points to tap on the screen, apply a configuration (duration of clicks, breaks between them, …), ask for sudo access and go. Simple, isn&#39;t it? The app allowed also to export configurations, use predefined scenarii and could be triggered from outside. A more curated list of features is in the <a href="https://github.com/pylapp/SmoothClicker/blob/master/README.md" title="README in the repository">README</a>.</p>

<h2>One of the cool part of this story was the unexpected third-party contributions, about translations. 🌍</h2>

<p>    Indeed like a naive developer I used dumbly <i>Google Translate</i> to translate my wording (in english and french) to other languages. In fact I saw thanks to the Play Store developer console a lot of users lived in plenty of countries, from Russia to Spain, Iran to Middle-East, Korea to South America. But the translations I integrated were awful. Users were complaining a lot about how bad it was ; the UI was not usable at all! I should had used only languages I was able to read, write and understand. <i>DeepL</i> was not launched. However a Russian and a German users some day send to me the translations in its mother language, and an Italian user made a pull request for new translations. Motivating! It was free, efficient and clear, thanks to these guys!</p>

<p>    <img src="https://pylapersonne.info/data/cdn/blog/16/translation.png" title="Google Translate spotted 😭" alt="Very bad comment on Google Play Store about bad translations" class="centerImage toBigImage"/></p>

<h2>The interesting thing was about the use of the app, and firstly the metrics I got. 📋</h2>

<p>    I saw there was a two-sided relationship between users and the app: love and hate. Reading the store stars, I had a big split with high stars numbers with the worst mark (1 star) and… the best (5 stars). But why? Why did I received such rude and offensive comments on a side, and enjoying and motivating comment on the other side?</p>

<p>    <img src="https://pylapersonne.info/data/cdn/blog/16/stars.png" title="Love and hate." alt="App page review with 322 marks, an average rank to 3.0 and highest scores in 5 stars and 1 star." class="centerImage toBigImage"/></p>

<p>    It was because… I did not mentioned the app was for rooted device. Woops. Yes the promise was cool <em>(click on everything!)</em> but it was also fucking disappointing for users if the device was not capable. Thus I mentioned in CAPSLOCK in the title of the store page the app was for unleashed smartphones, and things were a bit better. saying in the description of the app was not enough.</p>

<p>    <img src="https://pylapersonne.info/data/cdn/blog/16/store.png" title="It was for ROOTED devices❗️" alt="Header of the app&#39;s page on Google Play Store with the icon, the name and screen shots." class="centerImage toBigImage"/></p>

<h2>Few months later, I asked search engines like Google and Duck Duck Go... 🦆</h2>

<p>    ...to check if there were some contents about the app, like reviews, counterfeiting and videos about it. I was both kindly surprised and upset about the things I</p>

<p>    In the hand I saw the app was available on third-party platforms, kinds of APK aggregators. I was upset: no consent was given to them to steal the app and provide it on foreign platforms. I checked also the content: I found some of the provided APK were compromised! <em>
Thank you guys, my project, my app, open sourced it, and you altered it to make I-don&#39;t-know-what operations. Sincerely, <em>go fuck yourself</em>. You deserve nothing, and because of you and the stupidity of some users (using blindly such tools) you give to Google too much points to say third-party stores are hazardous (even if Yalp and F-Droid are reliable!).
        </em></p>

<p>    The other things I got, a more pleasant one, was some users hacked my app so as to use it for other things: get more followers on <i>Instagram</i>! From my point of view we should have the right to hack apps and use them for use cases we want, and that was pleasant to see people talking about <i>Smooth Clicker</i> on <i>YouTube</i>! It was not expected at all but it made my smile 😊. <a href="https://youtu.be/NrsHuvliSJA?t=155" title="اوتو تاج للاندرويد و حل مشكله برنامج hiromacro">A review here</a> and <a href="https://youtu.be/-iQ23FcSq6Y?t=217">another here</a> 😄.</p>

<h2>However shit had finally come for my app: the Google head shot with a railgun. Painful and rough. 💥</h2>

<p>    Some day I received an email from <i>Google</i> whistling the end: <em> “Hey guy, we found your app was violating our terms of uses, in fact you altered the state of the device and we disliked that. So, say goodbye to your project! Best regards ❤”. </em>  Holly crap. That was unexpected. I tried to have a look and the console but… nothing! Because the app has been blocked, every fucking thing has been hidden or disabled. Comments ? Nope. App reviews? Nope? Crash reports? Ahah, nope. Metrics about the devices of users? Stop dreaming, blocked.</p>

<p>    <img src="https://pylapersonne.info/data/cdn/blog/16/suspended.png" title="Woops 😆✌️😇😭" alt="Email of Google saying the app has been ssuspended because of rules 4.8 and 4.9 violations of Play Store terms of uses" class="centerImage toBigImage"/></p>

<p>    Maybe I should have appealed. In fact my app did not changed the state of phones: it only triggered the sudo mode of rooted devices (but did not root them) and call ADB primitives to make clicks. Ok, the app had links in the settings page to help people to make their devices rooted using dedicated tools. But it&#39;s ok, be fair-play, it was a bit borderline 😛.</p>

<p>    <img src="https://pylapersonne.info/data/cdn/blog/16/tap.png" title="Ok, borderline 😛" alt="Java code which builds an ADB command and processes it in a SUDO processus" class="centerImage toBigImage"/></p>

<p>    Even if I appealed it won&#39;t be very useful for me to get access to the app to make patches: in fact like a moron I formatted my laptop. Guess what was the file I forgot to save? The keystore file with keys to sign the APK 😒. In fact I had a backup, but a too old one. A full jackass. Credentials lost. Woops.</p>

<p>    Later I saw my Git history was fucked up (in fact a certain amount of repositories I used were in a big mess). Heavy files commited (woops!), non-linear history, saved secrets, I was a newbie and also my personal email was used in commits. Bots found that and I received between 50 and 100 emails per day with scams. So, I decided to change my emails accounts and burn all my repositories. Fresh start, cleaner history, good base. Not smooth but I didn&#39;t care.</p>

<h2>And so what?</h2>

<p>    <i>Smooth Clicker</i> was my first junior side project, and it was pleasant. Doc, tests, design patterns, open source, in production and hacked by people, between 50k and 100K downloads… it was incredible. The main feature with the Shell ADB commands was cool to implement, and I learned a lot. Good skills have been got and will be used in the future. I have a lot of regrets about the Google sentence: I would have liked to have a warning instead of such one-shot. But it&#39;s the game: I tried, and it not accepted. But it was a cool journey! I would liked to go further with the app but it&#39;s a sad fact: the <i>2.1.3 version</i> (<i>code name Juicy Jellyfish</i>) will be the last.</p>

<p>    <img src="https://pylapersonne.info/data/cdn/blog/16/downloads.png" title="Between 50,000 and 100,000 downloads 🙃" alt="Extract of app page saying there was between 50,000 and 100,000 downloads" class="centerImage toBigImage"/></p>

<p>    <img src="https://pylapersonne.info/data/cdn/blog/16/terminated.png" title="Terminated. 😵" alt="Error message in Google Play saying the app is not available anymore" class="centerImage toBigImage"/></p>

<p>—
<i>Dernière mise à jour : mercredi 9 février 2022</i>
<i>Précédemment sur <a href="https://medium.com/@pylapp" title="Profile on Medium.com, deleted account">Medium</a> et <a href="https://paper.wf/pylapp" title="Profile on paper.wf instance, deleted account">paper.wf</a>
—</p>

<p>Did you enjoy reading this blog?
<a href="https://pylapersonne.info/buymeacoffee" title="Profile of pylapp in buymeacoffee.com">Give me a beer 🍺</a> or use <a href="https://pylapersonne.info/donate" title="Page for support in pylapersonne.info web site">something else</a> ❤️‍🔥
Licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC-BY-SA 4.0</a>.
Opinions are my own.
To contact me, feel free to choose <a href="https://pylapersonne.info/menu" title="Menu page of my web site with social networks and contact mediums">the most suitable medium for you</a>, or for example <a href="https://framapiaf.org/@pylapp" title="Mastodon profile">Mastodon</a>.</p>
]]></content:encoded>
      <guid>https://write.as/pylapp/a-little-story-about-an-insignificant-android-app-birth-growth-and-death</guid>
      <pubDate>Wed, 17 May 2023 09:22:14 +0000</pubDate>
    </item>
  </channel>
</rss>