Loom

1 readers
1 users here now

Loom is an iOS/macOS open-source client for Lemmy instances. https://github.com/neatia/loom

founded 1 year ago
MODERATORS
1
 
 

The incoming build v1.1.0b (2023.08.29) will have a new option in settings under a section called Filtering.

The option is NSFW Extended

This will run an offline CoreML model that will run through all thumbnails and present media that is SFW. This is based on the data set used here https://github.com/bhky/opennsfw2

I will always find offline solutions first. The goal is for data to never leave the device when incorporating such solutions.

I will stay vigilant on better and more up-to date solutions. Since this is a fairly new integration, I will also spend time optimizing, but the speed of inferencing is negligible and almost instant, so experience does not seem to be affected.

I have made a new open-source package called ModerationKit, where I will incorporate solutions of any kind to prevent harmful media from entering a user's feed.

2 Notes to be aware of:

  1. ~~There is an issue with config restoration per app launch that will be resolved later this week. You may need to re-enable this filter each open.~~

  2. Computer Vision is never a 100% guarantee.

2
 
 

For every version during the beta expect a delay for iPad and macOS versions to get upto speed to iPhone's variant. iPhone's variant/optimizations will always be first.

My priority is making sure the other form factors are not rushed when applying changes, so that they are properly tuned to the capabilities they can offer vs mobile counterparts.

3
 
 

Base Features

  • All Mod actions
  • Registration
  • report content
  • Searching instances past current linked
  • Interactive instance explorer, acts as a visual learning device for federation
  • Customize how any paginated content loads. Either via manual input/auto
  • Editing photos prior to upload (Avatar/Banner/Post)
  • IPFS settings allowed for custom setups and/or other services past infura
  • Marble allows for custom shader parameters and will be able to go past YouTube links
  • When Marble is activated, Feeds can turn into a Full Screen waterfall GUI, especially for communities whose content are primarily video links.
  • custom emoji editor
  • View and label moderators of communities
  • adjust styling of the keyboard toolbar, add more tools or the ability for users to customize tools
  • allow IPFS to be the content distributor for post links of images/video
  • allow users to remove loom watermark from shared image generations
  • enable engravings on shared content for users to verify original/authenticity of creators in-app
  • add share extension functionality to allow any images/links outside of the app (deeplinking) to be opened in app remotely via share modals
  • add Home Screen widget to observe content from looms
  • push notifications
  • different type sizes for expanded preview of post body content
  • remaining Localizations
  • alphabet slider for community scrolling
  • Add Base featureset/Bug log to settings or side bar
  • block communities
  • block keywords
  • translate content via action

Bugs

  • a thread with breadcrumbs won't update the footer action to reply to the target breadcrumb, remains on the parent
  • navigation stack doesn’t pop for 1 particular post. But is able to pop when using swipe gesture
    • may have been resolved in 2023.8.27 can't reproduce
  • macOS and loading configuration to improve stability overall most issues may be intel specific
    • may have been resolved in 2023.8.28 needs more stress testing
  • macOS center modals on initial launch
  • proper error handling for failed content uploads. Such as when composing posts. Could be size issues.
  • paginated scroll view loading issues and/or more reactive state updates when tapped initially to attempt “try agains”
    • may have been resolved in 2023.8.28 can't reproduce
  • need to run through all of iPad’s and Macs interaction and selectively identify uniqueness to each environment for certain flows.
  • profile loading logic from search
  • sync user stats on each load or via manual interaction
  • upvote icon does not migrate updated upvote data (related to current context needing to update)
  • refine springiness of modal, dismissal primarily esp with keyboard
  • refine search overall, all the interactions when executing queries, empty states and keyboard toolbar usability
  • swipe to drag to dismiss animation refinement of pushed views on navigation stack
  • weird interactions with menu buttons
  • remove bookmarks when signed out of the account
  • add toasts for successful content edits (Comments)
  • something is inconsistent with account restoration check recent (wait:) changes
  • bookmarks send postdisplayviews in style1. Discovered it to be the footer comment button that triggers this
  • when restoring config instance check account’s last logged in’s host.
  • editing post, spawns multiple toasts and does not persist removing post urls
    • this occurs after making a post, may be similar to actionable retainment issue in the profile case in 2023.8.28
  • profile replies are targetting an unknown user sometimes, again has to do with the actionable retainments above.
  • headline in feed view when viewing peer communities (Reproducible via entering from a loom)
  • expandedlayout creating a post replaces mainView, needs to spawn new window instead.
  • readability backdrop removed from the header elements on expanded layout's feed header
  • padding in the modal drawer requires the background color to seamlessly blend. (Added .layer2 to the divider in build 2023.8.30)

Cleaning

  • Cleanup LinkPreview vs Contentmetadata
  • cleanup all preload() logics with the recent sharable changes
4
1
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 
 

1.0.4b was skipped. Since lots of changes were made in Granite, decided to mark v1.1.0 to denote.

Loom: https://github.com/neatia/Loom

LemmyKit: https://github.com/pexavc/LemmyKit

Granite: https://github.com/pexavc/Granite

Testflight: https://testflight.apple.com/join/owwIagmV

Looms
Image Create "Looms" of any group of communities from any instance. Merging their content into a singular feed.
Explore
Image Visit linked instances when connected to a lemmy server. View small snippets of each and their ping response time.
Travelling Modals
Image Writing modals can travel with your viewing context. Allowing you to browse content in any stack prior to publishing.
Bookmark Syncing
Image All your saved posts and comments can be switched between accounts in a dedicated component.
Sharing
Image Share posts or comments as images. With the intention of supporting QR codes and Engravings in the future.
Search
Image Either search all, a specific subcategory with sort support. View expanded contents within the view, interacting with content as normal.
Profile
Image Dynamic threads, despite viewing context. Swipe to reply to comments or tap the more button, to modify, remove, block, etc.
Image Deleting and restoring with toast reactions.
Image Switch accounts, view their profiles, and their scores.
Embedded Webview
Image Custom JS insertion supported, customizing how webpages are viewed via direct user input is a possibility.
Light Mode
Image Light mode and Dark mode supported. Refer to the color group in Assets to define preferences.
5
 
 

Accessing a url with .local or 127.0 in the domain seems to be requesting this access. I have disabled setting such urls. This is just for the Testflight. Otherwise you can build the iOS/macOS client locally and allow for localhost access

Another area this can occur is in Search. I am still investigating why/how a request can push this modal through. A post's image url could be of a localhost, and thus it is being attempted to request causing this notification to appear.

I have tested the API endpoint with local as a query since posts can either be federated, local or subscribed for instance, but that wasn’t causing it.

6
 
 

v1.0.3b (build 15/build 16)

  • (Mobile only) Swipe-able menu on feed hosts profile info, blocked view and settings
    • accessed by dragging the feed from the leftmost side of the screen towards the center/right side
    • tap the three dots to switch accounts, logout, add accounts.
    • I am still thinking about the interaction of this menu for the iPad/macOS, switching accounts is disabled on these devices for the time being.
  • Community browser moved to looms page
    • will be adding alphabetical sorting/scrolling to community browser in the next update
  • Explore page is its own dedicated tab, activated 3D globe on iPad
    • the 3D globe will be availble on mobile soon. It will visualize the connections while browsing instances. providing further functional details over time
  • Search (instance level) is now a dedicated tab, search appears independently (same location as before) when inside a community, searching that community for specific content
  • Share posts/comments as an image (only from inside posts triggered from feed or on feed itself for now), (iPhone optimized, will optimize for iPad and macOS for v1.0.4b)
    • will add QRCode options/styling
  • Improved loading times of the feed, prioritizing provided thumbnails in the response
  • Minor design tweaks in various locations
7
1
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 
 

iOS TestFlight: https://testflight.apple.com/join/owwIagmV

macOS releases: https://github.com/neatia/Lemur/releases


v1.0.3b (build 15/build 16)

  • (Mobile only) Swipe-able menu on feed hosts profile info, blocked view and settings
    • accessed by dragging the feed from the leftmost side of the screen towards the center/right side
    • tap the three dots to switch accounts, logout, add accounts.
    • I am still thinking about the interaction of this menu for the iPad/macOS, switching accounts is disabled on these devices for the time being.
  • Community browser moved to looms page
    • will be adding alphabetical sorting/scrolling to community browser in the next update
  • Explore page is its own dedicated tab, activated 3D globe on iPad
    • the 3D globe will be availble on mobile soon. It will visualize the connections while browsing instances. providing further functional details over time
  • Search (instance level) is now a dedicated tab, search appears independently (same location as before) when inside a community, searching that community for specific content
  • Share posts/comments as an image (only from inside posts triggered from feed or on feed itself for now), (iPhone optimized, will optimize for iPad and macOS for v1.0.4b)
    • will add QRCode options/styling
  • Improved loading times of the feed, prioritizing provided thumbnails in the response
  • Minor design tweaks in various locations

v1.0.3b (build 13/build 14) // (2023-08-17)

v1.0.3b (build 12) // (2023-08-16)

v1.0.3b (build 11) // (2023-08-15) - iOS: Ready | macOS: In Progress

  • community resolving bug
  • add communities to a loom from the loom button as well

v1.0.3b (build 10) // (2023-08-13) - iOS: Ready | macOS: Ready

  • Create "Looms" of communities from any instance to merge their content into a single feed.
  • MarbleKit integrated, more FX options to view marbled variations of
  • stability improvements around Granite affecting transitions and animations upon cache restores

v1.0.3b (build 9) // (2023-08-13) - iOS: Ready | macOS: Ready

  • scrolling to fetch more, just defaults to a try again state, until the investigation for the cause succeeds - solves community picker fetching bugs
  • adjustments to profile styling and source of comment threads of other users
  • symbols for where comment locations are being fetched from (base, source, peer)
  • pager loading animation

v1.0.3b (build 8) // (2023-08-12) - iOS: Ready | macOS: Ready

  • blocking
  • visualizer (marbler)
  • settings design refinement
  • cleaned up some code for reusability purposes
  • new content browser
  • badges/symbols like admin, locked, pinned posts
  • networking/caching/debouncing
  • proper error toasts

v1.0.3b (build 7) // (2023-08-10) - iOS: Ready | macOS: Ready

  • search functionality, regression issue fixed
  • comment sorting + new picker selector
  • updated randomizer for instances
  • feed should reset upon new instance connection
  • config settings regression issue fixed
  • removed auto correction for add to profiles

v1.0.3b (build 6) // (2023-08-10) - iOS: Ready | macOS: Ready

  • explore page.
    • locked to linked instances for favoriting, adding and connecting too. (Note: You may have to manually refresh the feed to see the updated perspective.)
  • memory issues
  • Fixed IPFS key setting

v1.0.3b // (2023-08-06) - iOS: Ready | macOS: Ready

  • Bookmarks affect Lemmy's save NOT just locally stored (iOS/macOS)
  • Browse federated servers in an interactive graph and view server uptimes
  • Memory issues with recent changes to mac
  • Bookmark ordered in desc. date.

NOTES: 2023-08-05

  • Massive optimizations and improvements all round. were made. Moving update to 08/06

v1.0.2b // (2023-08-04) - iOS: Ready | macOS: Ready

  • Account registration (captcha only)
  • Share functionality (macOS)
  • iPad Layout mimics the mac variant

v1.0.1b // (2023-08-03) - iOS: Ready | macOS: Ready

  • iOS Search functionality (perform search was not firing w/ query)
  • Update config/local experience w/o logging in

v1.0.0b // (2023-08-03) - Completed

  • base build

preserved