WriteFreely SwiftUI Multiplatform App (Mac, iPhone, iPad)

Another progress update! You can read about how things are going here, and I thought I’d share a few screenshots in this thread.

:point_up_2: The app running on iPhone and iPad. You can choose a collection to view posts in that collection, or choose “Drafts” to see posts that don’t belong a collection, just like on WriteFreely. There’s also an “All Posts” library, to show you, as you might guess, all your posts.

:point_up_2: Here it is, running on the Mac. Same kind of navigation setup — a sidebar to choose the collection, which populates a list of posts in the selected collection, and then an editor for the selected post. Notice there are two fields in the editor: one to edit the title, and another to edit the content. This is a departure from the web app.

:point_up_2: Yep, it supports “Dark Mode” — this feature mostly comes for free when you’re using standard SwiftUI elements, but I had to use a bit around of a workaround for Xcode/iOS/macOS beta 4 to let you choose if you wanted the app to always use a light scheme, always use a dark scheme, or simply follow the OS setting. Not sure if that bug’s been fixed in later betas.

There’s still lots to do, but it’s coming along!

I’m very excited to announce that the public beta is now live! I wrote about it here, and recommend that anyone interested in testing go over the information in that post.

Once you’ve done that, sign up for the TestFlight beta by following the instructions here: https://writefreely.org/apps/ios/beta

Hi. I registered for the beta and downloaded the apps. I have a pro write.as account and a custom domain. When I insert the username and password and the url, I never actually login. The logging in action never completes or errors. I’m unsure what url to use so I tried the write.as one when I view my blog on the menu and my custom domain. Here’s a screen capture on my iPad Air 2019 model running iOS 14.0.1. Can you let me know whether I should use the custom domain? The password was input. Is there a separate forum post for beta users? Thanks for the app

When this eventually makes it to the App Store, will there be support for lower iOS versions? I’m stuck on iOS 12 for the foreseeable future, but run maintain two blogs through my pro account and would love to have the option to post directly through the app. While I’m sure it’s more fully featured than the current W.a app, I can’t imagine a writing app not being able to run on these lower iOS versions? Also, since it’s been in development since lot before iOS 14 debuting. I suppose I would really know, but I’m keeping my fingers crossed that this will be possible, either way. In the months spent following these updates, I guess I hadn’t assumed the situation might be otherwise.

Hey @mpmilestogo, thanks for checking out the beta!

You don’t need to add the /mpmilestogo path to the end of the server address — you just need to enter https://write.as (or even just write.as, without the https://) to log in.

Sorry about the login action never completing — we’re aware of this bug and it’s slated to be fixed before the final release. To get the app out of this state, double-click the home button on your 2019 iPad Air to show all running apps, find the WriteFreely app, and swipe up on it to terminate the app. You should then be able to launch it again with the form reset and ready for you.

(If that doesn’t work, or if it’s giving you a hard time, delete the app from your iPad and re-install it from the TestFlight app.)

So cool! I just logged in and got my previous posts and a draft local post I had started playing around with the app. I’ll make my next post with it. This is very nice!

2 Likes

Hey @protofucker, I’m really sorry for not communicating minimum system requirements more clearly in my articles on Write.as and in my posts here.

Because we’re trying to build both an iPhone app, an iPad app, and a Mac app all at the same time, the technology stack we’re using (SwiftUI multiplatform) to move this project forward for all of those platforms at the same time aren’t available prior to iOS 14/macOS 11.

Apple announced the SwiftUI multiplatform framework at their June developer conference, and I’ve been using their beta operating systems and developer tools since then to develop the suite of apps. As the sole developer on the project, it’d have been impossible to get to this point and support two very different codebases if I’d been building this using the older iOS and Mac frameworks.

Again, I’m sorry for the disappointing news. My hope is that since everything is open source —including the code library we’re using to communicate with WriteFreely— the community will build an ecosystem of great apps for everyone!

Excellent! Glad that worked for you, and I’m having a look at that bug today. :slight_smile:

Hey, I signed up for the beta and tried out the application. The look and feel are minimal just like Write.as and Writefreely itself and I love it. One of the things I miss in the application is to migrate posts from one collection or drafts to another but there is already an open issue for it.

I’d like to add a separate feature request about the selection of collection before submitting the post. “All Posts” seems to be the default view in the application and so it is only natural for users to create new post in this section. But, the problem is that once you are ready to post it, you can’t select the collection and it by default goes to the Drafts collection. The possible work around is to manually copy the text and paste it in a new post under the desired collection. This could be avoided by presenting a drop-down right before submitting the post.

Good comment, thanks @arg! Just to add some detail, if you’re in the “All Posts” list and create a new post, it’ll be added to your Drafts. The thinking was that combined with the issue for choosing a collection/blog, from this “All Posts” view, you could create a new draft, and if you wanted it to be published under a given collection, that would be possible (once that feature was implemented). In other words:

  1. If you’re in Drafts or All Posts, tap the new-post button to create a new post in Drafts
  2. Write your post in the editor
  3. Optionally, select the collection/blog you want to publish to in the editor
  4. Publish your post

Would that flow work for you?

By the way — I believe this is the first WriteFreely/Write.as client app that has an “All Posts” view, and I’d love some feedback on whether folks find it valuable or not.

Yes, that’s exactly the feature I would like in the app. I like the idea of the “All Posts” and one benefit that I can right away see is that I get to see all posts including “Drafts” in a single view that makes it much easier to publish drafts by changing there collection once the feature is in. I think I’ll only be able to give better feedback once I use it with my existing blogs though.

One other thing I noticed is that “Drafts” become a bit redundant with the new in-app local drafts. But, potentially server-side sync between compatible apps would be really nice. This way, the unpublished drafts can truly remain private but still accessible from different platforms.

I have some private blogs on WriteFreely with a lot of posts (journals, etc). One big pain point for me currently is the difficulty to read the entries of a specific date in the past (where the date is the title of the post). All of the search solutions mentioned in this forum are either public search engine-based or the ones which require public or at least an unlisted blog. What I would love to have is at least a title-based search if not full-text search locally in the application either on the “All Posts” view or collection specific view or both that lets me find and jump to the older articles quickly. That will be a big value add I think.

That’s okay. Thank you @angelo for taking the time to respond so thoroughly. Hopefully by the time the official is released, I’ll have been able to update to iOS 14 (it’s a jailbreaking issue, so its ultimately by choice that I’m not just being a normal person and updating like everyone else). Also, I’m hoping that eventually we’ll gain the ability to update our blogs through iA Writer, which will make for a close second, as far as options go. Cheers and keep up the great work!

2 Likes

Thanks for this feedback! I don’t think search is something we can do a good job of implementing for 1.0, but it’s certainly a conversation we can have at the platform level.


Tip: when I want to search for something a site that doesn’t have a search feature, I generally use a site query on DuckDuckGo.com, like so:

site:http://write.as/angelo SwiftUI

Coming soon to a TestFlight beta near you! :smile:

Beta 2 is now live! I wrote about what’s new here:

New Local Posts Are Always Drafts

The first change is that any new post is created as a local post in your Drafts. Previously, if you were viewing the posts in your My Cool Blog collection, creating a new local post would place it in that collection; now, no matter what you’re looking at, it will always end up in Drafts. This makes the button’s behaviour easier to understand — no having to guess where the new post you created ended up.

Moving Posts Between Collections

The biggest change, though, is that you can now move posts between your Drafts and collections. I’m personally pretty excited about this, because it wasn’t even in-scope for the first release. But we got it done, and I’m really happy with how it works!

There are three parts to this feature.

First, the Share and Publish buttons in the post editor have been moved under a single Menu button. Tap it, and you’ll find a few actions you can take on the post.

If this is a local Draft, tapping the Menu button presents two options: Publish… and Share . The Share option will be disabled, because the post is local — you can’t share a link to something that’s not live on the web, after all.

Tapping the Publish… option presents a submenu asking you where you’d like to publish the post. Choose the blog you want the post to be a part of (or Drafts), and it’ll be published there!

If you’ve got a published post loaded in the editor, the menu is a little different. You’ll still see the Publish and Share options, but below that you’ll also see a list of your blogs. Just tap the blog you want to move the post to, and the app will send the request to the server for you.

You can also check out the release notes for bugfixes and other changes.

2 Likes

Hey @angelo ! Very cool update. Let me ask a writing or posting question on the beta. If I install the editor on my iPad and iPhone both and I wish to edit the posts on either device or the other device, what is the best way to do this with the second beta? I’d like to start a post on my iPhone when I’m out and about but finish on my iPad later in the day. It may be I add a link to images or just change the post somehow prior to publishing? What is the easiest workflow to allow this kind of functionality without first publishing the post? Perhaps write it as anonymous and then change the collection to my blog?

Thanks for the second beta. Going to go test and have fun with it now.

Hey @mpmilestogo! You’ve got it, the best way to do this is to write it as anonymous (or perhaps a private ‘staging’ blog), publish it to the server, and then once you’re done move it to a public blog.

With the iOS app now available for sale, signups for beta testing have been closed. We hope to open the beta up to new testers in the future, and thank you so much for all your feedback so far!

Oh, I forgot to mention! I pinned a “how-to” of sorts for the iOS app in the help forum: Using the WriteFreely iOS App. Hope you find it helpful!

WriteFreely for iOS v1.0.1

The first patch release of the WriteFreely iOS app is now available! This update improves performance, and squashes a few bugs, too. It was just approved for release, so if you don’t see it on the App Store, it may still be in the process of rolling out.

If you have a few minutes, we’d appreciate you adding your review!

Here’s a look at what’s new:

Added

  • A link in the Settings screen of the app now points to the How-To guide in the forum.
  • A link in the README to the App Store product page for the iOS app.
  • An alert now warns you if you try to perform a task that requires an internet connection when there is no network connection.
  • Added short extracts of the post body to the post list when the post has no title.

Changed

  • Local posts are no longer deleted when logging out.
  • The app now requires you to confirm when logging out, and indicates how many local edits will be lost by doing so.
  • Various editor improvements:
    • The cursor now focuses on the title field, and brings up the keyboard when loading a post in the editor.
    • The Return key navigates from the title field to the body field.
    • The title field now automatically increases its height as the text wraps.
    • Increased the line spacing in both the title and body fields.
  • When logged out, the app now only shows the “Drafts” list, rather than the “All Posts” list.
  • Buttons that handle network requests (e.g. publishing, reloading from server) now show a busy indicator while waiting to complete the task.

Fixed

  • After moving a post from Drafts/Anonymous to a blog, the share link format retained the old single-post format. This is now fixed.
  • The placeholder text on new (empty) posts now shows reliably.
  • The title and body fields in the editor are better aligned.
  • The app more consistently loads the last draft (or a new draft) on launch.
  • Fixed a crash on launch that was caused by the list of posts from local storage was being changed while being fetched.
  • Fixed a silent failure where the app would appear to login but could not get a valid access token from the server.