レッスン1:Building Your First App(1)
なんだかんだで基本が成ってないため、だんだんといろんなことの理解が遅くなってきました。というわけで、いつものメモと並行して、Android Developersサイトのトレーニングをこなしていきたいと思います。トレーニングのメモは、基本的に翻訳っぽい感じで進めていきます。
というわけで、さっそくこちらのトレーニングから始めていきます。
Android プロジェクトの作成 | Android Developers
この前の章の「Android Studioの環境構築」パートはすっ飛ばしてます。
Android Studioでプロジェクトを作成
- NEW Projectの作成
- Welcome画面から Start a new project
- 別プロジェクトを開いている場合、メニューから File > New > New Project
- Configure your new project画面で各フィールドに入力してNextをクリック
- Application Name:表示されるアプリ名を「My First App」とします
- Company domain:登録ドメイン名(うちのサイトだとmonoworks.co.jpとなります)
- Package name(補足有):プロジェクトの完全修飾名(Javaのパッケージ命名規則に準拠)
- Project location:プロジェクトファイルを保存するディレクトリ
- Select the form factors your app will run on画面でPhone and Tabletにチェック
- 同画面で、Minimum SDK(補足有)は、API 8: Android 2.2 (Froyo)を選択
- 同画面で、他のデバイスにはチェックを入れずにNextをクリック
- Add an activity to <テンプレート>画面でBlank Activity(補足有)を選択してNextをクリック
- Customize the Activty画面(補足有)では、基本構成ファイルの名前を設定します。Activity Name(実行ファイルの名前)を「MyActivity」に変更すると、下記項目が自動的に変更されます。
- Layout Name(レイアウトファイルの名前)が「activity_my」へ
- Titleが「MyActivity」へ
- Menu Resource Nameが「menu_my」へ
- 同画面のFinishをクリックすると、プロジェクトが作成されます
以上の手順で、ベーシックな「Hello World」アプリのプロジェクトファイルが作成されます。手順の中で出てきた「Activity」については、下記メモを参照ください。
新規作成プロジェクトに含まれる基本ファイル
app/src/main/res/layout/activity_my.xml(レイアウトファイル)
このファイルは、プロジェクトを作成した時に追加されたActivityの画面レイアウトを設定するためのXMLファイルです。プロジェクトを新規作成すると、まずこのXMLファイルで定義された模擬画面が表示されます。この模擬画面には、直接ボタンなどのViewを配置したり、Viewの大きさを変更することができます。このようにAndroid Studioでは、模擬画面で視覚的に画面レイアウトをおこなう「Design」モードの他に、XMLファイルの中身(テキスト)にレイアウト情報を記述する「text」モードでも画面レイアウトを編集することができます。なお、初期状態のXMLレイアウトファイルには、「hello world」と画面に表示するTextViewがひとつだけ配置されています。
app/src/main/java/com.mycompany.myfirstapp/MyActivity.java(実行ファイル)
プロジェクト新規作成時にXMLレイアウトファイルとともにタブに表示されるのが、このjavaファイルです。中身には、作成したactivityを定義するクラスが記述されています。アプリをビルドして実行すると、記述されたActivtyクラスがactivityを開始して、「hello world」と画面に表示するTextViewを配置したレイアウトファイルを読み込みます。
app/src/main/AndroidManifest.xml(マニフェストファイル)
このマニフェストファイルは、アプリの基本要素と各コンポーネントの定義を記述したファイルです。このトレーニングを通して、作成したアプリにコンポーネントを追加しますが、その際には、このファイルと再会することになります。
app/build.gradle
Android Studioは、アプリをコンパイルしてビルドするために Gradleを利用しており、プロジェクトの各モジュールのビルド設定を記述したbuild.gradleとプロジェクト全体のビルド設定を記述したbuild.gradleの2種類が存在します。それぞれのbuild.gradleについては、下記メモを参照ください。
メモ:AndroidStudioの.gradleファイルの種類 - Mono Works
通常は、appフォルダ配下にある「各モジュールのビルド設定を記述したbuild.gradle」をお世話していくことになります。このbuild.gradleには、アプリが必要とするライブラリなどの依存関係やビルドに関するdefaultConfig設定が記述されています。このうち、defaultConfig設定に設定されている要素をいくつか紹介します。
- compiledSdkVersion:これは、アプリをコンパイルするプラットフォームのバージョンです。初期状態では、開発環境に用意したSDKのうち最新バージョン(最低でもAndroid 4.1(API16)以上、無ければSDKマネージャでインストールする必要あり)のものが適用されます。より古いバージョンもサポート対象とすることができますが、最新のバージョンに設定しておくことで、新機能が有効になり、最新端末上でのアプリ最適化も可能となります。
- applicationId:プロジェクト作成時に設定したPackage name(プロジェクトの完全修飾名)
- minSdkVersion:プロジェクト作成時に設定したサポートするAndroidの最も古いバージョン
- targetSdkVersion:テスト対象とするAndroidの最も新しいバージョンを指定。新しいバージョンが利用可能になれば、そのバージョンでのアプリ動作をテストして、新しいプラットフォームの機能を活用できるよう最新のAPIレベルに合わせてアップデートすることになるでしょう。詳細は、別章で解説。
resフォルダ配下の主なフォルダ構成
res/drawable/
このフォルダに画像を格納しておくと様々な解像度の画面に対応してくれます。詳しくは下記メモを参照ください。
res/layout/
前述したXMLファイルなどアプリのユーザーインターフェイスを定義するファイルを格納しています。
res/menu/
アプリのメニューアイテムを格納しています。
res/values/
文字列や色などを定義するリソースファイルを格納しています。
トレーニングの補足
Package nameの補足
ストアでアプリを公開する場合、このパッケージ名で登録されます。このため、パッケージ名は、Androidシステム上で唯一無二の名前である必要があり、デフォルトで「登録ドメイン名を逆順にしたもの+アプリケーション名」(jp.co.monoworks.myfirstapp)といった名称が割り振られます。なお「Edit」をクリックすれば、デフォルトのパッケージ名を編集することもできます。
Minimum SDKの補足
ここには、作成するアプリがサポートするもっとも古いAndroidのバージョンを設定します。どのバージョンまでサポートするかは、現在普及しているバージョンの比率などを参考に設定します。下記メモを参照ください。
メモ:Androidのバージョンや画面サイズの違いにどこまで対応するか - Mono Works
Activityテンプレートの補足
Android Studio 1.4からBlank Activityテンプレートには「FloatingActionButton」が組み込まれてしまい、1.3以前のテンプレートより複雑なファイル構成となっています。トレーニング内容は、現時点で改訂されておらず、Android Studio 1.4で本トレーニングをおこなう場合、Empty Activityテンプレートを選択します。ちなみに自分は1.3からスタートして、現在1.4を使用しているので、それ以前のバージョンについては不明です。いちおう1.3の環境も残していますが、アップデートのアナウンスに根負けして、そのうち1.4にしてしまうと思います。
Customize the Activity画面に関する補足
もともとトレーニングページには「Choose options for your new file」画面と記載されていましたが、Android Studio 1.3および1.4で確認したところ「Customize the Activity」画面となっていたので、画面名を「Customize the Activity画面」と表記しました。
コマンドラインツールに関する説明は割愛
Create a Project with Command Line Toolsセクション
各所でコマンドラインツールによる操作方法が紹介されていますが、本トレーニングメモでは基本的に割愛します。
【参考サイト】
コメント
コメントなどありましたら、GitHubのディスカッションへお願いします。(書き込みには、GitHubのアカウントが必要です)