Shengxing Zhang

Project · Android

The Three Column Method

An Android thought-record notebook for practicing David D. Burns' three-column technique from Feeling Good: The New Mood Therapy: write down the automatic thought, mark the cognitive distortions in it, write a rational response.

Thought records

Situation, automatic thought, tappable cognitive-distortion chips and a rational response; the belief rating is optional; any single record can be shared.

Adapts to the screen

On tablets and in landscape the two columns sit side by side, situation and automatic thought on the left, distortions and rational response on the right; on a narrow phone they become two pages, switched by swipe or tap.

Find what you wrote

Results appear as you type, grouped by date.

Privacy first

Fully offline. The optional app lock uses fingerprint, face or the device password; while locked, the recent-apps preview is hidden and screenshots are blocked.

Screenshots

The thought-record list: entries grouped by week and month, each showing the situation, the automatic thought, its distortion tags and the rational response, plus the optional belief change. Editing a record, page one, 'Automatic thought': what happened (optional), then the automatic thought: 'The plan has a flaw, so the whole thing must be poor.' Page two, 'Distortions and response': tappable distortion chips with 'mental filter' and 'discounting the positive' selected, their descriptions, and the rational response: 'Four out of five people said it was good, and one pointed out something to fix; finding that is exactly what review is for.'
Chinese interface, theme follows the system. The thought-record list, and the two pages of editing one record: automatic thought, then distortions and response.

Why it is built this way

A thought record says what you were afraid of that day and how much you believed it, which makes it more private than most notes. So the app is built on one rule: the program gets only the capabilities it needs, and the limit sits where the program cannot get around it.

No network permission

The app requests two system permissions, USE_BIOMETRIC and USE_FINGERPRINT, both serving only the optional lock; the other two lines in the command's output are the declaration and use of one app-private permission that androidx.core adds on its own, signature-level and granting no capability. android.permission.INTERNET is not in the list. Android enforces the limit: without that permission the app's own code cannot open a socket, no library it links can, and neither can a library added later. Check it on the APK below:

aapt dump permissions The-Three-Column-Method-v1.7.2.apk

The data stays in the app's own storage

Records live in a Room (SQLite) database in the app's private directory. There is no account, no sync, no analytics SDK, no crash reporter. Data leaves the app in exactly two ways, both started by you: as a JSON file you export, or as a single record sent through the system share sheet.

Earlier versions had one exception: Android's backup rules covered the database, so with the system's own backup enabled, a copy of the records reached your Google account. That path belongs to the system backup rather than to code in the app, but the data left the device all the same. 1.6.0 closed it: the app declares android:allowBackup as false and both backup-rule files are deleted, so the system no longer backs this app up. This too can be checked on the APK:

aapt dump xmltree The-Three-Column-Method-v1.7.2.apk AndroidManifest.xml | grep allowBackup

0x0 in the output means false. The only way to recover data now is a file you exported yourself.

The optional app lock

The app lock is optional and unlocks with fingerprint, face or the device password. While the app is locked, its preview in the recent-apps switcher is hidden and screenshots are blocked. Both guard against a record being seen on screen: a phone handed to someone else, or a screenshot taken for another purpose that catches an entry.

AgentGuard applies the same idea to a much larger program: decide what a program may touch, then put the limit somewhere it cannot get around. The design tradeoffs are written up in Designing a notebook that never goes online.

Download

Android APK

The Three Column Method

Version
1.7.2
File size
10.9 MB
Requires
Android 8.0 or later
Format
Android APK
Download APK
SHA-256
4FCACA2FAB7E0C47652019113784B238A3C741C250B090B7C858A25CE4F9D3F0

Android may ask you to allow installs from your browser or file manager; verify the SHA-256 before installing.

The app is also on Google Play, currently as a closed internal test: the opt-in link works only for Google accounts on the tester list; everyone else sees an error. Email me to be added, or just use the APK above.

Changelog

1.7.0
Three columns became two: situation and automatic thought share one page, distortions and rational response share the other; belief rating is now optional and collapsed by default.
1.6.0
System backup turned off. The app no longer permits Android backup, so thought records cannot reach a Google account; explicit export is the only recovery path.
1.5.0
Optional app lock added, using fingerprint, face or device password; recent-apps previews hidden and screenshots blocked while locked.