DEV Community

taijidude
taijidude

Posted on

Small prototype... easy coding flash cards on android

My Problem...

I recently read the wonderful book the-programmers-brain. One take-away was that if you study concepts with flash cards it will help learn new stuff more efficiently. So i was looking for a while now how to do that using my android phone.

I'm a pretty heavy obsidian user and had a look at the plugins i knew of but was not really satisfied and looked and some apps. This didn't really worked easly or made me jump through more hoops than i wanted to.

I'm no Android Developer yet and not really a web dev either. I want to use flash cards to learn angular and typescript, so my options were a litte limited. Here is what i came up with:

My Solution...

There is a fantastic app called termux on android which gives you a complete linux environment.

termux

In termux you are able to work with python and git. So i came up with a small python project containing of one python script and a markdown file at the moment.

The python file uses the rich library because i can render markdown pretty to the cli (with syntax highlighting).

from rich.console import Console
from rich.markdown import Markdown

def main():
    console = Console()
    with open("angular.md") as f:
        content: str = f.read()
        cards: list[str] = content.split('<!-- Card -->')
        numberOfCards: int = len(cards)
        for card in cards:
            console.clear()
            sides = card.split('<!-- Sides -->')
            console.print(Markdown(sides[0])) 
            input("\nshow the answer!")
            console.print(Markdown(sides[1]))
            input("\nnext card!")
            console.clear()
if __name__ == "__main__":
    main()
Enter fullscreen mode Exit fullscreen mode

The content of my flashcards is stored in a markdown file. I use html comments to seperate the individual cards and the question and the answer on each individual card.

Image description

I have this all on a little github project. github. (The name of the project will change.) S

On my phone i have to clone the repo in termux:

git clone https://github.com/taijidude/mochi-cards.git
Enter fullscreen mode Exit fullscreen mode

Install the needed dependencies (typer is a neat cli framework which brings the rich library as dependency. I use typer here because i want to do more with it in the future. )

pip install typer
Enter fullscreen mode Exit fullscreen mode

and than can run the app:

python app.py
Enter fullscreen mode Exit fullscreen mode

Finally i get a basic flashcard functionality with syntax highlighting.
After starting:
Image description
When hitting enter the answer is shown:

Image description

When hitting enter again i get the next question:

Image description

Thank you for your Attention!

Top comments (1)

Collapse
 
taijidude profile image
taijidude

How do i show the content of a markdown file here with it getting converted to html?