Kotlinでライブラリを書いた
Koresource
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で。