CodeFlash: Runnable code cards
Flashcards with Code Execution
Free · In‑App Purchases · Designed for iPad. Not verified for macOS.
Code it. Remember it. Flash it!
A casual flashcard app for memorizing small bits of code and syntax.
It also works as a standard flashcard app, and it now reads your cards aloud — handy for language study too!
[ Recommended for ]
• Anyone learning programming
• People who want to learn common syntax and patterns by heart
• Anyone who wants to review on the go or in spare moments
• Anyone looking for a personal flashcard app — vocabulary, code, or otherwise
[ Features ]
■ Learn by writing code
Type code into your cards and run it instantly to check the output.
Supports JavaScript, TypeScript, Python, HTML, CSS, SQL, and C++ — learn by doing, not just reading.
■ Read your cards aloud
Hear the side you are looking at. Sentences that mix writing systems are read with the right voice for each part, and you can pick the voice and the speed — handy for memorizing vocabulary or reviewing with your ears.
■ Create cards with 3 types of blocks
Combine text, code, and image blocks freely. Text blocks support Markdown — headings, lists, bold, tables, and more.
■ Efficient spaced repetition learning
The FSRS algorithm adjusts each card's next review to your understanding, for effortless, lasting memorization.
■ Track progress with stats and graphs
See your study activity on a contribution graph, plus overall progress, deck mastery, and rating breakdown.
■ Works offline
Your learning data is stored on your device (and in your own iCloud when sync is on) and is never sent to external servers. No account registration required.
[ Great even on the free plan ]
• No limit on the number of decks or cards
• No ads
• Export / import your data to move it to another device
* Existing features will never be moved behind a paywall.
[ What you get with Pro ]
A one-time purchase. A 7-day free trial is available.
• iCloud Sync: sync your data across devices on the same Apple ID. On a new device, just toggle it on to restore everything
• HTML / CSS Preview: your code renders as a real page right inside the card. Go full screen to click buttons and type into inputs, or practice DOM manipulation from JavaScript. You can also register shared HTML and images on a deck
• SQL / C++ Execution: register deck-wide setup SQL and query the same database from every card
• Per-Deck Speech Language: set the reading language for each deck, and a different one for the front and the back
• Detailed Statistics: monthly study volume, per-grade rankings (top 10), and per-card performance
• Color Themes: 10 presets × light/dark to restyle your cards and the whole app
• FSRS Customization: tune review intervals to your own pace — shorter for thorough review, or longer for relaxed learning
• Study Timer: a countdown (1–60 min) that runs only while studying. Repeat it for Pomodoro
[ Other Features ]
• Card search, card duplication, and card transfer between decks
• Organize with tags and study across decks
• Shuffle cards to study
• Set a daily card goal
• Archive decks and cards (excluded from study and stats)
• JSON export / import (full backup)
• TSV export / import (card text and other partial data)
• Daily reminder notifications
• Dark mode
• Bluetooth keyboard shortcuts
• Available in English, Japanese, and Spanish
• Available on both iPhone and iPad
* Running HTML, CSS, SQL, and C++, and previewing JavaScript, are Pro features. Reading cards aloud is free.
* Internet is required only for iCloud sync and running Python / C++ (Python loads its execution environment; C++ is sent to Wandbox, an external service — no account or personal info is included).
Try the free version first!
more This update adds auto read-aloud and a goal view for your activity history.
[ New & Improved ]
• Auto read-aloud (Pro): cards are read automatically when shown or flipped. Choose off, front, back or both sides, and override it per deck
• Read-aloud can be turned off per deck: hide the button in a programming deck, for example
• Added a "Goal" view to the activity heatmap (Activity on the Stats tab): once you set a daily goal, the past year can be shown either by study volume or by whether you reached the goal, so the days you made it stand out
• Tap a badge in Stats → Learning Record to see when you earned it, or how much is left until you do
• window.open now works in the full screen HTML preview (Pro): an http(s) URL opened from a link or a button opens in Safari, and window.close() closes the preview
• Reworked the explanations shown by the i buttons: headings and items now follow one format, and an explanation opens only when you tap the button
[ Bug fixes ]
• Fixed an issue where highlight, bold, strikethrough, and underline in text blocks did not apply when the marks were next to punctuation such as Japanese brackets or quotation marks
• Fixed an issue where tapping the name of a settings row opened its explanation instead of the setting
• Fixed an issue where the goal reminder still fired, and the app icon badge stayed out of date, after another device's study was synced in from iCloud
Also includes minor wording and display adjustments.
1.11.1 9h ago
This update adds read-aloud for cards and Spanish as a display language.
[ New & Improved ]
• Added read-aloud for cards: tap the speaker button on the study screen (or press S) to hear the side you are looking at. In sentences that mix writing systems, each part is read with the voice that fits it, and you can pick the voice and the speed
• You can now set a speech language per deck (Pro): keep the app on English but read this one deck in Spanish. You can also use a different language for the front and the back
• Added Spanish as a display language: Settings → Display → Display Language
• Added a "Studied on" filter to search: list only the cards you studied on a given day. Tapping a bar in the "Done" chart on the Stats tab opens the same list
• The side you pick in search is now also the side shown in the results: when you search the back or the memo, you can see what actually matched
• Expanded the daily goal display: choose from three ways to be told when you reach it, plus a remaining-count badge, goal status in "Journey" on the Stats tab, and a goal line on the 7 day chart
• The study timer now carries over through the day: close the app and pick up where you left off, and it resets when the date changes
• Clearer restore from backup: each deck now shows how many items you can actually get back, and you can restore just the card order. The "Replace All" confirmation shows both what comes back and what you lose
• Added an "Only cards that update history" filter to Grade Ranking (Pro)
• Study Settings sections can now be collapsed, showing a one-line summary when closed
[ Bug fixes ]
• Fixed an issue on iPad where the accented letters shown by holding a key were white text on a white background
• Fixed an issue where explanation and confirmation dialogs could run past the screen at large text sizes, putting the close button out of reach
• Fixed an issue where list swipes did not work right after closing a confirmation dialog or an explanation
• Fixed an issue where the label field of a notification schedule was hidden behind the keyboard
• Fixed an issue where the iCloud sync notice reappeared every time you changed the display language
• Fixed a layout issue on iPad where narrowing the window left titles so little room that they wrapped one character per line
• Fixed an issue where adding an HTML/CSS stage to a deck and closing without typing anything left an empty stage behind
• Fixed an issue where a card created with "Copy" in the card editor stayed behind even when you closed the editor without saving (you can now choose to keep it or delete the copy)
Plus refreshed wording and layout across Settings, Stats, search, and the lists, on-screen guidance for selection mode, and a "Nothing" option for what happens when the study timer ends.
1.11.0 Sep 10
This update centers on multiple deck stages and a daily card goal, plus major stability fixes for the HTML preview.
[ New & Improved ]
• Decks can now hold multiple stages (Pro): create several named HTML/CSS stages and SQL setups, and pick which one each code block uses
• Added a daily card goal: get a notice when you reach it, see your progress on the Study tab and the session summary, and receive a reminder only when the goal is still unmet
• Returning to a session you left now focuses the card you were last on
• The notification settings screen now tells you why notifications will not fire (turned off in the app, or not allowed in iOS)
• Multi-line code in text blocks now scrolls horizontally instead of wrapping, so the shape of the code is preserved
• Explanations for code block and deck stage settings now open and close with an i button (closed by default)
• The HTML image library moved to the stage list, so you can open it even when a deck has no stages
• HTML/CSS stages now appear above SQL setup in deck editing
• The stage list can now be operated from a keyboard (J / K to move, Return to open, Delete to remove, N to add)
[ Bug fixes ]
• Fixed a crash that could occur when tapping a link or submitting a form in the HTML preview
• Fixed the preview turning blank when a form had no destination (it now reloads, as a browser would)
• Fixed code execution that could stay stuck without ever finishing
• Fixed the save button showing through behind the stage / setup sheets even though it was not tappable
• Fixed leading spaces in a text block being shown as code unintentionally
Also includes internal library updates and minor display adjustments.
1.10.1 Aug 16
This update centers on HTML / CSS preview execution (Pro) and a new Archive screen.
[ New & Improved ]
• Added HTML / CSS preview execution (Pro): running an HTML or CSS block now renders the actual result right in the card. JavaScript / TypeScript blocks can manipulate an HTML/CSS "stage" you define per deck or per block. Before running, only the stage is shown — perfect for "what changes when you add this code?" questions
• Added a full-screen interactive preview (Pro): tap the full-screen button on the preview to actually interact with your page — click buttons, type into inputs — while console output streams live at the bottom
• Added an HTML image library (Pro): register photos on a deck and reference them from an HTML img tag as "img://name". The image itself stays on the device, so your cards don't get heavy
• Added a "Source" tab (Pro): shows the stage HTML before running and a nicely formatted DOM after running. Copy buttons were added to stages and SQL setup code as well
• Added an Archive screen: Settings → "Archive" lists your archived decks and cards, where you can select multiple items to unarchive or delete them in bulk
• You can now study from an archived deck: choose "Unarchive and study" or "View only (no records)". View-only mode writes no study history at all — handy when you just want to review the content
• You can now reorder multiple cards / tags at once: select rows, then move them together with the U / D keys or a long-press drag
• You can now add and remove tags while studying: a tag row appears on the card back; tap it (or press T) to open a sheet and edit tags — or create a new one — without leaving the study screen
• Improved code execution timing: code that schedules work with setTimeout now automatically extends the execution limit to match (up to 30 seconds). Console output is also streamed while running, so you can watch the progress of time-based code such as setInterval
• alert now works in code execution
• Added a Markdown cheat sheet to text blocks: tap the help icon in the block header to check the supported syntax while you write
• Improved Markdown tables (bold header row, column dividers), and code fences inside text blocks are now syntax highlighted
• TSV export / import now preserves code blocks: blocks are written as Markdown code fences and restored with their language on import. For decks containing content TSV can't carry (SQL setup, HTML stages, images), you'll see a breakdown before exporting
[ Bug fixes ]
• Fixed an issue where toggling the reorder lock scrolled the list back to the top
• Fixed an issue where auto-scrolling stopped working during later drags after you dropped an item back in its original position
• Fixed an issue on iPad where switching selection mode could jump the list to the top
• Fixed an issue where a card list for an archived deck could appear empty depending on your initial filter setting (it now always opens with "All")
Plus minor improvements to the study timer display, the copied text of execution results, the selection-mode header, and the order of the code block language list.
1.10.0 Aug 5
This update centers on a Study Timer (Pro), a 1-week free Pro trial, and a new "Today's Summary" in Stats.
[ New & Improved ]
• Added a Study Timer (Pro): a pie-style countdown (1–60 min) that runs only while you're studying and continues across decks — great for "just 10 minutes today." Choose how it appears (Always / At start / Off), or hide the circle for a minimal number-only display
• Added Pomodoro (repeating study → break) (Pro): automatically alternates study and break periods. Set the break to 0 minutes for continuous, break-free sets
• Added a 1-week free Pro trial: start it once from the paywall to use all Pro features for the trial period (a badge shows the days remaining)
• Added "Today's Summary" to Stats: a bar shows today's completion rate; tap it to see a grade breakdown donut (correct rate, first-time cards, average answer time)
• You can now collapse each section on the Stats tab (the open/closed state is remembered)
• Added a "Grade rate" mode to the per-grade ranking (Pro): rank cards by each grade's share of all reviews, in addition to count and average response time — surfaces struggling cards even with few reviews (cards need a minimum number of reviews in the period)
• Expanded Learning Record badges: Reviews / Study time / Study days now have 10 badges each
• You can now swipe left to delete a notification schedule
• Improved hardware-keyboard support: archive from lists with the E key, and open the monthly chart's data with J/K + Space
[ Bug fixes ]
• Fixed an issue on iPad (Split View / Stage Manager) where the screen could break or shift when a neighboring app showed the keyboard
• Fixed an issue where the "New" block count in Stats could disagree with the past-7-days creation graph
• Fixed an issue where the card list could keep jiggling up and down after switching filters
• Archived cards are now shown grayed out in the per-grade ranking
Plus minor improvements such as unified wording ("Next due" → "Next review"), and other small fixes.
1.9.0 Jul 17
This update focuses on new card themes and improvements to usability and responsiveness.
[ New & Improved ]
• Added two new card themes: "Apricot" and "Turquoise" (Pro)
• Supported the standard iOS behavior of tapping the status bar (the clock area at the top) to scroll lists back to the top
• Faster response when switching filters or sort order in the card list on decks with a very large number of cards
• Card search: tapping a result or using the stats/edit actions now focuses that card (same behavior as the card list)
• Added a reorder lock to tag management (in manual sort, lock drag-reordering to enable swipe-to-delete; ⌘L shortcut supported)
• You can now tap empty space to dismiss keyboard focus on the Settings, Stats, and Search screens as well
• Added ⇧U / ⇧D shortcuts to scroll to the top / bottom
[ Bug fixes ]
• Fixed an issue where tapping twice quickly could open the same screen twice
• Fixed an issue where some settings (reorder lock, language, filter states, etc.) were not restored via JSON export/import
• Fixed an issue in the card editor's tag selector where the border and dot of "Follow theme" and "Black/White" tags could blend into the background
• Fixed an issue where the header height was slightly off on devices with a Dynamic Island
Plus minor adjustments to spacing, icon positions, and other small improvements.
1.8.1 Jul 11
This update focuses on greatly expanded hardware keyboard support, a new "Learning Record" in Stats, and enhanced text decoration.
[ New & Improved ]
• Completely revamped hardware keyboard support: shortcuts on nearly every screen, with Arrow / Esc / Tab / Delete keys. Press "?" to see that screen's shortcuts grouped into 6 categories. The mechanism is now native, fixing unresponsive taps and freezes when a keyboard is in use. Some existing shortcut assignments were also revised (see each screen's "?" for the latest)
• Added "Learning Record" to Stats: tap the activity heatmap to see your journey — longest streak, totals, consistency rate, and badges. A badge appears while you're setting a new record
• Added correct rate, study days, and average time to the Stats donut chart
• Enhanced text decoration: highlight (marker) syntax with multiple colors and underline; the decoration palette now appears inline right under the block for both iPhone and iPad (headings cycle through levels); added decoration shortcuts like ⌘B / ⌘I / ⌘U
• Added display size (Small / Medium / Large) to image blocks
• Added a duplicate button to the card editor
• Added "Study from here" to the card list: swipe a card right (or focus it and press ⇧Space) to study from that card through to the end of the list
• Added a lock for manual reordering: while Home or the card list is in manual sort, tap the lock icon to lock drag-reordering, which enables swipe actions (study from here, archive, delete) in that state
• iCloud sync now shows the last-updated time of the remote data; the restore screen's deck list shows a "last edited" time
• In card search, press "/" to quickly move the cursor to the search field
[ Bug fixes ]
• Fixed an issue where bottom buttons could be unresponsive on the first tap in an editor opened from the study screen
• Fixed an issue where taps could become unstable on some screens due to the view structure
• Fixed an issue on iPad where the header could shrink or the status bar could disappear after certain actions
• Fixed an issue where the top of Japanese characters could be clipped in Markdown headings
• Fixed an issue where editing could be dismissed when tapping the toolbar or symbol palette while editing a block in the card editor
Plus minor text/label adjustments (dark-mode code background, symbol palette layout, etc.) and other small improvements.
1.8.0 Jul 7
This update focuses on tag features and on more reliable drag-to-reorder and overall screen behavior.
[ New & Improved ]
• Enhanced the tag's card list: added an "All / Active" filter and a selection mode, so you can remove a tag from or archive multiple cards at once
• The tag management screen now shows the total number of tags
• Tag colors now include "Follow theme" and "Black/White" (auto light/dark)
• Added the primary color (blue) to the deck/tag color pickers as the default for new items, and tidied the swatch layout
• C++ code execution: automatically retries on congestion or temporary errors, with clearer status
• Faster start of study from the card list on decks with a very large number of cards
• Enhanced card search: AND search with space-separated keywords; added a result count, card stats (Pro), and ⓘ help explaining how it works
• Card search: results unified to the same card style as the Home/Card lists; remembers your last search (keywords and deck/tag filters) and adds a clear (×) button
• Improved preview on the card list and search: when the first text is a single line, the second block's content (text / [language] / [image]) is shown on the second line
• Unified the deck/tag create/edit screens to full-screen for more stable behavior while typing (close with the × at the top left)
[ Bug fixes ]
• Fixed an issue where a card could turn invisible when dragged far upward during long-press reordering
• Fixed an issue where dragging downward did not scroll on the tag management and card list screens
• Fixed an issue where the on-screen keyboard's visibility state could remain stuck after closing an input screen, causing other screens to scroll incorrectly
• Fixed an issue where consecutive long-press reordering could cause an error on decks with a very large number of cards
• Fixed an issue where the Home deck list didn't auto-scroll at the screen edge during long-press reordering
• Fixed an issue where the second line could be hidden in the card list at the "Small" font size
Plus minor text/label adjustments and other small improvements.
1.7.1 Jun 24
You can now archive decks and cards.
[ New ]
• Archive: exclude decks and cards from study and statistics. Archive/unarchive from the left swipe too (past study history is kept)
• Deck icon color "Follow theme": new option to make a deck's icon follow the app color theme automatically; "no color" shows as monochrome
• Streak icons: 10 new icons that change based on your study streak
• Prev/next buttons in study: added floating buttons to move to the next/previous card on the front side and in full-screen mode
• Init SQL: SQL execution now supports deck-wide and block-specific initialization SQL (schema/seed data) (Pro)
[ Key improvements ]
• Improved card navigation in study: buttons, keyboard, and swipe now feel consistent, and you can navigate continuously with the keyboard (smooth, with no waiting)
• Full-screen study now shows a progress bar at the header border so you can see how far you've come
• In dark mode with a color theme, card faces are now a deeper black for readability
• Duplicated cards now show a temporary "NEW" badge
• Study now starts cards in the same order as the list view
• The code block language picker now auto-scrolls to the selected language
• Improved horizontal scrolling for code execution results and display
• iCloud Sync: a modal now notifies you when your data is overwritten by newer data from another device (including a fix for false triggers); tidied up data restore on the sync screen
• Clearer ⓘ help on each screen: explanations now include icons so they're easier to grasp at a glance
Plus minor UI polish and bug fixes.
1.7.0 Jun 21
Statistics, search, and notifications have all leveled up.
【New】
・ SQL / C++ code execution: run SQL blocks (on-device) and C++ blocks (via Wandbox API) (Pro)
・ Advanced notification reminders: up to 5 schedules, per-day-of-week on/off, and notification text showing today's review count
・ In-app language switcher: change the display language to Japanese, English, or follow system from Display Settings
【Key improvements】
・ Monthly study graph redesigned as a grade-stacked bar chart; tap any bar to show a donut breakdown (Pro)
・ Added ⓘ help icons to each section
・ Rating ranking deck filter now supports multi-select (OR) (Pro)
・ Card search now has deck and tag filters with multi-select OR search
・ Activity heatmap (streak graph) color levels changed from fixed thresholds to relative 5-step scaling
・ Improved TSV import: files containing existing card ids let you choose to overwrite the original deck or add to another deck
・ Unified the study summary accuracy with card statistics ("Again" and "Hard" now count as incorrect)
・ During study, tap a code block to enter edit mode right away (previously you had to tap the pencil icon)
・ Improved iCloud Sync reliability: fixed a case where changing the device date could temporarily revert data, and added a "Rebuild iCloud" option in settings to recover when sync isn't working (Pro)
Plus minor UI polish and bug fixes.
1.6.0 Jun 15
You can now sync your data across devices.
【New】
・ iCloud Sync: sync decks, cards, tags, study history, and images across your iPhone and iPad signed in to the same Apple ID. Restore automatically on a new device just by turning it on (Pro)
・ Deck Merge Restore: even if sync overwrites your data, restore just a specific deck from an automatic backup and merge it into your current data (Pro)
・ Set a colored icon for each deck (Free)
・ Color themes: change the color of cards and the whole screen with 8 presets × light/dark ("Paper" is free, others Pro)
【Key improvements】
・ Reorganized Settings with inline ⓘ explanations for each item
・ Swipe left to delete in lists (decks / cards / tags)
・ Create a new deck on the spot when moving cards or importing TSV
・ Deck order (manual / by name / by card count) is now also applied to deck pickers and the deck list in Statistics
【Key fixes】
・ Fixed an issue where some code was not displayed correctly on the Study screen
・ Fixed an issue where edits made in the card editor could be hidden after editing code on the Study screen
・ Fixed unnecessary scrolling when tapping a deck/tag on the Study tab
・ Fixed card sorting so "Newest / Oldest" works correctly even for cards imported together (with the same creation date)
Plus minor UI polish and bug fixes.
1.5.0 Jun 3
Reviewing weak cards is now even easier.
【New】
・ "Focus Review" button on the weak-card ranking: study just the top cards in one session (Pro)
・ "Average response time" ranking mode: surface cards you're slow on (Pro)
・ Period filter and deck filter added to the weak-card ranking (Pro)
【Key improvements】
・ Redesigned the card editor preview mode to look like the Study screen (read-only)
・ Tapping the stats icon in card / tag-card lists focuses the target card
・ Refreshed app icon (with iOS 18 dark / tinted variants)
【Key fixes】
・ Fixed an issue where keyboard shortcuts stopped working after switching editor modes mid-edit
・ Card list preview now picks the first non-empty content block from the top
・ Card list preview now skips empty code / image blocks correctly
Plus minor UI polish and bug fixes.
1.4.0 May 23
Pro plan is now available!
【New】
・ Pro upgrade (one-time purchase)
・ Detailed study stats: monthly chart, weak-card rankings, per-card review trends (Pro)
・ FSRS scheduling fine-tuning (Pro)
・ Average response time on the session-complete screen
・ Terms of Service and an "About" section in Settings
【Key improvements】
・ Tapping the pencil icon now focuses the target item
・ Backups now include in-app settings as well
・ iPad layout polish (icon spacing)
【Key fixes】
・ Fixed an issue where keyboard shortcuts didn't work right after first opening the Study tab
Plus minor UI polish and bug fixes.
1.3.0 May 19
・Added selection mode to Tag Management — select multiple tags to delete or change their color at once
・Fixed home screen header height on certain devices
1.2.0 May 12
• Added dot indicators on card editor tabs that have content
• Tapping the edit button while viewing a memo now opens the editor on the memo tab
• Fixed line break handling when importing TSV files from Numbers
1.1.0 May 10
・Added iPad screenshots
・Updated Privacy Policy and Support page URLs
1.0.1 May 7
This update adds auto read-aloud and a goal view for your activity history.
[ New & Improved ]
• Auto read-aloud (Pro): cards are read automatically when shown or flipped. Choose off, front, back or both sides, and override it per deck
• Read-aloud can be turned off per deck: hide the button in a programming deck, for example
• Added a "Goal" view to the activity heatmap (Activity on the Stats tab): once you set a daily goal, the past year can be shown either by study volume or by whether you reached the goal, so the days you made it stand out
• Tap a badge in Stats → Learning Record to see when you earned it, or how much is left until you do
• window.open now works in the full screen HTML preview (Pro): an http(s) URL opened from a link or a button opens in Safari, and window.close() closes the preview
• Reworked the explanations shown by the i buttons: headings and items now follow one format, and an explanation opens only when you tap the button
[ Bug fixes ]
• Fixed an issue where highlight, bold, strikethrough, and underline in text blocks did not apply when the marks were next to punctuation such as Japanese brackets or quotation marks
• Fixed an issue where tapping the name of a settings row opened its explanation instead of the setting
• Fixed an issue where the goal reminder still fired, and the app icon badge stayed out of date, after another device's study was synced in from iCloud
Also includes minor wording and display adjustments.
more Version 1.11.1 9h ago
Data Not Collected The developer does not collect any data from this app.