Linux Do を APK 化した軽量 Android アプリ

Mobile

概要

Linux Do WebView App は、linux.do サイトを Android 用の軽量ネイティブアプリにパッケージすることを目的としたリポジトリです。主要な機能はキャッシュ優先の高速表示、下方向へのプルでのページ再読み込み、ページ読み込み状況を示すトップバー、Cookie 永続化によるログイン維持など、WebView ベースのブラウズ体験を簡潔かつ高速に実現する点にあります。Kotlin と Android のモダンな開発環境(Kotlin DSL の build.gradle.kts、Android Studio 2023.1 以上、JDK17)を使い、Release ビルド時は R8 による縮小で配布サイズを抑えられる設計です。

GitHub

リポジトリの統計情報

  • スター数: 7
  • フォーク数: 2
  • ウォッチャー数: 7
  • コミット数: 2
  • ファイル数: 8
  • メインの言語: Kotlin

主な特徴

  • WebView をベースにした軽量な Android アプリ化(linux.do のラッパー)
  • 高速表示(キャッシュ優先)とトップの読み込みプログレスバー
  • 下拉(プル)でのページリフレッシュ、戻るキーでの履歴遷移対応
  • Cookie 永続化によるログイン状態の維持、R8 によるリリース時の APK 縮小

技術的なポイント

このプロジェクトは機能的にはシンプルですが、WebView ベースのネイティブアプリ化における実用的な実装パターンが集約されています。まずアプリは Kotlin で実装され、Gradle Kotlin DSL (build.gradle.kts) を使用しているためモダンなビルド設定が可能です。WebView の設定面ではキャッシュモードを優先して設定し、頻繁に閲覧されるページを即時表示できるようにしているほか、WebViewClient / WebChromeClient を適切に拡張してトップのプログレスバー表示やエラーハンドリングを実装している想定です。Cookie の永続化は CookieManager と適切な保存戦略(SharedPreferences 等)を組み合わせることで、ブラウザ同様のログイン持続を実現しています。UI はシンプルで、SwipeRefreshLayout を用いた下拉刷新や、戻るボタンでの履歴ナビゲーション処理を備え、ユーザー操作に馴染む振る舞いになっています。

ビルド面では Android Studio 2023.1 以上と JDK17 を前提にしており、リリースビルドでは R8 によるコード圧縮と最適化を有効化して APK サイズの削減に取り組んでいます。コードベースが小規模なためメンテナンスは容易ですが、セキュリティや互換性の観点では注意点もあります:混在コンテンツや JavaScript の有効化、外部スキームの取り扱い、ファイルダウンロードやアップロードの権限管理などは明確に制御する必要があります。将来的な改善としては AndroidX WebKit API の導入、Service Worker のオフライン戦略、より細かなプライバシー設定(トラッキング防止やサードパーティ Cookie 制御)、および自動化された署名・CI/CD によるビルド配布が考えられます。これらを踏まえると、小規模ながら実運用に耐える設計が行われていることが分かります。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • app: dir
  • build.gradle.kts: file

…他 3 ファイル

まとめ

linux.do を手軽に Android で使えるようにする、実用的で軽量な WebView APK プロジェクトです。

リポジトリ情報:

READMEの抜粋:

Linux Do WebView App

linux.do 网站打包成 Android APK 的轻量级应用。


💬 交流群

QQ群:694549830

欢迎加入交流使用心得、反馈问题、提出建议!


✨ 特性

  • 🚀 快速加载 - 优先使用缓存,秒开常用页面
  • 📦 体积小 - Release 版本启用 R8 压缩
  • 🎯 顶部进度条 - 蓝色进度条显示加载状态
  • 🔄 下拉刷新 - 支持下拉刷新页面
  • 🔐 登录持久化 - Cookie 持久化保存登录状态
  • ↩️ 返回导航 - 返回键浏览网页历史

📱 编译 APK

前置要求

编译步骤

  1. 克隆或下载此项目
  2. 用 Android Studio 打开项目目录
  3. 等待 Gradle 同步完成 …