- 1. [Kotlin][Android] object と Serializable
- 2. Codelab から ViewModel と LiveData の Unit テストを学ぶ1
- 3. Androidアプリを開発する #4(DBの準備)
- 4. 【Android】特定のアプリがインストール済みかチェックする【カスタムURLスキーム】
- 5. Androidのgradle versionを上げたら起動しなくなった
- 6. コルーチンとチャネル入門#2
- 7. FlutterにてAndroid SDKの”Service”で1秒ごとにUIに反映させる方法について考える
- 8. MLKitの一次元バーコード読み取り
- 9. アプリでGoogleAnalyticsを設定する時の4つの勘所
- 10. 【Android】個人的によく使うアノテーションについてのメモ part2
- 11. Android12対応でexported調整後でも怒られてしまう場合の対応方法
- 12. Jetpack Compose 勉強記録その1
- 13. 【Android】TextInputEditTextでAdjustResizeやAdjustPanが効かない
- 14. 初めての.NET MAUI (Androidアプリ編)
- 15. Android で指定した時間後に処理を行う方法についての話
- 16. コルーチンとチャネル入門#1
- 17. Android端末にてTwitterクライアントでアカウントを追加したいがエラーが出て進めない
- 18. 【Android】バックグラウンド(フォアグラウンド サービス)とマルチスレッド(Thread)の動きを簡単な事例で実験的に調査
- 19. Android で Ktor Client をサクッと使う
- 20. 【Android】独自のViewをスワイプする
[Kotlin][Android] object と Serializable
## 状況説明
Android アプリ開発をしていて、ちょっと困った状況になりました。
すぐに解決したんですが、こんなことがあるのね、と勉強になったのでこれを書いています。その「ちょっと困ったこと」は Activity 間であるデータをやり取りしようとしていて起こりました。
### 渡すデータ
Activity 間でデータの受け渡しをするために、次のような sealed class を作成したとします。
(実際のコードとは異なります)“`kotlin
sealed class Answer : Serializable {
object Yes : Answer()
object No : Answer()
data class Other(val text: String) : Answer()
}
“`### 呼び出し側
`Answer` クラスは `Serializable` を実装しているので、 Intent の putExtra() に渡せます。
今回は仮に `Yes` を渡すことにします。“`kotlin
val int
Codelab から ViewModel と LiveData の Unit テストを学ぶ1
# はじめに
あまりテストを書いたことがないなぁということで休み中に Unit テストの Codelab をやってみました。
実際に手を動かしてみて自分的に学びになった箇所や途中で詰まった箇所をまとめたいと思います。## Advanced Android in Kotlin 05.1:Testing Basics
https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-basics?hl=ja#0以下特に気になったページや詰まった部分を抜粋してます。
### Page6
– `Hamcrest` を導入する場合は[こちら](https://mvnrepository.com/artifact/org.hamcrest/hamcrest-all) を参照する
– 今回は2022/05/29時点で最新の `1.3` を導入
– Hamcrest を使う際に `assertThat` と `Matcher(is)` を使おうとしたらうまく import に引っ掛
Androidアプリを開発する #4(DBの準備)
# はじめに
今回はDB関連の部分を進めていきます.前回の記事はこちらからhttps://qiita.com/sekkenn1102/items/536af9f97edf76694c6e
# DBを触る準備をする
* 今回はroomというライブラリを使用していきます.[公式資料](https://developer.android.com/training/data-storage/room?hl=ja#components)があったので、指示に従い、build.gradleを初期状態からdependenciesに追加して最終的に下記に更新してビルドを走らせます.“`build.gradle(app)
dependencies {implementation ‘androidx.core:core-ktx:1.7.0’
implementation ‘androidx.appcompat:appcompat:1.4.1’
implementation ‘com.google.android.material:material:1.4.0’
【Android】特定のアプリがインストール済みかチェックする【カスタムURLスキーム】
# 実現したいこと
あるアプリにおいて、他の特定のアプリが端末にインストールされているかどうかを判別し、その結果によって処理を変えたい。
例)特定のアプリがインストールされているかを判別し、
– されている場合 → そのアプリを起動
– されていない場合 → Google Play Storeに飛ばしてダウンロードを促す## 自分の環境
– macOS BigSur 11.6.6
– Android Studio Arctic Fox | 2020.3.1 Patch 4
– Kotlin version 1.4.20# 前提
**カスタムURLスキーム(Custom URL Scheme)を利用した場合の解説をします。**
そのため、インストール済みかどうかチェックをされる側のアプリがカスタムURLスキームを設定している必要があります。例)
– YouTubeのURLスキーム → `vnd.youtube`
– Google MapのURLスキーム → `geo`自分で作成したアプリであれば自由にURLスキームを以下の方法で設定できます。
## Custom U
Androidのgradle versionを上げたら起動しなくなった
## Gradle versionをポチポチと最新版に変更
### gradle-7.0.2-all.zip -> gradle-7.4.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
-> distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip### gradle:7.0.4 -> gradle:7.2.1
classpath ‘com.android.tools.build:gradle:7.0.4’
-> classpath ‘com.android.tools.build:gradle:7.2.1’## 上げて動かそうとしたら。。。起動せず。
### Non-fatal Exception: java.lang.RuntimeExceptionMissing type parameter.
“`
Non-fatal Excepti
コルーチンとチャネル入門#2
※ソース記事は[こちら](https://play.kotlinlang.org/hands-on/Introduction%20to%20Coroutines%20and%20Channels/02_BlockingRequest)
# ブロッキング要求
自分のアカウントの下で要求を実行し、自分のパスワードと提供されたトークンを使う、開発者GitHub APIを使っていく。
GitHubへのHTTPリクエストを行うため、[Retrofit](https://square.github.io/retrofit/)を使っていく。それにより、与えられたオーガニゼーションの配下のリポジトリの一覧と、それぞれのリポジトリのコントリビューターの一覧を要求することができる。
“`Kotlin
interface GitHubService {
@GET(“orgs/{org}/repos?per_page=100”)
fun getOrgReposCall(
@Path(“org”) org: String
): Call>
FlutterにてAndroid SDKの”Service”で1秒ごとにUIに反映させる方法について考える
# 1.はじめに
僕はFlutterを触るようになって1か月のものです。参考にならない記事を上げるなと思われるかもしれませんが、僕個人の記録として書いている部分の方が大きいのご了承ください。「こうしたら楽に実装できるよ~」とか、「こうした方がいい!」とか教えていただけると幸いです。
### 今回のゴール
AndroidのServiceと言えばバックグラウンドで動作し、ファイルのダウンロードやTimerを動かし定期的にUIに反映させたりなどそうゆう用途で用いられることが多いと思います。(これも素人目なので適切な使い方かどうかは確証がないです)それを踏まえて、今回のゴールは「Timerで1000ms毎にUIに表示している整数をカウントアップさせる」にします。

# 2.方法
とりあえず方法を検討してみます。Flutter初心者なので「そもそも
MLKitの一次元バーコード読み取り
# MLKitの一次元バーコード読み取り
一次元バーコードを読み取るAndroidアプリで[zxing-android-embedded](https://github.com/journeyapps/zxing-android-embedded)というライブラリを利用していましたが、ベースが旧CameraAPIだったためAndroid11などで動作しない問題があり、代わりにMLKitのバーコードスキャンAPIの利用を検討することにしました。## ユースケース
作りたいのはバーコードスキャナのイメージなのでバーコードを読み取った後、処理する予定なのでプレビューは停止させます。サンプルコードのようにリアルタイムでバーコードをマークしたままプレビューし続けるようなことはしません。今回は試しにこのバーコードを読んでみます
IQOSレギュラーのバーコードですw
でCEOしながら[ラグナロク株式会社](https://ragna-rock.com)でもCKOとして働いている[もぐめっと](https://mogmet.com)です。

最近Apexというゲームにはまってるのですが、何故かいつも使ってないキャラでハンマーというダメージをたくさん与えたという名誉ある称号をとることができました。とても嬉しかったのでつい共有しちゃいました。やってる人いたらよかったら一緒にやりましょう。本日はGoogleAnalyticsのイベントの適切な飛ばし方について4点共有いたします。
適切にイベントを設定することでGoogleから恩恵を受けやすくなります!
それでは早速解説いたします!## ユーザ情報を設定する
一番初めに
【Android】個人的によく使うアノテーションについてのメモ part2
# はじめに
前回の[【Android】個人的によく使うアノテーションについてのメモ](https://qiita.com/Tsubasa12/items/e02458af070748d20cb4)
に引き続き 使用したものを調べたので記事にまとめます# アノテーション表
※”@”をつけるとアドレス認識になってしまうので省略
|アノテーション|意味|
|:—|:—|
|Module|Provideをまとめたクラス|
|Provide|インスタンスを提供(Provide)するメソッド|
|Component|Moduleをどのクラスで使うかを紐付けるインターフェース|
|AndroidEntryPoint|これが付けられた他の Android クラスに依存関係を提供できるようなる|# 最後に
part2では Dagger の基本のようなものを残しました
今後も何かの実装のたびに見つけたアノテーションを調べてまとめていこうと思います!
Android12対応でexported調整後でも怒られてしまう場合の対応方法
# はじめに
Android12対応、やることも多く現状でも対応が進んでいないプロジェクトも多いのではないでしょうか?
今回はAndroid12で対応必須なexportedですが、こちらプロジェクト内のexportedを対応してもビルドエラーになってしまうことがあります。
この原因は主にライブラリが絡んでいるのですが、どのライブラリが問題になっているのか調べる方法があるのでご紹介したいと思います。# 確認方法
まずマニフェストを開き、エディター下部の以下タブから赤枠のあるMerged Manifestを選択します。
選択後、以下スクショのようにライブラリが持つマニフェスト一覧が表示されます。
 {
super.onCreate(savedInstanceState)
setContent {
Text(text = “Hello world!”)
}
}
“`setContentブロックでコンポーズのレイアウトを定義
【Android】TextInputEditTextでAdjustResizeやAdjustPanが効かない
### 問題
MaterialDesignのTextInputLayoutのTextInputEditTextで、テキスト入力時にカーソル位置とフォーカスがおかしくなります。
一行とかであれば恐らく問題ありませんが、ScrollViewなどでネストしている場合文字入力が困難になります。### 原因
日本語の情報があまり見当たらなかったのですが、[既知のバグ](https://github.com/material-components/material-components-android/issues/1282)として報告されているようで、Manifestで指定するAdjustResizeやAdjustPanが上手く機能していない?みたいです。### 解決
TextInputEditTextに「app:textInputLayoutFocusedRectEnabled=”false”」を追加する。
(もしくはTextInputEditTextをEditTextにする)### 参考
[https://stackoverflow.com/questions/62715709/
初めての.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
関連する記事
OTHERカテゴリの最新記事
-
- 2023.09.23
iOS関連のことを調べてみた2023年09月23日
-
- 2023.09.23
Python関連のことを調べてみた2023年09月23日
-
- 2023.09.23
Ruby関連のことを調べてみた2023年09月23日
-
- 2023.09.23
Rails関連のことを調べてみた2023年09月23日
-
- 2023.09.23
Python3関連のことを調べてみた2023年09月23日
-
- 2023.09.23
PHP関連のことを調べてみた2023年09月23日