https://github.com/numeroanddev/android_summit_2018_note
https://github.com/numeroanddev/android_summit_2018_note
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/numeroanddev/android_summit_2018_note
- Owner: NUmeroAndDev
- Created: 2018-11-09T01:27:08.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-11-28T07:36:08.000Z (over 6 years ago)
- Last Synced: 2025-02-17T08:25:41.678Z (4 months ago)
- Size: 9.77 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# android_summit_2018_note
## [Preferential Practices for Preferences](https://youtu.be/PS9jhuHECEQ)
### androidx.preference
* API 14 以降
* いろんな OS バージョンで共通のデザイン### SharedPreference
* AppCompatActivity > PreferenceFragmentCompat
* app になってる
```
```
* `EditTextPreference` なんてあったけ?
* 1.1.0-alpha1 から `useSimpleSummaryProvider` で入力内容を summary に自動で追加```
```* 1.1.0-alpha1 から? `dependency` で `SwitchPreference` とかの key を渡して、 enable を自動で更新
```
```
### Dynamic Summaries
* 値の変更を監視して summary を動的に変更できる
```
val syncSummaryProvider = SummaryProvider { preference ->
if (preference.isChecked) {
"Checked"
} else {
"Non checked"
}
}findPreference("enable_sync").summaryProvider = syncSummaryProvider
```### Multiple screen architecture
* Activity > Fragment > Hierarchy を Activity > Settings Screen に
* Preference 間の画面遷移が簡単に```
```
```
class SettingsActovoty : AppCompatActicity(), PreferenceFragmentCompat.OnPreferenceStartFragmentCallback {
override fun onPreferenceStartFragment(caller: PreferenceFragmentCompat, pref: Preference):Boolean {
// tansition を独自で実装する場合は true
// 標準処理にお任せの場合は false
}
}
```## [Get Animated](https://youtu.be/N_x7SV3I3P0) [WIP]
* android.view.animation が (Consider)Depereted
WindowAnimation や Fragment のアニメーションはこれを使用している* android.animation を使うことを推奨
* ObjectAnimator はリフレクション使うからあまりよろしくない
```
// この alpha が問題
ObjectAnimator.ofFloat(view, "alpha", 1f, 0f).apply {
duration = 100
}.start()ObjectAnimator.ofFloat(view, View.ALPHA, 1f, 0f).apply {
duration = 100
}.start()
```* PropertyValuesHolder
```
val scaleX = PropertyValuesHolder.ofFloat(View.SCALE_X, 0.5f, 1f)
```## [Getting the Most from the New Multi-Camera API](https://youtu.be/u38wOv2a_dA)
[Medium](https://medium.com/androiddevelopers/getting-the-most-from-the-new-multi-camera-api-5155fb3d77d9)