Hangangjari

21 records

Collections

  1. Hangangjari System Overview How collection, API, cache, and widgets share responsibility for the user's first screen
  2. How the SwiftUI App and WidgetKit Read the Same State A structure where SwiftData and App Group snapshots keep values consistent outside the app
  3. Designing Thin FastAPI Routes HTTP routes handle requests and responses while screen composition moves into application use cases
  4. How I Split Responsibilities Between Postgres and Redis Records and audit trails stay durable, while rebuildable responses live in cache
  5. Workers and CronJobs Running Outside the API Collection, forecasts, push, and reference-data sync run separately from user requests
  6. A Parser That Separates No Data From Collection Failure Official source grades, schema drift, and ingestion runs explain why a screen is empty
  7. How Not to Present Forecasts as Current Values Forecast workers, confidence, and backtests expose uncertainty before arrival
  8. What I Filtered Before Sending Push Notifications Subscription settings, quiet hours, freshness, and audit records choose what not to send first
  9. Leaving Deployment as Records, Not Memory Tests, images, desired state, and migration order became one repeatable release path
  10. The Order I Check When Data Looks Stale I narrowed stale-data causes by checking the edge, API, workers, cache, and DB in order
  11. Snapshot Storage for WidgetKit I let widgets outside the app safely read the last display value and refresh state
  12. 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
  13. source catalog and ingestion run I separated collection plans from execution results to explain freshness and failures by source
  14. Keeping Stale Responses from Looking Fresh: Redis Cache I separated fast responses from last-success values so cache does not mislead users
  15. Why Parking Forecasts Need Confidence I used p10, p50, p90, risk, and backtests so forecasts do not look like one correct answer
  16. Push Outbox and Suppression Audit I recorded sent notifications and stopped notifications with their reasons in the same system
  17. Public-Data Translation Cache and Preserving Source Text I separated UI strings, curated translations, machine translations, and Korean fallback
  18. 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
  19. Running a Mini-PC Server Like a Real Service A retrospective on separating user request paths, GitOps state, observability, and backups
  20. 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.
  21. 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.