|
@@ -0,0 +1,185 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="en-us">
|
|
|
+
|
|
|
+<head><script src="/livereload.js?mindelay=10&v=2&port=58776&path=livereload" data-no-instant defer></script>
|
|
|
+ <title>
|
|
|
+Building PublicPoolAndroid in One Day with Cursor | codeskraps
|
|
|
+</title>
|
|
|
+
|
|
|
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
|
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
+<meta name="description" content="Mobile development blog by Carles Sentis, sharing expertise in Android, iOS, and Kotlin Multiplatform development">
|
|
|
+
|
|
|
+<meta name="generator" content="Hugo 0.145.0">
|
|
|
+
|
|
|
+
|
|
|
+<link rel="canonical" href="http://localhost:58776/posts/2025/public_pool_android/" >
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+<link href="/css/style.min.ef8e99489b0b85e34523800e588426b1b4c05e27adcb9d7193952cef205afe6d.css" rel="stylesheet">
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+</head>
|
|
|
+
|
|
|
+<body>
|
|
|
+
|
|
|
+ <div class="flexWrapper">
|
|
|
+ <header class="headerWrapper">
|
|
|
+ <div class="header">
|
|
|
+ <div>
|
|
|
+ <a class="terminal" href="http://localhost:58776/">
|
|
|
+ <span>me@codeskraps.com ~ $</span>
|
|
|
+ </a>
|
|
|
+ </div>
|
|
|
+ <input class="side-menu" type="checkbox" id="side-menu">
|
|
|
+ <label class="hamb" for="side-menu"><span class="hamb-line"></span></label>
|
|
|
+ <nav class="headerLinks">
|
|
|
+ <ul>
|
|
|
+
|
|
|
+ <li>
|
|
|
+ <a href="http://localhost:58776/posts/" title="" >
|
|
|
+ ~/posts</a>
|
|
|
+ </li>
|
|
|
+
|
|
|
+ <li>
|
|
|
+ <a href="http://localhost:58776/projects/" title="" >
|
|
|
+ ~/projects</a>
|
|
|
+ </li>
|
|
|
+
|
|
|
+ <li>
|
|
|
+ <a href="http://localhost:58776/about/" title="" >
|
|
|
+ ~/about</a>
|
|
|
+ </li>
|
|
|
+
|
|
|
+ </ul>
|
|
|
+ </nav>
|
|
|
+ </divi>
|
|
|
+
|
|
|
+ <script async src="https://www.googletagmanager.com/gtag/js?id=G-YP8WK3KZF1"></script>
|
|
|
+ <script>
|
|
|
+ var doNotTrack = false;
|
|
|
+ if ( false ) {
|
|
|
+ var dnt = (navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack);
|
|
|
+ var doNotTrack = (dnt == "1" || dnt == "yes");
|
|
|
+ }
|
|
|
+ if (!doNotTrack) {
|
|
|
+ window.dataLayer = window.dataLayer || [];
|
|
|
+ function gtag(){dataLayer.push(arguments);}
|
|
|
+ gtag('js', new Date());
|
|
|
+ gtag('config', 'G-YP8WK3KZF1');
|
|
|
+ }
|
|
|
+ </script>
|
|
|
+</header>
|
|
|
+
|
|
|
+
|
|
|
+ <div class="content">
|
|
|
+ <main class="main">
|
|
|
+
|
|
|
+<div class="postWrapper">
|
|
|
+ <h1>Building PublicPoolAndroid in One Day with Cursor</h1>
|
|
|
+
|
|
|
+
|
|
|
+ <section class="postMetadata">
|
|
|
+ <dl>
|
|
|
+
|
|
|
+
|
|
|
+<dt>tags</dt>
|
|
|
+<dd><span></span>
|
|
|
+ <a href="/tags/android/">#Android</a><span></span>
|
|
|
+ <a href="/tags/cryptocurrency/">#Cryptocurrency</a><span></span>
|
|
|
+ <a href="/tags/mining/">#Mining</a><span></span>
|
|
|
+ <a href="/tags/cursor/">#Cursor</a><span></span>
|
|
|
+ <a href="/tags/development/">#Development</a></dd>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <dt>published</dt>
|
|
|
+
|
|
|
+ <dd><time datetime="2025-04-04">April 4, 2025</time></dd>
|
|
|
+
|
|
|
+
|
|
|
+ <dt>reading time</dt>
|
|
|
+ <dd>2 minutes</dd>
|
|
|
+
|
|
|
+ </dl>
|
|
|
+ </section>
|
|
|
+
|
|
|
+ <div>
|
|
|
+ <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>
|
|
|
+<figure class="responsive-image"><img src="/posts/2025/public_pool_android/feature_graphic.png"
|
|
|
+ alt="Public Pool Android App" width="800" height="400">
|
|
|
+</figure>
|
|
|
+
|
|
|
+<style>
|
|
|
+.responsive-image {
|
|
|
+ max-width: 800px;
|
|
|
+ width: 100%;
|
|
|
+ height: auto;
|
|
|
+ display: block;
|
|
|
+ margin: 0 auto;
|
|
|
+}
|
|
|
+</style>
|
|
|
+<h2 id="the-app-public-pool-android">The App: Public Pool Android</h2>
|
|
|
+<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>
|
|
|
+<h2 id="key-features">Key Features</h2>
|
|
|
+<ul>
|
|
|
+<li><strong>Dashboard:</strong> View comprehensive mining statistics including best difficulty, network difficulty, network hash rate, and block height</li>
|
|
|
+<li><strong>Workers Monitoring:</strong> Keep track of individual mining workers with details on hash rate, difficulty, and last seen time</li>
|
|
|
+<li><strong>Wallet Management:</strong> Access wallet balance and transaction history with current price information</li>
|
|
|
+<li><strong>Real-time Updates:</strong> Receive timely notifications about your mining operations</li>
|
|
|
+</ul>
|
|
|
+<h2 id="from-concept-to-store-in-one-day">From Concept to Store in One Day</h2>
|
|
|
+<p>The entire development process took just one workday (9 AM to 6 PM), during which I:</p>
|
|
|
+<ul>
|
|
|
+<li>Created the initial project structure and repository</li>
|
|
|
+<li>Built the network communication layer</li>
|
|
|
+<li>Implemented data models, repositories, and use cases</li>
|
|
|
+<li>Developed the UI components including dashboard, workers, and wallet screens</li>
|
|
|
+<li>Added theming, localization support, and settings</li>
|
|
|
+<li>Performed testing and submitted to Google Play Store for review</li>
|
|
|
+</ul>
|
|
|
+<h2 id="bitaxe-and-lottomining">Bitaxe and LottoMining</h2>
|
|
|
+<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>
|
|
|
+<ul>
|
|
|
+<li>Miners work independently to find blocks rather than contributing to a pool</li>
|
|
|
+<li>Each miner receives the full block reward when they successfully mine a block</li>
|
|
|
+<li>The reward frequency is less consistent but potentially more profitable</li>
|
|
|
+<li>Perfect for Bitaxe devices which are optimized for efficient solo mining</li>
|
|
|
+</ul>
|
|
|
+<p>The app provides specialized monitoring for Bitaxe solo miners, displaying:</p>
|
|
|
+<ul>
|
|
|
+<li>Current network difficulty and your hashrate</li>
|
|
|
+<li>Estimated time to find a block</li>
|
|
|
+<li>Block discovery notifications</li>
|
|
|
+<li>Complete mining statistics to optimize your setup</li>
|
|
|
+</ul>
|
|
|
+<h2 id="the-power-of-cursor">The Power of Cursor</h2>
|
|
|
+<p>I couldn’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>
|
|
|
+<ul>
|
|
|
+<li>AI-assisted code generation saved hours of boilerplate writing</li>
|
|
|
+<li>Intelligent refactoring suggestions helped maintain clean architecture</li>
|
|
|
+<li>Context-aware completion significantly reduced development time</li>
|
|
|
+<li>Built-in code review capabilities caught potential issues early</li>
|
|
|
+</ul>
|
|
|
+ </div>
|
|
|
+</div>
|
|
|
+
|
|
|
+ </main>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ <footer class="footer">
|
|
|
+
|
|
|
+ <span>CC 2025, Built with <a href="https://gohugo.io" class="footerLink">Hugo</a></span>
|
|
|
+
|
|
|
+</footer>
|
|
|
+ </div>
|
|
|
+
|
|
|
+</body>
|
|
|
+
|
|
|
+</html>
|