공식 WooCommerce Android 앱 소스 코드의 구조
大規模なeコマースAndroidアプリのarchitectureを学ぶ必要があるとき、適切な例を見つけるのは簡単ではありません。多くの実際のプロジェクトは企業のprivateリポジトリに隠されており、publicのチュートリアルはシンプルなTodoリスト程度にとどまります。WooCommerceモバイルアプリはその点で貴重な例外です。Automatticチームはクライアントのソースコードを完全にopen sourceとして公開しています。
このリポジトリには、毎日数千人のオンラインストアownerが使用しているフル機能のKotlinアプリケーションが含まれています。実践的なarchitectural solution、テストアプローチ、レイアウトを学ぶための優れたプラットフォームです。
プロジェクトの中身
このアプリは無KotlinとAndroid Jetpackコンポーネントを中心に構築されています。以前はdata layerが別のFluxCライブラリに存在していましたが、その後、開発者たちはこのロジックをmainリポジトリに直接移しました。
注目すべき詳細として、Google ML Kitがproduct packagingのバーコードスキャンとテキスト認識に使用されています。これはプロジェクトの数少ないproprietary依存関係の1つです。Googleサービスなしでビルドする予定がある場合、このmoduleは交換する必要があります。
リポジトリのドキュメントには以下のトピックに関するガイドが含まれています:
- WooCommerce REST APIとの連携に向けたOAuth2認証の設定。
- 右から左へのレイアウト(RTL)interfaceとlocalizationのサポート。
- タブレットやlarge screen向けの画面adaptation。
- 新機能の安全なreleaseためのfeature flagの使用。
ビルドと実行
数分でプロジェクトをローカルで動作させることができます。基本的な要件はAndroid StudioとインストールされたSDKだけです。
まず、リポジトリをcloneします:
git clone https://github.com/woocommerce/woocommerce-android.git
cd woocommerce-android
次に、設定templateをsecretsディレクトリにコピーします:
cp defaults.properties ~/.configure/woocommerce-android/secrets/secrets.properties
その後、Android Studioでフォルダを開きます。GUIがSDK pathsを自動的に作成します。標準のGradleコマンドを使用してdebugバージョンをビルドしたり、terminalからテストを実行したりできます:
./gradlew assembleVanillaDebug
./gradlew installVanillaDebug
./gradlew :WooCommerce:testVanillaDebugUnitTest
./gradlew :WooCommerce:connectedVanillaDebugAndroidTest
このリポジトリを学ぶべき理由
WooCommerce Androidコードには、中級またはsenior開発者が直面する日常的なtaskのsolutionを見つけることができます:
- チーム標準に一致する готовый ルールセットを備えたDetekt静的アナライザーの設定。
- 特別なテスト実行によるGoogle Play向けの自動スクリーンショット生成。
- 基本的なstore管理とPOS端末のanalytics event trackingを分離。
- Material Designを使用したstylesとthemesの適切な分離。
誰が恩恵を受けるか
このリポジトリは、豊かなhistoryを持つ実際のKotlinアプリケーションの構造を確認したいAndroid開発者にとって有用です。Automatticのengineeringチームがtech debtをどのようにhandlingしているか、modulesをどのように構成しているか、新しいJetpackライブラリをどのようにintegrateしているかを確認できます。
独自のeコマースクライアントやWordPress APIintegrationを構築している場合、このコードはarchitecture設計フェーズで多くの時間を節約できます。
関連プロジェクト