AtCoderの精進をスマホでも。
|
|
|
|
Important
v1.1.0でパッケージ名が変更されました。
v1.0.0以前のリリースが既にインストールされている場合は別のアプリとしてインストールされます。
設定等は引き継がれないのでお気をつけて。
(早く設定のエクスポート機能を実装しろしました(v1.2.0))
- 問題を探す: NoviSteps、Problemsなどの精進に役立つサイトを統合ブラウザで閲覧
- カスタムサイト追加: お気に入りの問題集サイトを追加して、ワンタップでアクセス
- 問題へのスムーズな遷移: AtCoder問題ページから直接エディタ画面に移動
- シンタックスハイライト: Python、C++、Rust、Javaに対応した見やすいコードハイライト
- テンプレート機能: 言語別のコードテンプレートをカスタマイズ可能
- 自動保存: 問題ごと・言語ごとにコードを自動保存
- リアルタイム実行: Wandbox APIを使用してコードをその場で実行・テスト
- サンプルケース自動テスト: AtCoderのサンプル入出力でコードを自動テスト
- 詳細な結果表示: AC/WA/RE/TLE/CEなど、詳細なジャッジ結果を表示
- デバッグ支援: 入力・期待される出力・実際の出力を比較表示
- 問題詳細表示: 問題文、制約、入出力形式を見やすく整理
- URL自動解析: AtCoder問題URLから問題情報を自動取得
- LaTeX記法対応: 数式表示を含む問題文の適切な表示
- テーマ選択: ライト/ダーク/ピュアブラック/システム追従の4つのテーマ
- Material You対応: 壁紙に連動したカラーテーマ
- 透明度調整: ナビゲーションバーの透明度をカスタマイズ可能
- WebView提出: AtCoderの提出ページをアプリ内で開いて提出
https://github.com/orgs/Shojin-App/projects/1
ビルド済みのバイナリ(APKなど)はGitHubリリースページからダウンロードできます。これが手っ取り早いです。
このアプリは F-Droid Inclusion Policy に準拠したビルドが可能です。F-Droid フレーバー (fdroid) では以下が強制されます:
| 機能 | 通常ビルド | F-Droid ビルド |
|---|---|---|
| 自己アップデート (アプリ内ダウンロード & APKインストール) | 有効 (ユーザー設定可) | 完全無効 (コードパス停止) |
| 起動時自動アプデチェック | 表示 | 非表示 |
| オンラインフォント (Google Fonts) | 利用可 | 無効 (同梱/システムフォント) |
| 外部APKダウンロード | 有効 | 無効 |
自己アップデート関連クラス (AutoUpdateManager, UpdateManager) は F-Droid ビルドでは早期 return するノーオペ実装になり、不用意に APK を取得・実行しません。
# 推奨: スクリプトで再現性確保
./build_fdroid.sh
# 手動:
flutter build apk \
--dart-define=FDROID_BUILD=true \
--dart-define=ENABLE_SELF_UPDATE=false \
--dart-define=ENABLE_ONLINE_FONTS=false \
--flavor=fdroid \
--release-
git tag vX.Y.Zがpubspec.yamlのversionと一致 - 起動後「設定 > 更新設定」セクションに自己更新 UI が表示されない
- ネットワークトラフィックが AtCoder / コード実行 API / 静的リソース以外へ行かない
-
flutter analyzeとflutter testが成功 -
FONT_LICENSES.md/ LICENSE 表示画面から辿れる
注記: F-Droid ビルドではオンラインから Google Fonts を取得せず、同梱フォント / システムフォントのみを使用します (ネットワークフォントアクセス無効化)。
自身でアプリをビルドしたい場合や、開発に貢献したい場合は、ソースからビルドできます:
- Flutter開発環境のセットアップ: まず、Flutter開発環境がセットアップされていることを確認してください。まだの場合は、Flutter公式インストールガイドに従ってください。
- リポジトリをクローン:
git clone https://github.com/Shojin-App/shojin_app.git
- プロジェクトディレクトリに移動:
cd shojin_app - 依存関係を取得:
flutter pub get
- アプリをビルドして実行:
- デバッグモードで実行:
flutter run
- リリースAPKをビルド (Android):
flutter build apk --release
- その他のプラットフォームやビルドオプションについては、Flutter公式ビルドドキュメントを参照してください。
- デバッグモードで実行:
このリポジトリは Android 向けに fastlane を導入しています(iOS は現状非対応)。Google Play への公開予定はないため、配布は APK/AAB のローカル配布を想定しています。
前提:
- Flutter SDK が導入済み
- Ruby + Bundler が利用可能(Windows の場合は RubyInstaller か WSL を推奨) ※ Google Play への自動アップロードは行いません。
初回セットアップ:
bundle install主な Lane:
- 解析:
bundle exec fastlane android analyze - テスト:
bundle exec fastlane android test - APK ビルド:
bundle exec fastlane android apk- 例)
bundle exec fastlane android apk flavor:fdroid build_type:release
- 例)
- AAB ビルド:
bundle exec fastlane android aab(Google Play アップロード用の lane は提供していません)
必要な環境変数:
ANDROID_PACKAGE_NAME… パッケージ名(省略時io.github.shojinapp.kyopro) (Play Console 関連の環境変数は不要です)
補足:
- 本プロジェクトはビルドフレーバーとして
oss/fdroidを用意しています。lane のflavor:引数で切り替え可能です。 - 署名鍵まわりは各自の環境に合わせて設定してください(本リポジトリでは Debug 署名で動作する設定になっています)。
このプロジェクトへの貢献を歓迎します!バグ報告、機能提案、プルリクエストなど、どのような形でも結構です。
- バグ報告や機能要望は、GitHubのIssuesページを利用して報告してください。
- リポジトリをフォーク: ご自身のGitHubアカウントにこのリポジトリをフォークします。
- ブランチを作成:
変更内容に応じたブランチを作成します。
# 機能追加の場合 git checkout -b feature/your-feature-name # バグ修正の場合 git checkout -b bugfix/issue-number
- 変更とコミット: コードの変更を行い、分かりやすいコミットメッセージと共にコミットします。
- プルリクエストを作成:
変更が完了したら、フォークしたリポジトリから本リポジトリの
devブランチに対してプルリクエストを作成します。 プルリクエストには、以下の情報を含めてください:- 変更内容の概要
- 変更の理由や目的
- 関連するIssue番号(もしあれば)
- 可能な限り、既存のコードスタイルや規約に従ってください。
- コードを追加・修正した場合は、
flutter analyzeを実行して、静的解析エラーや警告がないことを確認してください。 - 関連するテストコードが存在する場合は更新し、新しい機能にはテストコードを追加することを推奨します。
ご協力ありがとうございます!
dev ブランチでバージョンを上げ、GitHub Actions が main 向けリリース PR とタグ/Release を自動化します。release-please は廃止済みです。
- 通常開発は
devブランチ。 - リリースしたくなったら Actions >
Prepare Releaseを手動実行:- bump:
patch/minor/major - preid: (未使用の場合は空)
- dry_run: テストしたい場合 true
- bump:
- ワークフローが以下を実施:
pubspec.yamlのversion:を更新CHANGELOG.mdに対象バージョン節を挿入(プレースホルダ付き)- ブランチ
release/vX.Y.Zを作成し push main向け PR (chore(release): vX.Y.Z) を作成
- PR で CHANGELOG のプレースホルダを実際の変更内容に編集
- マージすると
Publish Releaseワークフローが起動し:- タグ
vX.Y.Zを作成 - 該当 CHANGELOG 節を Release Notes にして GitHub Release 作成
- タグ
- Release から配布用アーティファクトを取得(今後自動添付 CI を追加する余地あり)
Conventional Commits 互換のメッセージを使うと CHANGELOG 編集が容易になります。 例:
feat(editor): テンプレ生成を高速化
fix(browser): 末尾スラッシュURLの解析不具合
chore(deps): ライブラリアップデート
refactor(ui): テーマ切替ロジック整理
devでは手動でpubspec.yamlの version を書き換えない(必ずPrepare Release経由)- リリース PR のタイトルは自動生成形式を維持
- CHANGELOG の過去バージョン節は書き換えない(修正が必要なら別 PR で明示)
Q. プレリリース (beta 等) は?
A. 現状未運用。必要になったら preid を指定すれば 1.2.3-beta.1 のような形式で作成可能。
Q. CHANGELOG の箇条書きを自動生成したい。 A. 将来的にコミットログパースのステップ追加で対応可能です(要望歓迎)。
- コミットログ自動要約による CHANGELOG 生成
- リリース時に Android / 他プラットフォーム成果物を自動ビルド & アップロード
- 依存パッケージ差分検出の自動挿入
このプロジェクトはGNU General Public License v3.0(GPLv3)のもとで公開されています。詳細はリポジトリ内のLICENSEをご覧ください。
https://github.com/inotia00/revanced-manager
本プロジェクトおよびその内容は、AtCoder株式会社及びその関連会社とは一切関係がなく、資金提供、承認、支持、またはその他いかなる形での関連もありません。 本プロジェクトで使用されている商標、サービスマーク、商号、またはその他の知的財産権は、それぞれの所有者に帰属します。
GitHub ロゴ, YouTube ロゴ, X(Twitter) ロゴ は各社の登録商標/商標です。これらのロゴはリンク誘導/識別目的のみで使用されており、本アプリによる公式な提携・後援・保証を意味しません。
- GitHub® および GitHub ロゴ は GitHub, Inc. の米国およびその他の国における登録商標または商標です。
- YouTube™ および YouTube ロゴ は Google LLC の商標です。
- X™(旧 Twitter)および X ロゴ は X Corp. の商標です。
- 記載されている会社名・製品名・サービス名等は、各社の商標または登録商標であり、本文中では TM, ® を明示しない場合があります。
- 本アプリ内での各ロゴ・名称の使用は識別・説明のみを目的としており、いかなる公式な提携・承認・後援関係も示唆しません。