DEV Community

taijidude
taijidude

Posted on

1

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!

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

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?

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay