My general advice about learning via piano apps is that it can be reasonably effective for practicing some things, for some types of learners but apps are not (IMHO) sufficient to teach all things keyboard to all types of learners.
I think the ideal approach for many people and scenarios would combine an experienced instructor with solo practice, some app-assisted practice and some video-assisted/written study. How much of each and the sequencing will depend largely on the learner and their objectives.
As is usually the case, "conscious practice" tends to be far better than "rote (mindless) practice". When our kid got into the third year of piano, solo practice sessions became more of a struggle, frequently slipping into mindless repetition that was largely ineffective. That's when we introduced some app-assisted practice sessions. The app approach was helpful because it provided consistent, granular, objective feedback on missed notes, timing, etc. Obviously no app can replicate all the dimensions of an experienced human coach but in the right context app-assisted practice can be a useful component of a blended learning strategy.
The teacher we picked for our kid is classically trained and pretty hardcore (both of her own kids are now college-aged very serious concert pianists). She has a masters in music as well as a masters in childhood education. She doesn't generally like the apps but she knows that they can be effective with some younger students to keep them engaged in home practice. The app she uses is called Piano Maestro, which is a more well-known brand. However, there are a quite a few well-regarded apps, and, as you'd expect, a zillion crappy apps. I suspect our chosen instructor's preference is more about the large library of more traditional pieces which Piano Maestro has licensed as well as the PM's business model which has a rev share with teachers.
As a technologist, IMHO MIDI keyboard playing instruction apps aren't a fundamentally "hard problem". I think the quality has a lot to do with UX, instructional approach and the appeal of the available library of practice songs to the learner. I'd suggest creating a "short list" of titles by reading some objective user and pro reviews on musically focused sites instead of random app store ratings. Then I'd watch YT video reviews and/or try demos/trials. The key is finding an app which seems to fit your personal style and needs for UX, content library, instructional gradient, chunking, etc. For example, Angry-Birds-esque gamification really helps my kid stay focused during the repetition necessary to clean-up timing errors while learning a challenging recital piece but that "slot machine" ding-ding-ding approach would drive me nuts. Our kid doesn't want to watch instructional video clips but I've learned a fair bit of practical music theory and digital production tips on YouTube.
> do you think virtual pianos are good enough for smartphones (iOS/android) or do you still need laptops?
"Good enough" is always tricky when it comes to things that are application dependent as well as being subjective preference. Frankly, I have very little experience with phone-based music apps because I'm a pretty serious hobbyist and regardless of the sound-quality, the screen size of phones is a non-starter for my needs. In general, I've heard that support for advanced audio timing features in Android lags iOS though it's apparently slowly improving. GarageBand being one of Steve Job's "hero" demo apps was probably an early forcing function. Obviously, recent phone CPUs from Qualcomm and Apple have enough DSP horsepower to do serious things. The issue is the depth of OS support for more "pro" use cases like routing MIDI and virtual audio channel routing between multiple apps with multiple tracks while maintaining adequate real-time responsiveness in milliseconds.
A couple years back I did spend a couple hundred dollars on serious apps for an iPad Pro (12.9 inch) such as Cubasis, some Korg virtual instruments (>$25 each), etc. The various piano sounds certainly seemed high-quality enough, performant enough and expressive enough for the purposes of learning to play keyboards. A lot of the instruments included in GarageBand are pretty impressive for just playing. Where iOS apps lag desktop software and pro plug-in libraries is in areas like simultaneous multi-tracking and depth of subtle control of individual instrument voicing.
I eventually abandoned doing music on the iPad Pro because the "good" apps aren't exactly cheap, though they do go on crazy (>60% off) sales from time to time. They also tend not to be as fully controllable at the detail-level as desktop apps/plug-ins. That said, there are certainly "iPad-only" music producers creating impressive pro-level work but my compositions can sometimes grow to hundreds of tracks, dozens of CPU cycle-sucking virtual instruments and multiple sample libraries weighed in gigabytes of size. But then again, my DAW (Digital Audio Workstation) software is Cubase Pro ($600) and I use several >$500 virtual instruments because I'm pretty into this (my use of early, primitive software virtual instruments on Windows started in 1996 and has expanded pretty continuously since). The increase in sophistication has been remarkable. However, I do want to note that in recent years I've seen demos of increasingly impressive capabilities on offer on iOS and desktop at sub-$100 per app/instrument prices. But... for my needs, I'm hooked on my PC workstation with multiple widescreen monitors and multiple different types of MIDI controllers (with pedals outboard MIDI faders/knobs, etc). It all depends on your preferences and where you ultimately want to go.
Bottom line, there's never been a better time to get into personal music-making. You can do far more with much less money or innate skill than ever before while the power and capabilities on offer are truly mind-blowing, dirt cheap and sometimes even free.
Which app is this ?
Also, curious to know..do you think virtual pianos are good enough for smartphones (iOS/android) or do you still need laptops?