Loom

25 readers
2 users here now

Updates can be found on https://loom.nyc

A Lemmy client for iOS & macOS. Android/(Windows/Linux(Electron)) coming soon.

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

founded 1 year ago
MODERATORS
1
1
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 
 

General Update

Busy with outside engagements at the moment. Otherwise, last week was focused on optimizations and other stability improvements.

  • Action extension to set instance url to any url you find outside of the app (tap a native share icon and then "set instance")
    • Works with RSS links / mastodon intances / lemmy instances
  • Cancel pending subscription requests
  • Ability to copy post urls to clipboard or open posts in safari via more button (three dots).
  • Added a "Set Instance URL" button to the hamburger menu to make it easier to find (Can also tap the url on the main feed header).

I will be free again This Thursday. Focused on pushing further stability improvements and nitpicks/ aligning iPad and macOS with their iOS counterpart. And finally starting the inbox/direct-messaging/push-notifications features.

Android

I have gotten a hold of a (low-end) non-foldable Android device. And am experimenting porting this work over. I also have a foldable Android device. So keeping foldable experiences when interacting with media in mind. Do not expect anything functional right now. But, 100% stay tuned for another open-source repo starting the Android version of Loom, fully native/Kotlin. Granite/LemmyKit/FederationKit will be converted over prior to the front-end app being built itself. These repos will become available October-November at the earliest.


Meta

Previous Summaries:

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#

2
1
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 
 

Instead of being strict on Friday updates like this. I will leave it as between Friday and Sunday.

Some features (RSS Feeds/custom feed styles) and improvements will not appear until build v1.1.0b (2023.9.4) which should be sent out by tonight PST.

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


The 2 notable updates this week is content filtering and integrating FederationKit, which will aggregate not only Lemmy, but RSS Feeds, Mastodon, and more.

RSS and Mastodon's current integration is just for bookmarks and the main feed at the moment.

I have also added a new option to change the appearance of the feed to a more classic reader feel rather than social app.

Aggregation Sources (Aside from Lemmy)
Image RSS feeds can be pulled when setting the instance URL to a valid endpoint. Pagination is not currently supported, but will be in the future. Looking at supporting Atom/JSON streams as well.
Image Mastodon feeds can be pulled when setting the instance URL to a valid mastodon instance. Pagination is not currently supported, but will be in the future. Interactions are disabled for the time being.
Safety
Image On-device CoreML models + keyword filtering to remove posts from the feed. NSFW Extended will remove posts that are detected as NSFW even if they are not flagged as so. Requires an image for inference, which can be generated even without a thumbnail_url property. (As long as a post url itself is available).
Styling
Image Intended to allow full user customization in the future. Currently supports a "social app feel" and a "reddit-like reader".

Note:

This week was lots of performance optimizations on the front-end as well as major underlying API changes for communicating with federated networks.

I have not kept iPad and macOS variants up to date (or at least have not tested them thoroughly. In theory they should be at least close to upto date as its the same codebase).

But since there are more testers on iPhone at the moment. I am looking at mobile as the flagship and goal to achieve very high stability and performance up to all iOS 15.4+ devices. I am hoping to bring the other form factors up to speed by the next feature summary.

3
 
 

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.

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.

4
 
 

Hello all,

Sorry for being MIA. Personal and professional developments had me taking a step back for the past 30 days. I will be continuing some significant pushes and updates from November 1st on-wards.

Prior to November 1st, I will be pushing updates to the desktop/MacOS counterpart so it is up to date with iOS/iPad's testflight.

5
 
 

Also the uploads are always using 3rd party with multiple options setting the posts as URL posts. Built around the aspect of not using a pictrs backed lemmy

Some advantages of seeing so far:

  1. Frugality on storage
  2. Can secure content that is shared on the instance from the core members
6
 
 

Felt this was important enough to share a mid-week update.

The incoming build 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 fresh 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.

7
 
 

The solutions I will employ will be on-device, and just be able to provide additional warnings/censorship for posts not marked appropriately and obviously for posts that are incredibly harmful. This is not the type of content I want to be building something to be near. And will do my best to find solutions in preventing such.

8
1
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 
 

v1.1.0b is in Review. Will be available by end of day.

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.
9
 
 

I am prepping a larger overview to cover all the changes made in v1.0.3b, but it is kinda late and still would like to share a quick update.

I feel very satisfied with how all of the underlying packages supporting Loom have gained lots of needed robustness all around. I view this to be close to the real beta. Probably should have called v1-1.0.3b Alpha.

This week, expect lots of refinements that will be much more consumer facing/front-end.

Details:

iPad and macOS versions will be ready by v1.0.4b (2). Still some things need to be revised.

Community info view (which triggers subscribe) will be functional again in v1.0.4b(2). It is inactive for this version.

  • Share screen shots of comments and posts, auto-generated
  • Slideable menu on the main feed
  • Keyboard toolbar for quick markdown shortcuts and other quality of life needs. A great little feature to keep adding to in the future.
  • Improve speed of modals appearing and navigation overall
    • Granite has been updated with a custom navigation stack. I am working on documentation to help share how to utilize this for your own applications. When working with multiple form factors and or client types (iPad/iPhone/mac) I found this solution I incorporated to be simple and powerful.
  • Names of Looms are editable again
  • Content actions revised and hooked (there's many ways to do things, so I am still making sure I get them all)
    • Edit
    • Viewing Post content
    • Block (Feed)
    • Share
    • (There are others being worked on or checked for completion, like Report)
  • Fixed image uploading, compression occurs prior. This will be customizable in a future update. It is currently targeting 100kb.
  • Lots of nitpick adjustments to design overall

Major Known Issues:

  • Login and Add Account modals dismiss prematurely. Essentially one won’t be able to login.
  • Endless spiral for loading collections of any kind, feed, community listing, post content. Simply refresh to fix it. The issue is known, just haven’t resolved yet.

Lot's more to cover. Wanted to get this build out and start the v1.0.4b journey, as I felt the quality has increased by quite a bit since the initial v1.0.3b.

10
 
 

v1.0.3b (build 13)

What’s New

  • UX changes for the Loom UI + Creating Posts
  • Setting custom Instance URLs
  • Editing posts/comments (only when viewing posts or within profile)

macOS build will be available soon. iPad-specific optimizations will be addressed in (build 14)

Changes

Loom UI Moved
Image The Loom interface moved to the view that was meant for composing posts. Creating posts has been moved to a modal format, triggered by the Loom logo button on the front page. Essentially switching spots.
Set Instance URL
Image Tap the “Front Page” header view text and/or the domain above it, to trigger the set instance url Modal.
  • You can now edit posts and/or comments when viewing a post or in your profile.

  • UX / design tweaks and nitpicks in various places

  • Further optimizations around state updates, bookmark component performance when switching tabs and settings component’s ability to update profile settings when logged in.

Notes

Changelog

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

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

11
1
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 
 

The next major update will be set for Friday and the same cadence will be applied for major updates per Friday.

Expect smaller updates throughout the week to focus on various bugs and improving performance on all platforms, macOS + iPad especially.

I will primarily use the Changelog to communicate update details.

Secondary Changelog: https://neatia.xyz/post/281

New post updates will only be made if there are Major feature changes/entirely new features outside of the current feature-set. Major feature changes means, entirely new flows to execute an existing feature.

12
 
 

Known Issues:

  • community list syncing on macOS
  • certain micro-interactions
  • localization of lots of recently added strings

The last major feature for the "base functionality" build, is mod view. This will turn the interface into a "Mod Mode" where actions on posts/comments/persons/communities will have an additional control panel to apply mod actions. The date of this to be completed, is undecided as I'd like to review the performance around all of the base functionalities again this week.

Registration/uploading JPGs or HEICs is a bit finicky, this will be looked at this week as well.


When it comes to features outside of the "Base Scope". I am excited to get to this feature that has been on the GitHub for some time, Engravings. This will allow people to "invisibly watermark" their content. Allowing you to verify what content is yours. There are other applications of it, I'd like to experiment with such as creating shareable cards of a user's community, loom, profile, etc.


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

macOS Build: https://github.com/neatia/Loom/releases/tag/1.0.3b(10)

Looms
Image Create "Looms" of any community from any instance. Grouping their content into a singular feed
13
 
 

image

Thinking about design a bit more, but overall I really like the idea of being able to do this.

For instance, I wanted to merge some of the music communities in Lemmy.world into 1 feed for a playlist. So making a Loom to act as my little music visualizer for all of those is nice.

Furthermore, there was a user who noted “This is why users need the ability to group multiple communities into supergroups” by @LazaroFilm some time ago. I feel this resolves that.

They also did not like the idea of this setting being platform specific. So down the line, finding a way to create a sorta schema to share with other developers would be cool. Or the other way around, where other developers were to make one, Loom could adopt.

14
 
 
  • visualizer (“marble”) for youtube videos
    • playback controls coming in a future update
  • debouncing/throttling logics (LemmyKit updated as well)
  • error toasts to communicate content interactions + posting errors
  • bookmark syncing (login to sync bookmarks and navigate between local + logged in)
  • new content browser
15
 
 

Adding, prev/next controls to control !music to act as a playlist

16
 
 

Well for macOS, opening in an external window would be cool.

So

  • Picture in picture (multitasking outside of app + in app while browsing)
    • it would be kinda funny (sorta cool) to have a watchOS counterpart so you can “swipe it” onto your watch for viewing when on mobile.
      • actually tvOS airplay makes more sense. Actually, airplay would be a cool browsing experience.
  • open in external window (macOS)
  • Drawer/airplay for iOS?
17
1
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 
 

When available:

Just put in a youtube video id in the body of your post and nothing else to generate.

18
 
 

This Update (v1.0.3b(6)):

  • 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
  • cached preferences will reset again (account, bookmarks)

Next Update (v1.0.3b(7)):

  • ~~Explore page's community discovery~~ I feel the accounts page is enough for community page discovery
  • Registration and Login keychain autofill

Entire 1.0.4b:

  • Explore page and community discovery
  • Improving sharing content outside of the app
  • Registration and Login keychain autofill
  • Going back to “Front Page” on desktop/iPad
  • Typing custom url to set app’s base instance without logging in

—-

Build is live for iOS (not optimized for iPad yet): https://testflight.apple.com/join/owwIagmV

macOS (not as optimized as the 3D scene is visible too): https://github.com/neatia/Loom/releases/tag/1.0.3b(6)

Note:

Still debating whether to move over to the new app bundle id for Loom. May do so after moderation tooling before another public post about Loom in other communities. I am going to keep the current build at v1.0.3 for a bit so the Testflight updates quickly.

Prior to moving onto moderation tooling, I want to experiment with additional caching solutions. I feel this could be a pain point for lots of people hosting small instances. If there’s an app that is inefficiently requesting data over and over. Even though rate limit settings are available, maybe additional work can be done on the client to balance between excessive calls + UX.

19
 
 

Basic search on linked instances against your connected domain. You can favorite them for quick access and/or view pings easily.

20
 
 

Work in progress exploration screen for federated servers and uptimes. Going to circle back on a simple UI for the time being to make sure base functionalities are working optimally.

Searching for instances, viewing their local communities, viewing uptimes, and manually entering instance domains, in a basic vertical stack layout.

But, excited to keep working on this Scene/3D space to interact with Lemmy. At least to me, it truly visualizes the impact of open social networks/link aggregators.

21
 
 

Having neglected networking and resolving comments/posts, I am pushing an interim build prior to 1.0.4b, to improve such.

I feel this should make browsing a bit more smoother and less chaotic/unpredictable.

I have also updated LemmyKit to support this. It’s like “All, Local” viewing types. But, it is not as “Explicit”. Instead using actor_ids or ap_id of a resource to define where to view what from. This can be comments on a post or the community linked via comment/post headers.

Within a community, if entered via a comment header. If it was a peer instance, one can switch between, peer, base (local), and source (where community was created) via the three-dots on the top right.

Build is live for iOS: https://testflight.apple.com/join/owwIagmV

macOS needs a bit more touch-ups, might wait for the 1.0.4b release.

22
 
 

/!\ APP NAME CHANGE: /!\

  • To not confuse with a previous Lemmy client known as "Lemmur", 2m's. The name has been changed to "Loom".

This Update:

  • Bookmarks trigger Lemmy’s save API NOT just locally stored (iOS/macOS)
    • Bookmark ordered in desc. date.
  • Optimizing scroll performance, content management, for all platforms. (Still ongoing)
  • Memory issues / Improvement of overall UI responsiveness
  • iPad's UI (Larger screens, >9") addressed
  • Begun Explore tab development, exploring all federated instances and local communities within an interactive experience. Goal is to communicate the idea of federation concepts visually and functionally.
  • Added preliminary debug settings. To reset the base instance to Lemmy.world

1.0.4b Next Update:

  • Explore page and community discovery
  • Improving sharing content outside of the app
  • Registration and Login keychain autofill
  • Going back to “Front Page” on desktop/iPad
  • Typing custom url to set app’s base instance without logging in

Updates can take anywhere from 4 - 24 hours to appear on iOS/iPadOS Testflights, due to review times.

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

macOS download: https://github.com/neatia/Loom/releases/tag/1.0.3b

23
1
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
24
 
 

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

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

Full Changelog

Constant changelogs paused in favor of standalone feature summary posts, per version release.


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
25
view more: next ›