<?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: Kernolix Group</title>
    <description>The latest articles on DEV Community by Kernolix Group (@enes_f0d0cebca3dfc4980550).</description>
    <link>https://dev.to/enes_f0d0cebca3dfc4980550</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4160635%2Faa4d458a-8887-4bc5-844e-a155ac350f78.png</url>
      <title>DEV Community: Kernolix Group</title>
      <link>https://dev.to/enes_f0d0cebca3dfc4980550</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/enes_f0d0cebca3dfc4980550"/>
    <language>en</language>
    <item>
      <title>How I Built 20 Privacy-First Manifest V3 Chrome Extensions (With Zero Remote Telemetry)</title>
      <dc:creator>Kernolix Group</dc:creator>
      <pubDate>Wed, 21 Oct 2026 12:23:52 +0000</pubDate>
      <link>https://dev.to/enes_f0d0cebca3dfc4980550/how-i-built-20-privacy-first-manifest-v3-chrome-extensions-with-zero-remote-telemetry-84i</link>
      <guid>https://dev.to/enes_f0d0cebca3dfc4980550/how-i-built-20-privacy-first-manifest-v3-chrome-extensions-with-zero-remote-telemetry-84i</guid>
      <description>&lt;p&gt;Building Chrome extensions in 2026 comes with a completely new set of architectural challenges and opportunities. With Google's complete transition to &lt;strong&gt;Manifest V3&lt;/strong&gt;, developers can no longer rely on background persistence or arbitrary remote code execution.&lt;/p&gt;

&lt;p&gt;Rather than seeing this as a limitation, I used Manifest V3 constraints as an opportunity: &lt;strong&gt;What if we built an entire suite of 20 production-grade extensions where 100% of the scraping, tracking, and storage happens entirely on the user's machine, with zero external tracking servers?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here is what I learned building the &lt;strong&gt;Plato Chrome Extensions Suite&lt;/strong&gt;, along with the key engineering decisions behind our flagship tools.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ The Core Architectural Philosophy
&lt;/h2&gt;

&lt;p&gt;Most browser tools on the market today follow a telemetry-heavy architecture:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The extension injects a content script.&lt;/li&gt;
&lt;li&gt;User activity or page contents are shipped to an external backend API.&lt;/li&gt;
&lt;li&gt;The server runs heavy parsing and returns results.&lt;/li&gt;
&lt;li&gt;Users are charged $30 to $50 per month just to access their own data.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Our philosophy was the exact opposite:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero Remote Telemetry:&lt;/strong&gt; All DOM parsing, price detection, and contact scraping operate inside the tab's sandbox.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Persistence:&lt;/strong&gt; Data is stored locally via &lt;code&gt;chrome.storage.local&lt;/code&gt; and exported directly into client-side CSV, JSON, or Markdown.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Service Worker Lifecycle:&lt;/strong&gt; Managing transient background tasks without memory leaks or dropped event listeners.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔍 Flagship Implementations &amp;amp; Real-World Code
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. E-Commerce Competitor Price Tracker &amp;amp; Stock Spy
&lt;/h3&gt;

&lt;p&gt;Many price tracking extensions rely on server-side web scraping that frequently breaks due to IP blocking. By running client-side on active product pages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dynamic price selector matching for Amazon and marketplace layouts.&lt;/li&gt;
&lt;li&gt;Historical price snapshot logging to local indexed records.&lt;/li&gt;
&lt;li&gt;Instant alert computation when a genuine price drop or artificial markup is detected.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mağazadaki versiyon: &lt;a href="https://chromewebstore.google.com/detail/iogainbpficlcgokephgichmhbkfdcdl" rel="noopener noreferrer"&gt;Amazon &amp;amp; Trendyol Price Tracker on Chrome Web Store&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. LinkedIn B2B Lead Extractor &amp;amp; Profile Scraper
&lt;/h3&gt;

&lt;p&gt;Scraping search results from social networks often risks rate limits or profile warnings. To solve this, we implemented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Human-Delay Emulation:&lt;/strong&gt; Exponentially weighted random delays (1200ms - 2800ms) between page navigations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Client-Side CSV Formatter:&lt;/strong&gt; Compiles names, titles, and company attributes into CRM-ready CSVs in browser memory using &lt;code&gt;Blob&lt;/code&gt; and &lt;code&gt;URL.createObjectURL&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Canlı versiyon: &lt;a href="https://chromewebstore.google.com/detail/bkccpmfpclbajoehcecfobkgggkelbja" rel="noopener noreferrer"&gt;LinkedIn Lead Extractor on Chrome Web Store&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. AliExpress to Shopify One-Click Product Importer
&lt;/h3&gt;

&lt;p&gt;Dropshippers often struggle with manual product data copying:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Traverses image galleries and high-resolution thumbnail URLs.&lt;/li&gt;
&lt;li&gt;Normalizes variant pricing tables, color options, and inventory counts.&lt;/li&gt;
&lt;li&gt;Exports formatted Shopify-compatible CSVs for immediate catalog import.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Canlı versiyon: &lt;a href="https://chromewebstore.google.com/detail/lpacamplmkeneionekkaofihagegfmim" rel="noopener noreferrer"&gt;AliExpress Importer on Chrome Web Store&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. YouTube Transcript Summarizer &amp;amp; Smart Notes
&lt;/h3&gt;

&lt;p&gt;Extracts closed caption text tracks directly from the YouTube player API client-side, structuring timestamps and key takeaways without needing high-latency server proxies.&lt;/p&gt;

&lt;p&gt;Canlı versiyon: &lt;a href="https://chromewebstore.google.com/detail/noihmbblabpgipcdmhojamfdemglejgn" rel="noopener noreferrer"&gt;YouTube Summarizer on Chrome Web Store&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Key Lessons for Extension Developers in 2026
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Embrace &lt;code&gt;chrome.storage.local&lt;/code&gt; Over Cloud DBs:&lt;/strong&gt; For privacy-sensitive utilities, users strongly prefer knowing their data never leaves their device.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Handle Service Worker Idle Time:&lt;/strong&gt; In Manifest V3, background workers can terminate after 30 seconds of inactivity. Always design background message passing with state rehydration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep Dependencies Lean:&lt;/strong&gt; Avoid heavy frontend frameworks for lightweight extension popups. Vanilla JS and modern CSS deliver instant sub-50ms render times.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All 20 extensions are now live on the Chrome Web Store and listed on &lt;a href="https://platobilisim.com" rel="noopener noreferrer"&gt;Plato Bilişim&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What architectural patterns or Manifest V3 challenges have you faced in your browser projects? Let's discuss in the comments below!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>chrome</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to Reclaim 100GB of macOS Sequoia Ghost Storage (Without Heavy Cleaners)</title>
      <dc:creator>Kernolix Group</dc:creator>
      <pubDate>Sat, 17 Oct 2026 13:14:25 +0000</pubDate>
      <link>https://dev.to/enes_f0d0cebca3dfc4980550/how-to-reclaim-100gb-of-macos-sequoia-ghost-storage-without-heavy-cleaners-5egd</link>
      <guid>https://dev.to/enes_f0d0cebca3dfc4980550/how-to-reclaim-100gb-of-macos-sequoia-ghost-storage-without-heavy-cleaners-5egd</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg2t9s5ggg1lrhfzm5mcu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg2t9s5ggg1lrhfzm5mcu.jpg" alt="Mac Cleaner Banner" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  🧹 Reclaiming 100GB of Ghost Storage on macOS Sequoia: Why We Built Mac Cleaner
&lt;/h1&gt;

&lt;p&gt;Every Mac user and developer running macOS Sequoia on Apple Silicon (M1/M2/M3/M4) eventually encounters the dreaded alert:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;"Your startup disk is almost full (99%)."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When you open System Settings → General → Storage, you are greeted by a massive grey block labeled &lt;strong&gt;"System Data"&lt;/strong&gt; or &lt;strong&gt;"Developer"&lt;/strong&gt; taking up 120GB+ of space with zero explanation.&lt;/p&gt;

&lt;p&gt;Most users turn to legacy cleaners. But as software engineers, we noticed a critical problem: &lt;strong&gt;traditional cleaning apps install dozens of permanent background daemons, consume 1.2GB of RAM just idling in the menu bar, run telemetry, and demand aggressive subscription renewals.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We wanted a native, zero-bloat solution built specifically for the Apple Silicon era. Here is why we built &lt;strong&gt;Mac Cleaner: Disk &amp;amp; Storage (v2.0.0)&lt;/strong&gt; and how you can reclaim tens of gigabytes safely.&lt;/p&gt;




&lt;h3&gt;
  
  
  🎬 Watch the 4K Architecture Showcase &amp;amp; Live Scan
&lt;/h3&gt;

&lt;p&gt;Here is a complete walkthrough of the liquid-glass interface and sub-second disk traversal in action:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/W_KcE8BHsI8" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Prefer a quick 10-second breakdown? Watch our viral demo: &lt;a href="https://youtube.com/shorts/L0A0JDFXk9s" rel="noopener noreferrer"&gt;YouTube Shorts Walkthrough&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🔍 Where Does the "Ghost Storage" Actually Go?
&lt;/h3&gt;

&lt;p&gt;If you inspect your Mac's APFS container via terminal (&lt;code&gt;du -sh *&lt;/code&gt;), you will find the biggest offenders:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Xcode DerivedData &amp;amp; Simulator Caches (20GB - 80GB)
&lt;/h4&gt;

&lt;p&gt;Every build in Xcode dumps intermediate objects into:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;~/Library/Developer/Xcode/DerivedData
~/Library/Developer/CoreSimulator/Caches
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you work on multiple projects or update macOS, orphaned simulator runtimes linger forever.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Hidden Package Manager &amp;amp; NPM/SPM Caches (15GB - 40GB)
&lt;/h4&gt;

&lt;p&gt;CocoaPods, Swift Package Manager, Homebrew, and Docker build layers leave gigabytes of unreferenced blobs inside &lt;code&gt;~/Library/Caches&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Duplicate Media &amp;amp; Video Clones (10GB - 50GB)
&lt;/h4&gt;

&lt;p&gt;High-resolution 4K ProRes videos, duplicate screenshots, and multiple AirDrop downloads silently consume flash storage.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚡️ What Makes Mac Cleaner: Disk &amp;amp; Storage Different?
&lt;/h3&gt;

&lt;p&gt;Unlike bloated legacy utilities, Mac Cleaner was engineered around four core tenets:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;100% On-Device &amp;amp; Private:&lt;/strong&gt; Zero network telemetry. Every file index, SHA-256 hash calculation, and purge operation runs strictly locally within Apple's App Sandbox.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apple Silicon &amp;amp; Swift 6 Native:&lt;/strong&gt; Leverages POSIX kernel APIs and Grand Central Dispatch to traverse 500,000+ files in under 6 seconds without triggering fans or high CPU spikes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2027 Liquid Glass Interface:&lt;/strong&gt; Designed to feel like a first-party Apple utility with pearl-white Light Mode and deep space-blue Dark Mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Actionable Apple Intelligence:&lt;/strong&gt; Live memory gauges, RAM pressure monitoring, and 1-click diagnostic shortcuts.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  📊 Storage Reclaim Benchmark
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Legacy Cleaners&lt;/th&gt;
&lt;th&gt;Mac Cleaner: Disk &amp;amp; Storage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Idle Memory (RAM)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;~850 MB – 1.4 GB&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0 MB (No Daemons)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Background Processes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3 – 5 Root Daemons&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0 (Sandboxed)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DerivedData &amp;amp; SPM Purge&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Paid Add-on&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Included&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Privacy / Telemetry&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Third-party analytics&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;100% Local / Zero Tracking&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SHA-256 Duplicate Scan&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Clunky / Slow&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Sub-second Multithreaded&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  📲 Download on the Mac App Store
&lt;/h3&gt;

&lt;p&gt;Mac Cleaner: Disk &amp;amp; Storage is officially available worldwide on the Mac App Store:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://apps.apple.com/app/id6784749062" rel="noopener noreferrer"&gt;Download Mac Cleaner: Disk &amp;amp; Storage on the Mac App Store&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
🌐 &lt;strong&gt;Official Product Portal:&lt;/strong&gt; &lt;a href="https://macsweep.app" rel="noopener noreferrer"&gt;https://macsweep.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try it on your Mac and share your benchmark results below! What is the largest phantom folder you've cleared from your Mac?&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building VoiceJot: Low-Latency On-Device Speech Transcription and AI Meeting Minutes in Swift</title>
      <dc:creator>Kernolix Group</dc:creator>
      <pubDate>Tue, 06 Oct 2026 07:19:00 +0000</pubDate>
      <link>https://dev.to/enes_f0d0cebca3dfc4980550/building-voicejot-low-latency-on-device-speech-transcription-and-ai-meeting-minutes-in-swift-2bl1</link>
      <guid>https://dev.to/enes_f0d0cebca3dfc4980550/building-voicejot-low-latency-on-device-speech-transcription-and-ai-meeting-minutes-in-swift-2bl1</guid>
      <description>&lt;h2&gt;
  
  
  The Bottleneck: Managing Voice Memos
&lt;/h2&gt;

&lt;p&gt;Voice memos are the most natural way to capture ideas during client meetings, team standups, and college lectures. However, finding actionable information inside raw 30-minute audio recordings is a huge productivity drain.&lt;/p&gt;

&lt;p&gt;To solve this, we engineered &lt;a href="https://apps.apple.com/app/id6799866105" rel="noopener noreferrer"&gt;VoiceJot: Voice to Text&lt;/a&gt;, a privacy-first iOS application that combines Apple's native speech recognition with real-time neural formatting and structured AI summaries.&lt;/p&gt;




&lt;h2&gt;
  
  
  Architectural Highlights
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. AVAudioEngine &amp;amp; SFSpeechRecognizer Pipeline
&lt;/h3&gt;

&lt;p&gt;VoiceJot taps raw PCM audio buffers at 44.1 kHz using an &lt;code&gt;AVAudioNodeTap&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Partial results are streamed in real time to give users an instant visual typewriter animation.&lt;/li&gt;
&lt;li&gt;Works across 50+ languages with automatic punctuation and capitalization restoration.&lt;/li&gt;
&lt;li&gt;Supports direct audio demuxing from WhatsApp voice messages and video clips via &lt;code&gt;AVAssetReader&lt;/code&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;recognitionRequest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;SFSpeechAudioBufferRecognitionRequest&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;recognitionRequest&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shouldReportPartialResults&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="n"&gt;recognitionRequest&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;addsPunctuation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="n"&gt;inputNode&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;installTap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;onBus&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;bufferSize&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;format&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;recordingFormat&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt;
    &lt;span class="n"&gt;recognitionRequest&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Structured Executive Summaries
&lt;/h3&gt;

&lt;p&gt;Instead of dumping raw unformatted text walls, VoiceJot parses transcripts into:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Executive Overview:&lt;/strong&gt; 2-3 sentence core meeting synthesis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Key Discussion Points:&lt;/strong&gt; Bulleted major arguments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Action Items (To-Do):&lt;/strong&gt; Direct delegated tasks with deadlines.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Availability &amp;amp; Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;App Store Link:&lt;/strong&gt; &lt;a href="https://apps.apple.com/app/id6799866105" rel="noopener noreferrer"&gt;https://apps.apple.com/app/id6799866105&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target OS:&lt;/strong&gt; iOS 16.0+ Universal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How are you integrating on-device speech transcription in your mobile apps? Let's discuss in the comments below!&lt;/p&gt;

</description>
      <category>ios</category>
      <category>swift</category>
      <category>speech</category>
      <category>ai</category>
    </item>
    <item>
      <title>Building Shrink Video: Hardware-Accelerated 4K Video Compression on iOS with VideoToolbox</title>
      <dc:creator>Kernolix Group</dc:creator>
      <pubDate>Tue, 06 Oct 2026 07:18:18 +0000</pubDate>
      <link>https://dev.to/enes_f0d0cebca3dfc4980550/building-shrink-video-hardware-accelerated-4k-video-compression-on-ios-with-videotoolbox-36lh</link>
      <guid>https://dev.to/enes_f0d0cebca3dfc4980550/building-shrink-video-hardware-accelerated-4k-video-compression-on-ios-with-videotoolbox-36lh</guid>
      <description>&lt;h2&gt;
  
  
  The Challenge: Mobile 4K Video Bloat
&lt;/h2&gt;

&lt;p&gt;Modern iPhones shoot stunning 4K 60fps video, but sending clips via messaging apps is a constant headache:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WhatsApp:&lt;/strong&gt; 16MB file limit (expanded to 64MB under specific document attachments).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Discord:&lt;/strong&gt; 25MB standard upload limit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email:&lt;/strong&gt; 20MB-25MB hard attachment ceilings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most third-party video compressor apps on iOS suffer from two critical architectural flaws:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;They upload user videos to remote cloud servers (severe privacy invasion and slow upload latency).&lt;/li&gt;
&lt;li&gt;They use crude "Low / Medium / High" presets that crush bitrate and render pixelated artifacts.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To solve this, we engineered &lt;a href="https://apps.apple.com/app/id6799865864" rel="noopener noreferrer"&gt;Shrink Video: Compressor&lt;/a&gt; entirely on-device using Apple's low-level &lt;code&gt;VideoToolbox&lt;/code&gt; framework and &lt;code&gt;AVFoundation&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technical Architecture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Zero-Cloud Hardware Re-Encoding
&lt;/h3&gt;

&lt;p&gt;By leveraging Apple Silicon's dedicated media engine via &lt;code&gt;VTCompressionSession&lt;/code&gt; and &lt;code&gt;AVAssetWriter&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Videos never leave the iPhone RAM.&lt;/li&gt;
&lt;li&gt;Compression runs 100% offline in Airplane Mode.&lt;/li&gt;
&lt;li&gt;Native hardware HEVC (H.265) achieves up to &lt;strong&gt;80% file size reduction&lt;/strong&gt; while retaining crisp edge detail.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Deterministic Bitrate Target Slider
&lt;/h3&gt;

&lt;p&gt;Instead of guessing quality presets, users drag a target size slider (e.g., exactly 15.5 MB for WhatsApp). The app calculates the exact video bitrate target:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;audioBitrate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Double&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;128_000&lt;/span&gt; &lt;span class="c1"&gt;// 128 kbps AAC&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;targetSizeBytes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Double&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;targetMB&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1024&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1024&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;totalSeconds&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;CMTimeGetSeconds&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;asset&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;availableVideoBytes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;targetSizeBytes&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;audioBitrate&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;totalSeconds&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;targetVideoBitrate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;500_000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;availableVideoBytes&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;totalSeconds&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Smart Downscaling Pipeline
&lt;/h3&gt;

&lt;p&gt;Downscaling from 4K (3840x2160) to 1080p or 720p runs through Metal-accelerated bilinear filtering to preserve high-frequency texture information.&lt;/p&gt;




&lt;h2&gt;
  
  
  Results &amp;amp; App Store Availability
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Processing Speed:&lt;/strong&gt; 60-second 4K clip compressed to 18MB in under 6 seconds on iPhone 15 Pro.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;App Store Link:&lt;/strong&gt; &lt;a href="https://apps.apple.com/app/id6799865864" rel="noopener noreferrer"&gt;https://apps.apple.com/app/id6799865864&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target OS:&lt;/strong&gt; iOS 16.0+&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Have you implemented custom VideoToolbox pipelines in Swift? Let's discuss transcoding trade-offs in the comments!&lt;/p&gt;

</description>
      <category>ios</category>
      <category>swift</category>
      <category>mobile</category>
      <category>performance</category>
    </item>
    <item>
      <title>Building a High-Performance Safari Content Blocker on iOS with Declarative WebKit Rules</title>
      <dc:creator>Kernolix Group</dc:creator>
      <pubDate>Tue, 06 Oct 2026 02:30:19 +0000</pubDate>
      <link>https://dev.to/enes_f0d0cebca3dfc4980550/building-a-high-performance-safari-content-blocker-on-ios-with-declarative-webkit-rules-3m8j</link>
      <guid>https://dev.to/enes_f0d0cebca3dfc4980550/building-a-high-performance-safari-content-blocker-on-ios-with-declarative-webkit-rules-3m8j</guid>
      <description>&lt;h2&gt;
  
  
  Introduction: The State of Ad Blocking on iOS
&lt;/h2&gt;

&lt;p&gt;When developing ad-blocking solutions on iOS, developers face a major architectural choice between:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Declarative WebKit Content Blockers (&lt;code&gt;SFContentBlockerManager&lt;/code&gt;)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Local VPN Packet Tunnels (&lt;code&gt;NEPacketTunnelProvider&lt;/code&gt;)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While local VPN proxies can inspect all device traffic, they introduce severe downsides: significant battery consumption, latency spikes, and severe privacy concerns because user network packets pass through an active background tunnel.&lt;/p&gt;

&lt;p&gt;To provide a private, seamless experience, we engineered &lt;a href="https://apps.apple.com/app/id6760575398" rel="noopener noreferrer"&gt;AdBlocker Pro: Block Ads&lt;/a&gt; using Apple's declarative WebKit Content Blocker API.&lt;/p&gt;




&lt;h2&gt;
  
  
  Declarative Architecture vs VPN Tunnels
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Zero-Knowledge On-Device Execution
&lt;/h3&gt;

&lt;p&gt;With &lt;code&gt;SFContentBlockerManager&lt;/code&gt;, the iOS host application compiles a declarative JSON ruleset and hands it off directly to the WebKit subsystem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The app never sees URLs, tabs, or DNS queries.&lt;/li&gt;
&lt;li&gt;Rule matching runs directly inside Apple's native C++ WebKit pipeline.&lt;/li&gt;
&lt;li&gt;If the host app crashes or is terminated, blocking remains 100% active.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Overcoming Rule Limits with Modular Content Extensions
&lt;/h3&gt;

&lt;p&gt;WebKit enforces strict limits per content blocker extension. AdBlocker Pro solves this through modular classification:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Advertising Trackers:&lt;/strong&gt; Google DoubleClick, Criteo, Taboola, Outbrain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy Telemetry:&lt;/strong&gt; Fingerprinting scripts, cross-site beacons.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cosmetic Filters &amp;amp; Cookie Banners:&lt;/strong&gt; CSS selectors hiding modal dialogs and GDPR consent walls.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rules are dynamically packaged into App Group shared storage and compiled into WebKit via:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;SFContentBlockerManager&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reloadContentBlocker&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;withIdentifier&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;extensionIdentifier&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;error&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Rule compilation error: &lt;/span&gt;&lt;span class="se"&gt;\(&lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;localizedDescription&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"WebKit rules compiled successfully."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Native SwiftUI Performance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Dynamic rule toggles with instant App Group synchronization.&lt;/li&gt;
&lt;li&gt;Real-time whitelist management with zero latency.&lt;/li&gt;
&lt;li&gt;Ultra-low memory footprint (~12 MB RAM).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  App Store Availability &amp;amp; Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;App Store Link:&lt;/strong&gt; &lt;a href="https://apps.apple.com/app/id6760575398" rel="noopener noreferrer"&gt;https://apps.apple.com/app/id6760575398&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support &amp;amp; Docs:&lt;/strong&gt; &lt;a href="https://adblocker-pro-support.vercel.app/" rel="noopener noreferrer"&gt;https://adblocker-pro-support.vercel.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target OS:&lt;/strong&gt; iOS 16.0+ / iPadOS 16.0+&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Have you built Safari WebKit extensions or content blockers on iOS? Let's discuss performance tips and rule compilation strategies in the comments!&lt;/p&gt;

</description>
      <category>ios</category>
      <category>swift</category>
      <category>safari</category>
      <category>webperf</category>
    </item>
    <item>
      <title>Building SaveClip: A High-Performance 4K Video Archiver for iOS with Zero Login</title>
      <dc:creator>Kernolix Group</dc:creator>
      <pubDate>Tue, 06 Oct 2026 02:29:40 +0000</pubDate>
      <link>https://dev.to/enes_f0d0cebca3dfc4980550/building-saveclip-a-high-performance-4k-video-archiver-for-ios-with-zero-login-3e1a</link>
      <guid>https://dev.to/enes_f0d0cebca3dfc4980550/building-saveclip-a-high-performance-4k-video-archiver-for-ios-with-zero-login-3e1a</guid>
      <description>&lt;h2&gt;
  
  
  Why We Built SaveClip: The Modern Media Archiving Problem
&lt;/h2&gt;

&lt;p&gt;Mobile users constantly save and curate short-form video content—from educational clips and cooking recipes to travel footage across TikTok, Instagram Reels, and YouTube Shorts. However, most web downloaders are plagued with invasive ad networks, intrusive redirect pop-ups, and questionable third-party proxy servers that compromise privacy or require social media logins.&lt;/p&gt;

&lt;p&gt;To solve this, we engineered &lt;a href="https://apps.apple.com/app/id6759523131" rel="noopener noreferrer"&gt;SaveClip&lt;/a&gt;, a lightweight, native iOS utility that parses, downloads, and archives public social media videos directly to the iOS Camera Roll in native 4K/HDR quality with zero login required.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Architectural Decisions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Privacy-First Zero-Login Architecture
&lt;/h3&gt;

&lt;p&gt;Traditional archivers request session tokens or embed web view logins. SaveClip takes a strict privacy stance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Operates strictly on public URL payloads.&lt;/li&gt;
&lt;li&gt;URLs are normalized and validated locally on device before dispatching background download tasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. High-Throughput Media Pipeline with AVFoundation and URLSession
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Powered by background URLSession configurations, allowing uninterrupted downloads even when switching apps.&lt;/li&gt;
&lt;li&gt;Direct Camera Roll export via PHPhotoLibrary, preserving original color space, metadata tags, and spatial audio bitrates.&lt;/li&gt;
&lt;li&gt;Native parsing allows the user to select between 1080p Full HD, 4K UHD, and compressed lightweight versions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Native SwiftUI and Swift Concurrency
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Fully asynchronous networking using modern Swift concurrency and &lt;code&gt;@MainActor&lt;/code&gt; state management.&lt;/li&gt;
&lt;li&gt;Dynamic responsive UI built with pure SwiftUI, eliminating UIKit bridge overhead.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  App Store Availability &amp;amp; Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;App Store Link: &lt;a href="https://apps.apple.com/app/id6759523131" rel="noopener noreferrer"&gt;https://apps.apple.com/app/id6759523131&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Frameworks: SwiftUI, AVFoundation, Photos, Combine, URLSession&lt;/li&gt;
&lt;li&gt;App Store Status: Globally Live (READY_FOR_SALE)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feedback, questions on AVFoundation streaming pipelines, and architecture ideas are warmly welcomed!&lt;/p&gt;

</description>
      <category>ios</category>
      <category>swift</category>
      <category>mobile</category>
      <category>apple</category>
    </item>
    <item>
      <title>Building SayHi: An Ephemeral Proximity Discovery iOS App with SwiftUI &amp; MapKit</title>
      <dc:creator>Kernolix Group</dc:creator>
      <pubDate>Sat, 03 Oct 2026 23:19:33 +0000</pubDate>
      <link>https://dev.to/enes_f0d0cebca3dfc4980550/building-sayhi-an-ephemeral-proximity-discovery-ios-app-with-swiftui-mapkit-4nch</link>
      <guid>https://dev.to/enes_f0d0cebca3dfc4980550/building-sayhi-an-ephemeral-proximity-discovery-ios-app-with-swiftui-mapkit-4nch</guid>
      <description>&lt;h2&gt;
  
  
  Introduction: Why Another Nearby Discovery App?
&lt;/h2&gt;

&lt;p&gt;Traditional social networks are optimized for permanent connections and algorithmic feeds, while modern dating apps rely heavily on endless swipe decks. When you travel to a new city, work out of a local cafe, or attend a tech conference, you often don't want a heavy social network—you just want to know who is nearby, what vibe they share, and have a zero-friction way to break the ice.&lt;/p&gt;

&lt;p&gt;This was the motivation behind &lt;strong&gt;&lt;a href="https://apps.apple.com/app/id6785348229" rel="noopener noreferrer"&gt;SayHi: Wave Nearby&lt;/a&gt;&lt;/strong&gt;, a native iOS application built entirely in Swift and SwiftUI.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Architectural Decisions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Interactive Proximity on MapKit without Performance Bottlenecks
&lt;/h3&gt;

&lt;p&gt;Using MapKit's latest SwiftUI declarative Map APIs in iOS 17 and iOS 18:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clustered Annotations:&lt;/strong&gt; Dynamic annotation clustering ensures that in dense urban areas, rendering 100+ avatar pins does not trigger main-thread hitches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Camera Framing:&lt;/strong&gt; Seamless camera easing between localized neighborhood zoom and regional discovery.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Privacy-Preserving Fuzzed Coordinates
&lt;/h3&gt;

&lt;p&gt;User privacy is paramount when building location-aware software:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No Precise GPS Over The Wire:&lt;/strong&gt; Exact latitude and longitude coordinates are never stored or broadcast.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sector Randomization:&lt;/strong&gt; Coordinates are quantized and fuzzed into randomized grid sectors (~200m radius), computing approximate proximity without revealing exact buildings or residences.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. The Wave Mechanism: Casual, Low-Pressure Interaction
&lt;/h3&gt;

&lt;p&gt;Instead of cold messaging or forced matching:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users tap to send a &lt;strong&gt;Wave&lt;/strong&gt;!&lt;/li&gt;
&lt;li&gt;A wave triggers a fluid, hardware-accelerated spring animation using SwiftUI's PhaseAnimator.&lt;/li&gt;
&lt;li&gt;When both users wave at each other, an ephemeral chat opens up.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Vibe-Based Intent Filters
&lt;/h3&gt;

&lt;p&gt;Users can toggle explicit intentions in real time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Grab Coffee&lt;/li&gt;
&lt;li&gt;Explore the City&lt;/li&gt;
&lt;li&gt;Workout / Gym Partner&lt;/li&gt;
&lt;li&gt;Casual Conversation&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Try It on iOS
&lt;/h2&gt;

&lt;p&gt;SayHi is currently live worldwide on the App Store:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Download on App Store:&lt;/strong&gt; &lt;a href="https://apps.apple.com/app/id6785348229" rel="noopener noreferrer"&gt;SayHi: Wave Nearby&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tech Stack:&lt;/strong&gt; 100% Swift, SwiftUI, MapKit, CoreLocation, Combine/Async-Await.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Would love to hear feedback from the developer community on location clustering, privacy design, and SwiftUI ergonomics!&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>ios</category>
      <category>mobile</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
