Skip to content

Apply Mac OS 9 font system#3

Open
eliel9012 wants to merge 10 commits into
mainfrom
maos9
Open

Apply Mac OS 9 font system#3
eliel9012 wants to merge 10 commits into
mainfrom
maos9

Conversation

@eliel9012
Copy link
Copy Markdown
Owner

Font review

This PR fixes the Mac OS 9 typography pass. The previous global .mac9Theme() font was not enough because many SwiftUI views explicitly set .system, .headline, .title, .caption, rounded, or monospaced fonts. Those explicit calls override the root environment font.

What changed

  • Forces UIKit appearance early in MeuLabApp.init() so navigation/tab bars pick up the theme before rendering.
  • Uses Charcoal as the standard Mac OS 9 UI font for navigation bars, tab bar labels, app text, chips, cards, and main screen labels.
  • Replaces modern SwiftUI font styles in the visible problem screens: Mais, Bíblia, Clima, and ADS-B.
  • Keeps Apple Garamond available for editorial use, but removes it from default UI titles where it made the app look unlike Mac OS 9 system UI.

Review notes

  • The font files are already registered through UIAppFonts and included in the Xcode resources.
  • Charcoal.ttf resolves to PostScript name Charcoal; Geneva.ttf resolves to GenevaPlain; Apple Garamond names also resolve correctly.
  • Remaining SF Symbols still use system glyph rendering by design; text labels around them now use Mac OS 9 typography tokens.

Verification

  • xcodebuild -project MeuLabApp.xcodeproj -scheme MeuLabApp -destination 'generic/platform=iOS' build\n- Build succeeded.\n\n### Secret safety\n- No .env, tokens, Secrets.plist, Secrets.xcconfig, or Swift secrets were staged.

Copy link
Copy Markdown
Owner Author

@eliel9012 eliel9012 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Font review:

  • Good direction: the fix addresses the actual root cause. SwiftUI root .font(...) does not override explicit child calls like .font(.system(...)), .font(.headline), .font(.title3), etc. Replacing those in the visible screens is necessary.
  • The Mac OS 9 default UI font should be Charcoal for the app chrome and controls. Apple Garamond should stay limited to editorial/display moments, not global UI titles. This PR now follows that.
  • UIKit appearance is now applied in MeuLabApp.init(), which is important for navigation/tab bars because appearance proxies need to be configured before the relevant UIKit views are created.
  • Font registration looks correct: UIAppFonts includes Charcoal/Geneva/Apple Garamond and the PostScript names used by MacOS9Typography match the bundled files.
  • Residual risk: SF Symbols still render with Apple system glyphs. That is expected unless custom bitmap/classic icons are introduced later. Text around those icons now uses the Mac OS 9 typography tokens.

Build verified with generic iOS destination.

@eliel9012
Copy link
Copy Markdown
Owner Author

Update after layout review:

  • Reworked Mais to remove the excessive top gap by replacing the nested NavigationStack with a compact Mac OS 9 header and tighter list rows.
  • Compacted the Bible screen: smaller header, tighter segmented control spacing, reduced book-card height, smaller book typography, and denser testament sections.
  • Reworked visible System UI to match the rest of the Mac OS 9 pass: Charcoal typography tokens, square segmented selector, square info chips/cards, reduced gauge-card bulk, no rounded modern segmented capsule in the top selector.
  • Removed remaining modern SwiftUI font styles from SystemView, BibleView, BibleNavigateView, and the menu view.

Verification: xcodebuild -project MeuLabApp.xcodeproj -scheme MeuLabApp -destination 'generic/platform=iOS' build passed.\n\nSecret scan: staged diff had no .env, token, bearer, API key, password, or secret hits.

@eliel9012
Copy link
Copy Markdown
Owner Author

Atualizei este PR com foco no problema de abertura lenta e fonte da Rádio/SDR.

  • Launch: removi refresh forçado imediato no bootstrap.
  • Rede: push/feed agora começam depois de 20s, não junto com a primeira tela.
  • API: timeout caiu para 4s request / 8s resource para não travar tanto quando backend/cert falha.
  • ADS-B extras: history/alerts/tuya/metrics só rodam depois de haver dados ADS-B básicos.
  • Rádio/SDR: troquei fontes hardcoded .system/.headline/.caption para MacOS9Typography.

Validação: xcodebuild -project MeuLabApp.xcodeproj -scheme MeuLabApp -destination 'generic/platform=iOS' build passou.
Commit: b79e7cc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant