Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Android] RetroShare for Android needs Developers #1731

Closed
defnax opened this issue Nov 30, 2019 · 22 comments
Closed

[Android] RetroShare for Android needs Developers #1731

defnax opened this issue Nov 30, 2019 · 22 comments
Labels
Android Android specific issues Bounty help wanted

Comments

@defnax
Copy link
Contributor

defnax commented Nov 30, 2019

hi, its very importend to have a useable retroshare for android & IOS .
I dont know if Konrad will continoue on it.
When not need active devs to continoue for the rs mobile app.

image

Features

Functionalities that are now available in the application:

  • add friend via certificate and share ours,
  • create with avatar, change and delete our identities,
  • see friends locations,
  • create public room (lobby),
  • send and receive message,
  • add and remove contact
  • search for chats, contacts, people,
  • discover public rooms,
  • see rooms participants,
  • signin, signup;

Roadmap

There are still many interesting things to do in this project and for this reason I intend to continue my work. In particular, I would like to focus on these features:

  • Make a good use of and improve Retroshare’s Json api event system. This will enable app to have message notifications and optimize its performance.

  • Bundle backend and frontend into one app. Current system is confusing and leaves much to be desired. Who wants to manage the process themselves that is still in the background anyway?

  • Explore possibility to add tor option as it is in Retroshare desktop app.

  • Improve chat backend, especially much needed storage of history.

  • After merging Retroshare’s short certs, add QR code as a default way to add friends. This will involve redesigning the way it works now.

  • At this point, user still have to be aware of how Retroshare works under the hood. Future improvements have to be made so user will have to only operate with identities. For example, now, after adding friend we have to yet find his identity in search box to add him to contact and finally after those steps we can message him.

  • The website is already a bit outdated and it could use a new look. As soon as the application is ready, I would like to refresh website.

  • As you can see on video, rooms name are also ‘Error’, which of course is not the name of room. Due to lack of native support of 64int in Dart, lobbies ids can’t be loaded and so does names. Thanks to my mentor, Gio, solution is already in PR, and after merge, some minor changes have yet to be done on frontend side.

Source:
https://github.com/kdebiec/GSoC_2019/
https://github.com/kdebiec/GSoC_2019/releases/tag/GSoC_2019_final

https://vimeo.com/355876202
https://blog.freifunk.net/2019/08/26/retroshare-for-android-update-3-final/
https://blog.freifunk.net/2019/06/23/retroshare-for-android-update-1/

New Android Apps are on the way:
https://gitlab.com/b1rdG/retroshare-android-flutter-app
https://gitlab.com/elRepo.io/elRepo.io-android

Retroshare Android APKs:
https://gitlab.com/b1rdG/retroshare-android-apks

@b1rdG
Copy link
Contributor

b1rdG commented Mar 6, 2020

Hi,

I would like to help on the development of this app, but I'm going to move the repo to gitlab. Is somebody else interested?

@csoler
Copy link
Contributor

csoler commented Mar 6, 2020

what do you mean by "move" ?

@b1rdG
Copy link
Contributor

b1rdG commented Mar 6, 2020

Just that I will clone the kdbiec repo on gitlab and I'm going to push the changes there.

@csoler
Copy link
Contributor

csoler commented Mar 7, 2020

ok. Feel free to join the devel chat room or ask the devs any question you have about the code.

@b1rdG
Copy link
Contributor

b1rdG commented Mar 7, 2020

Yep, I'm going to push here:

https://gitlab.com/b1rdG/retroshare-android-flutter-app

@b1rdG
Copy link
Contributor

b1rdG commented Apr 27, 2020

About the new chat system I opened this issue asking for it unsenep2pdev#25 .

Meanwhile, I can't find a method to get the message list of a distant chat on RsMsgs... How could I get the chat messages between Ids?

@defnax
Copy link
Contributor Author

defnax commented Apr 27, 2020

About the new chat system I opened this issue asking for it unsenep2pdev#25 .

Meanwhile, I can't find a method to get the message list of a distant chat on RsMsgs... How could I get the chat messages between Ids?

There is no messages list between Ids ( distant chat), when im right i dont remember.

Last year we add on Qt gui to store/load distant chat messages history locally.

@b1rdG
Copy link
Contributor

b1rdG commented Apr 27, 2020

And how should I receive a message through JSON API?

@sehraf
Copy link
Contributor

sehraf commented Apr 28, 2020

Meanwhile, I can't find a method to get the message list of a distant chat on RsMsgs... How could I get the chat messages between Ids?

You have to use the event system to receive chat messaged. The event number is 15
I've a POC chat bot here

@b1rdG
Copy link
Contributor

b1rdG commented Jun 24, 2020

Hi,

I made some work and I need to take a pause for a months now.

BTW some features been added and the chat system is almost implemented [0]. Also a bunch of new issues discovered/reported [1].

Please, feel free to test, crash and report. I will try to fix the issues and improve the code on my free time (not usually).

On the next iteration, after fix issues, clean the code, test and merge to master, I would like to implement Forums...

[0] https://gitlab.com/b1rdG/retroshare-android-flutter-app/-/tree/develop
[1] https://gitlab.com/b1rdG/retroshare-android-flutter-app/-/issues

@defnax
Copy link
Contributor Author

defnax commented Jun 24, 2020

hi, but we dont need forum on rs mobile it must be chat only app like whatsapp/telegram.
else it will be not more useable when it has to much.

but why not make a test release? you did lots improvements of and no apk yet
its more importend to have test versions then going to make new things.
before you make a break make a test apk to lets users test the mobile app to find issues

@b1rdG
Copy link
Contributor

b1rdG commented Jun 24, 2020

Hi,

On the README.md there are a link where to download the apks.

As we discuss with @G10h4ck the chat backend is very usefulness. Need a bunch of work and be wrote from scratch. Instead, forum system seems better. Anyway, I think that is usefull to have a decentralized forum system for Android. Can be usefull for lot of thinks. BTW, the chat system can't be featured modern chat...

@b1rdG
Copy link
Contributor

b1rdG commented Jun 24, 2020

Also, I think RS doesn't want to be a whatsapp/telegram app like ;)

@defnax
Copy link
Contributor Author

defnax commented Jun 24, 2020

Also, I think RS doesn't want to be a whatsapp/telegram app like ;)

normaly we dont want compilcated mobile apps it must stay easy like other mobile apps :)
i mean stay easy & useable without add to much,

chats, groupchats, emoji, gifs, send files, send pictures
you mean that mobile rs cant be have the modern things?

or you mean use the forum system for the chats? like how unseen use it?
they recoded from gxs channels like a telegram chat system

@b1rdG
Copy link
Contributor

b1rdG commented Jun 25, 2020

chats, groupchats, emoji, gifs, send files, send pictures
you mean that mobile rs cant be have the modern things?

Actually, RS API just expose the method:

/****************************************/
	/*                 Chat                 */
	/****************************************/
	// sendChat for broadcast, private, lobby and private distant chat
	// note: for lobby chat, you first have to subscribe to a lobby
	//       for private distant chat, it is reqired to have an active distant chat session

	/**
	 * @brief sendChat send a chat message to a given id
	 * @jsonapi{development}
	 * @param[in] id id to send the message
	 * @param[in] msg message to send
	 * @return true on success
	 */
	virtual bool sendChat(ChatId id, std::string msg) = 0;

This method doesn't provide compatibility for this more modern features. But yes, I could give image support for example sending it through markdown but could cause incompatibility with Desktop app. Meanwhile an issue is open.

For emoji is partially implemented.

For gifs we will need to find a good way to send it really compress as base64 blob, or using RS file system sharing, also, implement RS file system sharing to share files through the app.

But, finally, the backend system for chats is not really prepared to be scalable. For example, you can not force to reopen a distant chat tunnel, offline message on distant chats, no distant chat history, there are no backend to reply/forward a message (you can implement it on the frontend)... Also for lobby chats the history is not shared between members (i don't know if is technically possible to do it in a decentralized chat, I imagine something like riot servers chat history synchronization).

For sure I'm forgetting things, I'm just drinking my first coffee now...

Ok, chat system work properly, thanks for the work! But in my opinion yes, need a hand to answer the features of a "modern" chat app. IDK if write from scratch or just patching over the existing.

And, getting the best compatibility with Desktop app, I wouldn't develop a new chat system over the forums. I would like to have a decentralized forums app for my Android. As Desktop app, I would like to have forums and chat in different "tabs" in the same app.

Lot of work to do!

@defnax
Copy link
Contributor Author

defnax commented Feb 1, 2021

We need more Android Developers to help on this mobile version.

@hanupratap
Copy link

@defnax
Hey, I am interested in contributing to this application. I am new to open source, how should I contribute?

@defnax
Copy link
Contributor Author

defnax commented Mar 16, 2021

@defnax
Hey, I am interested in contributing to this application. I am new to open source, how should I contribute?

maybe you can generate your own repo/branch on gitlab? and help b1rd there? but i dont know if he continoue with the rs mobile version he stopped last year there

Then join the retroshare network too with RetroShare 0.6.6 then you can meet the devs and testers
https://retroshare.ch/invite

@b1rdG
Copy link
Contributor

b1rdG commented Mar 19, 2021

Hi @hanupratap!

Thanks for your interest.

The app I developed has some UI bugs and give support for the old chat system, but should work...

I think a good idea is to give support for forums, the API is better. So you have some options:

I can help you where you want.

@Skyp93
Copy link

Skyp93 commented Oct 10, 2021

The question is for reference. C ++ from idera currently has compilers for Android, ios, Linux. It might be worth trying to migrate the project? (I didn't dive into the sources).
'One code for all platforms'

@G10h4ck
Copy link
Contributor

G10h4ck commented Oct 11, 2021

The question is for reference. C ++ from idera currently has compilers for Android, ios, Linux. It might be worth trying to migrate the project? (I didn't dive into the sources). 'One code for all platforms'

retroshare-service does actually compile well with official Android NDK too, so is not a priority for me to port to another compilers collection, yet it would be interesting if someone attempt that for ios supporte

@defnax
Copy link
Contributor Author

defnax commented Oct 11, 2021

im closing this issue generating a new issue with up to date links for rs mobile

new issue: #2489

@defnax defnax unpinned this issue Oct 11, 2021
@defnax defnax closed this as completed Oct 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Android Android specific issues Bounty help wanted
Projects
None yet
Development

No branches or pull requests

7 participants