- 1. 【Flutter】「SocketException: Failed host lookup」の対処法
- 2. 日本語プログラミング言語MindをAndroidに移植した時の記録(ステップ6/9)
- 3. Firebaseを使ってクラッシュを集計するログを仕込む
- 4. 公開モジュールが非公開モジュールに依存していないか確認する
- 5. 穴開きのComposableを作る
- 6. Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionExceptionの解決方法
- 7. Android エミュでビルドしたら Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE: Failed to override installation location] というエラーが出た
- 8. 【ChatGPT】30分でAndroidアプリ作ってみた
- 9. AndroidStudioの新しいDiffViewによってPRの差分をGithubライクに見れるようになった
- 10. Android 15で日本語フォントが大幅改善
- 11. Arduinoとスマホでお家をモニタPart2.5【Bletooth選択動作の作成】
- 12. アプリ個人開発でもまず設計しないとダメ
- 13. 【備忘録】UnityのAndroidビルドでAPI level 33にしてエラーが出た時はこれをやってみろ!
- 14. 【Android/Java】OkHTTPでDigest認証
- 15. 【Android/Java】Bluetoothペアリング機器の削除(任意のもの以外)
- 16. 【Android/Java】アプリ間データ共有 その2(Android11)
- 17. [Android] BottomNavigationViewをスクロール時に隠す
- 18. [Android]GithubActionsでリリースビルドapkをセキュアに作成する
- 19. Android13以降で L2TP/IPsec VPNに接続する方法
- 20. #320 2024-03-31 駄菓子 議事録
【Flutter】「SocketException: Failed host lookup」の対処法
# はじめに
Flutterでアプリ開発を実施している際に、以下のエラーが吐かれたので、原因と解決方法を紹介します。
“`
SocketException: Failed host lookup: ‘{project}’ (OS Error: No address associated with hostname, errno = 7)
“`# こんな人に読んでほしい
* Flutterでの開発を行っている方
* Flutterでの開発を検討している方
* Flutter初学者の方# 原因
結論、Androidエミュレータからネットワークに接続して画像を表示させようとした際に、AndroidManifest.xmlで接続許可をしないといけませんでした。
# 対応
解決方法は、以下のファイルにインターネット利用許可のパーミッションを1行追加するだけでOK。
“`{project}/android/app/src/main/AndroidManifest.xml“`
“`xml
日本語プログラミング言語MindをAndroidに移植した時の記録(ステップ6/9)
# はじめに
この記事はだいぶ前(2012年)にココログの「[キリーの日本語プログラミング](http://uemon3511.cocolog-nifty.com/nihongoprogram/)」に掲載したコラムですが、再編集してこちらにも投稿します。今となっては古い話ではありますが、OSによってプログラム言語(AndroidではJava)が決め打ちされている環境で規定と異なるもの(Mind)を走らせたことの記録としてお読みください。
# インテントサービスで効果音を再生
サービスの一つである「インテントサービス」を実装した。
![photo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118036/797aaaf5-e43e-1e74-eedd-fb48b9bbb676.png)
![photo_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118036/bd033da9-1c0c-1fe0-7
Firebaseを使ってクラッシュを集計するログを仕込む
# はじめに
今回はFirebaseCrashlitycsを使ったクラッシュの集計方法を紹介していきます
### 本文
仕込む場所は`runCatching`や`try catch`の中で大丈夫です
下記のようにThrowableを引数として渡すことでエラーの内容を集計してくれます
“`kotlin
runCatching {
// hoge
}.onFailer {
Firebase.crashlytics.recordException(it)
}
“`
### 最後に
今回はFirebaseCrashlitycsを使ったクラッシュの集計方法を紹介しました
どなたかのお役に立てれば幸いです
公開モジュールが非公開モジュールに依存していないか確認する
ライブラリプロジェクトではマルチモジュール構成を作っておき、サンプルアプリがあって、それが公開するライブラリモジュールを参照していて〜という構成を取る場合が多いと思います。
例えば、ライブラリの開発中・デバッグやテストにのみ使うものを集めたモジュールもあったとしましょう。あくまでライブラリの開発のためのものなので公開していないとします。
その場合、公開モジュールが意図せずこのモジュールに依存してしまい、このプロジェクト上ではビルドが通りますが、非公開モジュールは当然mavenリポジトリにないのでpublishした後にビルドが通らないことに気づく、なんてことになりかねません。とまあ、チョット特殊な事情ですが、CIとかでチェックしたいなーと思ってたんですが、
最近自分で投稿した記事を眺めてみると。https://qiita.com/ryo_mm2d/items/19a751e7471f195e4215
dependency-guardで依存関係チェックできますよね。
https://qiita.com/ryo_mm2d/items/500cdf25289627cf8be2
穴開きのComposableを作る
Composableに穴を開けたいときがありますよね。
あんまりないと思いますけど例えばよくありそうなのはこういうやつ
![spotlight.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405568/dea29dbb-7fc2-d422-3ddb-29a277927c6a.gif)## blendModeを使ってみる
こういうとき、Compose以前のAndroid Viewでは一旦全体を半透明の黒で塗りつぶしてから穴の部分だけ色を消すViewを実装していたと思います。
Composeでも `drawBehind` というModifierを使えば同じことができそうです。
こんな感じのComposableを書くことになるでしょう。
一旦 `drawRect` を使ってComposable全体をscrimColorで塗りつぶし、穴部分は `blendMode` にDstOutを指定して塗りつぶした色を消去します。
“`kotlin
@Composable
fun SpotlightSc
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionExceptionの解決方法
### はじめに
AndroidStudioで開発しているとたまに以下のようなエラーが発生してビルドが通らなくなったりします。“`
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
“`
そんな時に僕が試している解決方法を備忘録として残しておきます。### キャッシュの削除
File → nvalidate Cashesを選択。
![スクリーンショット 2024-04-14 15.56.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3113615/1b0a2008-7d1a-aa35-e5b2-12ab2e5a5deb.png)キャッシュをクリアする項目を選択してから
Android エミュでビルドしたら Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE: Failed to override installation location] というエラーが出た
# これなに
Android エミュレーターでビルドしたら `Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE: Failed to override installation location]` なるエラーが出た。# エラーログ
ターミナルで出てきたエラーログは以下の通り。
“`zsh
% flutter run –device-id emulator-5554
Launching lib/main.dart on sdk gphone64 arm64 in debug mode…
Running Gradle task ‘assembleDebug’… 105.4s
✓ Built build/app/outputs/flutter-apk/app-debug.apk.
Installing build/app/outputs/flutter-apk/app-debug.apk… 9.6s
Error: ADB exited with exi
【ChatGPT】30分でAndroidアプリ作ってみた
## はじめに
はじめまして、記事主は2023年8月からAndroidエンジニアとして働いています。
最近個人開発を始めようと思い、Androidの開発環境を整えてみたのですが、ふとChatGPTに作成依頼したらどこまでのものができるのか興味が湧いたので、試してみたいと思います。
使用する言語はKotlinになります。
また、今回作成するアプリは簡単な**ToDoアプリ**です。
それではいきましょう。## まずは雑に依頼してみる
まず依頼した内容がこちら![スクリーンショット 2024-04-13 15.03.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3113615/cb7fe4b9-a970-420f-81c2-bcb2a5582141.png)
なんとも雑ですね。回答がこちら
### MainActivity
“`kotlin
import android.os.Bundle
import android.widget.ArrayAdapter
import androi
AndroidStudioの新しいDiffViewによってPRの差分をGithubライクに見れるようになった
IntelliJ IDEA 2023.3にて、「オールインワンの差分ビューアー」というDiffViewの新機能が登場しました。
https://www.jetbrains.com/ja-jp/idea/whatsnew/2023-3/
これによって、PRの差分をGithubのfiles changedとかなり近い体験で確認できるようになります。
– 複数ファイルの差分をスクロールによって確認できる
– 差分とその付近の行のみ表示できる■ Githubとの比較
| Github | AndroidStudio |
| :—: | :—: |
|![スクリーンショット 2024-04-13 22.39.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762653/13165d76-d179-e46f-07a9-dd7e445fb7e5.png)|![スクリーンショット 2024-04-13 22.39.42.png](https://qiita-image-store.s3.ap-no
Android 15で日本語フォントが大幅改善
## Android 15のパブリックベータ版が公開
2024年のGoogle I/Oで発表となる次期Android 15(Vanilla Ice Cream、バニラアイスクリーム)。そのパブリックベータ版が米国時間4月11日に公開されました。
順調に開発が進めば9月頃に正式版が公開される見通しですが、今回公開されたパブリックベータ版を見ると、今まで貧弱といわれていたAndroidの日本語フォントが、Android 15では大幅に改善しそうなことが判明しました。
本記事では、従来のAndroidと何が違うのかを解説したいと思います。## Android 15の新機能のおさらい
[Googleのホームページ](https://developer.android.com/about/versions/15/summary?hl=ja)に新機能についてまとめられていますが、一部を抜粋します。### [細かな改行コントロール](https://developer.android.com/about/versions/15/features?hl=ja#line-breaks)
Text
Arduinoとスマホでお家をモニタPart2.5【Bletooth選択動作の作成】
# 初めに
[前回](https://qiita.com/Antareskkudo/items/e102d5c4aebff21766ea)はArduinoとBluetooth送受信機(以下、BLEデバイスとする)の接続、受信した情報をデコードするところまでやりました。今回は前回の課題に挙がっていた**BLEデバイスをコードでしか変更できない問題**について解決していこうと思います。[^1]本記事で説明する内容の範囲は以下の通りです。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/38f77b59-4631-3900-4278-4ee7ca5f6caa.png)# アプリ動作順序について
コードの説明の前に前提条件を理解しておきます。
前回ではアプリ起動時にプログラムされたBLEデバイスに接続する操作をしていました。今回はそのアクセス前にBLEを選択する動作を加えます。Androidのアクティビティ実行動作順序(ライフサイクルイベント)は下のように規定されています。
アプリ個人開発でもまず設計しないとダメ
エンジニア歴3年でアプリの個人開発をしたいと思いました。
最初はyoutubeを見ながら似たようなアプリを作る練習をして、
全部自分で作成できるようになったので設計すっ飛ばして、そのときその時の思いつきで機能を追加したり直したりしてアプリを作っていました。結果、エラーが起きた時に対応する時間も半端なければ、
設計していないので、本来さくさく作成できるはずのUI作成も思いつきで追加、削除の連続で時間がかかり、
おまけに不要な機能がてんこ盛りのガラクタが出来上がっていた・・・という結果になりました。
自分がコーダー兼デザイナーであっても、考えていることを紙に書き出して、
どの作業をどの程度やればどのくらいの時間でできるか、ということを把握してないと、とんでもなく時間かかって、
不要な機能いっぱいのガラクタが目の前にあって、あれ、自分何でこんな時間使ってた?
とすごい後悔に襲われるので、開発を行う際は
UI周り、フローチャート、DB設計など、適度に細かく計画しておきましょう。
ということが3年目にして今更身にしみました。というお話です。
以下に最近作成中のアプリ
【備忘録】UnityのAndroidビルドでAPI level 33にしてエラーが出た時はこれをやってみろ!
## はじめに
Google様の「今度からTargetAPILevelを〇〇以上にしてね。古いの使ってたらアプリリリースさせないから」に対応する際、役に立つかもしれない情報を書き留めておく。## 環境
OS: macOS Ventura 13.0
CPU: M1
Unity: 2021.3.0f1 (2020.3.41f1でも確認済み)## やったこと
– ProjectSettings > Player > Other Settings for Android にある「Target API level」を 33 に変更
![スクリーンショット 2024-01-19 1.41.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3679129/b13f758a-9e79-aaf6-c87d-edc5d3399525.png)
– /Applications/Unity/Hub/Editor/2021.3.0f1/PlaybackEngines/AndroidPlayer/SDK/platform
【Android/Java】OkHTTPでDigest認証
## やりたいこと
AndroidアプリからDigest認証で通信したい
OkHTTPを使用することとしたらSingletonで作らないと、メモリを食いまくるようなので、それを意識する## Step1.実装方法
#### app¥build.gradle
~~~gradle
android {
:(略)
}
dependencies {
:(略)
implementation ‘com.squareup.okhttp3:okhttp:4.11.0’
implementation ‘io.github.rburgst:okhttp-digest:3.1.0’
}
~~~~#### AndroidManifest.xml
~~~xml
【Android/Java】Bluetoothペアリング機器の削除(任意のもの以外)
## やりたいこと
製品に付随しているBluetooth機器(例えば、AndroidTVに付随しているBluetoothリモコン)以外のペアリング機器を削除したい。
ネットカフェのPCなど、不特定多数の使用が想定される状況で、利用者がペアリングした機器を、利用終了後に削除したいのが目的での調査メモ## Step1.実装方法
#### AndroidManifest.xml
~~~xml
【Android/Java】アプリ間データ共有 その2(Android11) ## やりたいこと
アプリ間でデータの共有を行いたい
片方のアプリがプロセスKillされている状態でもデータの参照を行えるようにしたい以前、非推奨のSharedUserIDを使って実現したが、推奨、かつ簡単に行える実装(SystemProperties)をみつけたので備忘録
## Step1.SystemPropertiesとは
Androidのデバイス動作や設定を制御するキーと値のペアが格納されているもの。
#### ADBコマンド例
~~~cmd
# デバイスのモデル名をシステムプロパティから取得する
adb shell getprop ro.product.model
~~~~## Step2.実装方法
### SystemPropertiesへの書き込み
任意のキーを指定して、値を書き込む
~~~java
public void writeSystemProperties(String key, String val) {
try {
@SuppressLint(“PrivateApi”)
Class> SystemProp
[Android] BottomNavigationViewをスクロール時に隠す
![](https://velog.velcdn.com/images/rmsxo5678/post/de7304fe-26e4-410e-8206-9e2a671b16b5/image.gif)
# *layout_behavior*
画面をスクロールするとBottomNavigationViewを消して現れることの実装が必要だったが、検索してみるとxml上でも簡単にできると言っているので“`xml
[Android]GithubActionsでリリースビルドapkをセキュアに作成する ## はじめに
Androidでリリースビルド(署名付き)をGithubActionsでapkを作成する方法を備忘録メモします。
今回は限定公開でアップしたいためapkの作成とします。
https://support.google.com/a/answer/2494992?hl=ja
※aabでもアップできるかもしれない。ドキュメントに記載がないので不明。やり方は下記のサイトのものを使い手順通りに行います。
https://github.com/r0adkll/sign-android-release
※apk、aabファイルどちらも可能## セキュアに
keystoreファイル(jks)をリポジトリに入れた状態(コミット)はセキュアではない(privateであればさほど問題ではないが)ので、jksはリポジトリに入れず、解決する対応とします。## 対応方法
#### 1.jksを作成する
AndroidStudioでツールバーの「Build > Generate Signed Bundle or APK」から作成可能です。それぞれpasswordやaliasを埋めて終
Android13以降で L2TP/IPsec VPNに接続する方法
# はじめに
この記事では Android13以降で **L2TP/IPsec** 方式のVPNを簡単に接続する方法をご紹介します。
みなさんも Androidデバイス のVPN設定にて、**「あれ、L2TP/IPsec はどこ?」** と
困った経験があると思います。
その理由は Android12 で 該当プロファイルを追加できなくなり、Android13以降でその使用を規制されたためです。
おそらくセキュリティポリシーの更新によって Android がより安全な VPNプロトコルへの移行を推奨しているからです。
しかし、**L2TP/IPsec** で接続したいときがあるのも実情…
ネットにある情報は特定の条件を前提とした煩雑な内容が多いため、ここではより簡単な方法をご紹介していきます。今回はWindows経由でVPNに接続する方法を解説します。
要するに Windows PC をホットスポットにします。# 前準備
+ インターネットに接続された Windows PC を用意します
:::note info
共有方法が Wi-Fi である場合、インターネットを有線接
#320 2024-03-31 駄菓子 議事録
## [Retaining beyond ViewModels](https://chrisbanes.me/posts/retaining-beyond-viewmodels/)
– Circuitというライブラリ
– Slackが出している
– いわゆるMVIみたいなやつ?React Hooksみたいな感じ?
– ViewModelという概念を使わない
– CircuitInjectアノテーションを使っていい感じにするとStateをComposableとして扱うことができる
– イベント更新する時はforegroundじゃないとダメなのでrepeatOnLifecycleを使わないとダメ
– けどめんどくさいけどcircuitを使えばその周辺の問題(ライフサイクルとか)を考慮しないで済む
– rememberRetainedでプレゼンターのライフサイクルを超えてstateを保持できるよ
– マーシャル??:rememberSavableを用意しないといけない時にSaverとかいうrememberSavableに即した