The points folks have made in this thread are good. I’d like to add a few things that are important to me personally. I’ll asterisk this by saying that I’m relatively early on in learning Japanese, meaning:
- I can read kana comfortably
- I can deduce the meanings of kanji if I know the radicals
- I’m going through Genki I right now
- My vocabulary is pretty limited
However I’ve learned two other languages through structured study before, so I’d hope my points are still relevant 
@mitrac points to “What do you need to know to learn a foreign language?” - I skimmed this, but I think the approach is sound and resonates with me. Related to this paper, I realized I’d established the following methodology for myself beforehand already:
- Why do I want to know the language?
- What do I already know?
And as I make progress, I’m constantly asking myself: “What is the minimum I need to know/do in order to do the next thing I want to do?”
These are pretty much my guiding principles. For example, in my first week of studying Japanese, I knew the following:
Why do I want to know the language?
I enjoy Japanese culture, and I have a trip planned to Japan in the medium-term future (years from now). I think it’s kind of important to get specific about this. What about Japanese culture do I like? For me it’s food, history, anime, music. What about me traveling to Japan matters? I want to be able to speak the language to be able to learn more about individuals from Japan, and learn more about parts of the culture I wouldn’t otherwise have access to if I didn’t speak the language.
(Also, I just enjoy languages in general - they’re a reflection of the cultures that speak them - so that probably helps)
What do I already know?
I have years of passive exposure to Japanese through media, so I know random words and grammar. I have rudimentary knowledge of Chinese/Mandarin through my partner, including hanzi/radicals/how they’re formed/used/just general exposure to them, so I know that will help me with kanji. I have some knowledge of Korean from prior study, and Korean grammar is weirdly close to Japanese grammar, plus both are influenced by Chinese. Cool.
What is the minimum I need to know/do in order to do the next thing I want to do?
This is the main thing that guides my practice. I hate the feeling of learning something and thinking “well, I’m never going to apply this/I have no idea what this means/how to use it in context”, so I avoid it as much as possible. Answering the above question is what helps me do that.
Break down your goal. e.g:
- “I want to learn about Japanese culture through direct interactions in Japan”
- → “I need to be able to relate to other people”
- → “I need to be able to express concepts about myself and ask questions/understand concepts about other people”
- → “I need to be able to speak in a coherent way”
- → “I need to know how the grammar works”
- → "I need to know what ”は” says
- → “I need to be able to read”
- → “I need to be able to read kana”
… that’s kind of a contrived example and it’s specific to reading because I wanted to illustrate the thought process in going from “big goal” to “specific goal”, but hopefully it illustrates the idea. Basically, between where I am now and the big thing I want to do, there are tiny steps I can take that demonstrably make me better at the big thing.
From here, there’s a fourth question I ask myself:
What am I bad at?
This one’s more straightforward. Take the thing you’re worst at and constantly do it. I’m bad at speaking and I don’t have many conversation partners, so I shadow literally everything I hear. I also push myself when I shadow - as fast as possible, even if I don’t know what the hell they’re saying, paying very close attention to pronunciation and mirroring the speaker’s pronunciation exactly. (Shadowing is basically its own topic though which you can look into yourself
)
Anyway, it’s like how a bodybuilder chooses which muscles to focus on: It’s always “the one that’s furthest behind”.
On choice of app/material: As others have said, it basically doesn’t matter - pick what you enjoy enough to actually want to use. Agonizing over the best practice tool is pointless if you never end up using it. I’m using Genki, Renshuu, WaniKani, and Anki.
This got long, but hope it helps. Good luck!