DEV Community

Cover image for My Development Week: Building Secure Flutter Apps & Desktop Tools ๐Ÿš€
Cahyanudien Aziz Saputra
Cahyanudien Aziz Saputra

Posted on

My Development Week: Building Secure Flutter Apps & Desktop Tools ๐Ÿš€

Another week, another adventure in code! This week was absolutely packed with experimentation, plugin development, and some serious security enhancements. Buckle up, because we're diving deep into what I built and the lessons I learned along the way.


Day 1: The Snap Store Saga ๐Ÿ“ฆ

Ever tried packaging a Tauri app for the Snap Store? Well, I did, and it was... interesting. ๐Ÿ˜…

I'm building an unofficial Jira desktop app (because we all need better desktop tools, right?), and I wanted to get it on the Snap Store. Creating the snap package? Easy. Getting it approved? That's another story.

๐Ÿšง The Classic Confinement Dilemma

Here's the problem: my app needs classic confinement to work properly. When I tried strict confinement (the preferred option), the app just couldn't open Jira URLs. Like, at all. ๐Ÿคฆโ€โ™‚๏ธ

Classic confinement requires manual review from the Snap Store team, so now I'm in waiting mode. If you've been through this process, drop your experiences in the comments!

Also kicked off some ad integration work with Pangle and Unity Ads. Not the most exciting work, but it pays the bills! ๐Ÿ’ฐ

๐Ÿ“Š WakaTime Global Rank: #217


Day 2: Performance Obsession & Killing Passwords ๐Ÿ”ฅ

This was a BIG day. Let me break it down.

โšก api_client_plus: Making It FAST

I spent the morning deep in performance optimization for my api_client_plus Flutter plugin. We're talking cache strategies, MMKV initialization, and a whole lot of testing.

Want to see some numbers? Of course you do! ๐Ÿ“ˆ

๐ŸŽฏ Performance Metrics:

  • โšก Cold Start: 35ms (blink and you'll miss it)
  • ๐Ÿ“– Cache Read: 69ms
  • โœ๏ธ Cache Write: 114ms
  • ๐ŸŒ Request Time: 263ms
  • ๐Ÿš€ Throughput: 25.84 req/sec
  • ๐Ÿ”„ Error Recovery: 501ms
  • ๐Ÿ”€ Domain Switch: 123ms
  • ๐Ÿ’จ Cache Speedup: 39.5% (that's what I'm talking about!)

๐Ÿ† Final Grade: B - Production Ready!

I ran 10 comprehensive tests covering every cache strategy imaginable (cacheOnly, cacheFirst, cacheThenNetwork, networkFirst, networkOnly, staleWhileRevalidate), and guess what? 100% pass rate! โœ…โœ…โœ…

๐Ÿ” Goodbye Passwords, Hello Security

Here's something that made me really excited: I completely overhauled authentication for two production WordPress sites.

The old way: Username + password + email verification ๐Ÿ˜ฉ

The new way: Just email = instant secure login link ๐ŸŽ‰

I implemented passwordless authentication using email OTP with SMTP. Users just type their email, get a magic link, and they're in. More secure, way more convenient. This is how auth should work!

๐Ÿ› ๏ธ Other Cool Stuff

  • โœจ Added crash reporting to the Flutter plugin
  • ๐Ÿ“ฑ Improved bottom nav with YouTube-style back button behavior (tap back = go home)
  • ๐Ÿ–ฅ๏ธ Added WebView/WebKit system checks for Linux (because not all Linux systems are created equal)
  • ๐Ÿ“ฆ Published .appimage releases to GitHub

๐Ÿ’ก New Project Alert: Flutter Secure Vault

Late in the day, I had this thought: what if we could protect data not just in storage, but while it's being used in memory? ๐Ÿค”

Most secure storage solutions are solid, but once you read that data, it's vulnerable. So I'm experimenting with wrapping the entire app with Rust FFI to create a secure memory vault.

Stay tuned! This could be huge for apps handling sensitive data.


Day 3: Dynamic Everything ๐ŸŽจ

Project Code: 246 (yeah, I name my projects with numbers, don't judge ๐Ÿ˜„)

Today was all about flexibility and making the app adapt to different needs without redeploying.

๐Ÿ—ƒ๏ธ Database Magic

Added a new header table with some seriously cool configurations:

  • ๐Ÿ“ Customizable titles and subtitles
  • ๐ŸŒ™ Hijri date display toggle
  • ๐Ÿ“ฑ Feed types (standard feed vs vertical status ร  la YouTube Shorts/Instagram)
  • ๐ŸŽฏ Layout types (standard list or box grid)

๐ŸŽฎ Full Control Panel

  • ๐Ÿ”ง Built APIs for fetching and updating all these configs
  • ๐ŸŽจ Designed fresh UX for different feed types
  • ๐Ÿ‘ฅ Restructured user roles (added "leaders" status - sounds cool, right?)
  • ๐Ÿ” Added admin-only features for power users
  • โš™๏ธ Made EVERYTHING dynamic via API (no more hardcoded layouts!)
  • ๐Ÿ“ฒ Built the release and submitted v1.0.2 to Play Store

๐Ÿ”ฎ Future Plans

Thinking about adding JSON serialization to api_client_plus for type-safe data handling. Because types matter, people! ๐Ÿ’ช


Day 4: Birth of MemGuard ๐Ÿ›ก๏ธ

Started something I'm really excited about: MemGuard - a Flutter plugin to prevent memory leaks and secure sensitive data.

๐ŸŽฏ Why MemGuard?

Memory security is often overlooked in mobile apps. We worry about storage, networking, authentication... but what about the data sitting in RAM? That's where MemGuard comes in.

โœจ Features:

  • ๐Ÿ’พ In-memory storage (lightning fast, super secure)
  • ๐Ÿ“ฑ App-persistent storage
  • ๐Ÿ”’ Secure storage integration
  • โœ… Fully tested on Android

๐Ÿ—๏ธ Architecture Highlights:

  • Memory storage uses Rust FFI for speed and security
  • Persistent storage leverages platform channels + FFI
  • Zero dependencies on traditional storage methods

๐Ÿ’ญ Bonus Project: LogGuard

While building MemGuard, I thought: "What about logs?" Logs can expose SO much sensitive info. So I started sketching out LogGuard to prevent log-based data exposure. ๐Ÿค”

Turns out, this was going to be bigger than I thought...


Day 5: MemGuard Goes Public ๐ŸŽ‰

Full day sprint on MemGuard! And the best part? I published it! ๐Ÿš€

Both memguard and memguard_core are now live on pub.dev. If you're building Flutter apps that handle sensitive data, definitely check it out!

๐Ÿ“Š WakaTime Global Rank: #75 (climbing that leaderboard! ๐Ÿ“ˆ)


Day 6: Cross-Platform Victory ๐Ÿง๐Ÿค–

MemGuard is now truly cross-platform! Added Linux support today.

โœ… What's New:

  • ๐Ÿง Full Linux integration
  • ๐Ÿงช Comprehensive testing on Android and Linux
  • ๐Ÿ“ฆ Published v2.1.4 with stable cross-platform support

The plugin now works seamlessly whether you're on mobile or desktop. That's the dream, right? Write once, secure everywhere! ๐ŸŒ


Day 7: Polish Day & LogGuard Launch โœจ

Project: MtaOne

Started the day by improving an existing project with some quality-of-life enhancements:

  • ๐Ÿ“ Integrated FastLog for better logging
  • ๐Ÿ’ฅ Added crash reporter (because bugs happen)
  • ๐ŸŽจ Implemented dynamic theming with seed colors (Material You vibes!)
  • ๐Ÿ”Š Fixed those annoying audio playback bugs

๐ŸŽ‰ Surprise Launch: LogGuard v0.1.0

Remember that LogGuard idea from Day 4? Well, I couldn't help myself. I built and shipped it! ๐Ÿš€

LogGuard is a high-performance Flutter plugin that automatically sanitizes sensitive data in your logs using Rust FFI with regex-based pattern matching.

โšก Why LogGuard Matters

Ever accidentally logged a password? An API token? A credit card number? Yeah, we've all been there. ๐Ÿ˜ฌ

LogGuard sits between your code and the console, intercepting print() and debugPrint() calls to automatically mask sensitive data BEFORE it hits your logs.

๐Ÿ”’ What Gets Protected?

LogGuard automatically sanitizes:

  • ๐Ÿ”‘ Passwords - password=secret123 โ†’ password=********
  • ๐ŸŽซ Auth Tokens - Bearer abc123token โ†’ Bearer [MASKED]
  • โ˜๏ธ AWS Keys - AKIAIOSFODNN7EXAMPLE โ†’ [MASKED]
  • ๐Ÿ’ณ Credit Cards - 4532-1234-5678-9010 โ†’ [MASKED]
  • ๐Ÿ“ง Emails - user@example.com โ†’ [MASKED]
  • ๐Ÿ“ฑ Phone Numbers - +1-555-123-4567 โ†’ [MASKED]
  • ๐Ÿ†” UUIDs - 550e8400-e29b-41d4-a716-446655440000 โ†’ [MASKED]
  • ๐ŸŽŸ๏ธ JWT Tokens - eyJhbGc... โ†’ [MASKED]
  • ๐Ÿ” Hex Hashes - Any suspicious hex strings โ†’ [MASKED]

๐Ÿš€ Key Features

โœจ Zero Configuration - Works out of the box with sensible defaults

โšก High Performance - Rust FFI implementation for blazing speed

๐ŸŒ UTF-8 Support - Handles international characters perfectly

๐Ÿ“Š Streaming Support - Efficiently processes large log messages

๐ŸŽฏ Automatic Interception - No need to change existing logging code

This is huge for production apps. One plugin, and suddenly your logs are safe from accidental data leaks. Security doesn't get much easier than this! ๐Ÿ’ช

๐Ÿ“Š WakaTime Global Rank: #46 (new record! ๐ŸŽŠ)


๐Ÿค” Week Reflections

What a ride! This week really drove home the importance of security AND performance in mobile development. You can't sacrifice one for the other.

๐Ÿ’ก Key Takeaways:

  1. Security should be convenient - The passwordless auth migration proved that the best security is often the most user-friendly
  2. Performance metrics matter - You can't improve what you don't measure
  3. Memory security is underrated - Building MemGuard opened my eyes to how vulnerable in-memory data can be
  4. Cross-platform is hard but worth it - The effort to support Linux paid off immediately

๐ŸŽฏ What's Next?

  • ๐Ÿ” Continue improving MemGuard and LogGuard (Windows support, anyone?)
  • โณ Waiting for Snap Store approval (fingers crossed! ๐Ÿคž)
  • ๐Ÿ”ง More performance optimizations for api_client_plus
  • ๐ŸŒŸ Planning custom sanitization patterns for LogGuard

๐Ÿ› ๏ธ Tech Stack This Week

Languages & Frameworks:

  • ๐ŸŽฏ Flutter & Dart
  • ๐Ÿฆ€ Rust FFI
  • โšก Tauri
  • ๐Ÿ“ WordPress
  • ๐Ÿ’พ MMKV
  • ๐Ÿ”Œ Platform Channels

๐ŸŽ‰ Plugins Released:

  • โœ… api_client_plus (major updates)
  • โœ… memguard v2.1.4
  • โœ… memguard_core
  • โœ… logguard v0.1.0 ๐Ÿ†•

๐Ÿ’ฌ Let's Connect!

What security challenges are you tackling in your projects? Have you tried building Flutter plugins with Rust FFI? Ever accidentally logged sensitive data? (We've all been there! ๐Ÿ˜…)

Drop your thoughts in the comments below! I read and respond to every single one. ๐Ÿ‘‡

And if you found this helpful, don't forget to:

  • โค๏ธ Leave a reaction
  • ๐Ÿ”– Bookmark for later
  • ๐Ÿ”„ Share with your dev friends
  • ๐Ÿ‘€ Follow me for more weekly dev logs!

๐Ÿ“ฌ Want to stay updated?

Follow me for more open-source Flutter plugins, security deep-dives, and weekly dev logs from the trenches!

Keep coding, keep building, keep pushing! ๐Ÿš€


Flutter #Rust #Security #OpenSource #DevLog #MobileDev #MemoryManagement #PluginDevelopment #Tauri #WordPress

Top comments (0)