How I replaced GTLR with a lean REST setup—token-based Google Drive integration using URLSession, safer secrets, and fewer moving parts.

GTLR is gone from my stack. I rebuilt file list, upload, and metadata calls with token-based Google Drive integration using pure REST and URLSession. The result: smaller binaries, clearer errors, and auth I actually understand. This post shows the moving pieces, pitfalls, and a copy-paste checklist you can apply today. For layout sanity while rebuilding screens, I leaned on Golden Scaling in Practice—pre-deciding anchors kept my UI and my head calm during refactors.

Why token-based Google Drive integration?

Libraries hide complexity—until they don’t. A direct REST approach gives you explicit control over scopes, refresh timing, and retries. With a short AuthService, I trade magical “it works” for transparent calls I can reason about. See my earlier context in LifeOS Dev Log: Drive Tokens & List/Grid Toggle for how this started.

Core flow for token-based Google Drive integration

  1. Sign in & get tokens. Use Google Sign-In to obtain an access token and refresh token (on first consent).
  2. Store securely. Keep tokens in Keychain; never in UserDefaults or the document.
  3. Attach bearer. Each request sets Authorization: Bearer <access_token>.
  4. Auto-refresh. On 401, refresh using the OAuth token endpoint and retry once.
  5. Call Drive v3. Hit /drive/v3/files for list/search, /upload/drive/v3/files for media.

Minimal checklist for token-based Google Drive integration

Endpoints you’ll call (REST)

The official references are clear and current: Drive API (REST) Overview and Google Identity: OAuth 2.0.

UI notes (because UX still matters)

Token work is plumbing; users feel rhythm. Anchor your headline on 3/5, your primary action (Upload / Connect) on 5/8, and stick to one gutter (8/13/21). These small rules keep “settings” screens from feeling like a spreadsheet.

Common mistakes (and quick fixes)

What I cut (and didn’t miss)

Ship it

Start by swapping your file list screen to REST calls behind an AuthService. If it feels good, move uploads and metadata next. When you hit the first 401 in the wild, you’ll be glad you understand the flow. Download the starter snippet for URLSession + refresh and make your Drive calls boring—in the best way.

- randomblink

Design for Focus, Not FOMO

A practical, golden-ratio system to build calm dashboards that reduce noise, guide attention, and speed decisions.

If your product feels busy, calm dashboards are the antidote. This approach uses golden-ratio anchors (3/5, 5/8), one consistent gutter, and ruthless information triage so teams scan faster and click with confidence. I borrowed the same “pre-decision” mindset I use in layouts from my Golden Scaling in Practice post and applied it to analytics screens.

Why calm dashboards beat crowded ones

Crowding fractures attention. Calm dashboards establish one dominant element (headline/KPI), one supporting action (CTA), and everything else subordinate. This creates a reliable reading path and fewer hesitations.

ϕ anchors for calm dashboards

Pin the headline to the 3/5 vertical and the primary CTA to the 5/8 horizontal. Choose one baseline gutter—8, 13, or 21—and stick to it across the screen. These rails remove most micro-decisions and give your interface a steady rhythm.

Information triage that keeps calm dashboards calm

Sort every module into: Now (decision-critical), Next (context), Nice (reference). Now goes on your anchor lines; Next aligns to parallel rails; Nice is collapsible. This simple rule cuts clutter without cutting capability.

Interaction rules for calm dashboards

Limit the screen to one primary action; demote the rest. Prefer subtle motion only on state changes. Keep focus order left→right, top→bottom along your rails. For a second opinion on layout fundamentals, review Material Design’s layout overview and map its guidance onto your φ grid.

Before → After (mini pattern)

Before: center-stacked widgets, variable paddings, CTA shouting, three competing KPI rows.
After: headline on 3/5, KPI strip aligned to the 5/8 cross-line, filters on a parallel rail, uniform 13-pt gutter. Scan time drops; decisions rise.

Ship it

Clone this recipe on one dashboard today: set φ rails, pick one gutter, triage modules, and run a squint test. Close by validating focus order with keyboard only. Download the Calm Dashboard Checklist and start removing noise on purpose.

How the ϕ Grid Made My UI Cleaner (and My Brain Calmer)

A simple golden-ratio layout system (anchors at 3/5 and 5/8) that tightened my interfaces, reduced decision fatigue, and gave me a repeatable checklist for every screen.

TL;DR


Why Golden Scaling (ϕ) stabilizes a screen

Most “messy UI” isn’t about color or type—it's inconsistent spacing and weak anchors. The golden ratio gives you predictable anchor lines so your composition feels intentional without constant nudging. I call this Golden Scaling: a lightweight way to pre-decide where things go so your brain doesn’t rehearse the same layout argument twelve times a day.


The anchors I use (and why)

Primary rails

Support rails

These ratios won’t magically design for you—they just remove 80% of dithering.


Before → After (what changed)

Before

After (ϕ grid)

Result: the same pieces, less noise.


The ϕ Layout Checklist (copy-paste)

Canvas

Anchors

Hierarchy

Rhythm

Review

👉 CTA: Try my φ layout checklist — copy this block into your design system and staple it to your next wireframe.


How to apply it in 10 minutes (mini How-To)

  1. Overlay rails: draw a vertical line at 60% (3/5) and a horizontal line at 62.5% (5/8).
  2. Pin your headline to the 3/5 line; nudge baseline to snap.
  3. Park your CTA where the 5/8 horizontal crosses a comfortable right-hand column.
  4. Choose one gutter (8, 13, or 21). Re-space everything to multiples of that unit.
  5. Remove decorative crutches (extra rules, random bolds). Let the grid do the work.
  6. Squint test + keyboard only: if focus order follows the rails, you’re good.

Accessibility & motion


Pitfalls I hit (so you don’t)


FAQ

Isn’t the golden ratio overhyped?
If you treat it like superstition—yes. As a decision framework for anchors and rhythm—useful.

What if my screen isn’t a φ aspect?
Nest ϕ blocks (cards/sections) within whatever frame you have. The anchors still work.

Does this replace design sense?
No. It just reduces choices so your taste can focus on content and flow.


Version / Update box

v1.0 (2025-09-30): First publish with checklist + anchor math.
Planned: downloadable rail overlays (SVG) and a Figma template.


Call to Action

Try my φ layout checklist. Paste it into your design system, apply it to one screen, and reply with a screenshot. I’ll give quick feedback and share a reusable overlay next.

Signature:
Rev. Brian Scott O’Keefe (randomblink)
“Ship simply. Then simplify the ship.”

Reanalyzing My Files

Monday’s push got the repo breathing again. Tomorrow I’m pushing more—and I’m tightening the way I scan, sort, and fix the mess.

Why today’s about reanalysis (not just fixes)

Monday’s push was triage: get the living code to the surface, tag what’s drifting, and cut the snags. That worked. But a stable repo isn’t the finish line—it’s the floor. Today I’m reanalyzing the structure so tomorrow’s push isn’t just “more,” it’s cleaner and more predictable.

What “reanalyzing my files” means here:


The quick scoreboard


The scanning pass: from “what do I have?” to “what matters?”

I’m making the file scanners do real work—not just dump filenames.

What I’m enforcing:

Result: When something looks wrong in the UI, the logs already explain why.


Token flow: fewer hops, clearer states

Auth shouldn’t feel like a mini-boss fight.

Guardrails I’m adding:

Why it matters: Build errors are loud; token bugs are quiet. I want neither.


Metadata where it belongs: in front of me

I’m making metadata visible where decisions happen.

UI touches in this pass:

This turns “why is this file weird?” into a two-second glance instead of a rabbit hole.


Today’s punch list


What I’ll ship tomorrow (Oct 1)


Links


Update / Version box

Version: 2025-09-30 • Status: Reanalysis in progress


FAQ (short)

Why not push everything today?
Because I’d be pushing problems, not fixes. Today I tighten the pipes so tomorrow’s batch is clean.

Will this break existing tokens?
No. Worst case: a single re-auth prompt. After that, it should be quieter than before.

Signature

randomblink
“Build it clean, then build it fast.”

Drive Previews, Tag Chips, and Faster List↔Grid

Previews that land sooner, tags that filter smarter, and a list/grid toggle that stops jumping.

1) Drive previews: sooner, safer

Tech: Google Drive v3 via REST + URLSession (no GTLR), tokens in Keychain, MIME + modified date for cache busting.


2) Tag chips: clearer states, fewer clicks

Why it’s calmer: you see exactly what’s filtering, and you can isolate a single tag without hunting in a sidebar.


3) List ↔ Grid: faster and steady


Tiny wins that matter


Try it

  1. Toggle list↔grid in Resources; notice no header jump.
  2. Tap a couple of tags, then isolate one with Option/Alt.
  3. Open a large image folder—the first row should render fast with clean fallbacks.

What’s next


Internal & External Links


Update / Version Box

LifeOS — Dev Log #3


Signature

— Rev. Brian Scott O’Keefe
“Less friction, more flow.”

Tokens, Sync, Clean Start

Current goals

Auth & tokens (the new backbone)

The old way was tangled. The new way is simple:

What I broke today:
A silent refresh loop when the network dropped mid-refresh. Fixed by gating concurrent refresh calls and memoizing the in-flight promise so only one refresh can run at a time.

Privacy posture: tokens never leave the device; logs redact headers; no crash reports include PII.

File view ideas (don’t fight the brain)

I’m designing for calm and orientation:

Sketch note: the content column aligns to a golden-ratio container; actions hide until hover/focus to reduce visual noise.

Known bugs (current reality, not vibes)

I’m keeping these here until each is closed and regression-tested.

Next sprint (tight, testable, shippable)

1) Auth polish

2) File view MVP

3) Sync + cache

4) Quality gates

CTA: Tell me your top pain in organizing files; I’ll test it in the next build.
Drop a comment or reply with a 1–2 sentence description (bonus: a quick phone snapshot of your folder chaos). Real pain > hypothetical features.

Changelog (human-sized)

- randomblink

Am no an listening depending up believing. Enough around remove to barton agreed regret in or it. Advantage mr estimable.
me@randomblink.com
© Copyright 2025 - Red Pixels Agency - All Rights Reserved
...
...
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram