Zignals - chat app for Android, working proof-of-concept prototype

Hi,

Just completed a proof-of-concept prototype of my chap app for the safe network. It is very rough but it demonstrates basic chat functionality using solely safe network.
If you want to try it you will need:

  1. Install the Authenticator app
  2. Login with your alpha-2 account
  3. Install the Zignals app
  4. Start Zignals app
  5. Tap on “Authenticate” button. It will lead you to the Authenticator app where you have to give permission
  6. After that you will be directed back to the Zignals app which will connect to safe network
  7. Once connected tap on “Fill in my contact details” and enter your name(s)
  8. On top of the screen there is “new reachout” button, tap on it to initiate connecting to other person.
  9. new screen will open, enter for whom this reach out is meant for, for example “Alice” and tap “Create reach out” button
  10. New screen will open with “Copy to clipboard” and “Share” button. If you are using just two emulators side by side use “Copy to clipboard”. You are using real Android device - use share and send it to the other person
  11. At the other end tap on the dots (home screen) and select “Accept reach out”. Tap on “From clipboard” (QR code is not working yet). If successful a toast will be shown “Reach out accepted”.
  12. Restart the Zignals app on the first device (in order to reinitialize)(kill and start again).
  13. At this point on both devices you can go to “Contacts” from main screen, tap on the contact’s name, then “Messages” and start chatting. Please note that you need to tap on “Refresh” icon on the top in order to receive the new messages.

Here is a short video showing the first device (wait for it, at some point nothing happens because I am working on the second device): https://youtu.be/rH_jZyNYX-c

17 Likes

Brilliant work with this @ogrebgr! I love the idea.
Although I could not get this working for me :confused:
I’m using two different accounts. I created a reachout and shared the data via SMS, copied it to the clipboard on the second device and then accepted it there. All good so far.

Once I restarted the app on the first device, the app keeps crashing.

6 Likes

It seems that you forgot to enter contact details on the first device…
However such problems will be eliminated in the upcomming versions, this was just a prototype. I think I will have to wait a bit for the API (and types) to stabilize before rewriting the wrapper lib and the app itself.

3 Likes

Here you go:

FATAL EXCEPTION: Thread-2
 Process: tech.safenetwork.zignalz, PID: 31378
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String tech.safenetwork.zignals.contact.ContactDetails.getFirstName()' on a null object reference
 	at tech.safenetwork.zignals.ZignalsImpl.processConfirmedReachOuts(ZignalsImpl.java:285)
 	at tech.safenetwork.zignals.ZignalsImpl.init(ZignalsImpl.java:105)
	at tech.safenetwork.zignals.units.main.InitAndConnectTaskImpl.execute(InitAndConnectTaskImpl.java:66)
 	at com.bolyartech.forge.android.app_unit.rc_task.executor.DirectRcTaskExecutor.execute(DirectRcTaskExecutor.java:15)
 	at com.bolyartech.forge.android.app_unit.rc_task.executor.ThreadRcTaskExecutor$1.run(ThreadRcTaskExecutor.java:27)
 	at java.lang.Thread.run(Thread.java:764)
   Force finishing activity tech.safenetwork.zignalz/tech.safenetwork.zignals.units.main.ActMain

I borrowed a couple of accounts from the guys in office and I was able to get it running :slight_smile: :tada:

Something I noticed was that, the first time I stored my contact details it didn’t actually get saved. I had to fill it in a second time. So maybe that’s something to look into too :slight_smile:

I agree! Some interesting new features are cooking :wink: :man_cook:
Everything’s already specified in the RFCs of course, so you can know what to expect! :grin:

On a side note, if you’d like more people to try out the app consider sharing this on the SAFE Network forum We have a larger non-developer community there who will love to see this! :heart:

2 Likes

If anyone wants to test, send a reachout to ziggy

2 Likes

ah! so cool. I’ll try and dive in later on. Nice work @ogrebgr!!

3 Likes

Very nice! Looking forward to giving this a whirl later!

2 Likes

Hello ! On my ( old ok ) LineageOS 14.1 when trying to install the apk I get “there was a problem while parsing the package” :-/
any idea ?

1 Like

@nice
Frankly - no. This is just a proof-of-concept version and it is quite rough, I apologise. It was meant just to test the basic principles of safe network. It should work on 14.1 though but I don’t have such device to test it.
Next version will be more sophisticated but for that the API have to stabilize in order to rewrite my wrapper lib and the app itself. I hope that it will happen soon so we can have “real” apps running.

4 Likes

Thank you for your quick answer ! I’ll try the next versions then :slight_smile: Congratulations anyways, from what I can see on your video it looks really well designed

2 Likes

Have you received anything from me (draw)?
See under ‘accept reach out’.
Or must this share go via another channel like sms or this forum @ogrebgr?

I think you need to DM the “reach out” like Dimitar did with me


dimitar
SAFE Ambassador

4h

Hi :slight_smile:
let’s try it!

{“from_cd”:{“fir”:“dimitar”,“las”:“dimitrov”,“mid”:“georgiev”,“nic”:“dimitarSafe”},“from_id”:“4b0JkJqAL9+ZqiOuJNdCGZDv3gOI1mI6GelAgVV8O9k\u003d”,“kvs”:“qXBMkT5uP7WdDUNbYI00IaHRH/UH5aI0Lr4tm466Z5nBjA0AAAAAAAEgAAAAAAAAAO8TkPB+xpEbAzMyPY33sUf6kzOPqpoWnagmNDzGVAC7GAAAAAAAAAAIBpPWR23VlQ0Nb6hGlsC2Piu+t76tbU0A”,“pwd”:“LxQkrJZQkbwYq0rg”}

but now Zignals keeps crashing for me. I will reset the phone and try again and see if I have any invites
Dimitar is off to bed (timezones) so we will try again in the morning.
I will be up for a few hours yet myself though. I will keep trying.

1 Like

Sharing of the reach out data should be done via another channel like email (preferably).
It is just a String data in json format so all channels that don’t mess with the encoding should be OK, including this forum. Remote party should copy the string into to the clipboard and select “Accept reach out” -> “From clipboard”.

2 Likes

And when should I see something in the ‘Pending reachouts’-menu?

1 Like

I copied all of the reachout string to the clipboard but when I try to “Accept reach out” -> “From clipboard”, it just hangs with a red circular waiting icon.

Also it was continually crashing when I tried to add my contact details. I uninstalled and tried again and it seemed to accept the details OK. I’m using a Samsung S7 with latest updates.

“Pending reachouts” is not implemented yet. It will show the reach outs that you created and which are still not accepted by the remote party.

1 Like

All-in-all probably it was too early to release the app but I really wanted to demonstrate that the concept is working (i.e. reach-outs, each user writes its own messages in own mdata (i.e. not shared mdata), etc.).
At my job I am at the end of a big fat project and in the next few weeks will probably have a little time to work on the Zignals app but I hope that when the Fleming is out I will have more time to remove the bugs and add some features.
BTW, Zignals name comes from “Signals” and “zig-zag” - the way data is zig-zagging trough the nodes using XOR arithmethic ;-).
Again, I want to apologize to the people that had problems/crashes with the app.
I will also prepare a post with the conclusions and lessons learned during the development of the app - there are some points to discuss with the core developers because we will need better sync with them in order to create robust stack of libraries.

9 Likes

There is no need to apologise. We expect there to be problems with new stuff like this. I am only sorry I could not give you better feedback as to why it was failing.
I look forward to the next release and will install an Android emulator so hopefully I can give better crash reports.

8 Likes