- 1. AndroidStudioでカスタムフォントを使用する
- 2. Android 現場新参画者向けのキャッチアップサポート資料について
- 3. Flutter環境構築にあたってバージョンを確認しておくべきツール
- 4. 【Android Java】HashMapの中でListを使う
- 5. MediaPipe ObjectDetection で一人歩きを発見する
- 6. 【 Flutter 】 個々のユーザに対してLINEメッセージ通知を送る機能の実現 (LINE SDK・LINE Messaging APIを利用)
- 7. Androidアプリ開発の個人メモ
- 8. Challenges of Creating a Multi-Platform Compose Application with Kotlin. Part 1
- 9. 初心者エンジニアによるAndroidアプリ開発日記⑥
- 10. 【Map Compose】 デバイスの現在地と方位を取得してGoogle Map公式アプリみたいな現在地マーカーを表示する
- 11. DataStore を使ってタスクキルしても大丈夫なお気に入りフィルターを作った with Jetpack Compose
- 12. 【Android】JetpackComposeでテキストを常にスクロールさせる【Kotlin】
- 13. Viewはメンテナンスモードだと考えられる理由
- 14. AndroidエンジニアのためのXcodeショートカット
- 15. Splash画像のみ変えたい時(Android)
- 16. runInterruptible: Coroutine上で時間のかかるコード実行を適切にキャンセルする
- 17. DroidKaigi2024で見たセッションのメモ(アーカイブ動画編その1)+所感
- 18. CmakeのAndroid用ビルドでNDKが見つからないと言われる時
- 19. FlutterのshowDialogのAlertDialogサンプル
- 20. Misuse of Sign in with Google API: Use of `:googleid` classes without use of `GoogleIdTokenCredential`
AndroidStudioでカスタムフォントを使用する
Android Studio version
**Android Studio Ladybug | 2024.2.1** になります
たくさんの記事でカスタムフォントの採用方法が記述されていますが、僕の環境だとどうしても.ttfファイルの読み込みが上手くいかなくて、かなり時間がかかってしまいました。
同じ状況に差し掛かった方もいるかと思いますので、情報を共有したいと思います。
## 1 通常のカスタムフォント導入方法
1. resを右クリック→ Android Resource Directory を選択する
1. Resource type: に Fontをして、OKをクリック
1. すると、res/fontフォルダが作成されます。
1. そして、そこから各外部からインストールしたフォント(.ttfファイル)を読み込ませると、カスタムフォントが使えるはずなのですが・・・
1. ![スクリーンショット 2024-10-08 21.44.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2428088/
Android 現場新参画者向けのキャッチアップサポート資料について
# 概要
新しい現場に参画する時、歴が浅いメンバー等は「どこからキャチアップして良いのか?」と疑問に思うメンバーがいると思います。
こういったメンバーにもなるべく早いキャチアップをしてもらう必要があると考えたため、新しい現場で以下が分かる簡単な資料を作成しました。**資料から分かるようにした内容↓**
・ソースコードキャチアップの流れが分かる
・アーキテクチャを理解できる
・API接続からUI反映までの流れが理解できる特にAPI接続からUI反映までの流れがわかってしまえば最低限のキャッチアップはできると考えたため、そこの内容を重点的に作成しました。
下記に、その当時作成した資料を展開。# 当時の資料
以下から当時の資料(クラス名やパス名等は省略しております。)↓↓↓——
* **Androidキャッチアップ観点**
* **言語は何か?**
* kotlin
* **UIは何を使用しているか?**
* Android view
* Jetpack Composeは未使用
* **アプリ初回
Flutter環境構築にあたってバージョンを確認しておくべきツール
| ツール | 確認コマンド |
|:-:|:-:|
| Flutter SDK | flutter –version |
| Dart SDK | dart –version |
| Xcode | xcodebuild -version |
| CocoaPods | pod –version |
| Android Studio | android-studio –version |
| Android SDK | sdkmanager –list |
| Gradle | gradle -v |
| JDK | java -version |
【Android Java】HashMapの中でListを使う
## ■概要 01
・ボタン、「北陸」013370「首都圏」013371 に対応したデータを作成。
![Screenshot_20241008-085536_YKKAPP – コピー.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/a9ece82d-70dc-46e3-91e2-50f563e157cd.jpeg)“`java
private void CreateNounyuuCode_And_Hinbann() {
GlOpenHelper helper_select = new GlOpenHelper(getApplicationContext());
SQLiteDatabase db_select = helper_select.getReadableDatabase();String[] arr_item = new String[3];
//—- リストを空にする
Nounyu
MediaPipe ObjectDetection で一人歩きを発見する
## はじめに
はじめまして。ケアプラン作成は、いまだにエクセル使用している施設ケアマネジャーです。## 状況
私の勤める介護保険施設では、転倒リスクのある方が一人歩きをして転んでしまうことがあります。踏むとアラーム音がでるセンサーマットを使用していますが、複数個所で鳴動していたり、ケア中であったりと、人力での見守りでは限りがあります。## 目的
機械の力を借りて早期発見し、見守りにつなげ転倒を防ぎたい## 課題
施設内で一人歩き(独歩)の利用者を発見したい## 方法
MediaPipe オブジェクト検出タスクを用いて画像内の人(person)をカウントする。一人であれば何らかのシグナルを出す。## 結果
画像内の人をカウントして、一人の時にバウンディングボックスを描くことができた。## 今後の課題
一人であることがわかっても、その人が看護師であるか、介護士であるか、利用者であるかがわからないので、バウンディングボックスの人物を識別する必要がある。## 参考
https://ai.google.dev/edge/mediapipe/solutions/vis
【 Flutter 】 個々のユーザに対してLINEメッセージ通知を送る機能の実現 (LINE SDK・LINE Messaging APIを利用)
### 1. はじめに
flutter × LINE の実装って本格的なものは知見がWeb上にほとんどなかったので、思い切って記事にしてみました。
今回、具体的には、個々のユーザに対してLINEメッセージ通知を送る機能を実現します。そのためには、以下の手順に沿って実装する必要があります。
– LINEログイン機能を実装し、アプリでLINEログインを行ったユーザのIDを取得
– LINEメッセージ通知機能を実装し、上で取得したユーザIDを宛先として、メッセージ通知単に、LINEログイン機能の実装、LINEメッセージ通知機能を個別で試すことは簡単ですが、それらを実用的に利用するには、各機能を連携させて使用する必要があります。
上記の機能をFlutterで実装した解説記事が見つからなかったため、本記事で解説しようと思います。多くのFlutter開発者の方々の助けになれば幸いです。
### 2. LINEログイン機能の実装
LINE SDKを用いる事で、LINEログイン機能を実装することができます。
### 2.1 LINE Developersの設定
LINE SDK
Androidアプリ開発の個人メモ
– 簡単な画像はVector Assetに変換したものを使う方がいい
→pngにするよりも画像が劣化しないなどのメリットがあるhttps://developer.android.com/studio/write/vector-asset-studio?hl=ja#running
Challenges of Creating a Multi-Platform Compose Application with Kotlin. Part 1
*P.S. Looking for contributors for my Japanese language learning application which is described in this article, students are welcome too*
## Intro
Hello there. I’m creating an open source application **[Kanji Dojo](https://github.com/syt0r/Kanji-Dojo)** for some time already and here I’ll tell about my experience of creating an app using Kotlin and Compose Multiplatform, currently it supports Android, Windows, Linux and MacOS
Development started with early versions of Compose, when it was st
初心者エンジニアによるAndroidアプリ開発日記⑥
# まえがき
前回大まかなロジック部分の実装はできたものの、クイズ画面で画面を表示させられなかったり、スコア表示は後回しにしている状態でした。今回で、残った実装を終わらせにかかります。前回は[こちら](https://qiita.com/hukusima65/items/c62957ee74a55912100d)
# 目次
* [概要](#概要)
* [ライブラリの設定](#ライブラリの設定)
* [AndroidManifest.xml](#androidmanifestxml)
* [build.gradle](#buildgradle)
* [Activityの実装](#activityの実装)
* [QuizActivity.kt](#quizactivitykt)
* [IncorrectActivity.kt](#incorrectactivitykt)
* [実装後の画面](#実装後の画面)
* [終わりに](#終わりに)—
## 概要
この記事では、ライブラリによるURLからの画像表示と、不正解画面での正解数を表示させる実装をする
【Map Compose】 デバイスの現在地と方位を取得してGoogle Map公式アプリみたいな現在地マーカーを表示する
デフォルトのGoogle Map Composeでも[isMyLocationEnabled](https://googlemaps.github.io/android-maps-compose/maps-compose/com.google.maps.android.compose/-map-properties/is-my-location-enabled.html)をtrueにすれば現在地マーカーは表示されるのですが方位矢印の動きがカクカクなのが嫌だったので自分で実装することにしました。
![](https://storage.googleapis.com/zenn-user-upload/8aabb4009c4c-20241005.gif)# 完成系
今回作ったやつとGoogleMap公式アプリで同じ場所を歩いて比較してみました(個人情報笑
多分問題なさそう。| 作ったもの | GoogleMap公式アプリ |
| —- | —- |
| ![](https://storage.googleapis.com/zenn-user-upload/85e0a614
DataStore を使ってタスクキルしても大丈夫なお気に入りフィルターを作った with Jetpack Compose
## 今回行ったこと
トグルスイッチの状態をタスクキルしたり、画面回転させてもリセットされないようにしました。## 👯♂️登場人物?紹介
このデータ保持をする実装をするために以下の登場人物たち?が登場します。 (登場プログラムと言えば良かったかな・・・)– viewModel
– DataStore を使ってデータを保存するために使用
– Activity が破棄されるイベント(画面回転など)があっても生き残り続けるため重要人物
– ToggleComponent
– トグルスイッチを実装するコンポーネント
– タップされるたびに状態を上書き保存
– デフォルト値は false
– ListScreen
– リスト画面にトグルスイッチを配置
– コンポーネン
【Android】JetpackComposeでテキストを常にスクロールさせる【Kotlin】
# はじめに
今回は引き受けている仕事の中でなかなかJetpackComposeに触れないでいる中、自分のインプットの中だけでもなるべく触ろうと思い立ったが、何から触ろうかと思ったので、自分の興味のあるアニメーション関係からきっかけを作ろうと色々触っている中で見つけたものを紹介していこうと思います。
今回記事にて紹介するものは **basicMarquee()** です。タイトルではテキストをスクロールと言いましたが、公式には
>任意のコンポーザブルに basicMarquee 修飾子を適用すると、アニメーション化されたスクロール効果を生成できます。とあるので、TextView以外でも使えるっぽいです。
# 使い方
“`
@Composable
fun TextMarquee() {
Column(Modifier.width(400.dp)) {
Text(
“テキスト”,
modifier = Modifier.basicMarquee()
)
}
}
“`基本的には
Viewはメンテナンスモードだと考えられる理由
DroidKaigi2024の「Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜」で発表されていたViewがメンテナンスモードである点についてまとめました!
# 概要
**タイトル**
Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜**発表者**
syarihu**動画**
# 詳細
### Viewはメンテナンスモードかも。。。
Google Issue Trackerの記載、Jetpack Composeの生みの親のXの投稿からViewはメンテナンスモードの可能性が高いです。### Gridlayoutはメンテナンスモード
Google issue trackerに投稿されている「Bug: GridLayout doesn’t let TextView change its font-size as a cell, and can sometimes cause only 1 row to
AndroidエンジニアのためのXcodeショートカット
# はじめに
今回は、AndroidStudioでよく使うショートカットのXCode版を紹介していきます
### 本文読み出し先検索
—
AndroidStudioでは、関数などの実行箇所や実装箇所を探すのにはcmd+clickですが、XCodeではcmd+Clickが使えるのは関数などの実装箇所のみで実際に呼び出している場所を探すのには該当関数を選択した状態でctr+cmd+shift+hを押す必要があります。
押しづらい上に覚えにくいので、SideBarにある虫眼鏡アイコンからCall Hierarchyで検索する方も多いみたいです。File検索
—
AndroidStudioではShift2回押しでファイルを検索できますが、XCodeではshift+cmd+oでプロジェクト内のファイル検索ができますコード整形
—
AndroidStudioではcmd+opt+Lでファイル内のコードを整形できますが、XCodeではctr+Iで整形することができます
### 最後に
備忘録としての役割が非常に強いですが、どなたかのお役に立てれば幸いです
AndroidStud
Splash画像のみ変えたい時(Android)
通常の設定だとSplash画像にはアプリアイコンの画像がそのまま表示されます。
Splash画像のみ変更したい場合、どのようにするのかを共有します。## 1. Splash用の画像ファイルを用意する
まず、Splash画面に表示したい画像を drawable フォルダに追加します。例えば、**ic_splash.png** という名前の画像ファイルを使うとします。
そして更に drwaableフォルダにxmlファイルを追加。例えば **background_splash** という名前にします。
“`kotlin:xml
runInterruptible: Coroutine上で時間のかかるコード実行を適切にキャンセルする
みなさんはKotlin Coroutines上で時間のかかる処理を行う際、処理のキャンセルについて意識されてますでしょうか?
この記事では、Coroutine上で動かす時間のかかるコード実行を適切にキャンセルするには[withContext](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/with-context.html)ではなく[runInterruptible](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/run-interruptible.html)を利用するべきであるという例を紹介します。
時間のかかるコード実行をキャンセルさせる例として以下のようなコードを用意しました。
“`kotlin
runBlocking {
val heavyWork = fun(): String {
p
DroidKaigi2024で見たセッションのメモ(アーカイブ動画編その1)+所感
[こちら](https://qiita.com/hiro404/items/88228806cd86abe1b372)の続編です。
当日見れなかったセッションをアーカイブで見ています。
見て気になったところや所感をなぐり書きするメモになります。自分の所感になりますので参考程度にお願いします。実際のアーカイブを見ることをおすすめします。
## [Kotlin 2\.0が与えるAndroid開発の進化](https://2024.droidkaigi.jp/timetable/693342/)
Kotlin2.0でのアップデート内容に関するセッション。
K2モードはbuild.gradleなどがまだできていない部分があり、Android開発ではまだ待ったほうが良さそう。
文法的にはキャストやスコープ、enumなどに変更が入っている。enumはentriesを使うとパフォーマンス的に有利。
backingFieledはviewModelでMutableStateを非公開にしてimmutableなフィールドを公開していたが、このあたりの記述が簡単になる。power asse
CmakeのAndroid用ビルドでNDKが見つからないと言われる時
## 状況
CmakeでAndroid用のビルドが必要なためAndroid StudioからNDKをインストールしたがNDKが見つからないと言われる。## エラー内容
“`
CMake Error at C:/Program Files/CMake/share/cmake-3.29/Modules/Platform/Android-Determine.cmake:217 (message):
Android: Neither the NDK or a standalone toolchain was found.
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.29/Modules/CMakeDetermineSystem.cmake:184 (include)
CMakeLists.txt:3 (project)CMake Error: CMake was unable to find a build program corresponding to “Ninj
FlutterのshowDialogのAlertDialogサンプル
– Android、iOS用でそれぞれ環境に合うDialogを出力する
“`dart
import ‘dart:io’;
import ‘package:flutter/cupertino.dart’;
import ‘package:flutter/material.dart’;class CommonDialogView {
static Futureshow (BuildContext context, String text) {
return Platform.isIOS
? _showCupertinoDialog(context, text)
: _showMaterialDialog(context, text);
}static Future
_showCupertinoDialog (
BuildContext context, String text) {
return showCupe
Misuse of Sign in with Google API: Use of `:googleid` classes without use of `GoogleIdTokenCredential`
Ladybug2024.2.1にアップデートしたところ、Lintが次のメッセージで失敗するようになりました。
“`
Error: Use of :googleid classes without use of GoogleIdTokenCredential [CredentialManagerSignInWithGoogle]
val googleIdOption = GetGoogleIdOption.Builder()
~~~~~~~~~~~~~~~~~Explanation for issues of type “CredentialManagerSignInWithGoogle”:
When using :googleid classes like GetGoogleIdOption and
GetSignInWithGoogleOption, you typically must handle the response using
GoogleI