- 1. GoogleI/O 2022で発表されたFirebaseの新機能をまとめてみた。
- 2. 【Android】KotlinのCountDownTimerを用いた時分秒タイマー
- 3. Solar2DアプリがAndroid端末で動画ストリーミング再生できない
- 4. Ionic6でBLE機器と通信するメモ(今回はM5Stack)
- 5. Kotlin 1.6.0の変更点
- 6. Androidの地磁気センサーを用いて地図をヘディングアップ表示する
- 7. 【Android】altBeacon ライブラリを使って領域監視を行う(v2.19以上対応)
- 8. 専門学生がFlutterを独学で初めて3ヶ月でリリースした話
- 9. ADBで画面録画の方法
- 10. 【Android】覚えておくと便利なExtension:Part1
- 11. kotlin RecyclerViewの並び替え(ドラッグ&ドロップ、スワイプ)の方法
- 12. [Android] ViewModel + DialogFragment で作成するダイアログ実装
- 13. 新しくモジュールを作ったときにbuild.gradleを3行で済まし、カスタマイズをDSLで行う2
- 14. Androidのビュー部品(8)Google/Legacyパレット
- 15. Androidのビュー部品(7)Helperパレット
- 16. Androidのビュー部品(6)Containersパレット
- 17. Androidのビュー部品(5)Layoutsパレット
- 18. Androidのビュー部品(4)Widgetsパレット
- 19. Androidのビュー部品(3)Buttonsパレット
- 20. Androidのビュー部品(2)Textパレット
GoogleI/O 2022で発表されたFirebaseの新機能をまとめてみた。
こんにちは。[virapture株式会社](https://virapture.com)でCEOしながら[ラグナロク株式会社](https://ragna-rock.com)でもCKOとして働いている[もぐめっと](https://mogmet.com)です。
![mogmet.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42234/da66fe2b-213f-2236-da87-e48eb1d70a34.jpeg)
最近[ラグナロクのCKOに就任しました](https://prtimes.jp/main/html/rd/p/000000013.000038912.html)。頑張ります!本日は2022年のGoogleI/Oで発表されたfirebaseの新機能について紹介致します。
結論から言うと、Crashlyticsがやばい進化してます!!!
## Firebase Extension
【Android】KotlinのCountDownTimerを用いた時分秒タイマー
# はじめに
今回はKotlinのライブラリCountDownTimerを用いて、より実用性の高いタイマーを作りました。
時分秒表示やストップボタン、リセットボタンを実装してあります。
参考:[CountDownTimer公式ドキュメント](https://developer.android.com/reference/kotlin/android/os/CountDownTimer)ソースコードは[こちら](https://github.com/noodle2290/NeoCountDownTimer)から
![Screenshot_20220512_015704.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962236/dc639120-966a-d8e3-71cb-c56420bb58e8.png)
# 環境
+ Android Studio Bumblebee | 2021.1.1.patch3
+ targetSDK: 32
# 概要
1. View Bindingの設定
2. レ
Solar2DアプリがAndroid端末で動画ストリーミング再生できない
## media.playVideoがリモートで動作しない
Solar2Dで開発したAndroidアプリで動画ストリーミングができない。
シミュレータとiOS端末では問題なく、Android端末のみ発生する問題。
`media.playVideo`のAPIリファレンスを見ると、ローカル、リモートどちらも再生できると記載があるが、なぜかストリーミング再生ができない。## サンプルソース
サンプルソースをビルドし、Android端末で動かしてみる。
“`main.lua
local onComplete = function( event )
print( “video session ended” )
end
media.playVideo( “https://coronalabs.com/video/bbb/BigBuckBunny_640x360.m4v”, media.RemoteSource, true, onComplete)
“`
## 解決方法
solar2d 3619でビルドした際は問題なく、solar2d 3665でビルドすると発生
バージョンかOSの
Ionic6でBLE機器と通信するメモ(今回はM5Stack)
BLE機器とスマホアプリでBLE通信するメモ
chromeでウェブBLEで動作は確認してきたですが、起動時に自動接続などブラウザベースではできなさそう?と思いアプリを試してみる次第
ウェブBLEでできちゃうなら、意味は薄くなるが。。
詳しく理解していないが、動くものをやってみる系なので、よくないことしてる可能性もあります。。## 概要
下記流れでM5のデータをAPPまで伝える予定
blockly(UART BLE) < - > M5STACK(CORE2) < - > BLE通信 < - > スマホ(SamsungA20) < - > APP(Ionic)
## アプリ構築
### Ionicについて
Ionic FrameworkはオープンソースのUIツールキット
HTML,CSS,JavaScriptなどのウェブ技術を利用してAngular,React,Vueなどのフレームワークを使ってモバイルアプリやデスクトップアプリを構築可能。![スクリーンショット 2022-04-12 155152.png](https://qiita-image-store.s3.ap
Kotlin 1.6.0の変更点
※ソース記事は[こちら](https://kotlinlang.org/docs/whatsnew16.html)
※Kotlin/JSやKotlin/Nativeについては個人的に使っていないので、割愛します。
Kotlin 1.6.0では、新しい言語機能、既存の機能に対する最適化と改善、Kotlin標準ライブラリに対する多くの改善が導入されている。
[リリースブログ投稿](https://blog.jetbrains.com/kotlin/2021/11/kotlin-1-6-0-is-released/)でも、変更点の概要を知ることができる。# 言語
Kotlin 1.6.0では、以前のリリース1.5.30の中でプレビューとして導入されているいくつかの言語機能の安定化がもたらされている。
– enum、sealed、Booleanが主語の網羅的なwhen式の安定化
– 基底型としてのsuspend関数の安定化
– suspend変換の安定化
– アノテーションクラスのインスタンス化の安定化以下のような、様々な型の推論の改善と、クラス型のパラメータについてのアノテーションの
Androidの地磁気センサーを用いて地図をヘディングアップ表示する
# はじめに
Androidの地磁気センサーを用いて地図をヘディングアップ表示するだけの話なのですが、そこら辺のサンプルはちょっと問題があったので改良した話です。
# そこら辺のサンプル
回転行列を元に SensorManager.getOrientation() でオイラー角を得て、その values[0] を使うのが、そこら辺のサンプルで転がってます。
おおむねうまく動くのですが、水平方向に向けたとき(画面が垂直になったとき)にグルングルン回ってしまいます。
また、それより高く掲げると反転してしまいます。
![図解](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104360/0b6d9e46-c2d3-6cb9-e8b8-009a66640cbd.png)
# 改良
回転行列から何とかできるんじゃないかと思って試行錯誤したところ、何とかなりました。
回転行列Rを
“`
/ R[ 0] R[ 1] R[ 2] \
| R[ 3] R[ 4] R[ 5] |
\
【Android】altBeacon ライブラリを使って領域監視を行う(v2.19以上対応)
## 概要
Beacon とは Bluetooth Low Energy (BLE) を発信する端末やそれを利用した位置特定技術のことです。
今回は Android 端末を使い、Beacon の領域監視を行う方法についてご紹介します。ライブラリは altbeacon という Bluetooth ライブラリを使用します。
なお、このライブラリはバージョン3.0で従来使えていた多くのメソッドが使用不可になることが予定されており、2.19の時点でこれらのメソッドが非推奨となっています。
そのため当記事ではバージョン2.19以上に対応した書き方を紹介するとともに、旧バージョンからの移行方法についても合わせて述べたいと思います。## 環境
Android Studio:2021.1.1 Patch 3
kotlin:1.6.20
targetSdkVersion:32
minSdkVersion:27## 領域監視
領域監視とは Beacon 受信端末によって、Beaconの電波領域への自身の出入りを検知する機能です。
今回は altbeacon ライブラリを使って領域監視を
専門学生がFlutterを独学で初めて3ヶ月でリリースした話
# はじめに
先日AppStoreとGooglePlayStoreに入館アプリをリリースしました。
学校の友人とアプリを作ることになったため, その練習としてこちらのアプリを作りました。
自分の通っている専門学校が点呼での出席確認を行なっていたことから
作ってみようとなったのがきっかけです。## 完成像
![出席GIF_AdobeCreativeCloudExpress.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1631114/c1089680-22d3-6f97-d788-9468072c67d4.gif)団体ごとに自作のQRコードをスキャンするだけで入館が完了するアプリです。
[AppleStore シュッ席- 入館管理アプリ](https://apps.apple.com/jp/app/id1620188388)
## GitHub
[secretused/student_attendance_app](https://github.com/secretused/student_at
ADBで画面録画の方法
[MacのPCでADBを使えるようにする方法](https://qiita.com/yuta317/items/5ed5e42710437df0b45b)
[ADBを使ってスクリーンショットを撮ってPCに取り込む方法](https://qiita.com/yuta317/items/edcc72bf6f6af0eb0605)
こちらの記事は書きましたが、画面録画はまだ書いていなかったので、書いておこうと思います。
# 画面録画を保存したいフォルダに移動します。
必要ならターミナルを開いて、cdコマンドを使いフォルダ移動します。
“`
cd 移動したいフォルダのパス
“`※初心者の方へ、移動したいフォルダをターミナルに向けて、ドラッグ&ドロップするとそのフォルダのパスがわかります。
# 画面録画する
下記のコマンドで撮影できます。“`
adb shell screenrecord /sdcard/record.mp4
“`Ctrl + cで録画終了できます。
# PCに取り込む
下記コマンドで取り込むことができます。“`
adb pull /
【Android】覚えておくと便利なExtension:Part1
# はじめに
何かしらの機能で必ず使用するExtensionですが、毎度実装している便利なExtensionを備忘録的に残しておこうと思います。# その1
“`
funT?.notNull(): T = requireNotNull(this)
“`
LiveDataからvalueを取りたい場合に、必ず値が設定される想定であっても返却物がnullableである為、記述にnullチェックが必要だったりしますよね。
そんな場合に活用できる拡張関数です。
こちらを使用すべきかというハンドリングはもちろん必要ですが、各LiveDataの運用がしっかり計画されていれば、とても便利な拡張関数なのでおすすめです。# その2
“`
fun Fragment.getColor(@ColorRes colorRes: Int): Int =
ResourcesCompat.getColor(
resources, colorResId, null,
)
“`
こちらは皆さんご存知のカラーを取得するだけの拡張関数ですね。
こういった
kotlin RecyclerViewの並び替え(ドラッグ&ドロップ、スワイプ)の方法
# 初めに
RecyclerViewのアイテムを長押しでドラッグ、そのままアイテムを移動 または、スワイプ
させる実装です
簡単にではありますが、実装方法を残しておきます# 早速
まず、RecyclerViewが実装されたActivityやFragmentにメンバ変数を定義しますprivate var itemTouchHelper: ItemTouchHelper? = null
同じクラスのonCreate()関数もしくは、onViewCreated()関数内に以下のコードを入力します
// ドラック&ドロップの実装
itemTouchHelper = ItemTouchHelper(
object : ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP or ItemTouchHelper.DOWN,
ItemTouchHelper.ACTION_STATE_IDLE) {
overrid
[Android] ViewModel + DialogFragment で作成するダイアログ実装
# はじめに
業務で DialogFragment を作成しようと思いどうやって実装したら良さそうか考えたのでまとめです。
他にこうやった方が良さそうだよみたいなのがあれば教えていただけると嬉しいです。# コード全文
https://github.com/fumiyatani/FragmentDialogSample# やりたいこと
以下のような実装を目指していきたいと思います。
– DialogFragment は メソッドチェーンを使って表示項目を設定する。
– ViewModel を使って呼び出し元に対してボタンクリック時のイベントを渡す。# 実装
## 1. クリックイベントなどを通知する ViewModel を作成する
まずはダイアログ用の ViewModel を作成します。
今回作成するダイアログはタイトルとメッセージ、ボタンが2つ (OKとキャンセル) のシンプルなダイアログを作成します。
なので以下の3つの実装を持つ ViewModel を作成します。
– ダイアログのボタンクリックイベントをViewModelへ通知するメソッド
– 呼び出し画面で監視する
新しくモジュールを作ったときにbuild.gradleを3行で済まし、カスタマイズをDSLで行う2
1がうまく動かない部分があったのですが、ジワジワLGTMしていただいて、うまく動かないものになっていて申し訳ないので、修正版を用意しました。
https://qiita.com/takahirom/items/50672e079f42c1b7b00c
# 結論とコード
androidComponents.finalizeDslを使って、カスタマイズしよう。
こちらで確認できます。buildSrcとライブラリのbuild.gradleをご確認ください。
https://github.com/takahirom/android-gradle-plugin-common-logic-sample
使う側のコード
“`kotlin
plugins {
id(“my.custom.library”)
}myCustomExtension {
useCompose = true // カスタマイズしたい部分だけ変更する
}
“`使われる側のコード
buildSrc/src/main/kotlin/my.custom.library.gradle.kt
Androidのビュー部品(8)Google/Legacyパレット
# はじめに
Androidアプリの開発のために、パレットとビュー部品についての理解を整理します。
この記事で取り扱う環境は、Android Studio+Windows10です。:::note info
真新しい情報ではありません。体系立てて理解を整理するために、自分が理解しやすい枠組みでまとめるものです。
:::## ひとつ前
https://qiita.com/w2mjra555/items/fea8d7b0c1d3b353a6bc
## 1.レイアウトファイル(activity_main.xml)
デザインビューで見るとこんなかんじです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515319/60db1f75-f50e-6f5d-cd56-4ca234735668.png)## 1.パレットとビュー部品
| No | パレット || No | パレット || No | パレット |
|———–:|:———–|:——
Androidのビュー部品(7)Helperパレット
# はじめに
Androidアプリの開発のために、パレットとビュー部品についての理解を整理します。
この記事で取り扱う環境は、Android Studio+Windows10です。:::note info
真新しい情報ではありません。体系立てて理解を整理するために、自分が理解しやすい枠組みでまとめるものです。
:::## ひとつ前
https://qiita.com/w2mjra555/items/1fe17da75e1d23da3a6c
## ひとつ先
https://qiita.com/w2mjra555/items/ccb049c5565e76c8a9a1
## 1.レイアウトファイル(activity_main.xml)
デザインビューで見るとこんなかんじです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515319/60db1f75-f50e-6f5d-cd56-4ca234735668.png)## 1.パレットとビュー部品
| No | パレ
Androidのビュー部品(6)Containersパレット
# はじめに
Androidアプリの開発のために、パレットとビュー部品についての理解を整理します。
この記事で取り扱う環境は、Android Studio+Windows10です。:::note info
真新しい情報ではありません。体系立てて理解を整理するために、自分が理解しやすい枠組みでまとめるものです。
:::## ひとつ前
https://qiita.com/w2mjra555/items/c905fa364541dc0d6a0d
## ひとつ先
https://qiita.com/w2mjra555/items/fea8d7b0c1d3b353a6bc
## 1.レイアウトファイル(activity_main.xml)
デザインビューで見るとこんなかんじです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515319/60db1f75-f50e-6f5d-cd56-4ca234735668.png)## 1.パレットとビュー部品
| No | パレ
Androidのビュー部品(5)Layoutsパレット
# はじめに
Androidアプリの開発のために、パレットとビュー部品についての理解を整理します。
この記事で取り扱う環境は、Android Studio+Windows10です。:::note info
真新しい情報ではありません。体系立てて理解を整理するために、自分が理解しやすい枠組みでまとめるものです。
:::## ひとつ前
https://qiita.com/w2mjra555/items/47aee6e2b1be2a09fc54
## ひとつ先
https://qiita.com/w2mjra555/items/1fe17da75e1d23da3a6c## 1.レイアウトファイル(activity_main.xml)
デザインビューで見るとこんなかんじです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515319/60db1f75-f50e-6f5d-cd56-4ca234735668.png)## 1.パレットとビュー部品
| No | パレッ
Androidのビュー部品(4)Widgetsパレット
# はじめに
Androidアプリの開発のために、パレットとビュー部品についての理解を整理します。
この記事で取り扱う環境は、Android Studio+Windows10です。:::note info
真新しい情報ではありません。体系立てて理解を整理するために、自分が理解しやすい枠組みでまとめるものです。
:::## ひとつ前
https://qiita.com/w2mjra555/items/e87d10a64d2e32347aa2
## ひとつ先
https://qiita.com/w2mjra555/items/c905fa364541dc0d6a0d
## 1.レイアウトファイル(activity_main.xml)
デザインビューで見るとこんなかんじです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515319/60db1f75-f50e-6f5d-cd56-4ca234735668.png)## 1.パレットとビュー部品
| No | パレ
Androidのビュー部品(3)Buttonsパレット
# はじめに
Androidアプリの開発のために、パレットとビュー部品についての理解を整理します。
この記事で取り扱う環境は、Android Studio+Windows10です。:::note info
真新しい情報ではありません。体系立てて理解を整理するために、自分が理解しやすい枠組みでまとめるものです。
:::## ひとつ前
https://qiita.com/w2mjra555/items/b7caea7ff5d1b506c73f
## ひとつ先
https://qiita.com/w2mjra555/items/47aee6e2b1be2a09fc54## 1.レイアウトファイル(activity_main.xml)
デザインビューで見るとこんなかんじです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515319/60db1f75-f50e-6f5d-cd56-4ca234735668.png)## 1.パレットとビュー部品
| No | パレ
Androidのビュー部品(2)Textパレット
# はじめに
Androidアプリの開発のために、パレットとビュー部品についての理解を整理します。
この記事で取り扱う環境は、Android Studio+Windows10です。:::note info
真新しい情報ではありません。体系立てて理解を整理するために、自分が理解しやすい枠組みでまとめるものです。
:::## ひとつ前
https://qiita.com/w2mjra555/items/0e5bb3997bc1989a5ef5
## ひとつ先
https://qiita.com/w2mjra555/items/e87d10a64d2e32347aa2## 1.レイアウトファイル(activity_main.xml)
デザインビューで見るとこんなかんじです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515319/60db1f75-f50e-6f5d-cd56-4ca234735668.png)## 1.パレットとビュー部品
| No | パレッ