- 1. MPAndroidChartでリアルタイムプロットサンプル(kotlin)
- 2. KotlinでFirestoreのTimestampをDate型に変換
- 3. FirebaseMessagingのトークンを取得する際のエラー解消方法
- 4. AsyncTaskを使った非同期処理
- 5. HMSとAndroid OSバージョンについての考察
- 6. 【Unity】GoogleAdMobでiOS14対応したときのトラブル解決
- 7. 2021/3/23 Android System WebViewは何が修正されたのか?
- 8. AndroidでFirebaseにいちばんシンプルにHelloWorldをInsertする
- 9. Kotlinでカスタムしたダイアログからコールバックを受ける
- 10. [Android][Java]ボタン付きのカスタムセルのListViewを作成する
- 11. [Android/Java] Jetpack LifecycleObserver
- 12. 【Kotlin 初心者】font-familyで余白が入った場合の対処方法
- 13. BindingAdapterで「Caused by: java.lang.IllegalStateException: Required DataBindingComponent is null」
- 14. 【IOS , Android】React-Nativeで設定画面に遷移する
- 15. Activityを保持しない場合のonActivityResult
- 16. Kotlinで文字列を選択できるドラムロールをシンプルに実装
- 17. [Android/Java] Jetpack LiveData (Jetpack ViewModel MVVM+Repositoryパターン)
- 18. backgroundとbackgroundTintの違い
- 19. UnityでFacebookSDKのAndroidでログインエラーの解決方法
- 20. [Android/Java] Jetpack Navigation 画面遷移とFragment間のデータ受け渡し
MPAndroidChartでリアルタイムプロットサンプル(kotlin)
MPAndroidChartを使ったリアルタイム更新グラフのサンプルを作成した。
公式にサンプル(https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartExample/src/main/java/com/xxmassdeveloper/mpchartexample/RealtimeLineChartActivity.java)
にあるが、Javaで書かれているため、ここでは公式を参考にKotlinで書いていく。まず、build.gradleにviewBindingの設定とMPAndroidChartのインポート設定を行う。
“`xml:app/build.gradle
…
android {
…
buildFeatures {
viewBinding = true
}
}dependencies {
…
implementation ‘com.github.PhilJay:MPAndroidChart:v3.1.0’
}
…
“`
KotlinでFirestoreのTimestampをDate型に変換
Firestoreで取得したTimestampを、Kotlinで扱うためにDate型に変換します。
簡単です。“`Kotlin:MainActivity.kt
//FirestoreのドキュメントからTimestampデータを取り出す
val firebase_timestamp = document.data[“timestamp”] as com.google.firebase.Timestamp
//Date型へ変換する
val date = firebase_timestamp.toDate()
FirebaseMessagingのトークンを取得する際のエラー解消方法
# エラー
Firebaseのチュートリアルを進めていると、クライアントアプリのインスタンスの登録トークンを取得するステップにあたります。
https://firebase.google.com/docs/cloud-messaging/android/client?hl=ja#retrieve-the-current-registration-token
チュートリアルでは以下の記載があります。
>現在のトークンを取得する必要がある場合は、FirebaseMessaging.getInstance().getToken() を呼び出します。同じくチュートリアルでは、kotlinの場合のコード例が紹介されています。
“`kotlin:
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
if (!task.isSuccessful) {
Log.w(TAG, “Fetching FCM registration token
AsyncTaskを使った非同期処理
メモです。詳細は下記URL先を参照してください。
https://dev.classmethod.jp/articles/asynctask/
HMSとAndroid OSバージョンについての考察
# 背景
Androidのbuild.gradleのminSdkVersionを16以下に設定し、HMSライブラリを導入すると、ビルド時に次のようなエラーが出てきます。“`text
Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 17 declared in library [com.huawei.hms:hwid:5.2.0.300] xxxxxxxxxxxxxxxxxxxxxxx\AndroidManifest.xml as the library might be using APIs not available in 16
Suggestion: use a compatible library with a minSdk of at most 16,
or increase this project’s minSdk version to at least 17,
or use tools:overrideLibrary=”com.huawei.
【Unity】GoogleAdMobでiOS14対応したときのトラブル解決
![iOS14_SKAdNework_error_thumb.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401916/c25fd72b-170d-da89-2d33-c6df0d29f26a.png)
今回GoogleAdmobの管理画面にiOS14(SKAdNework)に未対応である旨のエラーが出ており
対応を入れることにしました。その対応を備忘録として残しておきたいと思います。
本文はこちらです
https://tedenglish.site/unity-googleadmob-ios14-trouble/
2021/3/23 Android System WebViewは何が修正されたのか?
2021/3/23に世間を騒がせた、Android System WebView (Google Playだと ‘AndroidシステムのWebView’ って表記のやつ)、結局、何を修正したら直ったのか気になったので、Gitログを調べた。
* おかしいと報告のあったバージョン: 89.0.4389.90
* 直ったと報告のあったバージョン: 89.0.4389.105https://github.com/chromium/chromium/compare/89.0.4389.90…89.0.4389.105
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/74571/5393e685-c1f2-0f2a-81a1-820968157d39.png)
なるほどわからん。
AndroidでFirebaseにいちばんシンプルにHelloWorldをInsertする
# はじめに
WebからAndroidに入るような人って、まず、Androidの端末からHelloWorldを、Firebaseに送りたいのよ。なんでかQiitaにもUdemyにもTechpitにもシンプルにミニマルに書いてあるってないのよー# 前提条件
全部最新版でいい(とりあえず)
・AndroidStudioは一番新しいのを入れろ
・Targets API level 16+ を入れろ
・Uses Gradle 4.1+ を入れろ
・Uses Jetpack (AndroidX) を入れろ
・compileSdkVersion 28+ を入れろ# Androidプロジェクト作成
## Create New Project
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/94562/f5125b45-7783-ac4b-5a9f-c66e0ee380fa.png)
## Empty Activity
![image.png](https://qiita-image-store.
Kotlinでカスタムしたダイアログからコールバックを受ける
#レイアウトをカスタムしたダイアログからコールバックを受ける
・自分で作ったレイアウトをダイアログアラートに適応します。
・ダイアログでOKボタンが押されたら、メインアクティビティでコメントをprintlnします。“`Kotlin:MainActivity.kt
//ダイアログ側で設定したインターフェースを実装
class MainActivity : AppCompatActivity(), TestDialogFragment.TestDialogListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)//ダイアログの起動ボタン
val btn = findViewById
[Android][Java]ボタン付きのカスタムセルのListViewを作成する
ボタン付のカスタムしたセルでListViewを作成する方法を記載します。
リスト表示する場合にはRecyclerViewの方が柔軟に様々な事ができますが、その分実装量が多くなるため、簡単に実装ができるListViewについて書いていきます。
完成イメージは以下です。
AndroidStudioで空のアクティビティを作成した状態から始めます。
#1.layout/activity_main.xmlにListViewを定義する
空のアクティビティを作成すると、ConstraintLayoutだけが定義されている状態なので、以下のようにListViewを定義します。“`activity_main.xml
[Android/Java] Jetpack LifecycleObserver
Android Studio 4.1.3(windows版) で動作確認しています
Jetpack LifecycleObserverの簡単な説明とサクッと試すためのコードです
Android DeveloperのLifecycleObserverの説明は以下です
https://developer.android.com/topic/libraries/architecture/lifecycle?hl=ja
getViewLifecycleOwner()についてはこちら
https://developer.android.com/reference/androidx/fragment/app/Fragment#getViewLifecycleOwner()
## 確認用コード
各イベント/イベントの引数は省略できます
Lifecycle.Event.ON_ANYはすべてのイベントを受け取れて
Lifecycle.Event.ON_ANYのみ引数でLifecycle.Eventを指定できます
getCurrentState()で現在のLifecycleの状態も取得できます
【Kotlin 初心者】font-familyで余白が入った場合の対処方法
## font-familyで余白が入った場合の対処方法
font-familyを指定した際に意図しない余白があり困ったので、この記事を書きました:point_up_tone2:結論から言うと下記のプロパティを書くと解決します。
“`
android:includeFontPadding=”false”
“`fontによっては初期でandroid:includeFontPaddingがtrueになっているみたいです。
ざっくりとですが、android:includeFontPaddingの初期値がtrue,falseのfont一覧を書きました| true | false |
| —- | —- |
| noto_sans_cjk_jp_medium | hiragino_kaku_gothic_pro_n_w_3 |
| – | yu_gothic_bold |
| – | roboto_medium |
BindingAdapterで「Caused by: java.lang.IllegalStateException: Required DataBindingComponent is null」
DataBindingでBindingAdapterを使っていると、以下のエラーが発生することがあります。
“`kotlin
Caused by: java.lang.IllegalStateException: Required DataBindingComponent is null in class ActivityMainBindingImpl.
A BindingAdapter in com.example.sample.BindingAdapter is not static and requires an object to use, retrieved from the DataBindingComponent.
If you don’t use an inflation method taking a DataBindingComponent, use DataBindingUtil.setDefaultComponent or make all BindingAdapter methods static.
“`これは`@JvmStatic`がないことに
【IOS , Android】React-Nativeで設定画面に遷移する
## 前提条件
– React-Nativeの環境を構築済み
– エミュレーターをIOSとAndroid両方立ち上げられる## 実装方法
わかりやすいようにonPressした際に設定画面に遷移させます
下記ではButtonを押しても特に何も起きません“`js:App.js
import React from ‘react’;
import {StyleSheet, View, Button} from ‘react-native’;const App = () => {
return (
);
};const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: ‘center’,
alignItems: ‘center’,
},
});export default App;
“`
Activityを保持しない場合のonActivityResult
# はじめに
Activityを保持しない場合も動作するように修正しようとしたら、ハマってしまい苦労したので備忘録として書きます。Intentで他のアプリを起動した場合など、Activityがバックグラウンドに移動した時にメモリが足らなくなると、
もともと起動していたアプリ(Activity)を終了してメモリを確保するみたいです。
この時、アプリが復帰する動作が通常とは異なる動きをするので注意が必要です。
ただ、裏ですごいリッチでグラフィカルなゲームを起動してるとか、動かしてるアプリがめちゃめちゃメモリ喰うとか、端末が古くてすごい非力な場合とかの少し特殊な場合でしか起こり得ないことなので気づきにくいかもしれません。# 結論
onActivityResultとonStartの呼び出し順が変わるので注意!!## 再現方法
開発者向けオプションから「アクティビティを保持しない」の項目をONにすることで、Activityがバックグラウンドに移動した場合に常に終了するようにできます。
## ライフサイクル
Activityを保持する/しないの両方共動くようにしようとしたら、思っ
Kotlinで文字列を選択できるドラムロールをシンプルに実装
#NumberPickerを使ってドラムロールを実装する
Kotlinならドラムロールはわりと簡単に実装できます。##ドラムロールを実装
レイアウトにドラムロールとなるNumberPickerを追加します。
“`Xml:activity_main.xml
“`onCreateメソッドでNumberPickerに文字列をセットしていきます。
“`Kotlin:MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)//ドラムロール表示用の配列作成
val fr
[Android/Java] Jetpack LiveData (Jetpack ViewModel MVVM+Repositoryパターン)
Android Studio 4.1.3(windows版) での流れとなります
ここではMutableLiveDataをRepositoryで持ち単純なデータのModelを扱うだけの
シンプルな構成で一連の流れを説明します以下の記事のプロジェクトベースでの説明となります
https://qiita.com/smurata_pvt/items/a8454cc635ba693df6b8
Android DeveloperのJetpack LiveData/MVVM+Repositoryパターンの説明は以下です
https://developer.android.com/jetpack/guide?hl=ja
## Layoutの準備
ここではViewBindingを使用して実装します
ViewBindingの設定方法を知りたい方は以下を参照してくださいhttps://qiita.com/smurata_pvt/items/99cd5f878b4eedb84dc8
MainFragmentのテンプレートにあるTextViewはidが指定されていないため
ここではtext
backgroundとbackgroundTintの違い
# `android:background`
背景として使用するドローワブルで、描画可能なリソース(PNG画像、9パッチ[^2]、 シェイプドローワブル[^1]、色を指定します。
色の形式は「`#rgb`、`#argb`、`#rrggbb`、`#aarrggbb`」があります。
#`android:backgroundTint`
backgroundにカラーフィルターをかけて色を変化させることが出来ます。
例えば、`android:background=”#FF0000″`(赤)で、`android:backgroundTint=”#00FF00″`(緑)を指定すると、`#FFFF00(黄色)`になります。
> [3原色と色度図より](https://www.shokabo.co.jp/sp_opt/spectrum/color3/color3.htm)
色の形式は`android:background`と同じく、「`#rgb
UnityでFacebookSDKのAndroidでログインエラーの解決方法
# 概要
UnityでFacebookSDKを使用してAndroidでログインエラーが出てしまう問題の解決方法# 問題点
KeyStoreの作り方がFacebookで紹介されているものと別であったため、Unity上で表示されたキーハッシュが間違っていた# 解決方法
確実なキーハッシュの取得方法はIResultのRawResultの中に記載されている“`
// 初期化等は割愛FB.LogInWithReadPermissions(・・・, OnLogin);
void OnLogin(IResult result)
{
// こいつを確認する!!!
Debug.Log($”Raw:[{result.RawResult}]”);
}
“`# その他エラー解消のための参考文献
[公式](https://developers.facebook.com/docs/unity/getting-started/android)
[ザ・ゆるふわ](http://ado3s.hatenablog.com/entry/2016/11/07/015736)
[cloudpa
[Android/Java] Jetpack Navigation 画面遷移とFragment間のデータ受け渡し
Android Studio 4.1.3(windows版) での流れとなります
以下の記事のプロジェクトベースでの説明となります
https://qiita.com/smurata_pvt/items/a8454cc635ba693df6b8
Android DeveloperのJetpack Navigationの画面遷移とFragment間のデータ受け渡しの説明は以下です
https://developer.android.com/guide/navigation/navigation-pass-data?hl=ja
https://developer.android.com/jetpack/androidx/releases/navigation
## SafeArgs を追加する
※ 現時点ではandroidx.navigation:navigation-safe-args-gradle-pluginをimplementationでは動作しないようです
※ androidx.navigationのバージョンに合わせて設定してください“`build.gradl