IDEA Intellij でファイル単体スクリプトを編集する方法

ツールなどちょっとしたスクリプトをIDEAの持つ機能を利用しながら書きたいときありません?

プロジェクト化して Git に登録とかせずに、ササッと書いて、実行するだけの場合の話。

ファイル指定でコマンドラインから起動すれば良い!!

👉 Opening Files from Command Line - Help | IntelliJ IDEA 

ここに書いてある

Tools | Create Command-line Launcher

からは今は作成できない。

👉 Toolbox App 1.11: What’s New. | JetBrains Blog 

Toolbox 設定で [Generate Shell script] で指定した場所に起動シェルスクリプトが書き出される。

Android Studio で、プロジェクトディレクトリの指定でも開ける。

ただのランチャーとしてもどうぞ。

言語の設定 (Python)

編集したいスクリプトのファイル名を rename_gopro.py とします。

1. idea bin/rename_gopro.py で IDEA を起動する。

2. [File]-[Project Structure] から Project Structure 画面を開く。

3. Platform Settings の [SDKs]-[Python 3.7] を選択する。

4. Project Settings の [Project]-[Project SDk]-[Python 3.7] を選択する。

5. 上部ツールバー内 [Add Configuration...] から Run/Debug Configuration 画面を開く。

6. [+]-[Python] で開いた画面で Script path を入力する。

7. 上部ツールバーから [Run/Debug] する。

ちなみに今回書き出された起動スクリプトは以下。

~/bin/idea


#!/bin/sh
# Generated by JetBrains Toolbox 1.16.1212 at Fri Jan 24 07:08:01 2020

open -a "/Users/maochanz/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/193.1212.39/IntelliJ IDEA.app/Contents/MacOS/idea" "$@"

~/bin/studio


#!/bin/sh
# Generated by JetBrains Toolbox 1.16.1212 at Fri Jan 24 07:08:01 2020

open -a "/Users/maochanz/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/191.1212548/Android Studio.app/Contents/MacOS/studio" "$@"

👉 JetBrains Toolbox で Android Studio の Stable/Beta/Canary が同時に管理できる? 
👉 GoPro 分割された動画ファイルの命名規則 


Flipper で SQLite テーブルを直接見る

Stetho の Facebook が作成した Android / iOS どちらも使えるデバッグツールです。

👉 Open-sourcing Flipper: a new extensible debugging tool - Facebook Engineering 

👉 Flipper · Extensible mobile app debugging 

👉 facebook/flipper: A desktop debugging platform for mobile developers. 

We wanted to create a platform that gives us all the flexibility we need to build more advanced features and support for iOS. One of Flipper's core concepts is its extensibility using plugins. Plugins are written in React and we provide a set of ready-to-use UI components that allow developers to build great plugin UIs with a few lines of code.

iOSのより高度な機能とサポートを構築するために必要なすべての柔軟性を提供するプラットフォームを作成したかったのです。 Flipperのコアコンセプトの1つは、プラグインを使用した拡張性です。プラグインはReactで記述されており、開発者が数行のコードで優れたプラグインUIを構築できる、すぐに使用できるUIコンポーネントのセットを提供します。

👉 Stetho Guidance · Flipper 

dependencies、Application 内に記述しながら、セットアップ。


<activity android:name="com.facebook.flipper.android.diagnostics.FlipperDiagnosticActivity"
        android:exported="true"/>


repositories {
  jcenter()
}

dependencies {
  debugImplementation 'com.facebook.flipper:flipper:0.26.0'
  debugImplementation 'com.facebook.soloader:soloader:0.5.1'
  releaseImplementation 'com.facebook.flipper:flipper-noop:0.26.0'
}


public class MyApplication extends Application {

  @Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, false);

    if (BuildConfig.DEBUG && FlipperUtils.shouldEnableFlipper(this)) {
      final FlipperClient client = AndroidFlipperClient.getInstance(this);
      client.addPlugin(new InspectorFlipperPlugin(this, DescriptorMapping.withDefaults()));
      client.start();
    }
  }
}

👉 Getting Started · Flipper 

ここでは Database プラグインを追加します。


client.addPlugin(new DatabasesFlipperPlugin(context));

👉 Databases Plugin Setup · Flipper 

あとは、PC上のデバッグクライアントを開くと直感的に参照できるようになります。

👉 android/architecture-samples at dagger-android 

使いやすいです。動作も軽快です。


res を複数作って機能・画面別にディレクトリ分けすると分かりやすい

👉 Split layouts into subfolders in Android Studio - ProAndroidDev 

以下のコードを見ながら。

👉 GitHub - android/architecture-samples at dagger-android 

コードは、画面別にディレクトリ分けしてるが、レイアウトファイルは、複雑なファイル名で res ディレクトリ直下に一緒くたに入ってる。

ここで、build.gradle で設定記述を追加する。


android {
  sourceSets {
    main {
      res.srcDirs = [
          'src/main/res',
          'src/main/res/layouts/tasks',
          'src/main/res/layouts/taskdetail',
          'src/main/res/layouts/addedittask',
          'src/main/res/layouts/statistics',
      ]
    }

こうすることで、レイアウトファイル群を画面別に分けることができる。

Android Studio はデフォルトで、一つのディレクトリのみ


android {
  sourceSets {
    main {
      res.srcDirs = [
          'src/main/res'
      ]

と等価な設定を持ってるので、それに、画面別ディレクトリを複数追加することで、Android Studio は、リソースファイルとして複数ディレクトリからファイルを読み込むことができるようになります。

あとは、それぞれのリソースファイルを振り分けて置くだけ。

以下、やってみた動画。



実際は、レイアウトファイルがもっと多くなるはずなので、分かりやすさはより顕著になる。

👉 Split layouts into subfolders in Android Studio - ProAndroidDev