- 0.1. Android+RetrofitでHTTP通信するアプリの作り方(その3)
- 0.2. [android java]AWSのAPIgateway + Cognito (Userpool + Idpool)を使用してみる v2
- 0.3. [android java]AWSのAPIgateway + Cognito Userpoolを使用してみる v2
- 0.4. 日本語プログラミング言語MindをAndroidに移植した時の記録(ステップ3/9)
- 0.5. 怒ってます。Androidの新リリース基準酷すぎる
- 0.6. Android リンクをクリックできるHTMLを表示したい(kotlin)
- 0.7. [Android]adbを使ってインストールしているアプリapkのpermissionを確認する方法
- 0.8. Meta QuestのExoPlayerを使って60fpsの動画をなめらかに再生する
- 0.9. Chat-GEMINI: Google Gemini AI を使用した Android チャット アプリの構築
- 1. はじめに
- 2. Gemini AI モデルとは
- 2.1. 【Android】フォトピッカーにオーバーフローメニュー(三点リーダー)を表示したい
- 2.2. Android 9のWebviewだけWebページが表示されずに画面が真っ白になる件
- 2.3. ReactNative WebViewのAPIのメソッドを確認してみた
- 2.4. [android]アプリ起動時にスプラッシュ画面を挟む
- 2.5. KC3Hack2024参加記
- 2.6. [Android] Jetpack Compose UI Component
- 2.7. reg-suitとroborazziを使用してVRTを行い、差分をPRに表示する
- 2.8. Android studioのUnit testやってみる
- 2.9. 【Flutter】画面のスクリーンショット&録画を禁止する方法
- 2.10. 【Android】Jetpack composeサクッと簡単に点線を描く【kotlin】
- 2.11. Android+RetrofitでHTTP通信するアプリの作り方(その2)
Android+RetrofitでHTTP通信するアプリの作り方(その3)
# Depnedency Inejectionの活用
前回の記事でHiltを導入しました。
今回の記事ではHiltを使ってInjectするように組んでいきます。
## 目次
– [Depnedency Inejectionの活用](#depnedency-inejectionの活用)
– [目次](#目次)
– [通信層をInjectする](#通信層をinjectする)
– [Modules](#modules)
– [@Inject](#inject)
– [できあがり](#できあがり)
– [リポジトリ](#リポジトリ)## 通信層をInjectする
実際にInjectしてみましょう。
現在のところ、このアプリの機能はJsonPlaceHolderと通信することだけです。
なので、JsonPlaceHolderと通信する機能をInjectするように修正します。
### Modules
InjectするインスタンスはModuleに定義します。
“`kotlin
@Module
@InstallIn(SingletonCompon
[android java]AWSのAPIgateway + Cognito (Userpool + Idpool)を使用してみる v2
## はじめに
Cognito認証を使用した各種サービスへのアクセスに非常に困惑したので備忘録として情報を記載する.
特にAWSMobileClientの仕様が理解できておらず困惑したので書き留めておく.※2024年1月頃に類似の記事をアップロードしたが,内容に誤りがあったためアーカイブした.こちらは改定版である.
## 何をするか
android環境で,APIgatewayに3つの状況でリクエストを送信する.
– 1.認証・認可なしの場合
– [こちらの記事](https://qiita.com/sanjolin_chun/items/832fb1c6edfb3ea10ed5)
– 2.AWS cognito userpoolを使用する
–[こちらの記事](https://qiita.com/sanjolin_chun/items/7d95184a355b9141c9cb)
– [改訂版はこちら](https://qiita.com/sanjolin_chun/items/1b37107d576a38841537)
– 3.AWS co
[android java]AWSのAPIgateway + Cognito Userpoolを使用してみる v2
## はじめに
Cognito認証を使用した各種サービスへのアクセスに非常に困惑したので備忘録として情報を記載する
特にAWSMobileClientの仕様が理解できておらず困惑したので書き留めておく.※2024年1月頃に類似の記事をアップロードしたが,内容に誤りがあったためアーカイブした.こちらは改定版である.
## 何をするか
android環境で,APIgatewayに3つの状況でリクエストを送信する.
– 1.認証・認可なしの場合
– [前回の記事はこちら](https://qiita.com/sanjolin_chun/items/832fb1c6edfb3ea10ed5)
– 2.AWS cognito userpoolを使用する
– いまここ
– 3.AWS cognito userpool + idpoolを使用する
– [記事リンク](https://qiita.com/sanjolin_chun/items/b47b1ccf536b3c4324f0)本記事では,2のcognito userpoolを使用する場合について解説する.
前
日本語プログラミング言語MindをAndroidに移植した時の記録(ステップ3/9)
# はじめに
この記事はだいぶ前(2012年)にココログの「[キリーの日本語プログラミング](http://uemon3511.cocolog-nifty.com/nihongoprogram/)」に掲載したコラムですが、再編集してこちらにも投稿します。今となっては古い話ではありますが、OSによってプログラム言語(AndroidではJava)が決め打ちされている環境で規定と異なるもの(Mind)を走らせたことの記録としてお読みください。
# レイアウト系
レイアウトやビューなど表示のごく基本のところをまとめておく。
Javaのオブジェクト指向のコードをMindのコードにどうやって対応させるかが問題だった。
まずレイアウト系のオブジェクトの扱いだが、たとえばJavaでは、
“`java:
layout1 = new LinearLayout( this );
“`などと書いて「layout1」という名前のリニアレイアウトのインスタンスを作るが、このオブジェクト(Java内部ではポインタ?)をMindへ渡されても何も使い道が無い。さらには、Javaレベル
怒ってます。Androidの新リリース基準酷すぎる
:::note warn
この記事には、多分に毒成分が含まれます。
:::最近個人開発アプリを出したんですが、Google Playの審査が厳しすぎたので、怒ってます。
https://choitore.hp.peraichi.com/
## 1. 20人 14日間テスターって、集められるか〜〜!ぼっち、なめんな〜
“`
Googleは、2023年11月13日以降に
個人用デベロッパーアカウントを作成した方を対象に、
20人以上のテスターを集め、14日以上連続でオプトインしてクローズドテストを実施することを、
本番環境へのアクセス申請に進むための条件に加えました。
“`20人以上のテスターに、14日以上使ってもらうだと!!
14日も普通にダルいんですが、一番問題なのは20人の方。だって日本のAndroidシェア率知ってますか?
3割ですよ、20人集めるためには、67人友達必要。
友達67人って、リア充ですか?
リア充以外出すなっていうんですか?日本の成人男性の平均友達数知ってますか?
自分も知らんけど、「20人 。はい、オッケーです。チャチャっと声掛けして、
Android リンクをクリックできるHTMLを表示したい(kotlin)
## この記事でわかること
– HTMLを表示する
– リンクをクリックできる## 記事を書くきっかけ
アプリ開発中にhtmlを表示するタスクがありました。htmlの表示自体は簡単にできたのですが、リンクをクリックできるようにする時に少し詰まったので記事に残そうと思います。
参考リンク(https://medium.com/@giorgos.patronas1/endless-scrolling-in-android-with-jetpack-compose-af1f55a03d1a )## コード
“`kotlin
@Composable
fun HtmlText(html: String) {
val textColor = Color.Black
val linkColor = Color.Blue
val spannedText = HtmlCompat.fromHtml(html.trimIndent(), 0)AndroidView(
modifier = Modifier,
factory =
[Android]adbを使ってインストールしているアプリapkのpermissionを確認する方法
## はじめに
adbを使って端末にインストールしているアプリの権限を確認する方法をメモします。
自分のアプリであればmanifestを確認すればわかるがライブラリを複数利用している場合に把握できない場合があるのでこちらの方が確実です。## 方法
まずは端末をPCに接続します。
次に端末にインストールされているアプリ一覧を取得します“`shell
% adb shell pm list packages
package:com.google.audio.hearing.visualization.accessibility.scribe
package:com.google.android.overlay.permissioncontroller
package:com.google.android.overlay.googlewebview
package:com.android.calllogbackup
package:com.android.omadm.service
package:com.firebaseguide
pack
Meta QuestのExoPlayerを使って60fpsの動画をなめらかに再生する
# はじめに
3年ほど前に私が制作しているVR動画プレイヤーで実施した「ExoPlayerで動画をなめらかに再生する対策」について解説します。# 問題定義
## 検証動画
– [CIMG3991_quest_original_60Hz_60fps.mp4](http://www.amarectv.com/download/CIMG3991_quest_original_60Hz_60fps.mp4)この動画はMeta QuestのSDKに含まれる(現在はSDKとは別に配布されている)[サンプルプログラム](#ダウンロード)を使って[60fpsの動画](#ダウンロード)を再生した様子をレンズ越しに秒間480コマのハイスピードカメラで撮影したものです。
Quest 2でリフレッシュレートを60Hzにして撮影しています。
動画にはフレームカウンターが映っているので正常であれば映っているカウンターに重複や欠番はないはずですが・・・## 解析結果
動画からカウンター部分を切り取ったのが次の画像です。左上から下に向かって進んでいきます。
![CIMG3991_quest_origi
Chat-GEMINI: Google Gemini AI を使用した Android チャット アプリの構築
はじめに
はじめまして、Hridoy Chandra Das(リド)(@ihridoydas)です。
#### Google Gemini AI Model を使用してAndroidの簡単なアプリケーションを作成する方法を学びたいと思います。
Androidアプリのアーキテクチャ(MVVM)を使用したGemini AI搭載のAIチャットボットの構築方法について、丁寧にご紹介いたします。
Gemini AI モデルとは
Google Gemini AI モデルは、Googleが開発した自然言語処理のための先進的なモデルです。Geminiは、大規模なデータセットを用いて訓練され、人間のような文章を生成することができます。Geminiは、様々なタスクに応用できる汎用的なモデルであり、チャットボット、テキスト生成、質問応答システムなどのアプリケーションに使用されています。
「Gemini」は、当社の1.0 Proモデルを特に調整したバージョンと共に、現在40以上の言語で利用可能であり、230以上の国と地域で利用できます。
日本語で質問すれば
【Android】フォトピッカーにオーバーフローメニュー(三点リーダー)を表示したい
# 新しいフォトピッカーについて
[こちら](https://developer.android.com/training/data-storage/shared/photopicker)を参照してください。
Android 13より新たに追加されたインターフェースとなっています。
画面遷移が行われないのでUX観点的に非常に良いですね。# TL;DR
“`Kotlin
ActivityResultContracts.PickVisualMedia()
“`
ではなく、
“`Kotlin
ActivityResultContracts.GetContent()
“`
を用いる。# オーバーフローメニュー出したい
![alt text](https://raw.githubusercontent.com/aoi-stella/qiita/main/image.png)
上記は公式ドキュメントに載っているものですが、
インターフェース上部にオーバーフローメニューがあるのがお分かりでしょうか?
これを表示するだけなら簡単では?と思って気軽に試そうと思ったのですが実現方法の調査に
Android 9のWebviewだけWebページが表示されずに画面が真っ白になる件
# はじめに
もうタイトル通りそのまんまのトラブルなんですが、意外と原因特定に手間取りました# 概要
アプリのWebviewで表示しているWebページが、**Android 9だけ表示されない**という状況です。何も表示されず画面が真っ白になります。Android 10以降は何の問題もありません。いったんWebページが表示されたあとに真っ白になるならJavaScriptとかの問題かなという気がしますが、今回は最初から何も表示されません。状況的にWebサイトのSSL証明書あたりでトラブってるんじゃないか? というのが社内での最初の見立てでした
実際にそのWebサイトのSSL証明書を調べてみたら最近更新されていて、発行元のサイトに載っている対応情報を見るとAndroid 10以上対応となっていました。これはSSL証明書の問題ってことで終了…と思ったのですが
# Android 9の標準ブラウザ(Chrome) では表示される
ところが、Webviewで表示されなくなっているWebサイトを標準ブラウザのChromeで開いてみると、Android 9には非対応のSSL証明書を使っ
ReactNative WebViewのAPIのメソッドを確認してみた
ReactNative WebViewのAPIドキュメントを読んで、どのようなメソッドがあるかを確認しました。
https://github.com/react-native-webview/react-native-webview/blob/master/docs/Reference.md
## goForward() / goBack()
“`tsx
goForward() / goBack()
“`
ユーザーがウェブページ内で履歴を戻ったり進んだりするための関数です。`goForward()`は一つ前のページに、`goBack()`は一つ前のページに戻ります.## reload()
“`tsx
reload()
“`
現在のページを再読み込みするための関数です。## stopLoading()
“`tsx
stopLoading()
“`
現在のページの読み込みを停止するための関数です。## injectJavaScript(str)
“`tsx
injectJavaScript(str)
“`
WebView内でJavaScriptを実行するため
[android]アプリ起動時にスプラッシュ画面を挟む
LINEなどのアプリを起動した際に、初めに数秒表示されるスプラッシュ画面。
今回はそちらを実装してみたいと思います。
スプラッシュ画面を導入するメリットは以下になります。– ユーザーエクスペリエンスの向上
– アプリ読み込み待ちの不安感軽減2つ目のメリットが結構大きいと思います。
## 前提条件
開発環境:Android Studio Dolphin | 2021.3.1 Patch 1
言語:Java
テンプレート:任意(本記事ではEmpty Activityを使用)## 実装
スプラッシュ画面の導入方法はいくつかありますが、
今回はスプラッシュ画面用のActivityを作成する方法で実装していきます。### スプラッシュ画面で使用するアイコン作成
File > New > Vector Asset から作成できます。
デフォルトでresフォルダのdrawableに格納されます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520337/ef463fda-
KC3Hack2024参加記
# はじめに
Kawa_です。
KC3Hack2024で3度目のハッカソンチャレンジをしたら、これまでのどのハッカソンよりも楽しい経験ができたので記事に残します。
この記事を読んでくださる皆さんに、ハッカソンの楽しさ、KC3Hackの良さが伝わるとうれしいです。:::note warn
受賞に届かなかったので、受賞した経験が読みたい人には別の記事をご覧になることをお勧めします。
:::# これまでに
KC3Hack2024以前のハッカソンの記録もついでにしておきます。ここは本編ではないのでザックリいきます。
## 技育CAMPキャラバンin京都
2023年4月に開催されたハッカソンです。
これが初めてのハッカソンでした。
ReactとAIを使用した絵本の自動作成プロダクトの開発をしました。(未完成)
Web系を触るのがこの時点で初めて、チーム開発をするのも初めてと何もかも初めてだらけでした。
僕が担当したのはお問合せページ。正直必要のないタスクでしたが、何もかも初めてだった僕に配慮してくれたのだろうと感謝しています。
Reactの勉強としても、チーム開発の勉強としてもいい経験に
[Android] Jetpack Compose UI Component
![スクリーンショット 2024-01-09 21.15.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3639815/e6dde330-a4a8-9ea6-70ac-2efc6cb99d35.png)
# Jetpack Compose UIとは?
宣言型UIパラダイムに基づき、開発者がより直感的で簡潔な方法でAndroidアプリのUIを設計できるようにするもので、Kotlinを使用してUIコンポーネントを作成し、状態の変化に応じてUIが自動的に更新される。
### 長所
* “`宣言型UI“`:UIの状態に基づいてUIを宣言し、状態が変化するとシステムがUIを自動的に更新する。
* “`簡潔さ“`:Kotlin DSLを使用して、より少ないコードでより多くの作業を行うことができる。
* “`コンポジション“`:小さなコンポーネントを組み合わせて複雑なUIを実装することができる。
* “`再利用性“`:カスタムコンポーネントを簡単に作成して再利
reg-suitとroborazziを使用してVRTを行い、差分をPRに表示する
# はじめに
こんにちは、こんばんは、佐藤佑哉です。
本日は、Androidアプリ開発で使用されるRoborazziとReg-suitを用いて、VRTを行い、その結果をPRに表示する方法をGitHubActionsで実現していきたいと思います。## 本記事の動機
これは、[前回の記事の続き](https://qiita.com/dao0203/items/afebaeb10af0219e29a0)になります。
1番初めのVRTの記事でreg-suitを使用してVRTを行い、差分レポートを表示するところまでやりました。そして、前回はroborazziのVRTの結果をPRに表示するところまでやりました。
今回は、roborazziとreg-suitを組み合わせて、GitHub Actionsを使用して、VRTを行い、その結果をPRに表示する方法を紹介していきたいと思います。
前回のroborazziでは差分の写真やコメントをPRに表示することができましたが、reg-suitのサイトには動的に差分を表示する機能があり、サイトの方が見やすいと感じたので、それをPRに表示するようにしていきた
Android studioのUnit testやってみる
## はじめに
Android studioで簡単なUnit Testを行ってみました。
使用言語はJavaです。
Javaのテストといえば「JUnit」ですが、Android studioでもJUnitを用いてテストを行います。## テスト用のクラスを作る
テストで使用するクラスを作成します。
“`Hoge.java
package com.example.sampleapplication;
public class Hoge {
private String name;
private int age;public Hoge(String name, int age) {
this.name = name;
this.age = age;
}public int getAge() {
return age;
}public String getName() {
return name;
}public Strin
【Flutter】画面のスクリーンショット&録画を禁止する方法
## はじめに
みなさんこんにちわ!
Flutterを学び始めて1ヶ月の新米エンジニアの**はるさん**です。現在携わっている仕事にて、『 画面のスクリーンショット&録画を禁止する方法』 について
調査する機会がありました。
いわゆる漫画などのビューワーアプリや映像のビューワーアプリ、機密情報が載っているページなど
その画面の情報が撮影ないしは録画されてはいけないものがあると思います。調査の結果、screen_protectorというパッケージを使えば簡単に実装することが
できるとわかりました。
その実装方法や原理について簡単にまとめてお話ししたいと思います。尚、私はもともとSwiftを使ったiOSアプリケーション開発の学習者です。
UIKit半年、SwiftUI半年学習してきました。
そどちらかうというとiOS側からの視点で説明していきたいと思います。### 記事の対象者
– Flutterを学習し始めた方
– 元々はSwiftをメインで学習していた方### 記事を執筆時点での筆者の環境
– macOS 14.3.1
– Xcode 15.2
– Swift
【Android】Jetpack composeサクッと簡単に点線を描く【kotlin】
# はじめに
jetpack composeでサクッと簡単に点線を描く方法を紹介します。# 実践
val points = ArrayList
().apply{
for (i in 50 .. 1000 step 20) {
add(Offset(100f, i.toFloat()))
}
}Canvas(
modifier = Modifier.fillMaxSize(),
onDraw = {
drawPoints(
points = points,
pointMode = PointMode.Points,
color = Color.Black,
strokeWidth = 10f,
Android+RetrofitでHTTP通信するアプリの作り方(その2)
# Android+RetrofitでHTTP通信するアプリの作り方(その2)
[前回](https://qiita.com/aburagirio/items/c55617eaa497669982ad)の記事でサーバーと通信ができるようになりました。
ここから作り込んでいきます。
ですが、あれこれ組み込む前に、ひとつ仕組みを組み込みます。
Dependency Injectionです。
最初から組み込んでおくと、後々楽ができます。
## 目次
– [Android+RetrofitでHTTP通信するアプリの作り方(その2)](#androidretrofitでhttp通信するアプリの作り方その2)
– [目次](#目次)
– [記事を書く上で参考にした資料](#記事を書く上で参考にした資料)
– [Hiltとは](#hiltとは)
– [準備](#準備)
– [KSPの導入](#kspの導入)
– [最上位の`build.gradle`にKSPを追記する](#最上位のbuildgradleにkspを追記する)
– [`app