Skip to content

sohocoke/KagiTabs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

KagiTabs

Notes

  • Targets:

    • The app target is set to run on macOS 11 or later.
    • For quicker iteration on view components, the preview target leverages the Xcode Preview feature available on macOS 14.
  • The main focus of this work is the implementation of the toolbar, particularly the tabs as the tab set moves from 1 to many items.

    • Several attempts were prototyped:
      • Only relaying on NSStackView
      • Declarative auto layout constraints defined in Interface Builder only
      • Entirely programmatic layout of tabs
    • The final implementation strategy was to use NSStackView in conjunction with computed layouts, which went through some iterations in order to successfuly balance the following objectives:
      • provide a complete realisation of the specs outlined in link1 and link2
      • handle unspecified edge cases, such as long webpage titles
      • allow glitch-free animation
      • work properly when used as a view of an NSToolbarItem
      • not be a nightmare to understand and maintain
  • Wiring between view model and presentational components is achieved using the following:

    • macOS bindings where straightforward
    • Combine + KVO
  • The following needs further refinement or has only been through basic testing:

    • Pixel-perfect alignment
    • Dark Mode compatibility
    • Keyboard navigation (when 'Keyboard Navigation' setting enabled in System Settings)
  • The following has been considered out of scope:

    • Main menu
    • Any WKWebView behaviour beyond that out-of-box
    • Failure cases for networking
    • Localisation
    • Any performance optimisations

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages