- 1. Android で指定した時間後に処理を行う方法についての話
- 2. プライバシーポリシー Bulldog Market
- 3. コルーチンとチャネル入門#1
- 4. Android端末にてTwitterクライアントでアカウントを追加したいがエラーが出て進めない
- 5. 【Android】バックグラウンド(フォアグラウンド サービス)とマルチスレッド(Thread)の動きを簡単な事例で実験的に調査
- 6. Android で Ktor Client をサクッと使う
- 7. 【Android】独自のViewをスワイプする
- 8. MVVM+hilt+LiveDataを使ったシンプルなアプリ(java)
- 9. 【Jetpack Compose】 Remember “remember”
- 10. KotlinでTODOアプリをつくる~その2~
- 11. KotlinでTODOアプリをつくる~その1~
- 12. 簡単?UnityもAndroid StudioのlogcatもインストールしないUnityアプリのデバック方法!
- 13. Android 通知が表示されない問題
- 14. Androidの目標設定
- 15. 「Android絵文字ポリシー」に開発者が対応する事
- 16. 【Flutter3.0】キーボードタイプをスクショ付きで改めて。
- 17. TextFieldで数字,英語,記号だけを入力させたい時
- 18. [Kotlin]data classにおけるコンストラクタとイニシャライザを使い分ける
- 19. LazyRowでSwipe Refresh
- 20. 【Android】Android12のスプラッシュスクリーン後にツールバーが二重表示される問題
Android で指定した時間後に処理を行う方法についての話
## はじめに
Android で指定された時間後に処理を実行する方法についての備忘録まとめとなります。
「10 秒後に処理を実行したい!」「1 分間隔で繰り返し実行したい。」などの時に実装します。> Android Developers Reference
– [Handler](https://developer.android.com/reference/android/os/Handler)
## 10 秒後に処理を実行する
“`Java
// Java
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// do something
}
}, 10 * 1000);
“`“`Kotlin
// Kotlin
val handler = Handler(Looper.getMainLooper())
handler.postDelayed({
// do som
プライバシーポリシー Bulldog Market
# プライバシーポリシー
#### 個人情報保護方針Bulldog Market(以下「当グループ」)は、以下のとおり個人情報保護方針を定め、個人情報保護の仕組みを構築し、グループメンバー全員に個人情報保護の重要性の認識と取組みを徹底させることにより、個人情報の保護を推進致します。
#### __個人情報の管理__
当グループは、お客さまの個人情報を正確かつ最新の状態に保ち、個人情報への不正アクセス・紛失・破損・改ざん・漏洩などを防止するため、セキュリティシステムの維持・管理体制の整備・グループメンバーの教育の徹底等の必要な措置を講じ、安全対策を実施し個人情報の厳重な管理を行ないます。
#### __個人情報の利用目的__
お客さまからお預かりした個人情報は、以下の利用目的のために利用いたします。
(1) 広告配信のため
(2) パフォーマンス分析のため
(3) アプリケーション改善のため
(4) ユーザーへのサポート・不具合対応のため#### __個人情報の第三者への開示・提供の禁止__
当グループは、お客さまよりお預かりした個人情報を適切に
コルーチンとチャネル入門#1
※ソース記事は[こちら](https://play.kotlinlang.org/hands-on/Introduction%20to%20Coroutines%20and%20Channels/01_Introduction)
# 導入
このハンズオンチュートリアルでは、コルーチンの概要に慣れ親しむ予定である。コルーチンにより、非同期でノンブロッキングなふるまいのあらゆるメリットが、可読性を損なわずに提供される。コルーチンを使って、下層にあるスレッドをブロッキングせず、コールバックを使わずにネットワーク要求を実行する方法を見ていく。
次のことを学習する。
– ネットワーク要求を実行するために、suspend関数を使う理由と方法
– コルーチンを使って、並列に要求を送る方法
– チャネルを使って、異なるコルーチンの間で情報を共有する方法コルーチンが他の既存のソリューションとどのように異なるのか、についても議論していく。
基本的なKotlinの文法について精通していることが要求されるが、コルーチンの事前知識は必要ではない。
ネットワーク要求のため、コルーチンをサポートする、[Retr
Android端末にてTwitterクライアントでアカウントを追加したいがエラーが出て進めない
# エラーが発現した環境
– Android 11
– AQUOS zero2 SHV47## 問題点
MarinDeckやTalonなどのTwitterクライアントで,アカウントを追加して切替えて運用したい。
ところがエラーが出て先に進めない。なんでだ?## エラー内容
以下のエラーが発現する。困ったなぁ。
全然意味がわからないよ。“`
net::ERR_HTTP_RESPONSE_CODE_FAILURE
“`## 解決方法
**Wi-Fi接続している場合は4Gやその他のネットワークに切り替える。**その逆もあると思われる。Androidであればおそらくは通知バーの丸いヤツにあるはずですね。そうして再度ログイン試行をしてください。
きっと上手くいくと思います。
### 以上
はじめての投稿です。
…お恥ずかしい。不備があったら教えて下さい。お願いいたします。
【Android】バックグラウンド(フォアグラウンド サービス)とマルチスレッド(Thread)の動きを簡単な事例で実験的に調査
# はじめに
日頃運転する自分の車の燃費を詳細に調べたくて「OBD2」とAndroidスマホを使ったアプリを探していたら自作も出来そうなので挑戦することにしました。簡単に説明すると、「OBD2」アダプタとAndroidスマホをBluetooth接続し、定期的に「OBD2」のアダプタへ問い合わせ、応答を処理(ループ処理)して車の内部情報を数値に変換する、という構成になります。
色々試していく中で、車の燃費を測定するには、ある程度の時間、データを取得しなければいけませんし、そうは言っても、取得開始/終了は画面から操作したいよね、とか、ほかのアプリ立ち上げたら取得が止まってしまう?とか疑問も出てきて調べていくうちに、”マルチスレッド”とか、”バックグラウンド”というワードが出てきました。調べた結果をもとに簡単なソースコードで試した結果、
1. メインスレッドでループ処理を実行すると、アプリ画面の終了ボタン処理はループ処理の後になる(中断できない)
1. マルチスレッド(Thread)でループ処理を実施すると、アプリ画面の終了ボタン処理でループ処理を中断できるが、マルチタスクメニュー(
Android で Ktor Client をサクッと使う
どちらかというと自分メモ
## サクッとKtorクライアント
“`HttpClient.kt
HttpClient(Android) {
install(Logging) {
logger = Logger.DEFAULT
level = LogLevel.HEADERS
}
install(JsonFeature) {
serializer = KotlinxSerializer()
}
install(HttpTimeout) {
requestTimeoutMillis = 1000
socketTimeoutMillis = 2000
connectTimeoutMillis = 2000
}
}
“`“`ServiceImpl.kt
// #getPost : List
return try {
client.get(END_POINT)
// clien
【Android】独自のViewをスワイプする
続き。。。
[前](https://qiita.com/KimKo/items/8e5297977e77790870c4)、つくった陰陽玉Viewを動かします。
## 方法
円の中心座標を変数で持っているので、それをタップ座標に置き換えて描画しなおすだけです。1. onTouchEventでタップ時の座標を取得 円の中心座標を上書き
2. oNDraw() で再描画### 1 ontouchEvent
“` kotin.kt
override fun onTouchEvent(event: MotionEvent): Boolean {
when (event.action) {
MotionEvent.ACTION_MOVE -> {
baseX = event.x
baseY = event.y
}
}
invalidate()
return true
}
“`見たまんまです
MVVM+hilt+LiveDataを使ったシンプルなアプリ(java)
# 概要
– ボタンを押すとAとBが切り替わるだけのアプリです.
– MVVM+hilt+LiveDataを使っています。
– Model側の値更新を元にViewを更新します。
– javaです。
# 構成
– MainActivity : 画面描画とボタン押下時のイベント定義等
– SampleDataModel : testValueを管理するだけのクラス
– SampleDataViewModel : シンプルなviewModel
※SampleDataModelのtestValueが真ならばA, 偽ならばBを画面に表示することを想定しています“`mermaid
flowchart
SampleDataViewModel — Inject –> MainActivity
Sa
【Jetpack Compose】 Remember “remember”
## 目的
JetPack Composeで状態を保存するために用意されている”remember”ですが、これをRememberできない僕の脳のデバッグのために記事を書きます## この記事でわかること
* rememberとは
* remember(ステートフル)のメリットさん## 知っておいてほしいこと
* [コンポーザブルのライフサイクル](https://developer.android.com/jetpack/compose/lifecycle?hl=ja#lifecycle-overview)
* **初回コンポーズ**によってコンポジションが作成されること
* **コンポジション**とはUIが記述された箱のようなものであること
* **再コンポーズ**でコンポーザブル関数を再度起動し、コンポジションを更新すること
* ステートフル、ステートレスについて
* ステートフル: 状態を**保持している**という制約
* ステートレス: 状態を**保持しない**という制約## remember とは
[コンポーザブル内の状態](https://d
KotlinでTODOアプリをつくる~その2~
引き続き、Android向けTODOアプリ作成についてまとめます。
前回の記事は[KotlinでTODOアプリをつくる~その1~](https://qiita.com/satona-oinuma/items/dfd9bebf9c2e00247c49)をご覧ください。## その2で扱う内容
その2では画面遷移周りを扱います。
– 画面遷移:Fragment以下はその2では扱わず、続編で扱う予定です。
– リストの表示方法:RecyclerView
– データやデータの保存に関すること:内部ファイルへの保存を予定### 用意するクラス
今回は新たに以下の2つのクラスを用意します。
– CategoryAdapter.kt
– ItemAdapter.kt
どちらもRecyclerViewのAdapterを継承したクラスです。
内容についてはその3でまとめます。また、前回に引き続き、以下の2つのクラス、2つのレイアウトファイルを使用します。
– MainActivity:Activityクラスを継承したクラス
– MainFragment:Fragmentクラスを継承したク
KotlinでTODOアプリをつくる~その1~
複数回に渡り、Android向けのTODOアプリ作成についてまとめます。
#### 使用環境
– AndroidStudio:Android Studio Bumblebee | 2021.1.1 Patch 2
– Koltin:1.6.21
– 確認端末:Android12(Emulator)## つくるもの
Android向けのTODOアプリです。画面は以下の2つを用意し、カテゴリを選択することでタスク一覧画面に遷移するようにします。
– カテゴリ一覧画面
– タスク一覧画面アプリ機能として以下を実装予定です。
– カテゴリの登録、削除ができる
– カテゴリごとにタスクを登録、削除できる
– タスク完了時にチェックマークがつけられる#### イメージ

[ここ](https://developer.android.com/studio/releases/platform-tools?hl=ja)からダウンロードしてください
### 2. platform-toolsの展開
1. zipファイルを展開します。
2. 展開したzipファイルを潜っていくとadb.exeがあります。
3. adb.exe のあるフォルダーで ctrl+l でバーを選択した後、cmd と入力しEnterを押すことで、adb.exeのあるフォルダーをコマンドプロンプトで開きます
### 3. Unityのアプリの起動!
1. usbデバックにした後で、スマホとPCをつなぎます。
2. 目的のAndroidアプリを起動します
### 4. adbでlogcat開始
1. コマンドプロンプトで
“`
C:\Users\?\platform-tools_r33.0.1-windows\platform-tool
Android 通知が表示されない問題
テストがてらに主に公式リファレンスの内容を参考に通知表示を実装してみました。
https://developer.android.com/training/notify-user/build-notification“`kotlin
val notificationId = 123
val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManagerval name = “name”
val descriptionText = “description”
val channel = NotificationChannel(“test”, name, NotificationManager.IMPORTANCE_HIGH).apply {
description = descriptionText
}
notificationManager
Androidの目標設定
iOSエンジニアなのですが、Androidの目標を作成してみました。
スキルアップ
a.Androidで即時提案できるスキルを身につける(1週当たり6時間自分に投資する)
a-1.コントロール配置に関するスキル … 5週間 >>> 8月の1週目まで
a-1-1.Viewの画面サイズに応じたコントロールの自動配置(xml)
a-1-1-1.制約配置(ConstraintLayout) … 3h
a-1-1-2.列配置(LinearLayout)の入れ子 … 6h
a-1-1-3.Viewの状態保持(Fragment) … 6h
a-1-1-4.ActivityとFragment間のデータ受け渡し … 3h
a-1-2.Viewの再利用機構(RecyclerView) … 6h
a-1-3.セルの部分更新 … 6ha-2.画面遷移に関するスキル … 2.5週間 >>> 10月の1週目まで
a-2-1.通常の画面遷移(Intent) … 3h
a-2-2.通常の画面遷移(Intent)時のデータ受け渡し … 3h
a-2-3.Navigation画面遷移 … 3h
a-2-4.N
「Android絵文字ポリシー」に開発者が対応する事
# この記事は
2021年10月の Google Play ポリシーアップデートにより「Android絵文字ポリシー」が追加されました。追加されたポリシーに対応するためにAndroidアプリで開発者が実装しなければならないことがいくつかあるので記事にしてみます。
# 「Android絵文字ポリシー」について簡単に解説
Googleはこれまで絵文字の更新をOSのアップデートにより新しい絵文字を追加してきました。最新のOSを搭載する高価格帯の端末ユーザーであれば、最新の絵文字を利用できていたが、それ以外のユーザーは最新の絵文字が送られてきても表示できず豆腐と呼ばれる小さな四角い箱(☐)や、間違ってレンダリングされた絵文字シーケンスとして表示される利用できない絵文字が生じていました。
今回の「Android 絵文字ポリシー」によりOS依存であった絵文字の更新が対応アプリの更新で絵文字をアップデートするようになりました。
最新のOSを搭載する高価格帯の端末ユーザーでなくても最新の絵文字を手に入れ利用できるようになったのです。簡単に言うと、
**アプリ側で絵文字をサポートしてあ
【Flutter3.0】キーボードタイプをスクショ付きで改めて。
# はじめに
Flutterも3になりましたので、改めてスクショ付きで種類をまとめようと思いました。# 環境
Flutter3.0
Xcode 13.3.1# ドキュメント
https://api.flutter.dev/flutter/services/TextInputType-class.html## TextInputType.text
“`
TextField(
onChanged: onChange,
keyboardType: TextInputType.text,
),
“`
デフォルトのキーボード。
未指定だとこちらを表示します。## TextInputType.multiline
“`
TextField(
onChanged: onChange,
maxLines
TextFieldで数字,英語,記号だけを入力させたい時
# 内容
アカウント登録などのフォームを制作する際に、メールアドレス、パスワードなどの
TextFieldに、入力できる値を制限したい場面を想定しています。# 方法
### 数字のみ
数字のみは**inputFormatters**で用意されていて、以下の記述を足すことで簡単に設定ができます。
“`Dart
TextField(
keyboardType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly]
)
“`### 英字,記号など
**FilteringTextInputFormatter.allow()** : 一致するものを許可
**FilteringTextInputFormatter.deny()** : 一致しないものを許可“`Dart
inputFormatters: [
FilteringTextInputFormatter.allow(
RegExp(r'[a-zA-Z0-9@_-.]’)),
],
“
[Kotlin]data classにおけるコンストラクタとイニシャライザを使い分ける
kotlinのdata classで定義するプロパティと、コンストラクタ引数を変えたい場面がある場合に、コンストラクタとイニシャライザを使い分けて実現する方法について記載していきたいと思います。
ちょっと何を言っているか分からないですが以下の例を見てもらえると分かると思います。
# [おさらい] data classとは
data classを作成する場合、コンストラクタにプロパティを定義する事でパラメータへのゲッターやセッターなどを自動で定義してくれました。
“`Addition.kt
data class Addition(val paramA: Int, val paramB: Int, val result: Int)
“`
paramAとparamBの足し算の結果をresultとして持ちたいので、このクラスをインスタンス化しようとすると
“`
val addition = Addition(85, 23, 108)
val resStr = addition.result.toString() // resStrは108
“`
となります。
ですが、これだと結果も自分
LazyRowでSwipe Refresh
LazyRowでSwipe refreshを実装した際のメモです。
バージョンは以下
Jetpack compose 1.1.1
accompanist Swipe Refresh 0.23.1# Swipe Refresh for Jetpack Compose
[accompanist](https://google.github.io/accompanist/swiperefresh/)にはJetpack composeでSwipe Refreshを実装するためのcomposableが用意されています。“`SwipeRefresh.kt
@Composable
fun SwipeRefresh(
state: SwipeRefreshState,
onRefresh: () -> Unit,
modifier: Modifier = Modifier,
swipeEnabled: Boolean = true,
refreshTriggerDistance: Dp = 80.dp,
indicatorAlignment
【Android】Android12のスプラッシュスクリーン後にツールバーが二重表示される問題
### 問題
Android12からスプラッシュスクリーンが標準実装されましたが、適当に対応したところAndroid12でのみツールバーが二重に表示されてしまったため解決策を残しておきます。
そもそも二重に表示されること自体殆ど無いと思いますが、テーマをActivity内からSetTheme()で切り替えたりしてる場合にこの問題が発生するようです。### 解決策
“`kotlin:StartActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
// val splashScreen = installSplashScreen() <-これを消すだけ setTheme(R.style.MainTheme)// ここでテーマを切り替える(今回は固定) super.onCreate(savedInstanceState) val toolbar = findViewById(R.id.toolbar)