I wrote an Android app that splits checks. You pre-create groups of people (Adam and Jane are a couple, John is solo, etc), then for each line item on the bill you decide which groups should be charged for it. You can split tax and tip proportionally or just evenly along people/groups.
And it uses OCR to scan the receipt and read the items, amounts and tax. I was amazed how well open source Tesseract worked for this out of the box.
Finished it but never marketed it, too much of a perfectionist. Worked really quite well though.
This was maybe 6-7 years ago, and I've since seem other apps doing basically the same thing.