BJS is a native iOS trainer for players who want to get seriously better at blackjack: basic strategy drills, Hi-Lo counting, house-edge analysis, and a full card-counting simulation. It is an educational tool, not a casino, and its credibility rests on one thing: the numbers must be right.
Why it exists
Every other trainer I tried either taught generic strategy that was wrong for the table you were actually sitting at, or hid the math behind cartoons. BJS is rule-aware. You configure the exact rules of the casino you are playing (dealer hits or stands on soft 17, doubling after a split, resplitting aces, surrender, deck count, penetration) and strategy and edge calculations adjust to match.
The engine
All of the math lives in a pure Swift package with no UI dependency, so it is tested in isolation and can be reused by any front end. Strategy is resolved against the configured rules rather than looked up from one generic chart. The edge calculator starts from a published baseline for an eight-deck, stand-on-17, double-after-split, 3:2 game and applies per-rule deltas scaled by deck count; its own doc comment claims agreement with the reference values within 0.02%. Randomness is injectable, so shoe shuffles are reproducible in tests.
Status
The engine is done and tested: 112 test cases across the package and the app shell, with no third-party dependencies. The original app layer was discarded on 23 September 2026 and is being rebuilt on the package, in order: engine completion, a design system, then the strategy trainer, counting, edge calculator, progress, shoe simulation, and a TestFlight build last. Nothing has been released, and there are no screenshots here until there is an app to capture.