index.html 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <!DOCTYPE html>
  2. <html lang="en-us">
  3. <head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=58679&amp;path=livereload" data-no-instant defer></script>
  4. <title>
  5. Building PublicPoolAndroid in One Day with Cursor | codeskraps
  6. </title>
  7. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  9. <meta name="description" content="Mobile development blog by Carles Sentis, sharing expertise in Android, iOS, and Kotlin Multiplatform development">
  10. <meta name="generator" content="Hugo 0.145.0">
  11. <link rel="canonical" href="http://localhost:58679/posts/2025/public_pool_android/" >
  12. <link href="/css/style.min.ef8e99489b0b85e34523800e588426b1b4c05e27adcb9d7193952cef205afe6d.css" rel="stylesheet">
  13. </head>
  14. <body>
  15. <div class="flexWrapper">
  16. <header class="headerWrapper">
  17. <div class="header">
  18. <div>
  19. <a class="terminal" href="http://localhost:58679/">
  20. <span>me@codeskraps.com ~ $</span>
  21. </a>
  22. </div>
  23. <input class="side-menu" type="checkbox" id="side-menu">
  24. <label class="hamb" for="side-menu"><span class="hamb-line"></span></label>
  25. <nav class="headerLinks">
  26. <ul>
  27. <li>
  28. <a href="http://localhost:58679/posts/" title="" >
  29. ~/posts</a>
  30. </li>
  31. <li>
  32. <a href="http://localhost:58679/projects/" title="" >
  33. ~/projects</a>
  34. </li>
  35. <li>
  36. <a href="http://localhost:58679/about/" title="" >
  37. ~/about</a>
  38. </li>
  39. </ul>
  40. </nav>
  41. </divi>
  42. <script async src="https://www.googletagmanager.com/gtag/js?id=G-YP8WK3KZF1"></script>
  43. <script>
  44. var doNotTrack = false;
  45. if ( false ) {
  46. var dnt = (navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack);
  47. var doNotTrack = (dnt == "1" || dnt == "yes");
  48. }
  49. if (!doNotTrack) {
  50. window.dataLayer = window.dataLayer || [];
  51. function gtag(){dataLayer.push(arguments);}
  52. gtag('js', new Date());
  53. gtag('config', 'G-YP8WK3KZF1');
  54. }
  55. </script>
  56. </header>
  57. <div class="content">
  58. <main class="main">
  59. <div class="postWrapper">
  60. <h1>Building PublicPoolAndroid in One Day with Cursor</h1>
  61. <section class="postMetadata">
  62. <dl>
  63. <dt>tags</dt>
  64. <dd><span></span>
  65. <a href="/tags/android/">#Android</a><span></span>
  66. <a href="/tags/cryptocurrency/">#Cryptocurrency</a><span></span>
  67. <a href="/tags/mining/">#Mining</a><span></span>
  68. <a href="/tags/cursor/">#Cursor</a><span></span>
  69. <a href="/tags/development/">#Development</a></dd>
  70. <dt>published</dt>
  71. <dd><time datetime="2025-04-04">April 4, 2025</time></dd>
  72. <dt>reading time</dt>
  73. <dd>2 minutes</dd>
  74. </dl>
  75. </section>
  76. <div>
  77. <p>Today I want to share how I built a complete cryptocurrency mining monitoring app in just one day, from initial concept to Google Play Store submission, using Cursor as my IDE.</p>
  78. <figure class="responsive-image"><img src="/posts/2025/public_pool_android/feature_graphic.png"
  79. alt="Public Pool Android App" width="800" height="400">
  80. </figure>
  81. <style>
  82. .responsive-image {
  83. max-width: 800px;
  84. width: 100%;
  85. height: auto;
  86. display: block;
  87. margin: 0 auto;
  88. }
  89. </style>
  90. <h2 id="the-app-public-pool-android">The App: Public Pool Android</h2>
  91. <p><a href="https://repo.codeskraps.com/codeskraps/PublicPoolAndroid">Public Pool Android</a> is a mobile application that lets cryptocurrency miners monitor their mining activities directly from their Android devices. The app provides real-time tracking of hash rates, worker status, and wallet details while on the go.</p>
  92. <h2 id="key-features">Key Features</h2>
  93. <ul>
  94. <li><strong>Dashboard:</strong> View comprehensive mining statistics including best difficulty, network difficulty, network hash rate, and block height</li>
  95. <li><strong>Workers Monitoring:</strong> Keep track of individual mining workers with details on hash rate, difficulty, and last seen time</li>
  96. <li><strong>Wallet Management:</strong> Access wallet balance and transaction history with current price information</li>
  97. <li><strong>Real-time Updates:</strong> Receive timely notifications about your mining operations</li>
  98. </ul>
  99. <h2 id="from-concept-to-store-in-one-day">From Concept to Store in One Day</h2>
  100. <p>The entire development process took just one workday (9 AM to 6 PM), during which I:</p>
  101. <ul>
  102. <li>Created the initial project structure and repository</li>
  103. <li>Built the network communication layer</li>
  104. <li>Implemented data models, repositories, and use cases</li>
  105. <li>Developed the UI components including dashboard, workers, and wallet screens</li>
  106. <li>Added theming, localization support, and settings</li>
  107. <li>Performed testing and submitted to Google Play Store for review</li>
  108. </ul>
  109. <h2 id="bitaxe-and-lottomining">Bitaxe and LottoMining</h2>
  110. <p>One of the most interesting features of the app is its support for Bitaxe miners using the LottoMining approach. LottoMining is essentially a solo mining strategy where:</p>
  111. <ul>
  112. <li>Miners work independently to find blocks rather than contributing to a pool</li>
  113. <li>Each miner receives the full block reward when they successfully mine a block</li>
  114. <li>The reward frequency is less consistent but potentially more profitable</li>
  115. <li>Perfect for Bitaxe devices which are optimized for efficient solo mining</li>
  116. </ul>
  117. <p>The app provides specialized monitoring for Bitaxe solo miners, displaying:</p>
  118. <ul>
  119. <li>Current network difficulty and your hashrate</li>
  120. <li>Estimated time to find a block</li>
  121. <li>Block discovery notifications</li>
  122. <li>Complete mining statistics to optimize your setup</li>
  123. </ul>
  124. <h2 id="the-power-of-cursor">The Power of Cursor</h2>
  125. <p>I couldn&rsquo;t have completed this project so quickly without <a href="https://cursor.sh/">Cursor</a>, an AI-powered IDE that supercharged my development workflow:</p>
  126. <ul>
  127. <li>AI-assisted code generation saved hours of boilerplate writing</li>
  128. <li>Intelligent refactoring suggestions helped maintain clean architecture</li>
  129. <li>Context-aware completion significantly reduced development time</li>
  130. <li>Built-in code review capabilities caught potential issues early</li>
  131. </ul>
  132. </div>
  133. </div>
  134. </main>
  135. </div>
  136. <footer class="footer">
  137. <span>CC 2025, Built with <a href="https://gohugo.io" class="footerLink">Hugo</a></span>
  138. </footer>
  139. </div>
  140. </body>
  141. </html>