Flutter Dead Ui Fix Xcode26 Widget Bug

Connecting Unimplemented Flutter UI Components + Xcode 26 Beta WidgetKit Install Bug Workaround

Dealt with two problems back-to-back while working on a Flutter app. One was a UI-level issue – connecting components that were just shells with onTap: () {}. The other was a problem in Xcode 26.2 beta where the app itself wouldn’t install on the simulator due to extensions. 1. Connecting Non-Functional UI Components A common situation during Flutter development: screens are all built, but buttons have onPressed: () {}, cards have onTap: () {}, and there’s no actual behavior. ...

2025-07-16 · 4 min read · Seunghan
Flutter Bloc Complex State Management

Flutter BLoC State Design Beyond Lists — Handling Multi-Step Session Flows

A BLoC that just loads and displays a list is not hard. The challenge comes when you need to manage session-based workflows in a single BLoC – things like “create a session -> add questions -> receive answers -> complete.” This pattern appears constantly in real-world apps: review Q&A systems, multi-step surveys, onboarding flows. If you have ever watched your UI collapse under the weight of a single isLoading boolean, this post is for you. ...

2025-07-06 · 8 min read · Seunghan
Firebase Phone Auth Not Working Diagnosis

Flutter Firebase Phone Auth - SMS Not Arriving? From Diagnosis to Code Fix

After integrating phone number verification into a Flutter app, I ran into the dreaded “the verification code isn’t arriving” situation. And when pressing the dev bypass button to skip verification and attempt signup, the server returned “Phone number verification not completed.” This post documents both issues: what caused them and how to fix them. Firebase Phone Auth looks straightforward on the surface, but it has several layers where things can break — platform-specific configuration (Android vs. iOS), token verification flow, and behavioral differences between development and production environments. Understanding which layer is failing is the key to diagnosing these problems quickly. ...

2025-07-02 · 8 min read · Seunghan
Telegram Bot Intent Classification Bugs

3 Telegram Bot Intent Classification Bugs and Inline Keyboard Confirmation Flow

While running a Telegram bot that lets users add tasks through natural language input, I ran into three separate bugs and then improved the overall UX by introducing an inline keyboard confirmation step. This post walks through each bug, its root cause, and how it was fixed. The bot’s basic architecture works like this: a user sends a free-form message, the Rails backend first applies a regex-based pre-filter to make a quick guess at intent, and then calls Gemini AI to extract the final intent along with parameters (date, time, content, etc.). This two-stage pipeline is where each bug was hiding, and the results combined in unexpected ways that caused unintended actions for users. ...

2025-06-25 · 12 min read · Seunghan
Ios Codesign Testflight Full Setup

iOS Code Signing Full Setup — From Distribution Cert to TestFlight Without Xcode Auto-Sign

This is a summary of reconfiguring code signing settings from scratch while uploading a Flutter app to TestFlight. The process uses manual signing + App Store Connect API Key instead of Xcode automatic signing. Overall Flow [1] Issue Distribution Certificate [2] Issue APNs Certificate (CSR generation required) [3] Enable Push Notifications on App ID [4] Create Provisioning Profile (App Store, Push included) [5] xcodebuild archive + export (API Key authentication) [6] Upload to TestFlight via xcrun altool 1. Distribution Certificate Apple Developer -> Certificates -> + -> Select Apple Distribution. ...

2025-06-18 · 4 min read · Seunghan
Dart Api Integration

DART Open API Integration Journey (Rails + Flutter)

Notes on integrating the DART Open API (Korea’s Financial Supervisory Service disclosure system) with a Rails backend. Implemented 5 areas: disclosure monitoring, audit opinions, governance, financial indexes, and equity reports – each step came with its own struggles. Implementation Structure Created a model and ActiveJob for each data type. Each job calls the DART API and inserts data using upsert_all – simple structure. DartCorpCodeSyncJob -> dart_companies (company master) DartDisclosureSyncJob -> dart_disclosures (disclosure list) DartMajorEventSyncJob -> dart_major_events (delisting trigger events -- DS001) DartAuditOpinionSyncJob -> dart_audit_opinions (audit opinions -- DS002/DS003) DartGovernanceSyncJob -> dart_executives / dart_major_shareholders (DS004/DS005) DartFinancialIndexSyncJob -> dart_financial_indexes (fnlttSinglAcntAll) DartEquityReportSyncJob -> dart_equity_reports (equity disclosures) Struggle 1: upsert_all + update_only + updated_at Duplication The first error to hit. ...

2025-06-01 · 5 min read · Seunghan
Privacy Policy Terms Disclaimer Contact