I recently read that webxdc apps will be able to synchronize with iroh in the future.
As far as I know, iroh is already used to transfer an account to another device via WiFi.
I’m wondering if the new iroh api for webxdc would make a local WiFi messenger app feasible?
Such an app would probably work best with DC-Android and DC-Desktop.
In DC-iOS only as long as DC is active in the foreground.
Have WebXDC apps also got access to microphone?
DC devs want to make a permissions UI, so probably there will be this option in future. You can experiment with microphone access now if you are willing to modify your DC app like @WofWca has done to make a video call app
a document editing app like a google docs on deltachat offline and local first
There is already an “Editor” app https://apps.testrun.org/webxdc-editor-v3.1.1.xdc
webxdc/editor: A webxdc app using yjs to enable collaborative editing in a WYSIWYG manner - Codeberg.org
I’ve started building an expense sharing thingie to replace splitwise and friends:
https://git.sr.ht/~rakoo/sharedAllExpenses
As you can see I forked the poll app. It’s a bit buggy and I don’t have time to work on it, feel free to take over and make it work better !
In DC, only relatively small files can be transferred via the e-mail attachments.
I don’t know if it’s technically possible, but maybe it would make sense to develop an app that can transfer large files via real-time channels. Of course, the transmitter and receiver would have to remain online during the transmission, like in ICQ back in the day.
I think @DavidSM100 has done some work on it GitHub - DavidSM100/sharer, though IIRC it hasn’t been finished. And it doesn’t use real-time channels but just regular email.
I think the idea of creating that kind of app with real time channels is good, it might be useful for some cases. But I think it would be better working over email so there would be no need for both people to be online. I was doing something like that splitting the files in parts but currently in DC several updates merge together if they are sent in a short period of time so it was to hard to make it like that and I gave up on that project until that limitation changes.
Updates should not be aggregated since core 1.142.0 if the size exceeds 100 kb:
That’s cool, I can finally finish that webxdc.
Is the core 1.142.0 already being used in the apps? At least in Android?
Another idea is to make a NES emulator using realtime channels for network communication.
There is a nes-bundler project that has netplay code. Netplay code is using rollback algorithm implementation GGRS library which is a port of GGPO library from C++ to Rust. Underlying emulator implementation TetaNES is also written in Rust and already works in the browser.
Something like Tiddlywiki is a great idea. Databases are very useful, and Tiddlywiki is a very user-friendly database. Zimwiki is also worth consideration. Both could easily be published, like the webxdc apps are.
I collaboratively edit texts, with various authors making comments and suggested changes to specific passages; comments get discussed, suggested changes get accepted or rejected, when a suggested edit is accepted it is automatically integrated. “Track changes” in LibreOffice/Microsoft Word is a pretty awful tool for this, actually, especially with more than two authors, as only one person can practically review the comments at a time (editing equations is also a pain). A chat version would be way less annoying. Should support basic formatting in HTML, markdowns, LaTeX, etc… Being able to connect a comment (say, “This fact gets repeated too often”) to multiple points in the text would also be good.
Something where you can take an image (map, diagram, graph, prototype sketch, and if all else fails, math formula), and place markers and point at bits of it while discussing it would be basic but useful. It would save in-person meetings.
Actually, MathML support is generally terrible. A dedicated app for editing and reading MathML would be nontrivial but useful.
A general collaborative diagramming app would be hard, but maybe something like Freeplane?
A Slidy-based slideshow app might work, for in app-use. Or in-person use, just tell all presenters to send you their presentations by Deltachat… I’m sure nothing could possibly go wrong. Seriously, a testable encapsulation of a presentation in an invariant, portable, does-not-depend-on-internet-access-or-local-files-or-OS-etc. format would be really useful. There’s also LaTeX-based Beamer, and a WYSIWYG format might be good, too.
Generic readers might also make sense, for those of us who want to read stuff other than the Communist Manifesto : readers for ebooks or audiobooks (Librivox) or pdfs or Scholarly XML files or podcasts or webtoons. Books etc. to be separately sharable as .epub files etc., or a metaapp to generate apps which are individual books from epub files etc… An ability to add marginal notes or annotations to a “book” you pass around would be great, especially if you could merge the attributed annotations of several friends/colleagues, and comment on points or polygonal areas of illustrations. This is verging on collaborative editing.
A translating reader, where highlighting words brings up Wiktionary entries in the language written, would be useful for reading languages I know imperfectly. A separate text pane for typing, with intelligent co-scrolling using cognates or punctuation, would make writing translations easier. A similar tool for audio and video subtitles, one which would automatically create a rough transcript, would be great, even if little of the autogenerated script besides the utterance timings was usable. One of the advantages of good open-source content is that it is more likely to be translated.
Some people collaboratively translate and author things like screencap webcomics (e.g. Darths & Droids). You could make an app for that; it’s a specific task done by social groups recreationally, and a fairly high-profile one. Actually, it makes sense that a lot of the existing apps are games. Some more games played by social groups larger than two might be good, if encouraging Deltachat adoption is a goal.
I sometimes played online jigsaw puzzles with friends online during the pandemic. With a chat alongside it’s surprisingly social, and not too complex to program. Group guessing games, sort of combinations of crossword puzzles and charades, trying to guess the target word, phrase, word matrix, etc., from oblique descriptions, one-word hints, drawings, etc., were also popular. Key was that the hints were generated by the players, adjusting the game to our shared cultural background and skill level.
An app for epistolary games? This would be easy to program, just messages with time delays (to make it asynchronous) and, optionally, prompts. The simplest epistolary game, “the letter game” is basically just an epistolary novel written by each player playing (that is, writing) one or more characters. For two players, and some types of >2-player games, you don’t need to conceal any of the messages from anyone. Commercial epistolary games can have quite complex prompt structures; you could hold a public design competition for those.
How about some physical-world games that don’t need geolocation? There are plenty, because they used to be done with pen and paper, map and, sometimes, compass. Downloaded OSM maps could be useful as a basis. Geocaching or orienteering games? Near-instantaneous communication would allow for some interesting team-based orienteering games, with challenges like getting three team members at three locations simultaneously, or treasure-hunt-like elements such as integrated puzzles. You could have teams compete to change the game state, switch the crossability status of a line or area of territory or something. Photographing a QR code or a location could give proof of presence or of a meeting between players (you could probably cheat if you really wanted to, but you would eventually get caught). You could do QR-code versions of capture-the-flag, pirates, jailbreak, the animal game, sanctuary, waymark races or chases, scavenger hunts etc…
Still on the Darths&Droids front, you might ask this question of a tabletop role-playing-game gamemaster. They often have elaborate ideas for mobile-based tools they want, to keep track of locations on imaginary maps, create pseudorandom events (and maps), do elaborate arithmetic quickly, etc… Adding messaging functionality between subsets of players would give them even more ideas (but such subsets might require an app linked to multiple chats, not an app within a single chat…but Cryptowhisper might fix that?). On the plus side, such apps would get entire gaming groups using Deltachat together, so it would be good for adoption.
Do you want more two-person tabletop games? These are less played-by-groups; maybe an easy way to organized tournaments, say for chess or any arbitrary game, would be better for adoption. There’s a fair number of two-player boardgames already (I should mention that the English-speaking world has largely switched to “Reversi” for the game the Xstore calls “Othello”, for reasons). There are plenty more ancient games: Mankala(s)? Go? Royal Game of Ur? Sáhkku? Luzhanqi? Shōgi? Plenty of modern PD ones: Hex? Labyrinth? L’Attaque? Spellbinder? I think I’ve played about half of those, clumping Mankala variants. Any game that can be played with a pen and paper is likely to be fairly easy to program. Some old teletype games? Wikipedia has lists on end of suitable games.
An app to report bugs in other webxdc apps from the Deltachat interface.
There are enough webxdc apps that scrolling through them is starting to be a chore. So, database software for webxdc apps, so they can be sorted by tags etc…
The current UI is a bit odd: you download apps through a chat, fine, but then you open them through that chat in that chat or another chat. Which is confusing for single-user apps; it gives the false impression that you are accessing a remote app through the chat, software-as-a-service style.
A nice conceptual model might be that the apps are collectable objects. Users collect, curate, and index their own webxdc library, and optionally allow the other people to copy books apps from it.
Apps are then objects transmitted through chats, and stored in a personal-app-library area of your Deltachat client. You can offer all or part of this personal library publicly or to invited friends.
And you can launch the apps either in a chat or in a single-user mode. Graphically, the single-user mode is distinct from a chat, and clearly single-user and locally-hosted.
only if you:
- a) care, most users don’t even really understand what saas or servers are nor should they need to
- b) are used to mini apps in other apps like wechat or telegram
- c) never started any webxdc app while in flightmode/offline
we are thinking of integrating the “store”/app selection into the app / attachment menu, but there are no plans to change how they are opened, beside the idea that you can pin them to a chat.
Anyways I believe if people really care they can also go to webxdc.org and learn how it works.
I cannot imagine that the idea of collectable apps would be simpler by any means, than the current concept of the app is just an “executable/interactive attachment” you can send to a chat.
Basically we also need to primarily put attention in the UI for the average user that uses technology, but isn’t as interested in it as we “nerds” are.
Because the more people use webxdc and deltachat, the more interest is there to develop for this platform, donate money to development and increase usage of encrypted email or xmpp, which makes global communication more private in the big picture.
Fair enough. I entirely agree with you about the need for a UI designed for the average user.
I’ll try to give a more direct, top-level impression. I am not used to mini-apps in Wechat or Telegram, and have never used the webxcd apps in flightmode or offline. I was surprised to be asked to pick a chat, a shared space, to open a single-user app. The Xstore chat was the most suitable, as another would have disturbed a person, but still didn’t quite seem suitable, as I didn’t want the bot to use the app too, or want to send the app to the store, or even particularly want to tell the store I was using it. I was surprised when I opened a second app in the Xstore chat, and the first one, a calendar I had put a test appointment into, vanished. I expected them to stack, like consecutive messages. An app would sometimes save the state I left it in and sometimes not, and I wasn’t able to predict which.
The apps were generally very responsive and looked good.
Calling it an “executable/interactive attachment” does give a clear idea that it is an e-mail attachment, in the low-level representation. The UI doesn’t really make it clear that it is an attachment (which is fine). I don’t usually think of files sent through chats as being attachments, I guess by analogy to FTP and so on. I thought “copyable, transmittable, storable object” — a file, really — might be suitably unnerdy; I was actually thinking of the confused medieval monk in the 2001 Øystein og meg Codex Helpdesk sketch, and whether I could explain the UI to him.
the first option in the “select chat” screen is “Saved Messages” which would be the best place to save an app for solo-playing, avoiding the problems of using the bot’s chat or others, also you can use the app while staged in which case nothing is sent around at all, unless you where using DC desktop which doesn’t have support to use mini-apps while in draft-mode to test them or prepare before sending
most mini-apps are meant for usage in chats with other people, because otherwise it could be just an normal offline app without the need of Delta Chat, the main value of in-chat mini-apps is the collaborative/interaction/social aspect ex. even if single-player still interesting to have an scoreboard to compete etc. and while having some completely solo-playing apps could still be interesting for some, it is kind of the niche overkill use case for webxdc
Just want to add a couple of unobvious things that may be useful. The user can create as many verified chats as they want to better organise private messages if having “Saved Messages” isn’t sufficient, just don’t add others to those chats.
Also webxdc apps may be useful for sharing just across the user’s devices, so an app may be online, but not “social”
I think that a steganography app would complement the CryptoText app very well.
The latter is useful for adding an additional layer of encryption.
But the app is probably most useful when encrypted emails are blocked by the servers.
Since only the message text is encrypted, the servers cannot detect the encryption in the header. The necessary password can be discreetly agreed upon by the users during a meeting.
Email servers that also analyze the message content can still detect the encryption. In such a case, the steganography app could help.
Users would write normal, inconspicuous texts and send them along with equally inconspicuous image files. The manipulated image file would then contain the actual message. Of course, the text hidden in the image could also be additionally encrypted.