I’ve personally been using Duolingo and it’s been pretty useful for me.
First off, it’s free, though you can get a premium version to remove the ads but it doesn’t lock any features away. It also has courses for a lot of other languages, like French, Italian, Hebrew, Esperanto, Swahili, Chinese, and even High Valyrian (from Game of Thrones) or Klingon (from Star Trek). Among others. You don’t have to pick a single one, either
It doesn’t teach any kanji but it does immediately throw you into the hiragana, rarely using romaji except for sometimes early in the matching sections. There are a couple of different formats that it uses, both in browser and mobile: matching text pairs (including katakana to hiragana), forming sentences out of a word list (or the option to just type them outright), filling in the blank in sentences, translating what you see, and matching what sound you hear, It’s all mixed up.
My favorite feature thus far has been has been one that doesn’t come standard. By various means, like maintaining a daily streak or earning achievements, you get ‘lingots’ which work like in-app currency (which cannot be bought, only earned). With these lingots, you can buy the Timed Practice upgrade, which I’ve found to be really useful. If you can’t translate the sentence in a few seconds, then you probably haven’t practiced it enough to really know it.
I’d say Duolingo is a very good source for things like reading the kana systems, particles, and basic sentence structure. You’d still need to look elsewhere for speaking and kanji though.
Oh, and Duolingo also has an associated app called TinyCards which are just digital flashcards.