Source code for the WriteFreely SwiftUI app for iOS, iPadOS, and macOS
Go to file
Angelo Stavrow dbcb18b1df
Fix bad merges (#215)
* Alert on error: shared code

commit 00e6fabe1dad243eb49d5ffdd9695bda287b8b53
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Thu Jul 28 07:16:22 2022 -0400

    Replace CollectionListModel with FetchRequest in CollectionListView

    commit d54b9471ba9da5d22c904bbb38a555529d3c15a5
    Author: Angelo Stavrow <contact@angelostavrow.com>
    Date:   Thu Jul 28 07:13:13 2022 -0400

        Add error handling to iOS post editor

        commit b48fde47147572fe78379c2bd76430f474ac4822
        Author: Angelo Stavrow <contact@angelostavrow.com>
        Date:   Wed Jul 27 12:13:06 2022 -0400

            Add error handling to macOS

            commit 695da810854414620035005b83d9c366669f96ff
            Author: Angelo Stavrow <contact@angelostavrow.com>
            Date:   Wed Jul 27 12:00:34 2022 -0400

                Log fatal errors and present alert on next launch

                commit 2017a5b437
                Author: Angelo Stavrow <contact@angelostavrow.com>
                Date:   Sun Jul 24 06:22:29 2022 -0400

                    Clean up todo comment

                commit 669e07ecd9
                Merge: efe173c b93e0c3
                Author: Angelo Stavrow <contact@angelostavrow.com>
                Date:   Sat Jun 25 12:08:17 2022 -0400

                    Merge branch 'show-downloadable-logs' into log-localstore-errors

                commit b93e0c3547
                Author: Angelo Stavrow <contact@angelostavrow.com>
                Date:   Sat Jun 25 12:07:38 2022 -0400

                    Refactor class to use protocol

                commit 9b2572ba41
                Author: Angelo Stavrow <contact@angelostavrow.com>
                Date:   Sat Jun 25 11:17:44 2022 -0400

                    Refactor logging into reuseable methods

                commit efe173cfca
                Author: Angelo Stavrow <contact@angelostavrow.com>
                Date:   Fri Jun 24 08:40:10 2022 -0400

                    Update crash alert copy and navigate to help forum

                commit 5a1b400333
                Author: Angelo Stavrow <contact@angelostavrow.com>
                Date:   Sat Jun 18 08:53:25 2022 -0400

                    Log fatal crashes and present alert on next launch

            commit f1b0a20643
            Author: Angelo Stavrow <contact@angelostavrow.com>
            Date:   Wed Jul 27 11:42:05 2022 -0400

                Revert "Log fatal errors and present alert on next launch (#212)"

                This reverts commit 7475b57772.

            commit 7475b57772
            Author: Angelo Stavrow <contact@angelostavrow.com>
            Date:   Wed Jul 27 09:47:06 2022 -0400

                Log fatal errors and present alert on next launch (#212)

                * Log fatal crashes and present alert on next launch

                * Update crash alert copy and navigate to help forum

                * Refactor logging into reuseable methods

                * Refactor class to use protocol

                * Clean up todo comment

            commit a43bd801a8
            Author: Angelo Stavrow <contact@angelostavrow.com>
            Date:   Tue May 31 07:35:40 2022 -0400

                Add error handling to Mac app

        commit a315b09553
        Author: Angelo Stavrow <contact@angelostavrow.com>
        Date:   Tue May 31 06:51:40 2022 -0400

            Cleanup

        commit 7863c2ba08
        Author: Angelo Stavrow <contact@angelostavrow.com>
        Date:   Sat May 28 09:23:16 2022 -0400

            Add error handling to post editor

    commit 2eba4c5c04
    Author: Angelo Stavrow <contact@angelostavrow.com>
    Date:   Sat May 28 07:22:27 2022 -0400

        Remove commented-out code

    commit 230f7a1076
    Author: Angelo Stavrow <contact@angelostavrow.com>
    Date:   Sat May 28 07:17:33 2022 -0400

        Delete CollectionListModel in favour of FetchRequest in CollectionListView

commit fd37a163b9
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Tue May 31 07:36:43 2022 -0400

    Revert "Add error handling to Mac app"

    This reverts commit b1a8b8b29c.

commit b1a8b8b29c
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Tue May 31 07:23:41 2022 -0400

    Add error handling to Mac app

commit 15f84b04c0
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Thu May 26 08:08:12 2022 -0400

    Handle errors in (most) shared code

    Two outliers to come back to are:

    - the LocalStoreManager, where we can’t set a current error in the WriteFreelyModel in methods that can’t throw
    - the CollectionListModel, where the initializer can’t throw because we use it as a property initializer in CollectionListView

commit c5b611b39e
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Thu May 26 07:31:11 2022 -0400

    Add FIXME to track silent failure on fetching collections

    As collections are fetched and added to the `list` property in the CollectionListModel’s initializer, it’s tricky to throw an error here: we call it as a property initializer in CollectionListView, which cannot throw.

    Consider refactoring this logic such that we’re using, for example, a @FetchRequest in CollectionListView instead.

commit b017e21e06
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Mon May 23 15:52:20 2022 -0400

    Handle purging post errors

commit 11d2e41ab5
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Mon May 23 15:12:33 2022 -0400

    Add default values for some error strings

commit dfb3a08608
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Fri May 13 08:44:13 2022 -0400

    Move User Defaults errors to ErrorConstants file

commit 223ebf5b7c
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Fri May 13 08:33:32 2022 -0400

    Set current error on API call handlers

commit faa557c2b4
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Fri May 13 08:01:11 2022 -0400

    Set current error on API call failures

commit a3b805a319
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Fri May 13 07:20:47 2022 -0400

    Add error handling to top-level content view

commit 3a53bec184
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Mon May 9 08:55:43 2022 -0400

    Clean up WriteFreelyModel’s published vars

commit aefcd0d799
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Sun May 8 10:18:21 2022 -0400

    Fix for temporary debugging

commit bf35738957
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Sun May 8 09:17:05 2022 -0400

    Handle errors on logout

commit 01ba57ae75
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Sun May 8 09:16:46 2022 -0400

    Move Account-related error handling up the hierarchy

commit 11200a01a0
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Sun May 1 12:06:36 2022 -0400

    Initial work on presenting alert on error

* Bump writefreely-swift package minimum version

commit 91e2852243
Author: Angelo Stavrow <contact@angelostavrow.com>
Date:   Sat May 28 06:50:34 2022 -0400

    Bump writefreely-swift package minimum version
2022-07-28 07:47:39 -04:00
ActionExtension-iOS Cleanup 2022-05-31 06:51:40 -04:00
iOS Alert on error: shared code (#207) 2022-07-27 09:56:32 -04:00
macOS Add error handling to iOS post editor (#210) (#214) 2022-07-28 07:38:19 -04:00
Shared Fix bad merges (#215) 2022-07-28 07:47:39 -04:00
Technotes Add troubleshooting/deploy details to technote 2021-01-05 16:30:15 -05:00
Tests iOS Add SwiftLint and sort out boilerplate warnings and errors 2020-07-22 10:17:11 -04:00
Tests macOS Add SwiftLint and sort out boilerplate warnings and errors 2020-07-22 10:17:11 -04:00
WriteFreely-MultiPlatform.xcodeproj Fix bad merges (#215) 2022-07-28 07:47:39 -04:00
.gitignore Update minimum required version of WriteFreely Swift package 2021-05-20 16:43:28 -04:00
.swiftlint.yml Implement basic post store and list / editor UI components 2020-07-25 07:02:11 -04:00
CHANGELOG.md Update change log and bump version 2022-04-02 09:43:53 -04:00
CODE_OF_CONDUCT.md Add project metadocuments 2020-07-22 11:54:01 -04:00
CONTRIBUTING.md Add project metadocuments 2020-07-22 11:54:01 -04:00
LICENSE.md Swift from AGPLv3 to GPLv3 2020-07-30 10:39:13 -04:00
README.md Update README with office hours link 2021-05-04 15:49:08 -04:00
WFACollection+CoreDataClass.swift Add WFACollection NSManagedObject class for local storage 2020-09-08 09:54:58 -04:00
WFACollection+CoreDataProperties.swift Fetch user collections into CoreData and list from ManagedObjectContext 2020-09-08 09:55:43 -04:00
WFAPost+CoreDataClass.swift Add WFAPost NSManagedObject class for local storage 2020-09-08 09:57:05 -04:00
WFAPost+CoreDataProperties.swift Add wasDeletedFromServer flag to WFAPost entity 2020-09-17 14:31:45 -04:00
WriteFreely-MultiPlatform (iOS).entitlements Add App Group entitlement 2021-10-15 15:05:51 -04:00

WriteFreely SwiftUI MultiPlatform Client

A multiplatform (iOS, iPadOS, and macOS) client for WriteFreely, built in SwiftUI.

How To Get The Apps

The iOS app is now available on the App Store for iPhones and iPads running iOS 14. Check out this help forum topic for a guide on using the app.

The Mac app is still under development.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

⚠️ Building and testing the iOS targets will work on any version of macOS that supports Xcode 12, but building and testing the macOS target requires macOS 11 (Big Sur).

SwiftLint is run as a build phase for all targets, so that linting warnings and errors are shown in Xcode.

Running the tests

To run the tests, select the scheme you want to test (iOS or macOS) and choose ProductTest from the Xcode menu.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Need help getting started? Find out more about the project's office hours.

Versioning

We use SemVer for versioning and track changes in CHANGELOG.md. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the GPL v3 License. See the LICENSE.md file for details.