Android関連のことを調べてみた2021年08月31日

Android関連のことを調べてみた2021年08月31日
目次

環境センサーのデータをスマホでモニタリングする(Flutter) – データ蓄積編 –

## 概要
* 新型コロナの影響で環境センシングデバイス、可視化ツールの需要が高まっている。
* 前回「IoT-DX-Kit」を使って、スマホのFlutterアプリ上で気温、湿度を可視化してみた。
* 今回はクラウド(AWS)上にデータ蓄積を行う。
* EC2インスタンスやRDB、S3を使わない方法を試してみた。

AWSのCloudWatchにデータが温湿度データが蓄積されている様子
![スクリーンショット 2021-08-31 9.08.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/701445/a820c19d-532d-8e0d-9b3d-1814ba52f704.png)

## 用意するもの
* IoT-DX-Kit マイコンボード
* DHT22 温湿度センサー
* AWSアカウント

## 環境構築
(1)Flutterをインストール
 https://www.arduino.cc/en/main/software
(2)Flutter Blueをインストール
 https:/

元記事を表示

【Firebase】 Realtime Database 初トライ前に知っておくといいかも?な5つの箇所(スクリプト編)

## 概要
androidアプリ [ツケ台帳](https://play.google.com/store/apps/details?id=com.chelak.tsuke_daicho) を作る際にFirebase realtimedatabaseを初めてさわったのですが、
特に詰まった部分を、備忘録かねて初心者的な目線でメモしてみます (スクリプト編)
アプリの解説、過去の投稿は→[こちら](https://qiita.com/n_ku/items/de1675af32ca53acc562)

Android 12 のスプラッシュ画面 (Splash Screen) に対応する

2021/08/30: 注意: この記事の内容のすべてはまだ検証できていません。対応1~3 のすべてを動作確認はできていません。引き続き動作確認を進めて、記事の内容に間違いがあれば随時更新します。記事の内容に間違いがあれば Twitter [@irgaly](https://twitter.com/irgaly) までご連絡ください。
この記事で解説している AndroidX Splash Screen Library のバージョンは 1.0.0-alpha01 です。

Android 12 からアプリ起動時にスプラッシュ画面 (Splash Screen) が表示されるようになりました。

また、アプリ独自のスプラッシュ画面を実装している場合に、targetSdk = 31 (Androud 12) 以上にすると Lint がスプラッシュ画面と思われる Activity について、以下の Warning を表示するようになります。

> The application should not provide its own launch screen

![splasha

元記事を表示

Pepper SDK入門(30) 値札感覚で外してはいけないテキスト音声合成のタグの話

#はじめに
今回はタイトルにもある通り、テキスト音声合成の話です。
テキスト音声合成、つまりText To Speechエンジンの使用には、特殊なタグが必要になります!つけっぱなしにしないといけないタイプのタグです?

#テキスト音声合成とは
通常、発話のイントネーションや間の調整などは漢字やひらがな、カタカナの組み合わせで行います。
その書き方については公式のページがあるので[こちら](https://doc.robot.softbank.jp/pepper_biz/manual/index/topics_detail13/id=256)を参照してください。
それとは別の特殊な書き方である、中間言語について紹介することが本記事の狙いです。
中間言語では、Pepperの発話内容をカタカナで表記します。以下で、発話調整に使用可能なタグとその機能を見ていきましょう。
まずは基本となる、文頭記号と文末記号のタグをまとめます↓
・ \…文の先頭
・ \…ふつうの文末
・ \…疑問形の文末
・ \…上昇調の文末
・ \…名詞や代名詞で終わる文末
・ \

元記事を表示

Jetpack ComposeのMutableStateが変更されてからdoCompose()までの流れ

なんどもフィールドに入ったり他へ保存を繰り返すので結構しんどいコードリーディングになります。

以下の書き換えが走ったときの挙動を追います。

“`kotlin
@Composable
fun Content() {
var state by remember { mutableStateOf(true) }
LaunchedEffect(Unit) {
delay(12000)
state = false
}
if (state) {
Node1()
}
Node2()
}
“`

今回わかったこと

Recomposer.runRecomposeAndApplyChanges()がだいたいすべてやっている。

runRecomposeAndApplyChanges()が行っていることは1〜4になると思われる。 **0〜2までを今回は読んでいる**。

0: MutableStateが非同期で変更されて、Recomposer.snapshotInvalidationsとい

元記事を表示

環境センサーのデータをスマホでモニタリングする(Flutter) – データ表示編 –

## 概要
* 新型コロナの影響で環境センシングデバイス、可視化ツールの需要が高まっている。
* まず弊社オリジナルのマイコンボードの「IoT-DX-Kit」を使って、気温、湿度を取得してみる。
* スマートフォンにBluetooth経由で温湿度のデータを送り可視化してみることにした。
* スマートフォンアプリの開発環境は、Flutterを採用しiOS/Android両方の動作を確認してみる
IoT-DX-Kit 紹介ページ

IoT-DX-Kit

iPhone上で動作している様子(湿度の取得に失敗し検証中)
![スクリーンショット 2021-08-29 11.37.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/701445/919787b6-c6cb-b15a-2cc1-bf04b0655b83.png)

Android上で動作している様子(温湿度両方取得成功)
![スクリーンショット 2021-08-29 11.39.08.png](htt

元記事を表示

Android Studioの手動アンインストール

# はじめに
Windows環境でAndroid Studioをコントロールパネルからアンインストールしようとしたが、**uninstall.exeがありません**と表示されたので、手動でアンインストールしたときのメモ

# 手順
1. インストールしたユーザーのホームフォルダに移動し、.android,.m2,.grandleフォルダを削除する
1. [user]>[AppData]>[Local]>[Google]のフォルダに移動し、Android Studioに関連するフォルダを削除する
1. [user]>[AppData]>[Roaming]>[Google]に移動し、Android Studioに関連するフォルダーを削除する。
1. [Program files]に移動し、AndoridStudioのフォルダを削除する
1. Windows+Rを押して、`regedit`と入力し、レジストリエディターを開き、[HKEY_LOCAL_MACHINE]>[SOFTWARE]を開き、AndroidStudioを削除する

元記事を表示

Intent / intent-filter のCategoryとはなんなのか?

Androidを扱う上で基本中の基本であるIntentですが、様々なパラメータを利用します、Action / Category / Extra / Flag / Data(Uri) とありますが、Categoryってあまり意味を意識して使わないのではないでしょうか?
ここでは、Categoryってなんなのかを説明してみようと思います。

# intent-filterとintent

Categoryがどのように扱われるのかを調べるため、サンプルアプリを作ります。

アプリA(com.android.myapplication2):単に起動されるアプリです。検証用にhogeというschemeを受け取れるintent-filterを設定しておきます。

“`xml:AndroidManifest.xml




“`

アプリB(com.andr

元記事を表示

【Androidアプリ開発】Kotlin初心者向けの超おすすめUdemy講座6選をまとめた

アンドロイドのアプリ開発をしたい初心者向けのkotlinのUdemy講座のまとめです。
なお、基本的にJavaの経験はなくてもOKです。

※ユーデミーは普段数万円する講座がセール時に数千円に値引きされていることがあります。
従ってセール時の購入がおすすめです。

## はじめての Kotlin【Java 知らなくてOK!丁寧な解説で Android に必要な Kotlin の基本を学習】
おすすめ度:★★★★★
・[はじめての Kotlin【Java 知らなくてOK!丁寧な解説で Android に必要な Kotlin の基本を学習】](https://px.a8.net/svt/ejp?a8mat=3BBPJR+AVRCOQ+3L4M+BW8O2&a8ejpredirect=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fkotlin-beginner%2F)
### この講座で学べる内容
・Kotlin の基本的な文法や特徴について学びます。
・Android 開発に取り組むために必要なKotlin の基本の知識が身に付きます。
・Java の前提知

元記事を表示

【Android Kotlin】Calendarクラスを使用して今日の曜日を取得しよう!

## 1. 今日の曜日を取得する
“`MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

// Calendarクラスをインスタンス化する.
val calendar: Calendar = Calendar.getInstance()
// 今日の曜日を取得する.
val day: Int = calendar.get(Calendar.DAY_OF_WEEK)

}
}
“`

## 2. 取得した今日の曜日をTextViewで表示する
“`MainActivity.kt
class MainActivity : AppCompatActivity(

元記事を表示

Flutter未経験者が1か月で個人アプリリリースした件

##Flutter始める前の知識
Flutterをやる前にwebをやってました。
(html/css,javascript,phpなどを3年ほど)
ただJavaの知識などは参考書レベルでした。
##1日の勉強量
大体10時間以上、土日関係なくFlutter関連に費やしました。
10×30=300時間くらいがFlutter歴になります。
##リリースしたアプリStock
今回リリースしたアプリはこちらです。
![stock-100.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1844232/3e81b10b-fd7b-1781-b1d9-5bef20ed0e3f.jpeg)
https://play.google.com/store/apps/details?id=com.donack.org.stock
実はせっかくFlutterで開発したにもかかわらず、今回はandroidのみです。
そうです、開発に使えるPCがandroidしかありませんでした汗
##UI
ログイン画面

元記事を表示

Composable関数のバイトコードを読むメモ

decomposerでJavaに戻して読んでいきます。
https://github.com/takahirom/decomposer

## 対象コード

“`kotlin
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
JetpackcomposestabilitysamplesTheme {
// A surface container using the ‘background’ color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = Materi

元記事を表示

TimePickerDialog

##はじめに

本日はTimePickerDialogについて話していきたいと思います

##環境

⚫︎OS : macOS Catalina 10.15.7
⚫︎Androidsutdio : 4.2.1
⚫︎Kotlin : 1.5.21
⚫︎Gradle : 7.0.2

##TimePickerDialogとは

TimePickerDialogは、時刻の入力に優れたGUIコンポーネントのこと。

[めちゃくちゃ参考にさせて頂きました](https://qiita.com/fumiyakawauso/items/dbb0517144f2a4400e6a)

##実装
“`Kotlin


AndroidでDiscord Botを動かす

家にAndroid 5とかいう化石を搭載しているタブレットが2台ある。
片方はイヤホンジャックがタヒんでてYouTube専用機としても使いづらい。
なにか有効活用できないか。探した結果、Discord Botにたどり着いた。

#動作環境
* Android 5
* UserLand 2.7.2
* Python 3.6.9
* Discord.py 1.7.3

# 本題
**この記事ではBotアカウントの取得方法やBotのコードの書き方は書きません。環境構築の方法を超適当に書きます。**
てことで、AndroidにDiscord Botを構築しよう!
## 1. UserLandのインストール
これが無いとなにも始まりまらない。
ちなみに何故Termuxじゃないのかだが、TermuxはAndroid 5&6のサポートが打ち切られてしまったのと、Discord.pyが入れれなかった。
F-droidかGoogle Play([https://play.google.com/store/apps/details?id=tech.ula](https://play.google.com/

元記事を表示

Jetpack Composeの`@Stable`や`@Immutable`のバイトコード上の挙動を確かめてみる

どういうときにComposable関数がキャッシュされる?されない?ってすごく重要だと思っていますがみなさん理解されていますか?

Compose 1.0.1で行っています。

これらのアノテーションについてはこちらで紹介しています。

https://qiita.com/takahirom/items/cc3f8cc6032ca9c28e01#stable-type

また以下のドキュメントで言及されています

https://developer.android.com/jetpack/compose/lifecycle?hl=en#skipping

実際どうなるのみたいなところが気になったので、少し気になるパターンでまとめてみました。

キャッシュされているときはでコンパイルすると以下のようなskipのコードが入ります。
このGradle Pluginを使うと以下のようなJavaコードを簡単に見ることができます。
https://github.com/takahirom/decomposer

“`java
if (($dirty & 11 ^ 2) == 0 &

元記事を表示

現役AndroidエンジニアがAndroid Kotlin Fundamentalsコードラボに挑戦!その3

## 前回
https://qiita.com/hayashidamoka/items/f527b3fc9c7b854ce2d3

## Lesson 3: Navigation

## 03.1: Create a fragment
https://developer.android.com/codelabs/kotlin-android-training-create-and-add-fragment?index=..%2F..android-kotlin-fundamentals#0

### 内容
– クイズアプリの作成
– フラグメントの追加

      

元記事を表示

標準の戻るボタンが押されたときにandroidのホーム画面に遷移

##標準の戻るボタンが押されたときにandroidのホーム画面に遷移
###サンプルコード
“`kotlin:back_to_home
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
return if (keyCode == KeyEvent.KEYCODE_BACK) {
val homeIntent = Intent(Intent.ACTION_MAIN)
homeIntent.addCategory(CATEGORY_HOME)
homeIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
this@自分のクラスの名前.startActivity(homeIntent)
super.onKeyDown(keyCode, event)
} else {
super.onKeyDo

元記事を表示

[Android]Android Gradle Plugin 7+へ更新後にビルドしたアプリを起動して ClassNotFoundException が発生した時の対処法

業務で開発しているプロジェクトで Android Gradle Plugin を 7.0.1 に更新したのですが、ビルドしてアプリを起動するとアプリが強制終了してしまいました。

その際に以下のようなログ(一部抜粋)が出力されていました。

“`
E/LoadedApk: Unable to instantiate appComponentFactory
java.lang.ClassNotFoundException: Didn’t find class “androidx.core.app.CoreComponentFactory” on path: DexPathList[…]
“`

Google Issue Tracker で検索してみたところ、どうやら [こちら](https://issuetracker.google.com/issues/196406764) が該当の問題のようでした。

どうやら R8 の問題のようで https://issuetracker.google.com/issues/196406764#comment22 のコメントにあるよ

元記事を表示

ディープリンクの種類を調べてみた

モバイルアプリ開発をしているとディープリンクを利用する機会が多いですが、種類やそれぞれの違いをちゃんと認識していなかったのでまとめました。

# ディープリンク(Deep Link)

デフォルトディープリンクと呼ばれることもある。

アプリがインストール済み アプリのエンドポイントに遷移する。
アプリがインストールされていない エラーメッセージ

# ディファードディープリンク(Deferred Deep Link)

コンディショナルディープリンクとも呼ばれる。

アプリがインストール済み アプリのエンドポイントに遷移する。
アプリがインストールされていない App Store, Play Storeに遷移する。

#

元記事を表示

[UE4] Android Build-tool 31.0.0 でパッケージが出来ない件

公式ドキュメント通りAndroid向けのパッケージ作成のためのセットアップを行って、いざビルドするとこんな感じのエラーがでることがあります。

“`c++
UATHelper: パッケージ化 (Android (ASTC)): Build-tool 31.0.0 is missing DX at C:\Users\wanko\AppData\Local\Android\Sdk\build-tools\31.0.0\dx.bat
UATHelper: パッケージ化 (Android (ASTC)):
UATHelper: パッケージ化 (Android (ASTC)): FAILURE: Build failed with an exception.
UATHelper: パッケージ化 (Android (ASTC)):
UATHelper: パッケージ化 (Android (ASTC)): * What went wrong:
UATHelper: パッケージ化 (Android (ASTC)): Could not determine the depen

元記事を表示

OTHERカテゴリの最新記事