rajdeep / proton

Purely native and extensible rich text editor for iOS and macOS Catalyst apps
Other
1.26k stars 81 forks source link

Are there likely breaking changes coming soon? #208

Closed anishjain123 closed 1 year ago

anishjain123 commented 1 year ago

I am exploring different editors to use for my macOS and iOS application that i am rolling out and have already been burned by one editor so I was wondering if this would be a safe bet to use.

Do you foresee any major breaking changes between the current state (which is already really awesome!) and a v1?

Do you think this is stable enough where it could be used for an application?

Regardless, love the work you are doing here!

rajdeep commented 1 year ago

@anishjain123, glad you are liking Proton. As you might have noticed with recent releases, of late I am putting in more time and churning out improvements and bug fixes. As a practice, I generally tend to avoid breaking changes. The API I have come up in Proton is very stable for most part and it's very rare that I have to go back and change something public. Based on all the improvements and features that I have in my backlog, the biggest breaking change that I see coming in future is in regards to changing the minimum supported iOS version. As of now, Proton supports iOS 10 onwards which will likely be moved up to iOS 13 or 14 with the version 1.0 rollout. Other planned breaking change in near term is around dropping optionality of EditorViewDelegate functions which should be very easy to fix in consuming apps. Most of the improvements and bug fixes will be internal and not likely to impact the public API as much.

I do feel that it Proton is stable enough to be used in a Production app and is already in Production in a very popular app. Further to that, Proton Editor is based entirely on UITextView and has no reliance on any other 3rd party framework, which helps keep it much stable and inline with all the improvements/features coming in UITextView itself.

I'd be happy to hear how your evaluation goes with Proton. Feel free to suggest improvements or report a bug in case you do run into one.

All the best for your app.

anishjain123 commented 1 year ago

@rajdeep Thank you so much for the detailed response. As a swift developer, I think this is likely the #1 most needed library within swift and it is surprising that it took someone such a long time to do something like this so well.

I am in the process of swapping out another editor for this and will keep you posted on developments.

So far, I can already say this is one of the best swift libraries i have ever come across and I salute and commend you for your effort.

It is truly people like you that make the open source ecosystem so amazing.

Keep up the great work!

rajdeep commented 1 year ago

Thank you for your kind words, @anishjain123. I look forward to hearing about your experience.

anishjain123 commented 1 year ago

I am currently building a iOS/macOS SwiftUI application and am trying to replace my existing editor with proton. I know proton is UIKit and Mac Catalyst and so I found some good resources on how to put UIKit within SwiftUI for iOS, but do you know any good resources on how to use catalyst within SwiftUI for macOS? Kinda struggling there a bit!

rajdeep commented 1 year ago

Unfortunately I have not managed to find time to look into SwiftUI support in that much detail until now. I have also only seen iOS examples with UIKit for SwiftUI and surprisingly none for mac Catalyst. Though, I would hope that it should work pretty much the same.

anishjain123 commented 1 year ago

hmm yea it looks quite challenging to port this over to swiftUI. I was thinking about trying to render an appkit view within Swiftui but i don't really know how to bridge this UIkit package over to Appkit, let alone swiftui.

If you added AppKit support, it would be quite simple to support within SwiftUI.

Do you have any estimates on when you'd be able to add SwiftUI and/or AppKit support?

Or, if you don't have concrete estimates, can you point me in the direction of the steps i would need to make this supported by AppKit/SwiftUI on my own?

I really just want to find a cross-platform RTE that I can stick with for the next few years :)

rajdeep commented 1 year ago

hi @anishjain123, I do not have any concrete timelines for AppKit/SwiftUI support yet, though I hope to add SwiftUI support by the end of this year.

This discussion provides an overview of how basic SwiftUI support can be added to Proton. This is not as is added to Proton itself as there are other additional API changes that I plan to make to be able to support SwiftUI completely.

In regards to adding AppKit support, it requires more changes in the foundational code. I have evaluated it some time back and while I do plan to support it, I doubt I will get to it before end of this year either. Part of the API changes are also going to feed into SwiftUI support so this will follow SwiftUI only.

anishjain123 commented 1 year ago

Ok, awesome! Thanks so much for prioritizing SwiftUI! Can't wait for you to release it, in the meantime - i will experiment on my own based on the discussion you shared. I appreciate you pointing me in that direction.

Myself and swift developers across the world commend you for your efforts!