cross-posted from: https://lemmy.ml/post/1249875

Feel free to download and test yourself by joining the TestFlight group.

https://testflight.apple.com/join/6jaRU6rD

Please leave feedback either here or on GitHub.

Note this is very much a work in progress still and this is very barebones. I plan to continue work and submit nightly builds on TestFlight, so be on the lookout for the new releases.

Happy scrolling!

  •  gkd   ( @gkd@lemmy.world ) 
    link
    fedilink
    English
    21 year ago

    There are a few things that are a bit harder to do with RN given a bit of easy access to APIs, but you can always make modules to interface with native code. For one, this little image thing I used is just pulled from a library. It’s a bit iffy, and I am writing a replacement for that now. Same with markdown rendering.

    As far as the UI itself, it gets pretty close to what you’d see with a native UI, if not exact. But I certainly do understand why from a dev standpoint you’d like to use SwiftUI, it’s great!

    If there’s anything that you’d like to see in the UI though let me know!

    • It’s all very nitpicky, but for me, that’s what differentiates a good UX from a great UX. Just “close” isn’t really enough for me personally.

      Take the swipe gestures on comments for example:

      Let’s take a look how they look like:

      Apollo | Memmy

      Here are the main differences:

      • In Apollo, the icons are smaller and have different padding, which looks better to me (should be an easy fix)
      • The icons are animated in Apollo (they have an animation when they are “locked in” before lifting your finger)
      • The icons have an outline version and a filled version in Apollo (although I don’t really care)
      • The haptic feedback is more subtle in Apollo (big one for me as I absolutely love the delicate feedback that the “Taptic Engine” in iPhones can provide)
      • The haptic feedback only works the first time a given icon/action is “highlighted” (or locked in?) without releasing your finger in-between (like shown in the video, swiping multiple times left and right)
      • When lifting your finger after locking in the downvote action, it briefly shows the upvote icon during the animation where the comment slides back into position - Apollo shows the downvote icon, making it very clear that you just downvoted and not accidentally upvoted

      I know that all of these things are achievable, but I feel like a lot of this would be “more correct” by default when using SwiftUI (the sliding mechanism is probably using a lot of custom code in Apollo as well, but still).

      Another example are grouped lists (say Profile > Subscriptions). Tapping on an entry instantly highlights it. In native SwiftUI apps, the list items have a small delay before highlighting. While this might seem odd, it’s less irritating when scrolling with an ever-so-slight delay between tapping the display and beginning to scroll. Also, the separators between elements starts where the text starts in SwiftUI (by default), the arrow icon is thicker etc.

      Again, this is very likely achievable with React Native, but with SwiftUI this is the default behavior.

      As I said it’s all very nitpicky, especially considering that Memmy is in a very early state. I feel kind of bad for having so much criticism over issues so minor. But these minor things is what made Apollo so great for me, even over all other third-party apps that were also good, but not great in my opinion.