Aikido Hombu Timetable
A labour of love, the Hombu App, as it is affectionately known, uses heuristic1 schedule parsing to retrieve aikido schedule data from the world headquarters of Aikikai aikido in Tokyo (where I also practiced aikido for 5 years).
This app was desperately needed because the official web site at the time was still a 90s-era site which required up to 4 clicks to get at the schedule for the day, plus it wasn’t mobile friendly. Viewing the schedule required POST form submissions so bookmarking was impossible. On top of that the schedule would change at the drop of a hat, so we would be often surprised by different teachers.
This app solved several problems by using push notifications and a pleasing chime to alert users to schedule changes which were often. By adding pictures of the teachers, scanning the schedule at glance is quick and convenient unlike the aforementioned 4-click method. Additionally, the back-end remembers teacher changes so visually one can see what changes have been made far into the future as well – up to 60 days, whereas the official schedule is limited to only 14 days.
The main language of users is Japanese, but many visitors speak English. Although told it is impossible to change the app language on-the-fly, I figured out how to do just that – seamlessly change the app language without leaving the app. As time went on, I added video support with animated video thumbnails and video pop-outs so again one doesn’t have to leave the app. Videos can also be saved from YouTube for offline viewing in the app. This technique has worked flawlessly for over three years despite numerous
YouTube API changes.
- PHP cURL system with cron jobs
- MySQL DB to hold changes
- Automatic app updater tool
- Weather API integration
- YouTube downloader and inline player
- Database failover to an alternate server
- Heuristics are needed because different people who oversee the official schedule enter dates differently, and in different formats, and sometimes wildly different (i.e. 2016/5/08, 16-01-5, 2016年５月１２). ↩