There's a few reasons:
First, it'll be easier to maintain. There's a helluva lot of effort going into it now, but once it's figured out Niantic will have to do the same amount of work (if not more) to change it on their end so what's been figured out now no longer applies. With a client interface, all they would have to do is update the client. (Look at Honorbuddy and WoW, every time Blizzard drops a patch HB is down for days)
Second, more features. With direct API access, you can do whatever you want. By connecting to an emulator (or directly to a phone) you're limited by what the connection to the emulator/phone can provide.
Third, it's more fun. Speaking as someone who works in software development, the more challenging route is usually the more interesting one.
That's all very valid, I'd like to add that any android emulation based botting is usually pixel based, AutoIt, etc. While this can work all well and good (mybot.run for Clash of Clans is a perfect example), it takes more maintenance, operates poorly in comparison, and generally speaking, have less features/features take longer to build out/are less stable.
Things that operate within an Android environment are also usually easier to detect, assuming that the tool lived inside the emulation (Like an Android app), which means process/running application based bans would probably go up eventually.
Fix bot - 2 week later - fix API or any unknownX(Niantic) - 2 week later - Fix bot
and so on indefinitely
That's the thing, Niantic CAN'T 'fix' the API once it's *****ed. In software development, the back-end systems are anywhere from 50-90% of the effort that goes into what you're working on. The stuff the end-user sees is trivial compared to it. In order to compensate for the API being *****ed, Niantic would basically have to rewrite the entire (or a very large chunk) of the game from scratch. They would then have to do the same thing to all of their server code. They would then have to modify the UI portion of the game to work with the new code. They would then have to lock out all of their users from the app until their phone can update the app. Niantic didn't even do this when writing Pokemon Go. The underlying systems are effectively the same as Ingress, all they did was change some of the field names and make a new UI. Undoing the work that is going into *****ing the API right now would be virtually impossible for Niantic to pull off without spending massive amounts of time and resources.
It's important to note that what is happening right now is not due to an update that Niantic made to the API. What Niantic has done is start validating a hash that has existed since day one. The data has always been there, they just started actually using it.
That's the thing, Niantic CAN'T 'fix' the API once it's *****ed. In software development, the back-end systems are anywhere from 50-90% of the effort that goes into what you're working on. The stuff the end-user sees is trivial compared to it. In order to compensate for the API being *****ed, Niantic would basically have to rewrite the entire (or a very large chunk) of the game from scratch. They would then have to do the same thing to all of their server code. They would then have to modify the UI portion of the game to work with the new code. They would then have to lock out all of their users from the app until their phone can update the app. Niantic didn't even do this when writing Pokemon Go. The underlying systems are effectively the same as Ingress, all they did was change some of the field names and make a new UI. Undoing the work that is going into *****ing the API right now would be virtually impossible for Niantic to pull off without spending massive amounts of time and resources.
It's important to note that what is happening right now is not due to an update that Niantic made to the API. What Niantic has done is start validating a hash that has existed since day one. The data has always been there, they just started actually using it.