01Projektübersicht
Kyndsy ist eine mobile App, die eine Frage beantwortet, die die meisten Menschen über sich selbst nicht beantworten können: wie spreche ich eigentlich? Sie hört während eines gewöhnlichen Gesprächs auf die Stimme ihres Besitzers und zählt die groben Wörter, die höflichen, die Füllwörter und die Momente, in denen der Ton scharf wird. Sie zeigt den Trend über Tage und Wochen. Und dann hört sie auf — sie sagt der Person nicht, was für ein Mensch sie macht.
Die Prämisse ist, dass Selbstverbesserungs-Apps hauptsächlich ein Diagramm Ihrer eigenen Meinung zeichnen. Sie berichten über Ihren Tag, sie visualisieren den Bericht. Kyndsy beginnt mit etwas, das schwerer zu bestreiten ist: den Wörtern, die tatsächlich gesagt wurden, gezählt, während die Person beschäftigt war zu leben, anstatt sich hinzusetzen und nachzudenken.
Das macht das Produkt auch schwierig. Das Zählen von Sprache bedeutet ein Mikrofon, und ein Mikrofon bedeutet, dass die Person der App mehr vertrauen muss als fast allem anderen auf dem Telefon. Das gesamte Produkt basiert also auf einem Versprechen, das strukturell sein musste: der Ton wird niemals gespeichert, die Wörter werden niemals aufgeschrieben, die Stimmen anderer Menschen werden nicht analysiert, und es gibt kein Konto, an das irgendetwas davon angehängt werden kann. .
Wir haben das Ganze entworfen und gebaut: die App für iOS und Android, ihren Inhalt in dreißig Sprachen, das leichte Backend, den Veröffentlichungsweg im Store und die Produktseite. Unten sind das Problem, die Entscheidungen und die Teile, die wir absichtlich nicht gebaut haben.
02Kontext und das Problem
Eine App, die zuhört, ist eine Kategorie, in der die offensichtliche Implementierung auch die falsche ist. Das Entpacken der Aufgabe erzeugte eine Reihe von Einschränkungen, die alles danach prägten.
- Vertrauen ist das Produkt.Eine App, die Sprache misst, hat genau ein Gut, und das ist nicht der Algorithmus. Wenn eine Person vermutet, dass der Audioinhalt das Telefon verlässt, spielt keine Genauigkeit eine Rolle – sie deinstalliert.
- Andere Personen haben nicht zugestimmt.Ein Mikrofon in einem Raum nimmt jeden auf, der sich darin befindet. Die Analyse der Personen um den Besitzer wäre eine ganz andere App und eine viel schlechtere.
- Eine Zahl über eine Person ist gefährlich.Jede einzelne Punktzahl, die behauptet, ein menschliches Wesen zusammenzufassen, ist eine Behauptung, die das Produkt nicht ehrlich machen kann — und die die Menschen als ein Urteil lesen werden, unabhängig vom Disclaimer.
- Rohzahlen lügen."Du hast heute neunmal geschworen" belohnt Stille. Eine Person, die nichts sagt, sieht aus wie eine Person, die sich verbessert hat.
- Worte sind mehrdeutig.Dasselbe Wort ist ein Witz, ein Zitat, eine selbstgerichtete Beschwerde oder eine echte Beleidigung, je nach Ton und Kontext. Nur die Zählung der Zeichen ergibt Zahlen, die niemand als ihren eigenen Tag erkennt.
- Menschen sprechen nicht eine Sprache.Sie wechseln mitten im Satz. Ein Zähler, der nur einer von ihnen folgt, berichtet jedes Mal von einem verdächtig ruhigen Tag, wenn sein Besitzer die Sprache wechselt.
- Die Geschäfte haben Regelnüber die Nutzung von Mikrofonen, über Gesundheits- und Psychologieansprüche und darüber, was ein Abonnement sperren kann — und sie werden bei der Einreichung, nicht am Veröffentlichungstag durchgesetzt.
All das musste auf einem Telefon im Hintergrund laufen, ohne den Akku oder die Geduld der Person zu strapazieren.
03Projektziele
- Sprache auf dem Gerät messen.Die Analyse erfolgt auf dem Telefon; Audio wird niemals gespeichert und niemals hochgeladen.
- Nur die Stimme des Besitzers.Andere Stimmen werden nicht analysiert, sondern verworfen, und es gibt keinen Modus, um die App auf eine andere Person zu richten.
- Kein Konto, kein Name.Nichts, was geleakt werden könnte, da nichts gesammelt wird, was geleakt werden könnte.
- Raten, keine Rohzahlen.Alles pro tausend gesprochene Wörter, sodass ein ruhiger Tag ein ruhiger Tag ist und kein Erfolg.
- Dreißig Sprachen, einschließlich gemischter Sprache — die Wörterbücher müssen in allen gleichzeitig existieren, oder die Zahl ist falsch für die Menschen, die wechseln.
- Nuancen unterscheiden.Ironie, Sarkasmus, ein Witz und eine echte scharfe Bemerkung unterscheiden und als Vermutung, niemals als Urteil, kennzeichnen.
- Nützlich ohne das Mikrofon.Das Tagebuch, der Wertekompass, die Tests und die Abendfragen funktionieren für sich.
- Motivation, die nicht ausgenutzt werden kann.Läufe, Level und Programme werden nach Messung beurteilt, nicht durch das Öffnen der App.
- Keine Gesamtbewertung einer Person.Weder in Version eins noch später.
04Was wir gemacht haben
Die App ist als vier Bereiche aufgebaut, die jeweils eine andere Frage beantworten, plus die Teile, die sie unterstützen:
- Heute — was gerade passiert ist: die Sprachbewertung, die Ziele des Tages und ein einzelner Vorschlag, niemals eine Liste von sechs.
- Fortschritt — ob es irgendwohin geht: Läufe, Stufen, Programme und der wöchentliche Bericht.
- Der Kompass — was die Person beschlossen hat, anzustreben: drei bis fünf Werte, die sie selbst gewählt haben, und die Bewegung in Richtung dieser.
- Du — alles, was nur ihnen gehört: die Selbsttest, der Familienzugang, ihre Daten und Unterstützung.
Darunter befinden sich die Elemente, die diese vier ehrlich machen: die Sprachanalyse auf dem Gerät, Wörterbücher und Regeln für dreißig Sprachen, der Farbklassifikator, das Zählmodell, das in Raten statt in Gesamtzahlen arbeitet, ein leichtes Backend, das fast nichts weiß, und ein Einstellungsregister, das es dem Produkt ermöglicht, sich ohne einen Store-Release zu ändern.
05Privatsphäre als Code, nicht als Kopie
Die Datenschutzansprüche auf der Seite sind kein Marketingtext, den eine spätere Optimierung leise ungültig machen könnte. Sie sind Eigenschaften des Builds, und das Projekt behandelt eine Änderung, die eine dieser Eigenschaften unwahr macht, als Defekt und nicht als Kompromiss.
- Der Ton wird nirgendwo geschrieben — nicht in eine Datei, nicht in einen temporären Puffer auf der Festplatte, nicht in ein Protokoll. Auch nicht in einem Debug-Build, denn ein Debug-Build ist, wie diese Dinge entkommen.
- Nur die Stimme des Eigentümers wird analysiert.Die Sprache anderer Personen wird verworfen, bevor sie überhaupt zu Wörtern wird.
- Nichts wird transkribiert.Die App produziert Zähler, keinen Text; es gibt keinen gespeicherten Satz, der geleakt, vorzuladen oder versehentlich synchronisiert werden könnte.
- Eine Sitzung beginnt nur, wenn eine Person sie startet.Kein automatischer Start nach einem Neustart, kein leises Fortsetzen im Hintergrund.
- Das Sprachprofil verlässt niemals das Telefon und ist von Gerätesicherungen ausgeschlossen – es handelt sich um biometrische Daten, und ein Backup ist der eine Ort, an dem die Leute vergessen, dass es reisen kann.
- Der Backend wird vier Dinge und nicht mehr gesagt: eine Anfrage nach Einstellungen, einen einmaligen Modell-Download, eine Support-Nachricht, falls die Person eine geschrieben hat, und einen Abonnementbeleg. Es gibt kein Konto.
- Eine Person ist ein Paar zufälliger Zahlen die ihr eigenes Telefon erstellt hat. Wir geben sie nicht aus und zählen sie nicht – was bedeutet, dass wir nicht wissen, wie viele Installationen es gibt, und das war ein bewusster Preis.
- Die Anmeldung ist optional und schaltet nichts frei. Sie dient dazu, ein Abonnement und die Historie auf ein neues Telefon zu übertragen. Sie verpflichtend zu machen, hätte eine Verbindung zu einer echten Identität geschaffen, wo heute keine existiert.
Dieser letzte Punkt ist es wert, näher betrachtet zu werden. Die Anforderung des Eigentümers war, nichts als eine anonyme ID zu wissen – und der verlockende Weg, dies zu erfüllen, ist eine verpflichtende Anmeldung, die wir dann versprechen, nicht zu lesen. Wir haben das Gegenteil getan: kein Konto überhaupt und eine optionale Anmeldung, die genau ein Feld aus dem Token liest und es gehasht speichert.
06Was die App tatsächlich zählt
Vier Dinge: grobe Ausdrücke, höfliche Ausdrücke, Füllwörter und einen erhöhten oder schärferen Ton. Alle werden pro tausend gesprochene Wörter, niemals als rohe Gesamtzahl — denn eine rohe Zählung lässt Stille wie Fortschritt erscheinen, und eine App, die ihren Besitzer dafür belohnt, nicht zu sprechen, hat ihren eigenen Job missverstanden.
Die Schlagzeile des Tages ist ein respektvoller Sprachindex, und die Regeln darum sind ebenso durchdacht wie die Zahl selbst:
- Es ist völlig verborgen, bis fünfzig Wörter gehört wurden.Eine Null an einem ruhigen Morgen liest sich wie eine Anschuldigung, nicht wie fehlende Daten.
- Tage unter fünfzig Wörtern sind sichtbar, aber nicht gezählt — sichtbar als leer, anstatt vorzugeben, ein guter Tag zu sein.
- Höflichkeit kann es um höchstens zehn Punkte heben.Jeder weitere Punkt wäre billiger zu manipulieren mit Höflichkeiten, als ihn durch Scharfsinn zu verdienen.
- Jedes einzelne Ereignis kann als falsch markiert werden, und dies ändert die Zahl, anstatt nur eine Zeile von einer Liste zu streichen.
Die Ansichten sind in ihrer Form gewöhnlich und in den Details sorgfältig: ein sieben Tage Trend, ein stündliches Bild des Tages, ein dreißig Tage Raster mit einem Quadrat pro Tag. Die Stundenansicht weigert sich, eine "schlechteste Stunde" zu erklären, bis sie zehn Ereignisse hat, auf die sie sich stützen kann; das dreißig Tage Raster lässt ruhige Tage beige, anstatt sie als ruhig zu färben. Diagramme, die auf dünnen Daten vertrauenswürdig sind, sind der Grund, warum ein Messprodukt das Vertrauen des Lesers verliert — normalerweise für immer.
07Nuancen der Sprache: Ironie, ein Witz, ein Seitenhieb
Ein Witz und eine Beleidigung sind nicht dasselbe Wort zweimal. Kyndsy trennt Ironie von einer echten scharfen Bemerkung, einen Witz von einem Seitenhieb, ein Zitat von etwas, das die Person gemeint hat — und zeigt, was sie glaubt gehört zu haben, in Worten, neben dem Ereignis.
Zwei Regeln halten diese Funktion ehrlich. Erstens wird sie als eine Vermutung, nicht ein Urteil: die App sagt "möglicherweise Ironie" oder "ein Witz — nicht gezählt" und zeigt, worauf sie sich stützt. Zweitens, und wichtiger, bewegt die Schattierungsklassifikation niemals den Index. Sie informiert die Person; sie passt nicht stillschweigend deren Punktzahl an. Eine vertrauensgewichtete Zahl wäre für niemanden überprüfbar und würde stillschweigend zur umstrittensten Funktion des Produkts werden.
Die gleiche Sorgfalt gilt für den Kontext: dasselbe Wort zählt anders, wenn die Person jemanden zitiert, über sich selbst spricht oder mitten in einem Streit ist. Und da kein Wörterbuch wissen kann, was die Worte einer bestimmten Person für sie bedeuten, können sie ihre eigenen Listen führen.
08Dreißig Sprachen — und die Mischung
Die App funktioniert in dreißig Sprachen — Englisch, Spanisch, Portugiesisch, Deutsch, Französisch, Italienisch, Niederländisch, Schwedisch, Dänisch, Norwegisch, Finnisch, Polnisch, Tschechisch, Kroatisch, Rumänisch, Ungarisch, Griechisch, Türkisch, Russisch, Ukrainisch, Weißrussisch, Hebräisch, Arabisch, Hindi, Indonesisch, Vietnamesisch, Thailändisch, Chinesisch, Japanisch und Koreanisch — und in mehreren von ihnen gleichzeitig, weil viele Menschen tatsächlich so sprechen.
Dreißig Sprachen sind nicht dreißig Übersetzungen der Benutzeroberfläche. Es sind dreißig Sets von Wörterbüchern — grobe Ausdrücke, höfliche Formeln, Füllwörter — und sie müssen gleichzeitig landen zur gleichen Zeit. Eine Sprache, deren Wörterbuch halb fertig ist, scheitert nicht laut; sie meldet einen ruhigen Tag. Die Person sieht eine gute Zahl und glaubt ihr, was schlimmer ist als eine Fehlermeldung.
Eine Lektion aus diesem Projekt verallgemeinert sich gut über dieses hinaus: eine Funktion, die aus der Form des Textes erkannt wird, bricht in der ersten Sprache, die anders geschrieben ist, zusammen. "Eine Phrase" als "eine Zeichenkette, die ein Leerzeichen enthält" zu behandeln, funktioniert bis Japanisch, Chinesisch und Thailändisch, die ohne sie geschrieben werden — und dort findet die App überhaupt nichts, stillschweigend, während sie so aussieht, als würde sie funktionieren. Das Sprachverhalten muss aus den eigenen Daten der Sprache kommen, und es muss durch einen Test abgedeckt sein, der über alle dreißig läuft.
09Der Kompass und das Tagebuch
Sprache ist nur die Hälfte des Produkts. Die andere Hälfte ist das, was die Person entschieden hat, anzustreben: Sie wählen drei bis fünf Werte aus sieben — Respekt, Ehrlichkeit, Selbstkontrolle, Verantwortung, Fürsorge, Fairness, Zuverlässigkeit — und die App zeigt Fortschritte in Richtung dieser, anstatt auf die Vorstellung eines anderen von einer guten Person zuzugehen.
Bewegung wird aus zwei Quellen gezogen: den Sprachmessungen und dem eigenen Tagebuch der Dinge, die sie getan haben – ein Versprechen gehalten, sich entschuldigt, jemanden angefahren, den Schaden repariert. Drei Fragen am Ende des Tages, wenn sie sie wollen.
Und es gibt keinen Gesamtscore für Moral, jetzt oder später. Das ist das einzige, was das Produkt sich weigert zu berechnen. Es ist auch der Grund, warum der Kompass funktioniert: Eine Person wählt ehrliche Werte nur für eine App, die sie nicht nach dem Ergebnis bewertet.
Alles in dieser Hälfte funktioniert ohne das Mikrofon. Das Tagebuch, der Kompass, die Tests und die Abendfragen stehen für sich, sodass eine Person den Sprachteil später einrichten oder nie einrichten kann und trotzdem etwas aus der App herausholen kann. Das war eine Produktentscheidung mit echten Konsequenzen für die Bindung, und wir würden es wieder so machen – eine Erlaubungsaufforderung auf dem ersten Bildschirm ist der Punkt, an dem eine datenschutzsensible App die Menschen verliert, für die sie entwickelt wurde.
10Programme, Durchläufe und der wöchentliche Bericht
Die Motivation in dieser App musste immun gegen die beiden üblichen Tricks sein: die App oft zu öffnen und nichts zu sagen. Also:
- ProgrammeLaufen Sie 7 bis 30 Tage mit einem Ziel und einer Zahl – sieben Tage ohne grobe Worte, weichere Antworten für zwei Wochen, weniger Füllwörter über einen Monat. Ob es funktioniert hat, wird durch die Messungen entschieden, nicht durch das Abhaken eines Kästchens.
- Ein Lauf zählt die Tage, an denen die Person das Niveau tatsächlich gehalten hat.Stille Tage brechen es weder noch verlängern sie es – das Handy wegzulegen ist kein Weg zum Gewinnen.
- Niveaus werden durch Tage verdient, nicht durch App-Öffnungen: Beobachten, Kontrolle, ruhige Sprache.
- Schilde decken einen Ausrutscher bis zu einem gewissen Punkt ab, und ein gebrochener Tag kann zurückgekauft werden – aber ein Lauf von dreißig Tagen mit vier zurückgekauften Tagen ist kein Lauf von dreißig Tagen, daher werden diese separat gezählt und angezeigt.
- Der wöchentliche Bericht sagt klar, wann es nicht genug zum Vergleichen gibt.Eine Zusammenfassung, in der sich immer etwas verbessert, wird ab der dritten Woche nicht mehr gelesen.
Eine absichtliche Asymmetrie ist es wert, benannt zu werden: Die kostenlose Stufe begrenzt, wie viel Historie angezeigt, nicht wie viel gezählt. Eine Berechnung eines Laufs nur über das sichtbare Fenster hätte einen dreißigtägigen Lauf als sieben angezeigt — nicht eine Einschränkung des kostenlosen Plans, sondern eine falsche Aussage über die Person.
11Hundert Selbsttests
Neben den Messungen sitzen hundert strukturierte Selbstprüfungen: fünfundzwanzig Aussagen jeweils, etwa vier Minuten, über fünf Facetten separat bewertet, sodass die Antwort niemals eine flache Zahl ist. Sie decken Sprache, Gefühle, Menschen in Ihrer Nähe, Arbeit, sich selbst, Gewohnheiten und das Leben online ab.
Sie sind ausdrücklich keine Diagnosen und keine Persönlichkeitsmessungen — sie sind strukturierte Selbstreflexion, und die App sagt dies dort, wo eine Person es lesen wird, anstatt auf einem Einstellungsbildschirm. Die Antworten bleiben wie alles andere auf dem Telefon.
Der technische Punkt hier ist, dass hundert Tests nicht als hundert handgeschriebene Bildschirme verwaltet werden können. Sie sind eine Ressource, nicht Code: generiert aus Quellen, zur Build-Zeit validiert und abgelehnt, wenn ein Test nicht sein vollständiges Set an Aussagen und Facetten hat. Diese Überprüfung macht es überhaupt möglich, hundert davon zu haben, und es ist der Grund, warum ihre Freischaltregeln konsistent verteilt werden konnten, anstatt von Hand verstreut zu werden.
Die Hälfte von ihnen öffnet sich durch Nutzung, die andere Hälfte durch Kauf. Die Store-Produkte hinter der kostenpflichtigen Hälfte sind absichtlich wenige, anstatt eins pro Test — niemand erstellt hundert Store-Einträge von Hand, und niemand übersetzt hundert davon in dreißig Sprachen. Das verkaufte Produkt ist eine Freischaltung; die Person wählt aus, für welchen Test sie es innerhalb der App ausgeben möchte, nachdem der Kauf bestätigt wurde.
12Abonnement, Familie und die Geschäfte
Die kostenpflichtige Stufe ist ein Abonnement, und ein Familienplan teilt es — sechs Plätze für ein Jahr, einschließlich des Käufers. Was zählt, ist, was die Familie teilt und was nicht: Eine Familie teilt das Recht, nicht die Daten. Niemand sieht die Zahlen, Ereignisse oder das Tagebuch eines anderen, und die Person, die bezahlt hat, sieht freie Plätze und Daten, nicht wer sich darin befindet.
Das ist keine Zeile im Kleingedruckten; so ist es aufgebaut. Die Messungen anderer Personen sind überhaupt nicht auf dem Server, sodass es nichts gibt, was versehentlich auf einem Familienbildschirm offengelegt werden könnte. Einen Code einzugeben bedeutet, der gemeinsamen Nutzung eines Abonnements zuzustimmen, nicht sich identifizieren zu lassen.
Zwei Implementierungsregeln aus diesem Teil haben das Feature überlebt. Erstens, das Abonnement und das Familienrecht sind eine Flagge in der App: Eine zweite Frage der Form "oder vielleicht sind sie in einer Familie" würde genau an den Stellen vergessen, wo es wichtig ist. Zweitens, Schweigen vom Server widerruft das Recht nicht — das Netzwerk bricht viel häufiger ab, als ein Abonnement endet, und eine App, die einen zahlenden Kunden in einem Zug aussperrt, hat eine offensichtliche Wahl schlecht getroffen.
Die Store-Richtlinien prägten viel von der Oberfläche hier: was eine Mikrofon-App behaupten darf, wie eine kostenpflichtige Stufe präsentiert werden kann, und die Tatsache, dass ein fehlerhafter Build nicht mit einem Hotfix zurückgezogen werden kann. Deshalb ist die Versionsrichtlinie — minimale unterstützte Version, erzwungene Aktualisierung, Wartungsmodus und die angezeigte Nachricht, in allen Sprachen des Projekts gleichzeitig — eine serverseitige Einstellung und nicht etwas, das kompiliert wird.
13Architektur: App, Backend, Register
Die Architektur folgt aus dem Datenschutzversprechen: so viel wie möglich auf dem Telefon, so wenig wie möglich auf dem Server.
- Die App führt die Analyse durch, hält die Historie und besitzt das Sprachprofil. Es ist das gesamte Produkt; der Server hat eine unterstützende Rolle.
- Ein leichtes Backend beantwortet vier Arten von Anfragen – Einstellungen, einen einmaligen Modell-Download, Unterstützungsnachrichten und Abonnementquittungen. Es hat keine Benutzertabelle, weil es keine Benutzer gibt, die dort eingetragen werden könnten.
- Ein Konfigurationsregister hält das, was sonst im Code der App fest codiert wäre: Paketbezeichner, API-Adresse, Anmeldeparameter, die Sprachliste, Feature-Flags und die Versionsrichtlinie. Die Werte werden in den Quellcode generiert, anstatt dort eingegeben zu werden, und die generierte Datei ist als nicht zu bearbeitend gekennzeichnet, aus dem einfachen Grund, dass eine manuelle Bearbeitung bei der nächsten Generierung verloren geht.
- Eine Vorabprüfung überprüft jeden Build: Sie wird abgelehnt, wenn der Paketbezeichner vom Register abweicht, wenn die Version nicht höher ist als die zuletzt versendete, wenn der Server der App nicht antwortet, wenn ein Wörterbuch in einer der Projektsprachen unvollständig ist, wenn die statische Analyse nicht sauber ist, wenn Tests fehlschlagen oder wenn etwas, das einem Schlüssel ähnelt, im Quellcode gefunden wird. Sie gibt einen nicht-null Exit-Code zurück, was sie als Tor in jedem CI verwendbar macht.
- Die kostenpflichtige Stufe ist hinter einem Flagdie ohne einen Neuaufbau und ohne eine neue Store-Version deaktiviert werden können.
Die Seite ist eine kleine PHP-Anwendung ohne eigene Datenbank, abgesehen von Support-Korrespondenz — dasselbe Prinzip gilt eine Ebene höher.
14Technologie-Stack
- Flutterfür iOS und Android aus einem Codebestand — mit einem Designsysten im Code, sodass Farbe, Abstand und Radius an einem Ort deklariert werden, anstatt in jedem Widget.
- Spracherkennung auf dem Gerätund Analyse auf dem Gerät: Modelle werden einmal heruntergeladen und lokal ausgeführt, wobei das Manifest, das sie beschreibt, aus den Dateien erstellt wird, anstatt von Hand geschrieben zu werden.
- PHP 8.4für das App-Backend und die Seite, mit einer kleinen Datenbank, die nur für Support-Korrespondenz verwendet wird.
- Ein Konfigurationsregisterals die Quelle der Wahrheit für App-Einstellungen, mit generiertem Code und einem Pre-Flight-Gate.
- Dreißig Sprachpaketefür die App und drei für die Seite, wobei die Parität des Wörterbuchs durch Tests und nicht durch Überprüfung durchgesetzt wird.
- Eine strenge Inhalts-Sicherheitsrichtlinie auf der Seite — keine Inline-Stile, berechnete Werte in ein Stylesheet kompiliert und eine selbst gehostete Schriftart, sodass die Seite über Datenschutz keine einzige Ressource von Dritten abruft.
15Design und UX
Die visuelle Sprache ist ein dunkles Thema, das von der Produktseite übernommen wurde, sodass das, was einem Besucher versprochen wird, dem entspricht, was er öffnet. Ein zweites helles Thema wurde in die Tokens geschrieben und absichtlich nicht veröffentlicht: zwei Themen bedeuten zwei Sets von Screenshots und doppelt so viele Stellen, an denen ein Layout unbemerkt bricht.
Farbe, Abstand und Radius leben in einer Design-Datei, und der Übergang zwischen einer alarmierenden Farbe und einer ruhigen erfolgt durch ein warmes Gelb — die direkte Interpolation ergibt einen olivfarbenen Schlamm, was wie Nachlässigkeit aussieht und tatsächlich ein fehlender Wegpunkt ist.
Die App hat einen Charakter, und die Regeln darum herum handeln von Ehrlichkeit ebenso wie von Charme: Die Stimmung ist aus der Silhouette ablesbar, nicht nur aus der Farbe, sodass eine farbenblinde Person dasselbe sieht wie alle anderen; die Stimmung ist eine kontinuierliche Skala, die zwischen Werten animiert wird, anstatt fünf feste Bilder zu zeigen, denn ein Sprung wird als ein anderes Bild wahrgenommen und nicht als derselbe Freund; und am ängstlichen Ende gehen die Augenbrauen an den inneren Enden nach oben, denn nach unten und innen ist Wut bei der Person, die schaut.
Überall sonst folgt die Benutzeroberfläche der zentralen Regel des Produkts: Zeige, was gemessen wurde, sage, wenn es nicht genug gibt, um etwas zu sagen, und verwandle niemals eine Person in eine einzelne Zahl.
16Wie wir gearbeitet haben
- Das Versprechen zuerst. Wir haben aufgeschrieben, was die App niemals tun würde — Audio speichern, andere Menschen analysieren, fragen, wer du bist, dich als Person bewerten — bevor wir irgendetwas entworfen haben, denn diese Entscheidungen schränken die Architektur ein, anstatt sich aus ihr zu ergeben.
- Messkern. Analyse auf dem Gerät, das Zählmodell in Raten, der Index mit seinen Schwellenwerten und seiner Weigerung, bei dünnen Daten zu erscheinen.
- Spracharbeit.Dreißig Wörterbücher und Regeln, mit Parität, die durch Tests über alle gleichzeitig durchgesetzt wird.
- Die andere Hälfte.Kompass, Tagebuch, Programme, Läufe, wöchentlicher Bericht — alles, was ohne das Mikrofon funktioniert.
- Tests als Ressource.Hundert Selbsttest-Tests generiert und validiert, mit ihrer Freischaltleiter, die vom Generator verteilt wird.
- Monetarisierung.Abonnement, Familie, die kleine Auswahl an Ladenprodukten und eine kostenpflichtige Stufe hinter einer Flagge.
- Veröffentlichungsweg.Registry, generierte Konfiguration, Vorab-Gate, Build-Registrierung und Versionsrichtlinie.
- Die Seite.Drei Sprachen, eine strenge Inhalts-Sicherheitsrichtlinie und eine Landingpage, die die echten Bildschirme der App zeigt.
Zwei Dinge kamen während des Builds immer wieder auf, und beide sind jetzt Regeln. Alles, was die Benutzeroberfläche über das Verhalten einer Person behauptet, muss gegen eine Messung überprüfbar sein, und alles, was die App über Datenschutz verspricht, muss durch den Code durchgesetzt werden, anstatt durch eine Notiz in einem Dokument — ein gemeinsames Verständnis überlebt genau bis zur nächsten Person, die es nicht gelesen hat.
17Das Ergebnis
Was herauskam, ist ein Messprodukt für etwas, das die Menschen normalerweise nur schätzen, so gebaut, dass das Messen ihnen nicht ihre Privatsphäre kostet.
- Sprachanalyse auf dem Gerät: nichts aufgezeichnet, nichts transkribiert, andere Stimmen ausgeschlossen.
- Alles wird pro tausend Wörter berichtet, sodass Stille nicht mit Fortschritt verwechselt wird.
- Ironie, Sarkasmus und Witze, die auseinandergehalten und als eine Vermutung gekennzeichnet werden, die den Punktestand nie verändert.
- Dreißig Sprachen mit Wörterbüchern, die zusammenkommen, abgedeckt durch Tests in allen von ihnen.
- Ein Wertekompass, ein Tagebuch, Programme und ein wöchentlicher Bericht, der zugibt, wenn er zu wenig zum Vergleichen hat.
- Hundert Selbsttests als validierte Ressourcen, mit einem kleinen, wartbaren Satz von Lagerprodukten hinter der bezahlten Hälfte.
- Ein Familienplan, der das Abonnement teilt und sonst nichts, weil die Daten nicht auf dem Server zum Teilen sind.
18Erkenntnisse
Kyndsy ist das Projekt, bei dem die schwierigste Ingenieursarbeit in den Einschränkungen lag. Analyse auf dem Gerät, kein Transkript, kein Konto, kein Gesamtergebnis, keine analysierenden Zuschauer – jede dieser Bedingungen machte den Aufbau schwieriger und das Produkt möglich. Eine Version dieser App mit einer serverseitigen Pipeline und einem Login wäre schneller zu schreiben gewesen und hätte niemandes Mikrofon verdient.
Die Lektion, die wir mitnehmen, betrifft, wie Versprechen gehalten werden: eine Garantie, die in einem Dokument lebt, ist eine Garantie bis zur nächsten Änderung, gegen die niemand überprüft.. Diejenigen, die hier gehalten werden, sind die, die als Code ausgedrückt und durch Tests abgedeckt sind – Parität über dreißig Sprachen, Kontrast überprüft als Zahl und nicht durch Anschauen, Bewegung verifiziert durch Werte und nicht durch Screenshots, ein Build-Gate, das verweigert und nicht warnt.
Wenn Sie ein mobiles Produkt entwickeln, bei dem Datenschutz das Merkmal und nicht der Haftungsausschluss ist, etwas, das in vielen Sprachen gleichzeitig funktionieren muss, oder eine App, deren Zahlen die Menschen über sich selbst vertrauen sollen, ist dies die Art von Arbeit, die wir von der Idee bis zum Store übernehmen.



