Flutter BottomSheet Overlapping Navigation Bar: Switching to showDialog

Using showModalBottomSheet for form input screens feels natural. But when your app has a bottom navigation bar, the sheet slides up and covers the navigation — it works functionally, but looks cluttered. Three issues were fixed in one go: Bottom sheet → centered modal conversion TextButton cancel button rendering in yellow (unreadable) PlatformException when sharing a SQLite file with share_plus Problem 1: BottomSheet Covers the Navigation Bar Symptom An input form built with showModalBottomSheet overlaps the bottom navigation bar when it slides up. Even with isScrollControlled: true, the sheet extends over the navigation area. ...

2026-03-09 · 4 min read · Seunghan

Flutter image_picker Camera/Gallery Bottom Sheet + Riverpod Frequency-Based Category Sorter

While building a civic reporting Flutter app, I ran into three UX problems in a row: The photo button only opened the gallery — no camera option Categories kept growing, making the grid scroll-heavy Switching to an emergency report target didn’t change the submit button color Here’s how I fixed each one. Problem 1: image_picker only opens the gallery The issue The photo button called pickImage(source: ImageSource.gallery) directly. Camera permissions were in place, but the UI never offered the option. ...

2026-03-09 · 5 min read · Seunghan

Flutter iOS TestFlight Upload Failure: objective_c.framework Simulator Slice Error

After building a Flutter app with flutter build ipa --release, TestFlight rejected the upload via altool. Here’s what happened, why it happened, and how I automated the fix. The Error UPLOAD FAILED with 3 errors Invalid executable. The "Runner.app/Frameworks/objective_c.framework/objective_c" executable references an unsupported platform in the x86_64 slice. Simulator platforms aren't permitted. Invalid executable. The "Runner.app/Frameworks/objective_c.framework/objective_c" executable references an unsupported platform in the arm64 slice. Simulator platforms aren't permitted. Unsupported Architectures. The executable for Runner.app/Frameworks/objective_c.framework contains unsupported architectures '[x86_64]'. The build succeeded and the IPA was generated just fine — the problem was at upload time. ...

2026-03-09 · 4 min read · Seunghan
Rails Flutter Iap Unimplemented Features Audit

Rails + Flutter App Unimplemented Features Audit and In-App Purchase Integration

While preparing to release a voice message-based social app, I performed a full audit of unimplemented features. There were quite a few cases where routes existed but controller actions did not, or the Flutter UI was complete but payment logic was blocked with // TODO. Here is the record of cataloging and implementing them one by one. How to Audit Unimplemented Features Backend Audit The fastest method is comparing routes.rb against the actual controllers. ...

2026-01-30 · 5 min read · Seunghan
Mcp Flutter Rails System Category Debug

From MCP Tool Integration to Flutter Settings Toggle — Debugging Record

I created categories on the server side using MCP tools. But the new categories were not visible in the mobile app. It seemed like a simple problem, but the deeper I dug, the more layers were tangled together. The Beginning: Categories Created via MCP Not Showing in App I created system categories like dev/, memory on the server through MCP tools. Calling the API directly showed the data. Refreshing the app did not show them. ...

2025-12-13 · 5 min read · Seunghan
Api Response Wrapper Token Parsing Debug

Login Keeps Logging Out — Chain Bugs Caused by API Wrapper Format Mismatch

The mobile app keeps logging out. It works fine right after login, but when you background the app briefly and reopen it, the login screen appears. Token storage in SecureStorage was verified, and 401 auto-refresh via Dio interceptor was implemented. So why? Reproducing the Symptom Login to app -> works normally Restart app around access token expiration time -> Session restore fails, forced logout Found a hint in the server logs. ...

2025-12-02 · 5 min read · Seunghan
Flutter Store Beta Mode Purchase Logic

Flutter IAP Store Beta Mode Design and Purchase Logic Hardening

When implementing IAP (In-App Purchase) in a Flutter app and running an open beta, gaps like “it is beta but the store shows paid prices” or “credits are duplicated on Restore” start to surface. Here are the issues I encountered and how they were resolved. 1. The Contradiction Between Beta Mode and the Store Problem // constants.dart static const bool isOpenBeta = true; When isOpenBeta = true, spendCredits() does not deduct credits. This means AI features are free. ...

2025-11-08 · 5 min read · Seunghan
Flutter Ipa No Codesign Api Key Testflight

flutter build ipa Failure Cause and TestFlight Deployment with --no-codesign + API Key

When managing Flutter iOS apps across multiple Apple accounts, you may find that make testflight works perfectly in one project but the same Makefile fails in another. Here is a case I ran into today. Symptoms Error (Xcode): No signing certificate "iOS Development" found: No "iOS Development" signing certificate matching team ID "XXXXXXXX" with a private key was found. Running flutter build ipa fails with this error. The Distribution certificate is in the Keychain, but it says the Development certificate is missing. ...

2025-11-04 · 5 min read · Seunghan
Flutter Ios Build Dark Mode Logout Debugging

Flutter iOS Deployment Debugging Collection: 5 Build Errors + Dark Mode Hardcoding + Logout Bug

I was trying to push a build when multiple issues hit at once. The code generator failed, files were missing, the build number got rejected, UI had hardcoded dark mode colors, and logout wasn’t clearing tokens. Going through them one by one. 1. Retrofit Optional Parameter Syntax Error -> .g.dart Generation Failure Symptoms When running dart run build_runner build, some API service files produce: Expected to find ')' Cause Wrong placement of optional parameters ({}) in Retrofit abstract methods. ...

2025-11-01 · 6 min read · Seunghan
Apple Sso 403 Email Verified Type Mismatch

Apple Sign-In 403 Error: email_verified Type Mismatch and 3 Copy-Paste Bugs

Apple Sign-In was failing with 403 Forbidden while Google Sign-In worked perfectly fine. Since Apple login worked correctly in another project using the same stack (Rails 8 + Flutter), I did a comparative analysis. Symptoms Apple login: 403 Forbidden Google login: works fine Error message: "Email not verified by Apple" Cause 1: email_verified Type Mismatch (Core Issue) Apple and Google return the email_verified field in JWT with different types. Provider email_verified type Example value Google boolean true Apple string or boolean "true" or true The problematic code: ...

2025-10-25 · 3 min read · Seunghan
Privacy Policy Terms Disclaimer Contact