Morse Code Trainer

A pocket-sized Morse code card you can tap.

iOS In development

What it does

A binary tree of dots and dashes lights up as you tap. Short tap is a dot, long press is a dash. After a moment of silence, the letter you landed on commits to a decoded line at the top.

  • One big button

    Press and release. The app times your tap and turns it into a dot or a dash. No mode switching, no menus.

  • Live tree

    Watch the binary tree highlight your path through the alphabet. Right child for a dot, left for a dash.

  • Audio feedback

    A clean 700Hz tone plays for the duration of every press. The same sound a real key would make.

  • Built in SwiftUI

    No view-model layer, no router, no DI container. One @MainActor ObservableObject owns all state. The simpler the architecture, the longer the tool stays in service.

  • Hand-placed tree

    The Morse tree node positions are coordinates, not the output of a layout algorithm. Spacing was chosen by hand to fit the deepest 16 nodes in the available width.

  • Continuous tone

    A single 700Hz sine wave plays the whole time you're holding. Press duration still classifies dot or dash, but the audio stays one clean tone, the way a real telegraph key would sound.

Requirements

  • iPhone and iPad
  • iOS 16 or later

How it works

  1. Tap or hold

    Anything under 200ms is a dot. Anything longer is a dash. The tree lights up as you go.

  2. Pause

    600ms of silence tells the app you're done with this letter. The current path locks in.

  3. Decode

    The letter you landed on is appended to the decoded text line at the top. Keep tapping to spell whole words.

Where it stands

Morse Code Trainer is a personal learning tool. It is in active development and may eventually appear on the App Store, but it is first and foremost the app I wanted for myself.