A cross-platform, third-party Japanese Study App for Wanikani
Report Bug ๐ ยท Request Feature ๐
Android Beta App ยท iOS Beta App
Features ๐ ยท Contributing ๐ ยท Development ๐ฅ๏ธ ยท License ๐ ยท Credits ๐ฅ
Hakubun is a Japanese learning app that can be used with Wanikani, an SRS-based Japanese learning service. Learn and review radicals, kanji, and vocabulary, easily search for subjects, and explore content across levels.
The web version is still being tested, but the beta versions of both Android and iOS are available to download!
Hakubun uses Logrocket, a log collecting tool, to detect common errors that users are experiencing.
This means the following information may be stored:
The following information is NOT stored and I will never be able to access to it:
Please email me if you have any questions or concerns about how/what data is stored.
Contributions are appreciated! See this doc for full details on how to contribute, and the development section for how to build and test Hakubun
# Verify files are formatted correctly
npm run check-format
# If formatting issues...
npm run format
# Make sure no linting errors
npm run lint-err-only
# Make sure no TypeScript errors
npm run tsc-check
Make sure to run npm install
before trying the steps below!
Building using this method for general development is highly recommended over the iOS and Android methods, it's much easier to debug and inspect changes. Running the app with iOS and Android simulators is only recommended to double-check that the changes you made are compatible with both platforms.
Start server:
npm run start
The app should then be available at http://localhost:5173/
If below doesn't work, check that network URL after displayed after running npm run start-exposed
matches the URL in the capacitor.config.ts file
Start server in one terminal:
npm run start-exposed
Then run the script for the platform in another terminal:
npm run ios-live-reload
You can then select the type of iOS device you'd like to use as a simulator
If you've never done this before, you'll likely have to the make sure "Show features for web developers" is enabled under Safari's Settings
Open Safari and click the iOS simulator for Hakubun under Develop -> iOS device you chose as simulator -> IP address displayed. If this is not displayed, make sure you followed the previous step. If it's still not displayed, opening Xcode can sometimes make it appear
npm run android-live-reload
An address should be available under "Remote Target", you can click on "inspect" to bring up a web inspector. This can be used to inspect elements and view console output
To run all unit tests:
npm run test
This project is tested with BrowserStack
Note: it's unlikely you'll need to know this info, just used for GitHub workflows/CICD
Fastlane is a tool used to build and deploy the Android and iOS apps for Hakubun.
bundle install
To run android lanes:
fastlane android <LANE>
To run iOS lanes:
fastlane ios <LANE>
This project uses GPLv3, a copyleft license. Essentially this means that the source code for this app and all further iterations must stay free and open-source. See license file for complete license information.