- 1. 初めての.NET MAUI (Androidアプリ編)
- 2. Android で指定した時間後に処理を行う方法についての話
- 3. プライバシーポリシー Bulldog Market
- 4. コルーチンとチャネル入門#1
- 5. Android端末にてTwitterクライアントでアカウントを追加したいがエラーが出て進めない
- 6. 【Android】バックグラウンド(フォアグラウンド サービス)とマルチスレッド(Thread)の動きを簡単な事例で実験的に調査
- 7. Android で Ktor Client をサクッと使う
- 8. 【Android】独自のViewをスワイプする
- 9. MVVM+hilt+LiveDataを使ったシンプルなアプリ(java)
- 10. 【Jetpack Compose】 Remember “remember”
- 11. KotlinでTODOアプリをつくる~その2~
- 12. KotlinでTODOアプリをつくる~その1~
- 13. 簡単?UnityもAndroid StudioのlogcatもインストールしないUnityアプリのデバック方法!
- 14. Android 通知が表示されない問題
- 15. Androidの目標設定
- 16. 「Android絵文字ポリシー」に開発者が対応する事
- 17. 【Flutter3.0】キーボードタイプをスクショ付きで改めて。
- 18. TextFieldで数字,英語,記号だけを入力させたい時
- 19. [Kotlin]data classにおけるコンストラクタとイニシャライザを使い分ける
- 20. LazyRowでSwipe Refresh
初めての.NET MAUI (Androidアプリ編)
# MAUIでWindowsアプリのHallo World!
[前回](https://qiita.com/kashin777/items/eae43a555dc28867926f)、Visual Studio 2022 17.3 (Preview)時点のMAUIで、WindowsアプリのHallo Worldを試しました。https://qiita.com/kashin777/items/eae43a555dc28867926f
# MAUIでAndroidアプリのHallo World!
今回は、Androidアプリを実行します。## ビルド対象にAndroidアプリを追加する
前回、Windowsアプリだけを対象にしたので、Androidアプリを追加します。
これで、WindowsアプリとAndroidアプリを同時に開発できます。.csprojファイルを編集します。
“`XML
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