Android

非Androidエンジニアが既存プロジェクトを雰囲気で開発する時の足がかり

ダウンロード.png


はじめに

Androidエンジニアじゃないけど既存のAndroidプロジェクトを触ることになった人向けの取っ掛かりとなる記事です。1から学習する時間がないので雰囲気で開発したい時に役に立つかもしれません。

僕も正しく概念モデルを理解している訳ではないので、つっこみなどは大歓迎です。


執筆時の環境


  • Android Studio 3.4.1

  • Mac OSX 10.14.4

  • Android Gradle Plugin Version 3.3.2

  • Gradle Version 4.10.1

  • Kotlin Version 1.3.10


ぜんぜんわからない 俺たちは雰囲気でビルドしている

入門記事を見てAndroid Studioをインストールしましょう。プロジェクトのREADMEにGetting StartedRequirementなどが書いてあればそれに従いましょう。

インストールが終わったらメニューバーよりTools/SKD Managerを開き必要なSDKなどを入れていきます。Android SDK, JDKなどが必要だったりします。READMEのバージョン等を確認し、特に記載がなければ最新のものを入れましょう。Android SDKに関しては最新バージョンに過去のバージョンが内包されている気がします(多分)。

一通りのインストールが終わったらメニューバーよりFile/Openで該当プロジェクトを開きます。Sync?が走ると思います。

スクリーンショット 2019-04-23 18.52.44.png

Android Studioは優秀なので、足りないコンポーネントなどがあればダイアログで教えてくれます。警告文の近くにあるボタン・リンク(下図では青字)を言われるがままにクリックしていきましょう。

スクリーンショット 2019-04-23 18.50.37.png

完了するとSyncタブの一番上に"synced successfully"と表示されます。

スクリーンショット 2019-04-23 18.58.43.png

続いてビルドしてみます。メニューバーよりBuild/"Build Bundle(s)/APK(s)"/Build APK(s)を選択します。Syncの横のBuildタブが開き、ぐるぐる回り始めます。"completed successfully"と表示されれば完了です。

スクリーンショット 2019-04-23 18.58.30.png

完了したらプロジェクトディレクトリ以下の/app/build/outputs/apk/debug/にapkファイルが生成されます。

大体のプロジェクトは雰囲気でビルド出来ますが、出来なかったらエラーメッセージを読むなどして解決してください。


ぜんぜんわからない 俺たちは雰囲気でエミュレータを動かしている

メニューバーよりRun/Run 'app'を押すと、起動対象のデバイスを選択するウィンドウが表示されます。

スクリーンショット 2019-04-25 23.50.27.png

実機で動かしてもいいんですけど、毎回繋いでおくのは大変なのでエミュレータで起動してみましょう。Virtual Devicesというのがエミュレータにあたります。画像の場合は「Pixel 2 XL API 28」を選択してOKを押すと起動します。多分初めは出てないのでCreate New Virtual Deviceから作成してください。少しだけ時間がかかる作業ですが雰囲気で進めていけば大丈夫です。

スクリーンショット 2019-04-26 0.09.24.png

起動するとこんな感じ。マウスポインターでタップと同じような操作が出来ますし、それ以外の操作(二本指ジェスチャーなど)も大体サポートされていると思います。

ちなみに実機で動かしたい時はAndroid側の設定が必要です。「開発者モード」「USBデバッグ」などのキーワードで検索してみてください。


ぜんぜんわからない 俺たちは雰囲気でリーディングをしている

Androidの基本的なことが何も分からないので、ビルドが出来てエミュレータが起動出来てもどこから手をつければよいかわからないと思います。

僕が色々触ってみて、なんとなく各ファイルの役割や組み立て方が分かりそうな情報をざっとあげてみます。


ディレクトリ構成と各ファイルの役割

大体どのプロジェクトもこんな感じのディレクトリ構成になっていると思います。

スクリーンショット 2019-04-26 0.18.23.png



  • manifests/AndroidManifest.xml


    • Permission(権限)を設定する役割(インターネットアクセスやカメラの許可など)

    • 起動時の画面指定




  • java/


    • javaのコードが入っている

    • kotlinのコードも入ってたりする

    • ディレクトリはPackage名と完全に一致させる必要があるので、IDEの機能以外で変えないようにすること(※厳密には違うらしい)


      • ファイルの上で右クリックすると出てくるメニューからRefactor/以下の機能を使うと良い

      • ファイル生成時にはパッケージ名を指定すると適切なディレクトリを作ってくれる


      • com.fido.example.aaa.bbbというパッケージ名のファイルがあったとして、com.fido.example.aaa直下には何もファイルがない場合、フォルダ名はaaa.bbbという省略された表示になる(実際のディレクトリはaaaの下にbbbがある)





スクリーンショット 2019-04-26 0.53.29.png



  • res/layout/


    • レイアウトファイルが入っている


    • .xml形式で定義されている

    • 左下のタブをDesignにすると、GUIで楽しくレイアウトを作れる

    • 左下のタブをTextにすると、直接xmlを記述してレイアウトできる(プレビューもある)



スクリーンショット 2019-04-26 0.57.16.png



  • res/values/


    • 定数などが定義されている


    • string.xmlはアプリ内で使用される文言、など




layoutの構成


TIPS

Shiftを2回連続で押すと検索窓が出てきて、ファイルの名前がメソッド名などを横断的に検索できる

スクリーンショット 2019-04-26 1.01.35.png

⌘ + Shift + FでFind in Pathが出来る。こっちはコード中の文字列とかも検索出来るので、強い気がする。


さいごに

変な所とかあったら教えてください


参考