this post was submitted on 28 Feb 2024
19 points (95.2% liked)

Arctic

377 readers
3 users here now

Arctic is a Lemmy client for iOS built on pure Swift. It currently supports iOS 15+ and Lemmy v0.17+

Get the latest version on TestFlight, or check it out on the AppStore.

If you would like to support Arctic’s development, feel free to Buy Me A Coffee

founded 1 year ago
MODERATORS
 

It’s been a very busy couple of weeks for me since the AppStore release. I have not had much time to keep up with new beta posts, so this post aims to cover all the changes in v0.4.0.x updates.


As I am sure most of you have noticed, Arctic finally has a new default icon. I’m super excited about this. The original icon was only ever meant to be a placeholder, and it ended up sticking around far longer than I had intended. With the new icon, I’ve set up a full set of branding resources that I will be open-sourcing later this week to enable community icon contests in the future.

Widgets are here! I’ve added the first set of widgets finally. This set is fully configurable so you can set up feeds based on specific accounts, communities, instances, sorting, etc. I have a lot more widgets planned, and I will try and roll out a new set every couple of updates.

Crosspost rendering has been improved. Crossposts will now embed the original post and display it inline, this helps with following the original thread and it looks a lot better than a long blockquote. I’ve also added a crosspost indicator to post views, so even from the original post, you can browse all the crossposts for the original link.

Link peeking has been enabled. You can now long-press any link and peek at its content just like in Safari. With this addition, I’ve also added some convenience options for opening YouTube links in Piped or opening them in the YouTube app.

Full-screen scrolling has been added. You can enable Hide Bars On Scroll and the top and bottom bars will be hidden while scrolling to enable full-screen viewing.

The markdown editor has several new improvements. Inserting links and images has gotten smarter, when inserting, the selected text will automatically be added as the link title or URL if applicable. Lists will now automatically continue when pressing return while composing a list. Special markdown characters will now render in a muted color while editing. I’ve also added actions for changing indentation (tabs).

There are too many changes to write about each one individually, but as always you can find the full change-logs below. If you encounter any issues in the latest release, please let me know. I am hoping to submit a new update to the AppStore this weekend.

Thank you, to everyone for all the feedback and suggestions. It’s been a huge help in improving Arctic!

Changelogs

v0.4.0.3


  • Added 2 new icons Mystic Globe and Outline
  • Added context actions for youtube links to open in Piped, or open in the YouTube app
  • Added option to preview posts when long-pressing a post cell
  • Fixed an issue that could cause a crash when long-pressing a link preview
  • Fixed a crash that could occur when pressing return while composing a comment or post
  • Fixed an issue where forward navigation could show an incorrect font size
  • Fixed an issue that could cause a zooming transition when using forward navigation
  • Organized sketch projects for open-source release of branding

v0.4.0.2


  • Added a new default icon for Arctic
  • Added support for OpticID on iOS 17+
  • Added a new changelog controller
  • Added option to embed crossposts in post views
  • Added crosspost indicator, and browser to open post views
  • Added support for peeking URLs in markdown by long-pressing links
  • Added options to upload images from the Account and Community settings page
  • Added option to set the matrix user ID in account settings
  • Added swipe actions to profile view cells
  • Added long-press actions to profile view cells
  • Added toolbar actions for indentation in the markdown editor
  • Added support for automatic list continuation when pressing return in the markdown editor
  • Fixed crash when editing blocked communities
  • Fixed some warnings during the initial layout of post-feeds
  • Fixed an issue that could prevent post cells from updating when needed
  • Fixed a UI glitch that could happen when swiping cells in some views
  • Fixed comment swipe actions not displaying "Unvote" option for voted comments
  • Fixed indentation for root comment cells being larger than needed
  • Fixed video controls not working in link previews
  • Updated the Lights-Out icon
  • Updated special character detection in the markdown editor
  • Updated post-composer layout to improve keyboard handling
  • Updated rendering of app icons in the settings menu
  • Improved handling of videos in the media viewer

v0.4.0.1


  • Added the first set of Widgets, This widget set allows configuring your own post feed
  • Added support for removing drafts from the draft history
  • Added option to disable comment listing modes, this is enabled by default.
  • Added scaled and controversial sort types to the default post sorting options
  • Added option to insert image from a URL in the markdown editor
  • Improved markdown editor to handle link and image insertion better. highlighted text will now pre-populate the link entry
  • Fixed jumpy behavior when selecting context text in comment replies
  • Fixed crash on first launch when opening an external url
  • Fixed voting in post feeds with vote buttons disabled, this will now update the cell appearance
  • Removed post feed action for opening Experimental SwiftUI view

v0.4.0


  • Added option to set the vote display style (separate, combined, none)
  • Added option to disable voting buttons in post cells
  • Added option to hide top and bottom bars while scrolling
  • Added the Mod Zone to the inbox view
    • The unread badge will now include any unread reports and applications
  • Updated the markdown editor to render special markdown characters as muted
  • Updated the community selector to default to listing all communities when in guest mode
  • Fixed a crash that could occur when changing accounts
  • Fixed an issue with markdown badges where they could be wrapped over multiple lines
  • Fixed Lemmy user and community links not working after v0.3.0

Links

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 8 months ago* (last edited 8 months ago) (1 children)

@[email protected]

Regarding iOS watchers and notifications, they don’t open the specific post/comment inside the app for me when I tap them from the iOS Notification Center since a few versions.

Also, would it be possible to add the watchers to the in-app Notification Center (Inbox)?

Anyways, congrats on the new AppStore milestone release!

[–] CreatureSurvive 3 points 8 months ago* (last edited 8 months ago) (2 children)

I did just notice that watcher notifications do not update the tab when launching the app from a notification. So if you are in the inbox section for example, and then open a notification, it will load the post in the posts tab, but not switch to that tab. Is this the issue you are having, or is it not loading the post at all?

As for showing watchers in the inbox tab, this is something I would like to do. Currently I do not keep any logs for watchers on the notification server, so it’s not something that could be queried from the server. Currently the only logging I do for watchers is tracking the total number of hits a watcher finds. I would prefer not to store more information than necessary. However I may be able to do this next n the users device when a notification in received by logging the post id.

I did attempt doing this by using the device Notification Center, but it’s a little counter intuitive since the notification is cleared as soon as the user taps it.

I will look into it and see what I can come up with. If nothing else, I could always log the post id on my server so that you can load the full history of a watcher in-app. The only real downside with any of these approaches is that Lemmy does not currently support queries for multiple posts, so I order to show a list of hits, it could mean hundreds of api calls which I’d prefer to avoid.

I have a back-log for some of your suggestions such as a favorite communities, so I may not get to this right away.

Anyways, congrats on the new AppStore milestone release!

Thanks! I haven’t had the chance to write a post about this yet. Hopefully later today!

[–] [email protected] 1 points 8 months ago* (last edited 8 months ago)

Is this the issue you are having, or is it not loading the post at all?

It’s not loading the posts at all when Arctic is already open in the background and a community/post view is already opened, but I think they do open when the app is closed.

I am 99% sure that it’s not in a different tab, but I need to reconfirm this as I honestly haven’t thought about it opening in another tab.

I'll try to make a screen recording next time I get a notification (I got one for your reply, but I forgot about this).

[–] [email protected] 1 points 8 months ago* (last edited 8 months ago) (2 children)

I Just got a watcher notification, and it didn’t open.

Arctic was open in the background, with the home feed opened in the posts tab. I checked all tabs, and it was not open on any tab.

Does this log help?

[2024-03-15 07:20:19 +0000] [info] [arctic] didReceiveNotification: <UNNotificationResponse: 0x300625800; actionIdentifier: com.apple.UNNotificationDefaultActionIdentifier, notification: <UNNotification: 0x30067fcf0; source: com.creaturecoding.arctic date: 2024-03-15 00:00:03 +0000, request: <UNNotificationRequest: 0x30067fdb0; identifier: Optional(B22D8A94-625B-4CF0-854E-F70096E5B408):13131211, content: <UNNotificationContent: 0x10160a360; title: , subtitle: , body: , summaryArgument: (null), summaryArgumentCount: 0, categoryIdentifier: , launchImageName: , threadIdentifier: , attachments: ( ), badge: (null), sound: <UNNotificationSound: 0x302235030>, realert: 0, interruptionLevel: 1, relevanceScore: 0.00, filterCriteria: (null), screenCaptureProhibited: 0, speechLanguage: (null), trigger: <UNPushNotificationTrigger: 0x300b2c3a0; contentAvailable: NO, mutableContent: YES>>, intents: ( )>>

[–] CreatureSurvive 2 points 8 months ago

Unfortunately this log does not help. The intention of this log message was for debugging issues like, however it looks like the system automatically redacts any useful information from it. I’ll update it to manually log the useful bits.

With that said there should be 1 or 2 log messages immediately after that message that mention handleUrl() that may be useful in determining if the post url was found, and if it is correctly formatted. I looked at this for quite a while and could not find what may be causing this issue to only happen for watcher notifications and not other notifications. I’m still looking though.

[–] CreatureSurvive 2 points 8 months ago

I pushed an update that will hopefully give me some more information about this issue. I improved the logging, so it will actually log what is needed when opening a notification. I also updated the handling a bit which may or may not resolve your issue. If nothing else, the logs should now show me what is going wrong.