<!DOCTYPE html> <html lang="en-us"> <head> <title> Projects | 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="https://codeskraps.com/projects/" > <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="https://codeskraps.com/"> <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="https://codeskraps.com/posts/" title="" > ~/posts</a> </li> <li> <a href="https://codeskraps.com/projects/" title="" > ~/projects</a> </li> <li> <a href="https://codeskraps.com/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"> <article class="content-padding"> <div class="project-container"> <div class="project-layout"> <div class="project-image"> <img src="/images/weekly_weather_logo.webp" alt="Weekly Weather logo"> </div> <div class="project-content"> <h1><a href="https://repo.codeskraps.com/codeskraps/Weekly-Weather">Weekly Weather</a></h1> <p>A clean, intuitive interface for viewing weather forecasts. Weekly Weather provides detailed weekly forecasts for your current location or saved favorite places.</p> <h3 id="features">Features</h3> <ul> <li>View detailed weekly weather forecasts</li> <li>Automatically detect current location</li> <li>Search and save favorite locations for quick access</li> <li>Custom naming for GPS locations</li> <li>Available in 37 languages</li> <li>Lightweight and battery-efficient</li> </ul> <div style="display: flex !important; flex-wrap: wrap !important; gap: 1rem !important; justify-content: center !important; margin: 2rem 0 !important;"> <div style="flex: 1 !important; max-width: 180px !important; min-width: 120px !important;"> <img src="/images/weekly_weather/screenshot1.png" alt="Weather forecast screen" style="display: block !important; width: 100% !important; height: auto !important; border-radius: 8px !important; border: 1px solid #ddd !important; box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;"> </div> <div style="flex: 1 !important; max-width: 180px !important; min-width: 120px !important;"> <img src="/images/weekly_weather/screenshot2.png" alt="Location selection screen" style="display: block !important; width: 100% !important; height: auto !important; border-radius: 8px !important; border: 1px solid #ddd !important; box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;"> </div> <div style="flex: 1 !important; max-width: 180px !important; min-width: 120px !important;"> <img src="/images/weekly_weather/screenshot3.png" alt="Weather details screen" style="display: block !important; width: 100% !important; height: auto !important; border-radius: 8px !important; border: 1px solid #ddd !important; box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;"> </div> </div> <p>Weather data provided by <a href="https://open-meteo.com/">Open-Meteo</a> with weather icons from <a href="https://github.com/Makin-Things/weather-icons">Makin-Things/weather-icons</a>.</p> </div> </div> </div> <div class="project-container"> <div class="project-layout"> <div class="project-image"> <img src="/images/sbrowser_logo.webp" alt="sBrowser logo"> </div> <div class="project-content"> <h1><a href="https://repo.codeskraps.com/codeskraps/sBrowser">sBrowser</a></h1> <p>A simple yet powerful Internet browser for Android devices. Originally developed for teaching purposes in a workshop at 091 Labs, it has evolved into a feature-rich yet lightweight browsing solution.</p> <h3 id="features">Features</h3> <ul> <li>Ad-blocking functionality</li> <li>Bookmark management with thumbnails</li> <li>HTML5 video support</li> <li>Customizable user agent</li> <li>Privacy-focused with encrypted search options</li> <li>Material Design user interface</li> <li>Support for HTTPS</li> </ul> <p>Latest version: 3.4 (2024) - Updated with modern Android architecture, Material 3 design, and improved performance and stability.</p> </div> </div> </div> </article> <style> .content-padding { padding-top: 2rem; } .project-container { margin-bottom: 4rem; } .project-layout { display: flex; gap: 2rem; align-items: flex-start; } .project-image { flex: 0 0 150px; } .project-image img { width: 100%; height: auto; } .project-content { flex: 1; text-align: left; } .project-content h1, .project-content h2, .project-content h3 { margin-top: 0; } @media (max-width: 768px) { .project-layout { flex-direction: column; } .project-content { width: 100%; } } </style> </main> </div> <footer class="footer"> <span>CC 2025, Built with <a href="https://gohugo.io" class="footerLink">Hugo</a></span> </footer> </div> </body> </html>