Kotlinでライブラリを書いた

Koresource

github.com

Androidでstringなどのリソースをpropertyとして保持しようとするとこんな感じ。

class MainActivity : AppCompatActivity() {
    var stringResource: String? = null
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        stringResource = getString(R.string.foo)
    }
}

嫌なところ

  • mutable property(var)
  • nullable
  • nullで初期化

これらを解決するためにKotlinのDelegated Propertyを利用してライブラリを書きました。 このようにしてリソースの取得を行うことができます。

class MainActivity : AppCompatActivity() {
    val stringResource: String by stringResource(R.string.foo)

}

詳しくはGitHubで。