- 1. Vue3ベースのIonic-Vue(β)で実機デバッグするまで。
- 2. Firebase Cloud Messagingでトークンの取得方法が変わっていた
- 3. #34 Kotlin Koans Properties/Delegates examples 解説
- 4. Android Studio で実行しようとするとCould not start AVD
- 5. Android Studio を日本語化する方法
- 6. Androidで画像解析をしてみる(Pytorch MobileとKotlinを利用)
- 7. LiveDataのpostValueはすべてのデータが通知されるわけではないということを理解して使っていますか?
- 8. 【備忘録】http通信関連(okhttp3)
- 9. #33 Kotlin Koans Properties/Lazy property 解説
- 10. 【備忘録】SQLite関連
- 11. MPAndroidChart y軸に単位を表示する方法
- 12. #32 Kotlin Koans Properties/Properties 解説
- 13. MPAndroidChart 設定
- 14. 【超初心者向け】Android入門 RecyclerView編
- 15. AndroidのWebViewでダークモード対応する方法
- 16. 【Android】ActionBarでハマったこと
- 17. 【備忘録】基本情報設定(gradle)
- 18. AndroidのTalkBack機能についてまとめる(基本操作について編)
- 19. [Kotlin]toastAさんが居座ってしまいtoastBくんが呼べない方に、toastAさんに速やかに退去してもらう方法
- 20. 【Android】ScrollView がトップに戻らない
Vue3ベースのIonic-Vue(β)で実機デバッグするまで。
Vue3が発表されてIonic-Vueがβで公開されて少し経ったのでどんなもんか触ってみました。
諸事情あってWindowsで開発環境を構築していますがMacでもほぼ差異なく動きましたionic/cliをglobalにinstallします。
“`shell
npm install -g @ionic/cli@testing
“`my-appはプロジェクト名なので任意に
“`shell
ionic start my-app tabs –type vue –tag vue-beta
“`1分程待つと
“`shell
Your Ionic app is ready! Follow these next steps:– Go to your new project: cd ./vocbook
– Run ionic serve within the app directory to see your app in the browser
– Run ionic capacitor add to add a native iOS or Android proj
Firebase Cloud Messagingでトークンの取得方法が変わっていた
タイトルのとおり。
[com.google.firebase:firebase-messaging.20.3.0](https://firebase.google.com/support/release-notes/android#messaging_v20-3-0) からは `FirebaseInstanceId` クラスの `getInstanceId` 関数からではなく、`FirebaseMessaging` クラスの `getToken` 関数から取得するようになったようだ。“`kotlin
// 1. リスナーで非同期的に取得するやり方
FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
if (!task.isSuccessful) {
return@OnCompleteListener
}val token = task.result
}// 2. kotlinx-coroutines-play-servicesを使ってコルーチン内
#34 Kotlin Koans Properties/Delegates examples 解説
#1 はじめに
Kotlin公式リファレンスのKotlin Koans Properties/Delegates examplesの解説記事です。
Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。
ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**一度各自で挑戦してから、お目通し頂ければと思います:fist:
#2 Delegated Properties/Lazy
**[Delegated Properties](https://kotlinlang.org/docs/reference/delegated-properties.html)**
`val/var: by `で表現される、プロパティの参照方法です。 以下でリファレンスの例を見てみましょう。
“`kotlin:Delegates_example
import kotlin.reflect.KPropertyclass Example {
v
Android Studio で実行しようとするとCould not start AVD
Android Studio でプログラムを書いていざ実行、デバッグ実行しようとしたら、次のエラーが出ました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184382/b5b79c39-ad17-2bee-c0f4-fc11b6d77712.png)AVD Managerを開くと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184382/9b46a567-c7fa-1f2c-ab0f-270a2e9a58d5.png)`VT-x is disabled in BIOS.` と表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184382/5d223415-f351-6ba5-1d6b-ed6daa4dd2ce.png)一旦、OSを終了してBIOS起動し、バー
Android Studio を日本語化する方法
まず、Android Studio を起動します。
`File`メニューから`Settings`を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184382/4d2ffcb6-632e-95f8-eebd-3e856b362c30.png)検索欄にJapaneseを入れると、`Japanese Language Pack EAP`が出てくるのでこれを`Install`します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184382/6bd7c577-0dc6-12fc-6609-82094aecac97.png)`Restart IDE`でAndroid Studioを再起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184382/8e202000-74
Androidで画像解析をしてみる(Pytorch MobileとKotlinを利用)
# Pytorch Mobileを利用した画像解析アプリケーション
– resnet
– pytorch mobile
– cameraxを利用して、撮影した画像に対して画像解析を行うアプリケーションを作成しました。
1.起動時
2.写真撮影
3.画像解析
LiveDataのpostValueはすべてのデータが通知されるわけではないということを理解して使っていますか?言いたいことはタイトルの通りです。LiveDataのpostValueを使った場合、一部データが通知されない可能性があります。その挙動を理解して使っていれば問題ありませんが、意識しないで使っていると問題が起こるかもというお話です。
要約すると、observerの`onChanged()`がコールされるまでの間にキューがあるわけではないので、読み出される前に次のデータがpostされると、最後の値しか通知されません。データをUIに反映させるという目的であれば不必要な更新を発生させないので、むしろ好都合というか、そういう意図で作られているのだとは思います。しかし、LiveDataをそれ以外の目的で利用しているなどで、途中のデータも通知されないと困るという用途の場合は注意が必要です。
特に意識していなかった場合は、途中のデータが失われると困る用途で使っていないか再度確認しましょう。
問題がある場合は、LiveDataではなく、RxJavaを使うなど他のライブラリを使うのが良いでしょう。## 理由詳細
postValueの実装を覗いてみましょう
[LiveData.java](htt
【備忘録】http通信関連(okhttp3)
#通信する
スマホやタブレットでアプリを動かす以上、避けて通れないのが通信。
今回はhttp通信についてまとめる。
流石に色々なライブラリがあるようだが、今回はOkhttp3を使った。#gradleからインポート
まずはアプリでOkhttp3が使えるようにする。
そのためにbuild.gradle(モジュール:app)に追記する。
バージョンはお好きなものを。
追記したら忘れずに同期させよう。“`gradle:build.gradle
dependencies {
implementation fileTree(dir: “libs”, include: [“*.jar”])
implementation ‘com.android.support:appcompat-v7:28.0.0’
implementation ‘com.android.support.constraint:constraint-layout:2.0.2’
implementation ‘com.squareup.okhttp3:okhttp:4.8.0’ //←この1
#33 Kotlin Koans Properties/Lazy property 解説
#1 はじめに
Kotlin公式リファレンスのKotlin Koans Properties/Lazy propertyの解説記事です。
Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。
ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**一度各自で挑戦してから、お目通し頂ければと思います:fist:
#2 !!演算子
null許容型の変数の後ろにつけることで、
強制的に、**非null許容型に変換します**。#3 Properties/Lazy propertyの解説
[Kotlin Koans Properties/Lazy property](https://play.kotlinlang.org/koans/Properties/Lazy%20property/Task.kt)の解説です。
随時本サイトの内容を引用させていただきます。本文とコードを見てみましょう。
> Add a custom getter to make the ‘lazy’ val really
【備忘録】SQLite関連
#はじめに
アプリの内部にデータを保存する場合、通常SQLite3を使用すると思われる。
筆者がSQLite3に感じているメリットはオフラインでも使用できる点だ。
通常のアプリならば、Webに繋がっている前提で話ができるため、
内部的にデータを保存する必要なさそうだ。
それならばWebアプリでいい。
しかし当方のようなネットワーク環境を自由に広げられない場所では
内部データで駆動できるのはとてもありがたい。#SQLiteOpenHelper
SQLiteを操作するには[SQLiteOpenHelper](https://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper)を使用するといいらしい。
アプリ内の各アクティビティで使用することを考えると、外だししてしまった方が賢いような気がするので、こんな感じに書いてみた。“`java:SqlConnectionHelper.java
package sample.pack;import android.content.Context;
MPAndroidChart y軸に単位を表示する方法
MPAndroidChartでy軸に単位を表示する方法を紹介したいと思います。
あと自分が忘れないために記録用として。1.まずは、ValueFormatterクラスを継承したクラス作成し、getFormattedValueメソッドをオーバーライドする。
class MyYAxisValueFormatter : ValueFormatter() {
override fun getFormattedValue(value: Float): String {
//valueはy軸の目盛りの値。最後にString型にして、自分の付けたい単位足す。
return value.toInt().toString() + “冊”
}
}2.chartのaxisLeft.Formatterに先ほど作ったクラスのインスタンスを代入する。
chart.axisLeft.valueFormatter = MyYAxisValueFormatter()
実行すると….
![Scree
#32 Kotlin Koans Properties/Properties 解説
#1 はじめに
Kotlin公式リファレンスのKotlin Koans Properties/Propertiesの解説記事です。
Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。
ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**一度各自で挑戦してから、お目通し頂ければと思います:fist:
#2 セッター・ゲッター
[#6 Kotlin Koans Introduction/Data classes 解説](https://qiita.com/G-o/items/0a35c3ecfecaeb733993)ではセッター・ゲッターが省略できることをお伝えしましたが、
今回は省略しなかった際のコードを以下に記します。“`kotlin:exampleSetterGetter
//セッター・ゲッターを省略したコード。
fun usePersonInfo(){
val p = Person()
p.name = “名前”
p.age = 20
val n = p.name
MPAndroidChart 設定
AndroidMPChartで最初の設定するメソッドの意味を書きます。
今回は棒グラフだけ。//拡大縮小ができないようにする。
chart.setPinchZoom(false)//背景の色を設定しない。
chart.setDrawGridBackground(false)//グラフの影をつけない。
chart.setDrawBarShadow(false)//左側のy軸の設定
//最大値
chart.axisLeft.axisMaximum = 50F
//最小値
chart.axisLeft.axisMinimum = 0F
//y軸のメモリの数。値が多ければ、目盛りが細かくなる。
chart.axisLeft.labelCount = 10//x軸の設定
//x軸の単位(今回は月ごと)
【超初心者向け】Android入門 RecyclerView編
# はじめに
今回はReyclerViewというものを紹介していきます。
初心者の方からするとRecyclerViewとはなんぞや!となってしまいますが、簡単に説明するとリストを表示するためのViewです。# 記事の対象
– Androidアプリ開発初心者
– 前回の記事を読んだ方
– Androidをこよなく愛する方# RecyclerViewとは
[RecyclerViewでリストを作成する](https://developer.android.com/guide/topics/ui/layout/recyclerview?hl=ja)Androidアプリ開発の公式のリファレンス、Android Developersを見ると何やら難しいことが書いてありますね。
簡単な説明は以下のとおり
>大規模なデータセット(または頻繁に変更されるデータ)に基づく要素のスクロール リストをアプリで表示する必要がある場合、このページで説明するように RecyclerView を使用する必要があります。RecyclerViewとはスクロール可能なリストを表示してくれます。
前回のLi
AndroidのWebViewでダークモード対応する方法
アプリのダークモード(ダークテーマ)対応にて、WebViewの中身についてはCSSの prefers-color-scheme メディア特性を使って対応しておくだけでOKだろうと思っていました。しかし、簡単にはいかず、調べてもなかなか解決方法が見つからなかったので書きます。
結論だけ先に書くと androidx.webkit を使い、WebコンテンツのCSSを使うダークモードのON/OFFを設定します。これでAndroid 5(API Level 21)以上でダークモード対応を行うことができます。
※Android的にはダークテーマ・ライトテーマですね。書いた後に気づきました。m(__)m
https://developer.android.com/guide/topics/ui/look-and-feel/darktheme# Webコンテンツのダークモード対応はCSSで行う
Webコンテンツのダークモード対応はCSSの [prefers-color-scheme](https://developer.mozilla.org/ja/docs/Web/CSS/@media/p
【Android】ActionBarでハマったこと
# importが違った
`ActionBar bar = getSupportActionBar();`
で、赤い波線が出てエラーが出てしまっていた。
警告を読めばわかることだが、原因はimportしているActionBarが違っていたでした。* NG
“`java
import android.app.ActionBar;
“`* OK
“`java
import androidx.appcompat.app.ActionBar;
“`# ActionBarの文字の色を変更する方法
“`xml