Hangangjari
21 records
Collections
- Hangangjari System Overview How collection, API, cache, and widgets share responsibility for the user's first screen
- How the SwiftUI App and WidgetKit Read the Same State A structure where SwiftData and App Group snapshots keep values consistent outside the app
- Designing Thin FastAPI Routes HTTP routes handle requests and responses while screen composition moves into application use cases
- How I Split Responsibilities Between Postgres and Redis Records and audit trails stay durable, while rebuildable responses live in cache
- Workers and CronJobs Running Outside the API Collection, forecasts, push, and reference-data sync run separately from user requests
- A Parser That Separates No Data From Collection Failure Official source grades, schema drift, and ingestion runs explain why a screen is empty
- How Not to Present Forecasts as Current Values Forecast workers, confidence, and backtests expose uncertainty before arrival
- What I Filtered Before Sending Push Notifications Subscription settings, quiet hours, freshness, and audit records choose what not to send first
- Leaving Deployment as Records, Not Memory Tests, images, desired state, and migration order became one repeatable release path
- The Order I Check When Data Looks Stale I narrowed stale-data causes by checking the edge, API, workers, cache, and DB in order
- Snapshot Storage for WidgetKit I let widgets outside the app safely read the last display value and refresh state
- Bundling First-Screen Values into One Response: home-summary I put parking, outing, forecast, and source status into one response so the app and widgets start from the same values
- source catalog and ingestion run I separated collection plans from execution results to explain freshness and failures by source
- Keeping Stale Responses from Looking Fresh: Redis Cache I separated fast responses from last-success values so cache does not mislead users
- Why Parking Forecasts Need Confidence I used p10, p50, p90, risk, and backtests so forecasts do not look like one correct answer
- Push Outbox and Suppression Audit I recorded sent notifications and stopped notifications with their reasons in the same system
- Public-Data Translation Cache and Preserving Source Text I separated UI strings, curated translations, machine translations, and Korean fallback
- Telemetry That Does Not Send Location Coordinates to the Server For a login-free app, I first decided what not to collect and kept only operational signals
- Running a Mini-PC Server Like a Real Service A retrospective on separating user request paths, GitOps state, observability, and backups
- Rechecking an iOS App on Small iPhones After Looking Only at Large Screens A record of turning discomfort missed in iPhone 17 Pro Max-centered testing into device- and language-based visual QA.
- Not Simply Trusting API Requests That Come From Outside the App I used App Attest to check app-origin trust and treated state-changing requests with extra care.