Android関連のことを調べてみた

Android関連のことを調べてみた
目次

日本語プログラミング言語MindをAndroidに移植した時の記録(ステップ5/9)

# はじめに

 この記事はだいぶ前(2012年)にココログの「[キリーの日本語プログラミング](http://uemon3511.cocolog-nifty.com/nihongoprogram/)」に掲載したコラムですが、再編集してこちらにも投稿します。今となっては古い話ではありますが、OSによってプログラム言語(AndroidではJava)が決め打ちされている環境で規定と異なるもの(Mind)を走らせたことの記録としてお読みください。

# 画面遷移(他のアクティビティの起動)

 メイン画面から別の画面に遷移するためにはAndroidで言うアクティビティの起動を使うことになる。

 Mindで言うところの「プログラム実行」/「子プロセス実行」、Cなら fork()+exec() の感覚だろうと思っていたのだが、実際にやってみると想像とはかなり異なる部分があり、原理を理解したり実装するのに時間がかかった。

![20130619_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118036/3

元記事を表示

enableEdgeToEdgeを使ってテーマ切り替え時にステータスバーにも適切な色が反映されるようにする

## はじめに
ダークテーマに対応するにはどうしたら良いか調べていたところEdgeToEdge時にステータスバーの色が動的に反映されなかったのでどう実装したら良いかメモ。

## 動的に切り替わらないコード

“`
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

enableEdgeToEdge()

setContent { … }

}
}
“`
| テーマ切り替え前 | テーマ切り替え後 |
|:-:|:-:|
| ![Screenshot_20240323_232855.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130827/380ed014-72ac-732d-16f2-7be50a408915.png) |

元記事を表示

Preview版のAndroidStudioをいち早くDLする

これもしかしたら常識なのかもしれないのですが..個人的に少しハマったので書いておきます。

今朝Canary版のKoalaが出たのでウキウキでPreview版のDLページに行ったのですが、

DLページに行くとなぜかKoalaが出てこない
![スクリーンショット 2024-03-23 23.24.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145704/680d1a3d-98fe-b26f-74c5-04bf410e200a.png)

結果的に言語設定を英語にすると出てきました

![スクリーンショット 2024-03-23 23.27.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145704/1424843a-e11e-2b45-6b7b-89017420b05d.png)

元記事を表示

Requiring unknown module “134”の治し方

リアクトネイティブで発生した
下記エラーの治し方

Requiring unknown module “134”. If you are sure the module exists, try restarting Metro. You may also want to run yarn’ or “npm install”.
Requiring unknown module “134”. If you are sure also want to run yaty or arin eti. You may Error: Requiring unknown module “134”. If you are
sure the module exists, try restarting metro. tou may also want to run “yam” or “npm install’. at unknownModuleError (http:/10.0.2.2:8081 /index.bundle/&platform=android&dev=true& minity=falseBap

元記事を表示

【Flutter】QiitaAPIとOAuth2.0を使ってのログイン画面を作成する

## はじめに

みなさんこんにちわ、Flutter学習約2ヶ月の駆け出しエンジニアの*はるさん*です。

ログイン周りの実装を行う際にFirebaseAuthを使うとものすごく簡単に実装できますよね。
しかし企業や案件の全てがFirebaseを使っているわけではありません。
そこで今回はhttps通信を使ってQiitaAPIにアクセスし、OAuth2.0の仕組みを利用してログイン処理の実装を行う方法を書いていきたいと思います。

### 記事の対象者

– OAuth2.0での認証と認可を実装したい方
– https通信でAPIを呼び出す実装方法を学びたい方
– ある程度のアプリ開発経験(iOS,Android,Flutterなど)がある方
– flutterで小さなプロジェクトをいくつか作った経験のある方

### 記事を執筆時点での筆者の環境

– macOS 14.3.1
– Xcode 15.2
– Swift 5.9
– iPhone11 pro ⇒ iOS 17.2.1
– Flutter 3.19.0
– Dart 3.3.0
– Pixel 7a ⇒ Android

元記事を表示

ZXingをJetpack Composeで利用する

AndroidのXMLレイアウトをJetpack Composeに移行していて、QRコードリーダーのライブラリである`zxing-android-embedded`を使っている部分を移行することがありました。
しかしJetpack Composeで使っている情報が少なかったので備忘として簡単に残しておきます。
# 実装
“`Zxing.kt
@Composable
fun AdminClubMembershipScanScreen(navController: NavHostController) {
val context = LocalContext.current
val lifecycleOwner = LocalLifecycleOwner.current

val compoundBarcodeView = remember {
CompoundBarcodeView(context).apply {
val capture = CaptureManager(context as Activity, this

元記事を表示

Google Pixel3aにUbuntu Touchをインストールする

## はじめに
Google Pixel3aにUbuntu Touchをインストールする手順をまとめました。
スマホでUbuntuを使用できるようになります。

![GHgM-WeaQAAVCCL.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930094/8a0d62c3-ec37-6f18-3951-68f696ac5ac2.jpeg)

:::note warn
この記事での操作は様々なリスクを伴いますので、自己責任で実施してください。
・スマホ内のデータは初期化されます。
・OSのダウングレードを伴いますので、セキュリティが脆弱になる可能性があります。
・最悪の場合、スマホが文鎮化する可能性があります。
:::

## 実行環境
**PC**
Windows 10 pro

**スマホ**
Google Pixel3a
Android version 12.1.0

## 手順
[ubuntu touchの公式サイト](https://devices.ubuntu-touch.io/inst

元記事を表示

Jetpack ComposeでfontSize設定はどうするのが良いのか

Jetpack Composeでフォントサイズを設定するときに、どう書くのがベストなのか分からなかったので調べてみました。
[こちらのStack Overflow](https://stackoverflow.com/questions/67522145/text-composable-dimensionresource-not-working-as-fontsize-parameter)で議論されていましたが、書き方によってスケーリング、つまりOSのフォントサイズを変更した際の挙動に違いがあるみたいです。
ただいまいち結論がわからなかったので自分でも調べてみました。

# 先に(多分)ベストプラクティス
上記StackOverflowでも言われていますが、テーマを設定できる場合はそちらを使った方が良いです。
Material Design3は不勉強なのですが、以下のようにTypographyクラスを使っておくとアプリのデザインの統一感に繋がるのでこれが一番良いと思います。
“`Type.kt
val typography = Typography(
headlineSmall

元記事を表示

Next.js Learnのアプリをデスクトップアプリ化とスマホアプリ化してみた

# Next.js Learnってなに❓
Googleさんの試験運用中生成AIの解説がわかりやすかったので、拝借🙏

>ReactをベースにしたフレームワークであるNext.jsの諸知識や思想を学ぶことができる無料のチュートリアルです。
このチュートリアルでは、請求書を管理するダッシュボードを作成しながら、Next.jsの基礎を学ぶことができます。
認証機能やDB連携、PaaS(Vercel)の活用など、実践的な内容も含まれています。
JavaScriptではなくTypeScriptを使用します。
また、チャプターの途中には、それまでの説明が理解できているかをチェックする簡単な択一式のクイズが用意されています。

公式のページはこちら👇
[Learn Next.js | Next.js by Vercel – The React Framework](https://nextjs.org/learn)

## 💻 試した環境と該当リポジトリ
[利用したリポジトリ](https://github.com/TakaraShinya/nextjs-dashboard)

“`
Apple

元記事を表示

ViewPager2のrequestDisallowInterceptTouchEventを実行してもViewPager2には効果がない件

AndroidのViewにおいて、タッチイベントは子の方が優先的に処理できますが、親Viewは子Viewが`onTouchEvent`を処理している中、`onInterceptTouchEvent`が呼び出されており、trueを返すことで処理を奪うことができます。
例えば横スクロールのViewAの上に、縦スクロールのViewBを配置するという画面構成の場合、ViewAは`onInterceptTouchEvent`で操作を監視し、操作方向が横方向であると判定すると、ViewBから操作の優先権を奪うことで、縦横両方の操作が両立できるという仕組みになっています。

概ねこれでうまくいくのですが、場合によっては親View側で処理を奪ってほしくない場合があります。その場合に使うのが、`requestDisallowInterceptTouchEvent(true)`です。
名前の通り、このメソッドがコールされたView(およびその親のView)はInterceptしなくなり、子はタッチイベントの優先権を奪われなくなります。

例えば、チョット複雑なレイアウトを作るとします

– 横スクロールの

元記事を表示

脱初心者を目指す!Android Studioの便利な機能やショートカットまとめ

## はじめに

こんにちは。
去年の秋までクロスプラットフォームなアプリ開発を行っており、その後ネイティブ言語(SwiftやKotlin)によるアプリ開発を担当するようになりました。
ネイティブ言語でのアプリ開発を始めて約半年、色々なことをキャッチアップしましたが、その中でとくに役立ったのはIDEの便利な機能やショートカットでした。

そこで、今回はAndroid Studioにしぼって、この半年間でよく使ったもの、自分で調べて便利だなと思ったもの、さらにはモブプロやペアプロした中で他のエンジニアから見聞きしたものを記事にまとめます!
Android Studioを使っている人はもちろん、これから使おうとしている人にも役立てば幸いです。

## この記事の対象者

– Android Studioでのアプリ開発を始めたての人[^1]
– Androidアプリ開発をするにあたって最低限の便利な機能やショートカットを知りたい人

[^1]: Android Studioが使ったことあれば問題ありません!さらに[Android Studio UI](https://developer.an

元記事を表示

メモ:バルミューダフォンのデフォアプリ無効化

アプリ(ただのショートカットっぽいのでおそらく不要)
パッケージ名:
com.balmuda.phone.blmb.shortcut
com.balmuda.phone.blmbrecipe.shortcut
com.balmuda.phone.blmbtech.shortcut
標準ではできないので、パソコンとつなぎadbコマンドを有効にして(要ググる)無効化する。

元記事を表示

日本語プログラミング言語MindをAndroidに移植した時の記録(ステップ4/9)

# はじめに

 この記事はだいぶ前(2012年)にココログの「[キリーの日本語プログラミング](http://uemon3511.cocolog-nifty.com/nihongoprogram/)」に掲載したコラムですが、再編集してこちらにも投稿します。今となっては古い話ではありますが、OSによってプログラム言語(AndroidではJava)が決め打ちされている環境で規定と異なるもの(Mind)を走らせたことの記録としてお読みください。

# イベントリスナー

 レイアウトの場合と似た話だが、Java側のオブジェクトをMind側に伝えても意味が無いので簡単な仕組みで両者間で連絡が取れるようにする。

![20130603eventlistnersample_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118036/7de8b7d5-38e3-e618-f178-1e78d619672e.png)

## クリックイベントリスナーの登録

 まずクリックリスナーの登録は以下のように行う。

元記事を表示

【Jetpack Compose】状態管理のためにremember、rememberSaveableの違いとSaverの活用

Jetpack Composeにおける`remember`、`rememberSaveable`、そして`Saver`の使用と、それらが状態管理にどのように役立つのかについて詳細に解説します。

### `remember`とは?

– **目的**: Composable関数内で状態を保持するために使用されます。

– **特徴**: `remember`はコンポジションが破棄されるまで(例えば、Composable関数がナビゲーションによって画面から削除される、アクティビティが破棄されるなど)その状態を保持します。

– **限界**: アクティビティの再作成(デバイスの回転やバックグラウンドからの復帰など)では状態が保持されません。再作成時には初期化コードに戻ります。

### `rememberSaveable`とは?

– **目的**: `remember`と同様に状態を保持しますが、アクティビティの再作成を越えて状態を保持することができます。

– **特徴**: `rememberSaveable`は、システムによる再作成(デバイスの回転など)後も状態を復元するために内

元記事を表示

AndroidタブレットにTermuxを導入する

# 首記の件は、多くの可能性を秘めています。

この小さなアプリケーションは、デバイスを機能するLinux環境に変えることができます。例えば、

– Calcurseを使用すれば、予定管理が簡単になります。
– Todo.txtは、日々のタスクを整理し、
– Gitはプロジェクトのバージョン管理を助けます。
– Rcloneはクラウドストレージへのアクセスを提供し、
– Yt-dlpはお気に入りの動画をダウンロードするためのツール。
– Node.jsやHonkitは、静的サイトを作成する際に役立ちます。

## Termuxはさまざまなパッケージや…

カスタマイズオプションを提供しています。

### あなたがプログラマーであれば、

– Pythonや
– Rubyなどの言語を

インストールしてコーディングすることができますし、

### システム管理者であれば…

– SSHや
– Mosquitto(MQTTブローカー)などの

ツールを利用してリモートで作業することも可能です。

## TL;DR

Termuxを使用することで、これらすべてのツールが手のひらの

元記事を表示

単体テストで、日付を扱う

日付を扱った単体テストを実施することがあったので、その際にモック化したり色々問題があったので、まとめてみました。
Hiltでの単体テストに関しては、こちらの記事を[参考](https://qiita.com/shimizu-you/items/ad8ad91b9b27c227d2a5)してください。

### Mockkを導入

“`kotlin
testImplementation(“io.mockk:mockk:1.13.9”)
“`

### 日付ライブラリーの導入

日付関連のライブラリーとして、Androidに最適化された[threetenbp](https://github.com/ThreeTen/threetenbp)を使用します。
ただし、単体テストをする際に注意点があります。
単体テストでは、threetenabpが使えないため、除外してthreetenbpを使用する必要があります。

“`kotlin
implementation(“com.jakewharton.threetenabp:threetenabp:1.4.6”)
testImplementa

元記事を表示

Android端末でOpen Interpreterを使用する方法

Android端末で高性能なAIアシスタントを使いたいと思ったことはありませんか?Open Interpreterを使えば、ChatGPTのようなAIとAndroid端末上で直接対話することができます。この記事では、Android端末へのOpen Interpreterのインストール方法を詳しく解説します。

こちらの記事もおすすめ

https://hamaruki.com/its-easy-even-for-beginners-how-to-connect-via-ssh-with-android-termux/

## Open Interpreterとは

Open InterpreterはオープンソースのAIアシスタントアプリケーションで、OpenAI APIを利用してユーザーとの対話を行います。PC版に加えて、Android版も開発されています。

Android版Open InterpreterはTermuxというターミナルエミュレータアプリ上で動作します。Termuxは追加の設定なしにAndroid端末上でLinux環境を提供するアプリで、Open Inter

元記事を表示

使用できない状態となった楽天ポイントを使用できる状態に修正した話

事の経緯は、嫁のキャリアメールを普通のメールアドレスに切り替えようとしたことが始まりです。

最初にキャリアメール(仮に**AAA@com**とします)のアドレスに紐づけて楽天アカウントを作成していました。そして、このキャリアメールのアカウントをやめて例えばgmail(仮に**BBB@com**)のようなメールアドレスで楽天アカウントを作成しようとしました。

### 結論からすると楽天会員情報ページでメールアドレスをAAA@comからBBB@comに変更すれば良かったのです。
![タイトルなし.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/495919/282672d0-5af8-31ba-fc23-59c9eac546fc.jpeg)

そうしないで、**BBB@com**として楽天アカウントを新規作成してしまい悲劇は起こりました。
嫁は、楽天カードを作成し入会ポイントをもらったのですが、**BBB@com**には入会ポイントは入らず**AAA@com**に入会ポイントが付与されたのです。

それ

元記事を表示

ずんだもん認知シャッフル睡眠アプリを作ろうと思ったら大変だった

ずんたもんが読み上げる認知シャッフル睡眠の動画をよく聴くので、voicevoxで単語を読み上げるアプリを作ってみようと挑戦しましたが、アプリ初心者なので各種ポイントでつまずいてしまい思ったより大変でした。
はまったポイントを記録したいと思います。順不同です。

## これをやったら動いた
### voicevox_coreのAARファイルをアプリのプロジェクトのdependencyに追加する
aarがビルドされているのはプレビュー版のみのようです。
https://github.com/VOICEVOX/voicevox_core/releases/tag/0.15.0-preview.16 (2024/02現在最新のプレビュー版ビルド)
から `model-0.15.0-preview.16.zip` をDL・解凍し、
https://developer.android.com/studio/projects/android-library#psd-add-aar-jar-dependency
こちらの手順通りにaarファイルをdependencyに追加する
つまずきの8割がcore

元記事を表示

初心者でも簡単!AndroidのTermuxでSSH接続する方法

こんにちは!今回は、AndroidのTermuxアプリを使ってSSH接続する方法を初心者向けに詳しく解説していきます。Termuxを使えば、Androidスマホやタブレットからリモートのサーバーに接続できるようになります。

こちらの記事もおすすめ

https://hamaruki.com/how-to-use-apollonstreamapi-to-stream-android-screen-capture-in-real-time/

https://hamaruki.com/create-a-gemini-app-with-android-studio-and-check-its-operation-on-the-actual-device/

## Androidにアプリのインストール

### Termuxアプリのインストール

まずは、Android端末にTermuxアプリをインストールしましょう。GooglePlayストアから入手できるバージョンは古いので、以下のリンクから最新版をダウンロードしてください。

https://github.com/termux

元記事を表示

OTHERカテゴリの最新記事