jed_fox1’s avatarjed_fox1’s Twitter Archive — № 1,139

              1. Super excited to see this! Some of the coolest things I built while at @Neeva 🧵 @Neeva/1504111623740473344
            1. …in reply to @jed_fox1
              Want to present a UIKit view controller from SwiftUI? UIViewControllerRepresentable does most of what you want, but it can cause some really strange behaviors. Here’s my approach for directly presenting the view controller: github.com/neevaco/neeva-ios/blob/213b229d9b14b65e232b87dd20c2149a5e2b105a/Shared/UI/Util/ViewControllerWrapper.swift
          1. …in reply to @jed_fox1
            Do you find Form/List to be too constraining? I recreated the “grouped” style to allow for more customization: github.com/neevaco/neeva-ios/blob/213b229d9b14b65e232b87dd20c2149a5e2b105a/Shared/UI/Util/GroupedCell.swift
        1. …in reply to @jed_fox1
          Evan and I worked on this super slick segmented control that you can find in the tab switcher: github.com/neevaco/neeva-ios/blob/213b229d9b14b65e232b87dd20c2149a5e2b105a/Shared/UI/SegmentedPicker.swift
      1. …in reply to @jed_fox1
        QueryController, an abstraction for performing GraphQL queries and optimistically updating their results when performing mutations ✨ github.com/neevaco/neeva-ios/blob/6204253e7f2c86c0780d0c0916e2e7a3cf6d39de/Shared/API/QueryController.swift
    1. …in reply to @jed_fox1
      I spent like a month on this problem (on and off): how do I center the domain name in the address bar when there are different numbers of buttons on the sides, while still behaving correctly when the domain name is very long? Here’s my attempt: github.com/neevaco/neeva-ios/blob/6204253e7f2c86c0780d0c0916e2e7a3cf6d39de/Client/Frontend/TabChrome/TopBar/LocationView/TabLocationAligner.swift
  1. …in reply to @jed_fox1
    The settings UI is one of the places where SwiftUI really shines. It’s delightfully simple to add things, and the app has pages of internal settings (for very little engineering cost): github.com/neevaco/neeva-ios/tree/a7845dbfe41f224dc9e6ec1f0f98f72792bcb739/Client/Frontend/Settings