Threema App für die Apple Watch nun erhältlich (inoffiziell)

Stelle deine Frage öffentlich an die Threema-Forum-Community - über 4.800 Mitglieder helfen dir weiter. > Frage stellen <
  • Moin, ich habe eine App geschrieben, mit der man Threema auf der Apple Watch nutzen kann.

    App Store Link

    Ich nutze dafür den Threema Web-Zugang, um dann die erhaltenen Daten an die Apple Watch weiter zu leiten.

    Wollte hier mal kurz Werbung machen, die App gibt’s (noch) kostenlos und vielleicht gibt’s ja hier ein paar Interessenten :)

    Und es würde mich natürlich auch auch freuen wenn es ein bisschen Feedback geben würde. Grundsätzlich scheint die App zu funktionieren, für eine erste Version meiner bescheidenen Meinung nach sogar ziemlich gut.

    Momentan werden neben normalen Textnachrichten auch kleine Thumbnails von verschickten Bildern angezeigt, das ist aber derzeit noch eher experimentell, nur dass ihr Bescheid wisst :D

    Sicherheitsmäßig braucht ihr euch natürlich keine Gedanken machen, App sendet und empfängt nur Daten an/ zu den Threema Servern, also alles prima. Zum Aufbau der Verbindung wird ein 16-stelliges Passwort generiert, sonst müsste man den QR-Code jedes Mal neu scannen.

    Und der Vollständig halber: bin natürlich nicht Teil von Threema, habe mit denen bisauf einen kurzen, sehr freundlichen E-Mail-Kontakt nichts am Hut und die Entwicklung läuft komplett unabhängig voneinander. Die Nutzung der App ist seitens Threema gestattet, ihr solltet also nicht um euren Account bangen.

    Lieben Dank schonmal, bin gespannt was ihr so zu melden habt
    Alex


    2018 XAN Applications GmbH & Co. KG

  • Super! Funktioniert nach einem ersten kurzen Test klasse! [emoji3] Ich würde beim anfänglichen Koppeln den QR-Code etwas größer auf der Watch darstellen, aber er ließ sich auch so scannen [emoji6]
    [hr]
    Zwei spontane Fragen hätte ich noch:

    1. Deine App erstellt ja eine permanente ThreemaWeb Session. Was für ein Passwort wird dabei verwendet? Ein statisches, im Code hart codiertes Passwort, das für alle Nutzer gleich ist und aus dem Code extrahierbar ist? Oder ein "dynamisch" generiertes, das einmalig ist?

    2. Wie kann ich mir sicher sein, dass die Credentials der Websession sicher sind? Es ist ja immerhin denkbar, dass mit den Zugangsdaten auch Dritte eine Websession aufbauen können, ohne dass ich einen Hinweis erhalte...

    3. Deine App hat logischerweise Zugriff auf die ganzen Threema Chats und folglich auf alle Chatinhalte. Ohne irgendeine böse Absicht zu unterstellen: wie kann ich sicher sein, dass meine Chats nicht ausgelesen und sonstwohin gesendet werden?

    Grüße und Glückwunsch zur schon recht gut funktionierenden ersten Version!


    Andy
    [hr]
    Kleiner Hinweis: in der Chatübersicht überlappt die Uhrzeit/Datumsinfo auf unschöne Weise den Text der Mitteilungen:

    Vielleicht wäre es besser, der Uhrzeit/Datumsinfo eine eigene Zeile zu spendieren?


    Andy

    Einmal editiert, zuletzt von andyg (20. Dezember 2018 um 07:11)

  • Ein Bug: eine auf der Watch erstellte Nachricht wurde nicht gesendet, sondern verschwand nach ein paar Minuten im digitalen Nirgendwo. Musste sie dann mühevoll neu kitzeln...

    Ich vermute, es könnte damit zusammenhängen, dass die ThreemaWeb-Verbindung zum Sendezeitpunkt noch nicht stand? Der zugehörige Chatverlauf war noch nicht geladen (angesehen von der letzten Mitteilung)


    Andy
    [hr]
    Hm, jetzt geht das Senden gar nicht mehr... Es erscheint immer nur "Sending [...]", aber es passiert nichts?! Die Chats laden jetzt auch nicht mehr... Obwohl auf der Watch der Balken grün ist... [emoji848]

    Verbindung zum Internet besteht jedenfalls


    Andy
    [hr]
    Seltsam - nach 4 verlorenen Mitteilungen in 2 verschiedenen Chats geht es jetzt wieder?! Die Verbindung scheint noch irgendwie etwas wackelig zu sein...

    Was mir noch auffiel: leider wird auf der Watch nicht der Zustand der Mitteilung angezeigt (zugestellt/gelesen/roter o. grüner Daumen). Wäre toll, wenn das zumindest für die neuesten Nachrichten angezeigt werden würde! Und natürlich wäre es noch besser, wenn man auf der Watch auch direkt einen roten/grünen Daumen vergeben könnte.


    Andy

    Einmal editiert, zuletzt von andyg (20. Dezember 2018 um 08:33)

  • Hey Andy, danke für deinen Bericht, freut mich sehr dass die App schon mal geht! Mit dem größer Darstellen hast du vermutlich recht, wird in der nächsten Version drin sein :: Wie viel mm hast du und wie lange hat das Scannen gedauert?

    Und danke für deine Fragen, welche ich wie folgt beantworte:

    1) Das Passwort wird zum ersten Start der App generiert. Besteht aus Zahlen und Buchstaben. Ist also nix was hardcoded ist ::) Eigentlich sollte man aus einer iOS App eh keine Daten extrahieren können, mit denen man sich Zugriff schaffen könnte, allerdings dachte ich "wenn schon denn schon", gerade bei jailbroken devices geht mitunter einiges an Sicherheit verloren.

    2) Ich muss dir ganz ehrlich gestehen dass ich seitens Threema Web echt nicht allzu gut in der Materie drin stecke, habe die App eher überstürzt entwickelt weil mir die Idee auf einmal sehr wichtig und gut schien haha. Aus dem Blauen heraus würde ich meinen, dass der Angreifer aus deiner Session die Cookies etc. und natürlich das Passwort in seinen eigenen Browser plfanzen müsste, um sich dann verbinden zu können. Wie schon oben angesprochen, wäre das nur möglich wenn du dein Handy irgendwo entsperrt liegen lässt (wo er dann eh direkt bei Threema reinkönnte) und vermutlich erst noch jailbreaken müsste, da App Daten in iOS gut voneinander abgekapselt sind. Das führt mich zu Punkt 3

    3) Ich könnte die Daten natürlich an einen eigenen Server weiterleiten, denn wenn jemand drauf Zugriff hätte, wäre ich das - klar. Ich nehme dir die Frage natürlich nicht übel, jeder hat hier natürlich seinen Grund, gerade Threema zu benutzen.

    Dummerweise ist das die Frage, die ich dir am wenigsten beantworten kann. Erstmal kannst du probieren, mich beim Wort zu nehmen, was aber in Zeiten des Internets etwas weniger Wert ist als es damals war :haha: Was du selbst bei dir zu Hause machen könntest, ist das Ding ein paar Stunden am laufen zu haben, und zu gucken, welche Daten an welche Server gesendet werden. Manche Router haben so eine Monitor Funktion, gibt aber auch tonnenweise Programme für jedes OS die das können. Alle anderen Apps aus und du hast eine "saubere" Liste. Jetzt könnte ich natürlich auch einprogrammiert haben (hab ich nicht haha), dass der große Leak dann erst in einem Jahr stattfindet und da haste gerade nicht dein iPhone in deiner kontrollierten Testumgebung, dann kriegst du das nie mit.

    Also du merkst, technisch "belegen" kann ich es so im Internet nicht - Könnte ich nur wenn sich eine Prüfstelle bei mir meldet und die sich dann persönlich den Code angucken und bei jedem Upload zu jedem Update dabei ist um zu sehen, dass ich auch wirklich das Paket hochlade, was ich denen als sicher präsentiert habe.

    Oder du nimmst mich halt einfach beim Wort :lachen: Ich würde mich damit natürlich ganz klar strafbar machen und Staatsoberhäupter etc., deren Ausspionieren sich überhaupt "lohnen" würde, benutzen vermutlich weder Threema noch die Apple Watch, also hätte ich da jetzt auch wirklich keinen großen Vorteil dadurch.

    Bin kurz unterwegs dann antworte ich auf den Rest

  • Zitat von "xan-a-alex" pid='41923' dateline='1545301929'


    Hey Andy, danke für deinen Bericht, freut mich sehr dass die App schon mal geht! Mit dem größer Darstellen hast du vermutlich recht, wird in der nächsten Version drin sein :: Wie viel mm hast du und wie lange hat das Scannen gedauert?


    Ich habe die Series 2 in der 42mm Version (die größere Variante). Scannen ging recht schnell, aber ich musste mit der Kamera sehr nah ran und es hat ein wenig gedauert, bis er den Fokus dann gefunden hat. Aber es ist nicht wirklich ein Problem.

    Zitat


    1) Das Passwort wird zum ersten Start der App generiert.


    Sehr schön!

    Zitat


    3) [...] Erstmal kannst du probieren, mich beim Wort zu nehmen, was aber in Zeiten des Internets etwas weniger Wert ist als es damals war :haha: [...] Jetzt könnte ich natürlich auch einprogrammiert haben (hab ich nicht haha), dass der große Leak dann erst in einem Jahr stattfindet [...]
    Also du merkst, technisch "belegen" kann ich es so im Internet nicht - Könnte ich nur wenn sich eine Prüfstelle bei mir meldet und die sich dann persönlich den Code angucken und bei jedem Upload zu jedem Update dabei ist um zu sehen, dass ich auch wirklich das Paket hochlade, was ich denen als sicher präsentiert habe.


    Open Source käme nicht infrage? [emoji6]


    Andy
    [hr]

    Zitat von "Crixus" pid='41922' dateline='1545299037'


    Sorry für die dumme Frage, aber wird Threema nicht schon offiziell unterstützt?
    https://threema.ch/de/faq/platforms


    Nein, für die Apple Watch gibt es bisher keine native App. Die bisherige Funktionalität beschränkte sich darauf, dass man Notifications lesen und direkt beantworten kann. Chats konnte man aber nicht öffnen, und auch keine neue Nachricht erstellen.


    Andy

    Einmal editiert, zuletzt von andyg (20. Dezember 2018 um 11:53)

  • So, nun geht's weiter ::D


    Andy

    [hr]
    Kleiner Hinweis: in der Chatübersicht überlappt die Uhrzeit/Datumsinfo auf unschöne Weise den Text der Mitteilungen:

    Vielleicht wäre es besser, der Uhrzeit/Datumsinfo eine eigene Zeile zu spendieren?


    Ich wollte irgendwie erzwingen, dass die Chat Ansicht 4 Nachrichten gleichzeitig anzeigt, daher hatte ich das alles etwas gequetscht. Am Anfang waren Titel und Zeit sogar in der gleichen Zeile weil ich mir dachte, dass man den Chat Namen ja normalerweise nach 4 Zeichen schon erkennt, allerdings hat auf der 38mm Uhr das englische "yesterday" schon gerecht, die ganze Zeile zu verdecken. Deshalb dachte ich mir, ein Zwischending wäre klug. Wenn die Mehrheit aber auf 3 Zeilen Lust hat dann kann ich das natürlich so einbinden, kein großer Akut.


    Du hast auf jeden Fall recht mit deiner Vermutung! Bevor die Anzeige auf "< 1 min" springt, erfolgt noch kein Datenaustausch. Danke für die Erinnerung dort noch einen kleinen Hinweis oder so anzuzeigen.

    Zum zweiten Fehler: hattest du zwischendurch Threema Web auf deinem Computer genutzt? Mit welchem Netzwerk warst du verbunden? Momentan liegt bei der aktuellen Threema Web Implementierung keine Funktion vor, die überprüft, ob eine Sitzung noch aktiv ist. Kleines Beispiel: Du hast 2 Computer. Mit beiden hast du Sitzungen in Threema Web eingerichtet. Computer A hat gerade die aktive Sitzung und verliert kurz die Internetverbindung. Du loggst dich mit Computer B ein. Bis du irgendwann mal bei Computer A ein paar klicks machst, Nachrichten schreibst etc. merkt A gar nicht, dass B nun aktiv ist und A gar nicht mehr senden "darf". Mal gucken wann es diesbezüglich Neuigkeiten gibt, ich habe mir dahingehend aber bereits was überlegt.

    Wenn du merkst, dass etwas nicht richtig läuft, probiere bitte einmal in 1 oder 2 andere Chats reinzugehen. Er sollte dann merken, dass er gar nicht mehr verbunden ist und das dementsprechend nachholen.



    Sehr schön, gratuliere zum Release :) Kann die App leider nicht ausprobieren, da ich kein Apple-User bin.

    Darf ich fragen, ob du die SaltyRTC-Kommunikation selber implementiert hast, oder ob du eine der bestehenden Libraries verwendet hast?

    Hast du gesehen, dass das Protokoll seit einem Monat offiziell dokumentiert ist?


    Danke für den Hinweis! Natürlich darfst du fragen :D die momentane Implementierung ist komplett high-level; ich gehe nicht "direkt" an die Kommunikation ran. Daher dauert es auch mitunter ein paar Sekunden bis der Chat erst geladen ist. (besonders wenn die App gerade erst gestartet wurde). Ist aber auf jeden Fall geplant, wollte bloß nicht 2 Jahre lang ein Protokoll auseinandernehmen um dann eine App zu veröffentlichen die dann einen halben Download pro Tag macht. Ist immer recht schwer einzuschätzen wie gut eine App ankommt (bzw. nicht ankommt)


    Ich habe die Series 2 in der 42mm Version (die größere Variante). Scannen ging recht schnell, aber ich musste mit der Kamera sehr nah ran und es hat ein wenig gedauert, bis er den Fokus dann gefunden hat. Aber es ist nicht wirklich ein Problem.

    Sehr schön!
    Open Source käme nicht infrage? [emoji6]


    Gut zu wissen, bei mir hat weit-weg-halten eher geholfen aber das wird sich noch zeigen.
    Open Source ist für später eine Überlegung, wenn es sich etwas mehr etabliert hat oder eben gar nicht etabliert hat. Bei einem Zwischending würde ich dann so verbleiben wie momentan hahah

  • Zitat von "xan-a-alex" pid='41931' dateline='1545317701'


    Ich wollte irgendwie erzwingen, dass die Chat Ansicht 4 Nachrichten gleichzeitig anzeigt, daher hatte ich das alles etwas gequetscht.


    Ja verstehe ich. Kann wegen mir auch so bleiben, hat auch was für sich.
    Überlappender Text sieht halt einfach auf den ersten Blick nach GUI-Bug aus [emoji6]

    Zitat


    Zum zweiten Fehler: hattest du zwischendurch Threema Web auf deinem Computer genutzt? Mit welchem Netzwerk warst du verbunden?


    Eine weiter Web-Session lief zwischenzeitlich nicht, nein. Ich war im WLAN.

    Zitat


    Wenn du merkst, dass etwas nicht richtig läuft, probiere bitte einmal in 1 oder 2 andere Chats reinzugehen. Er sollte dann merken, dass er gar nicht mehr verbunden ist und das dementsprechend nachholen.


    Ok, werde ich machen. Aber der dann bereits geschriebene Text ist dann verloren, oder?

    Auf jeden Fall vielen Dank für die App! Bin schon gespannt auf die nächsten Versionen!


    Andy

  • Würde mich der Open-Source-Frage anschließen. Wäre sicherlich auch interessant, um zu schauen, wie du das mit WebRTC schon implementiert hast. (Und damit auch die Frage, ob es eine Bibliothek ist, klären.)

    Aber zur App selbst: Gratulation erst einmal. Aber schon krass, dass wir jetzt eine WebRTC-Session aufbauen müssen, nur um Nachrichten auf die Uhr zu bekommen.
    Mich würden hier allgemein auch mehr technische Details interessieren. Hast du zum Beispiel das Peer-to-Peer von WebRTC implementiert oder nutzt du einfach immer Threema's TURN-Server, um die Nachrichten an die Uhr weiter zu leiten?

  • Habe die App gerade mal getestet, finde es toll, das du dir die Mühe gemacht hast.

    Habe leider eine Watch ohne LTE, sodass mir das keinen wirklichen Mehrwert bietet,
    könnte es mir aber insbesondere für die Anwender mit der LTE Version sehr spannend vorstellen.

    Ich fände außerdem eine ähnliche App fürs iPad sehr spannend.
    Klar...es gibt die vollwertige Threema App, primär nutze ich es aber auf dem iPhone.
    Ich finde es dann immer nervig Gruppenchats mit meinen 2 ID's aufmachen zu müssen, nur damit ich überall vernünftig
    schreiben kann. Eine gute Webclient App fände ich hier spitze.

  • Zitat von "manufant" pid='42046' dateline='1545933112'


    Ich fände außerdem eine ähnliche App fürs iPad sehr spannend.


    Dem schließe ich mich 100% an! Könnte mir sogar vorstellen, dass hierfür der Kreis der Interessenten vielleicht sogar größer ist als für die Watch [emoji6]
    Besonders cool wäre es, wenn die App sich dann mit den iPhone richtig synchronisieren würde, dann müssten nicht ständig alle Chats nachgeladen werden. Denn dadurch ist der Webclient im Browser (Safari) ziemlich träge... Keine Ahnung, ob das möglich ist.

    Andy

    Einmal editiert, zuletzt von andyg (27. Dezember 2018 um 20:24)

  • So, hoffe ihr habt Weihnachten gut überstanden! Hatte, weil ich ein geiziger Kapitalist bin, die App kurz vor Weihnachten auf 1€ gesetzt, will ja auch etwas entlohnt werden. Das Gute ist, dass Leute scheinbar Arbeit zu schätzen wissen und genau so viele Downloads kommen wie zu den Tagen wo es noch gratis war - das Schlechte hingegen, dass das schon zum gratis-Zeitpunkt nicht allzuviele Leute waren :lachen: Aber na gut, mit den fetten Millionen habe ich logischerweise nicht kalkuliert.

    Werde mich natürlich dennoch um die App kümmern, freue mich riesig dass die App so gut ankommt! Bloß für 40 Festanstellungen die dann 24/7 Support Requests abarbeiten, reicht es dann eben doch nicht (auch leider nicht für 39)

    @"BesterChef" eine Mac Version wäre in der Tat möglich und kein Problem, allerdings sehe ich da keinen Mehrwert gegenüber der Nutzung ganz normal im Browser. Vielleicht hast du ja ein paar Ideen die mich davon überzeugen und die ich gerade noch nicht bedacht habe.

    @"andyg" nun hat mich noch eine weitere Person bezüglich der Datumsplatzierung kontaktiert, werde dass dann mit dem nächsten Update ändern - mir erschien es so logisch aber ich kann auch nachvollziehen wie Leute denken würden, da wäre etwas schief gelaufen

    Ich hatte bez. des Session Disconnects eigentlich einen kleinen Workaround geschrieben, allerdings hat der einen dann auch schon beim Login "neu verbunden", ist mir in letzter Minute vor dem Upload wo ich nochmal alles frisch installiert habe aufgefallen und habe es dementsprechend rausgenommen. Während dieser Zeilen ist mir aber dazu ein Fix eingefallen, ist oft so wenn man darüber redet ::D

    Text ist dann leider verloren genau, hatte damals bedenken dass der Text statt "in 2 Minuten noch einmal" dann "für die nächsten 10 Tage alle 2 Minuten" gesendet wird was bei der ersten Version nicht so gut angekommen wäre.

    @"rugk" ich habe da (um den Release nicht um 2 Jahre nach hinten zu verschieben) wirklich gar nichts derartiges gemacht; sollten hier täglich die dicken Scheine reinrollen dann würde sich der Aufwand natürlich lohnen, an die Session zu gehen aber momentan bin da weit entfernt von ::D

    @"manufant" danke für den Vorschlag - bin davon ausgegangen, dass das nativ so von Threema unterstützt wird. Habe Threema persönlich bisauf mit ganz wenigen Leuten in meiner Liste kaum in Benutzung, ist mir daher gar nicht aufgefallen. Dann wird ThreeWatch also bald einen neuen Tab drin haben :D Hatte kurz überlegt das als 2 separate Produkte anzubieten aber ich bin ja kein Monster, dann packen wir das in eine App und gut ist :)

    Direkt an die Daten zu kommen wird dank Ende-zu-Ende-Verschlüsselung zumindest auf iOS nahezu unmöglich sein; außer man bastelt sich einen einen Alternativclient als primäre iPhone App, was einerseits ewig dauern, vermutlich instabil und andererseits evtl. gar nicht von Threema gestattet ist. Die Kopplung über Threema Web ist m.E. also definitiv nötig, allerdings sehe ich da viele Optimierungsmöglichkeiten, werde mich bald mal daran machen.

    Euch einen guten Rutsch ins neue Jahr!

  • @"manufant" danke für den Vorschlag - bin davon ausgegangen, dass das nativ so von Threema unterstützt wird. Habe Threema persönlich bisauf mit ganz wenigen Leuten in meiner Liste kaum in Benutzung, ist mir daher gar nicht aufgefallen. Dann wird ThreeWatch also bald einen neuen Tab drin haben :D Hatte kurz überlegt das als 2 separate Produkte anzubieten aber ich bin ja kein Monster, dann packen wir das in eine App und gut ist :)

    Danke, lass dir ruhig Zeit. Lieber eine saubere Lösung als eine schnell, schnell Lösung.
    Wenn du Beta Tester suchst kannst dich gerne bei mir melden.

    Ist dann nur die Frage ob der Name der App noch passt.

    Finde das Schade das es in der normalen App nicht unterstützt wird, die Empfehlung von Threema für Multidevice finde ich eher einen Witz.
    Bevor es Threema Web eingeführt wurde, gab es ja auch keine ander Möglichkeit, nun aber in meinen Augen schon...
    https://threema.ch/de/faq/multidevice

    Wenn ich im Safari auf dem iPad in einen Tab Threema Web offen habe, klappt das schon ganz gut...jedoch muss ich dann immer in den richtigen Tab wechseln...und manchmal verliert er die Session... nervig :-/

    Wenn ich mir die Webseite Seite auf den Home-Bildschirm lege (Webapps) wird jedesmal die Session beim Wechseln in eine andere App beendet...glaube das sind aber Apple Limitierungen bei Webapps.

    Bin gespannt was du zauberst ;)


  • Finde das Schade das es in der normalen App nicht unterstützt wird, die Empfehlung von Threema für Multidevice finde ich eher einen Witz.
    Bevor es Threema Web eingeführt wurde, gab es ja auch keine ander Möglichkeit, nun aber in meinen Augen schon...
    https://threema.ch/de/faq/multidevice


    Die Idee für Multi-Device über das Web Client Protokoll existiert aber schon länger. Wurde bisher eben noch nicht offiziell aufgegriffen. :)


  • Danke für den Hinweis! Natürlich darfst du fragen :D die momentane Implementierung ist komplett high-level; ich gehe nicht "direkt" an die Kommunikation ran.

    Ich würde da gerne aber nochmal nachhaken: Klar, du nutzt das Web Client Protokoll (aka App Remote Protocol) für den Zugriff auf die Daten. Das müsstest du dann ja neu implementiert haben auf Basis von SaltyRTC, inklusive z.B. dem Message Acknowledgement, was für persistente Sitzungen über nicht-persistente Verbindungen benötigt wird, korrekt? :)

  • Danke für deine Rückmeldung. Das Problem ist, dass man in Safari die Threema-Sitzung nicht wieder (mit einem Passwort) aufrufen kann. Der QR-Code muss erneut am iPhone eingelesen werden. In einer bestehenden Sitzung ist auch die Anzeige für eine neue Nachricht im Tab wenig hilfreich, da sie nach ein paar Sekunden verschwindet.