My rule is to only ever tip with cash and only then directly into the hands of the worker. Tipping through a computer system is a scam, the business owner almost certainly takes most of it. If you're paying with a credit card, X out the tip field and leave cash instead.
And of course, never tip in cases where it isn't customary to tip. Waitresses, bartenders, barbers and taxi drivers. That's about it. Tipping into tip jars is never customary, don't do it. Never tip at a starbucks or a business where you get your own food at the counter. And you sure as hell should never tip a salesman, these Apple store workers have lost the plot.