SchildiChat / SchildiChat-android

Matrix client / Element Android fork
https://schildi.chat/android/
Apache License 2.0
407 stars 58 forks source link

Senior Friendly Variant #69

Closed theCalcaholic closed 3 years ago

theCalcaholic commented 3 years ago

First of all, thanks for what you have done with SchildiChat, it's a blast to use. :)

I have lately been thinking about implementing a senior friendly instant messenging solution for seniors (mainly because I have seen how much my own grandparents and those of my friends struggle with existing applications). My ideas include for example limiting the functionality of the application and the ways to interact with the interface (preventing accidental interactions), improving the highlighting of updates, help/explanation features, etc.

Because I strongly believe in the principles of open source, end-to-end-encryption and federation and because of Matrix' bridging capabilities, I want to implement this in form of a Matrix client.

Having noticed what you have done in basing your messenger off Element, I figured that that would be a very promising approach for my project as well.

Therefore, I'm thinking about either forking Element or SchildiChat (Android only for now).

To decide on that, I wanted to ask a few questions:

  1. How do you feel about me forking SchildiChat with that goal in mind?
  2. How closely do you intend to follow the updates to Element?
  3. Do you think it's a good idea to create another Downstream project (incorporating new changes to SchildiChat) or would it be better to fork/replicate all or some of the changes you did and go separate ways from there?
SpiritCroc commented 3 years ago

That sounds like a cool project! Feel free to fork SchildiChat for that :)

Usually, I merge new Element versions once they are tagged within a couple of days, so I'm sometimes even ready for a new SchildiChat release before the Element release is out of beta. This of course depends on the amount and kind of merge conflicts and my own available time.

From my experience, SchildiChat has enough changes that can cause quite some merge conflicts, that are not always easy to solve. So it depends on what you are aiming for: if you think that SchildiChat already is significantly closer to your goals than Element, it probably makes sense to follow SchildiChat, in order to have less merge conflicts (since if you merge SchildiChat releases, the merge conflicts from Element are already resolved). The message bubble chat layout for example could justify basing on SchildiChat directly, I guess, since there are lots of changes to consider, and commits that probably do not apply cleanly anymore due to merge resolutions. If you however make bigger changes to SchildiChat that cause their own conflicts, or only need a small selection of SchildiChat features, you might want to switch to following Element directly.

Not sure if I understand your last question correctly. If you were also thinking about contributing all changes back to SchildiChat, my thoughts would be the following: SchildiChat usually tries to make many features and changes configurable, so users can set up the app as they wish. This approach is however probably not very senior-friendly, you probably want to hide settings and complexity rather than providing customizable options. However, we already do have an "easy mode" which partly goes into the same direction, as it hides some functionality like encryption settings and public room directories, which can be rather confusing for less tech-savy people. Similar, one could consider adding a "senior"-option. However, this might add quite some code complexity (you cannot just remove settings, you need to check the setting each time), and there's the chance that users by accident choose the wrong setting or exit the "senior-mode". So I assume an independent fork would give you better freedom to reach your goals, but you can of course contribute meaningful features back to SchildiChat.

theCalcaholic commented 3 years ago

Thanks a lot you for your input.

With my last question I meant whether it would be best to "branch out" or "branch down" from SchildiChat. But I think, I'll go with branching down (i.e. merging rebasing onto SchildiChat regularly) after your response, since it seems to me that what your aiming for is a good foundation for my project. I might start with a preconfigured version of SchildiChat and build my ideas into it.

Where it makes sense, I'll try to contribute upstream, of course - but the target audience is, of course, different enough to justify a separate application.

Thanks again for your thoughts on the matter and for your work on the client :)