Android関連のことを調べてみた2022年12月17日

Android関連のことを調べてみた2022年12月17日

ElixirDesktop Androidを動かす – Windows11+WSL2に環境構築成功編

こんにちは!
プログラミング未経験文系出身、Elixirの国に迷い込んだ?!見習いアルケミストのaliceと申します。
今回は[ElixirDesktop android-example-app](https://github.com/elixir-desktop/android-example-app)をWindows11で実際に動かすための環境構築をしましたので、備忘録としてまとめたいと思います。

## 実行環境
Windows 11 Home(バージョン 21H2, OS ビルド 22000.1219)
WSL2 Ubuntu22.04

# ビルドに必要な条件
・Android Studioがインストールされていること。
・NDK(※Native Development Kitの略、Android で C や C++ のコードを使用できるようにするツールセット)がインストールされていること。
・git、npm、asdf がインストールされていること。
 └[前回](https://qiita.com/Alicesky2127/private/34234f456fbc3ded

元記事を表示

ElixirDesktop Androidを動かす – Windows11に環境構築失敗編

こんにちは!
プログラミング未経験文系出身、Elixirの国に迷い込んだ?!見習いアルケミストのaliceと申します。
今回は[ElixirDesktop android-example-app](https://github.com/elixir-desktop/android-example-app)をWindows11で実際に動かすための環境構築をしましたので、備忘録としてまとめたいと思います。
#### こちらはWindowsネイティブに環境構築をしようとした失敗編です。ちゃんと動いたやり方は[★こちらから★](https://qiita.com/Alicesky2127/private/5f9a1c6496b1c083720f)

## 実行環境
Windows 11 Home(バージョン 21H2, OS ビルド 22000.1219)

# ビルドに必要な条件
・Android Studioがインストールされていること。
・NDK(※Native Development Kitの略、Android で C や C++ のコードを使用できるようにするツールセット)がインスト

元記事を表示

Androidアプリ開発がちょっと楽になる Android Studio Tips

この記事は[ディップ株式会社 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/dip-dev) の17日目です??
恐ろしいことに今年もあと2週間ですね〜
## はじめに
こんにちは、@beniii0817です。今年ディップに新卒入社し、Androidアプリエンジニアとしてバイトルアプリの開発をしています。

アプリチームに配属されるまでAndroid Studioすら触ったことがありませんでしたが、まわりの方々にサポートしていただきながら日々楽しく開発をしています(感謝感激??)

今回はAndroidアプリ開発がちょっと楽になるAndroid StudioのTipsをご紹介します!
## ショートカット
よく使うショートカットです。特にアクション検索は大抵のことができるのでとても便利です。
– `⌘` + `Shift` + `A` [アクション検索]
– `Shift`を2回押す [全ファイル検索]
– `⌘` + `Option` + `l` [コードの整形]
– `control` + `R` [ビルド

元記事を表示

ML Kit Text Recognition v2で日本語認識Androidアプリ

こんにちは。短い内容で恐縮ですが、よろしくお願いします。画像が多いだけです。

# やってみたこと

– [ML Kit Text Recognition v2](https://developers.google.com/ml-kit/vision/text-recognition/v2
)を使って
– カメラアプリで撮った日本語の字をOCRっぽく認識する
– Androidアプリを作ってみました。

## NIVEA Moisture Lip

唇が渇きやすい私にとっての日用必需品。

![NIVEA.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100612/8a0769b3-1915-e481-6ef8-e709a4174ed9.png)

「UNSCENTED」はどこから?と探してみたら、本体にありました。
「湿」が出ませんでした、残念。「濃」も「氵(さんずい)」が取れちゃってますね。
「ホホバオイル」も「ホfオイル」ですね、残念。
いやいや、それでも縦書きなのに認識したことがすごいです!

元記事を表示

Android 13の新機能と必要な対応について

この記事は[FLINTERS Advent Calendar](https://qiita.com/advent-calendar/2022/flinters) 2022の17日目です。

こんにちは!株式会社FLINTERSでGANMA!のAndroidアプリの開発をしています大塚です。今回は、2022年の今年にリリースされたAndorid 13(API Level 33)の新機能やアプリでの必要な対応についてGANMA! Androidアプリで対応したことを中心にご紹介したいと思います。

## 広告ID

Google Play開発者サービスの広告IDを使用し、Android 13(API Level 33)以上をターゲットとしているアプリでは、`AndroidManifest.xml`内で以下の権限を宣言する必要があります。

“`gradle

“`

アプリがAndroid 13以上をターゲットとしていて、この権限を宣言してい

元記事を表示

AndroidのChrome 99以降の通信取得手順

AndroidのChrome99以降のバージョンから通信の取得手順が増えたので簡単にメモします。

※PortSwiggerの記事に下記の記載があるためroot権限が必要ない手順を取ります。
>In addition, you need to make further configuration changes in order to proxy HTTPS traffic from a Chrome browser that’s at version 99 or above.
>For further information on how to perform these steps, you can refer to the following external links. Please note that we’re not responsible for the content of these pages:
>
>出典: [Configuring an Android device to work with Burp Suite Professional](https://

元記事を表示

AndroidにおけるWebViewでのWebGLコンテンツの画面キャプチャについて

こんにちは。株式会社ZOZOでAndroidエンジニアをしております@zzt-osamuhanzawaです。[ZOZO Advent Calendar 2022](https://qiita.com/advent-calendar/2022/zozo)の17日目の担当をさせていただきます。
本記事ではAndroidのWebViewでのWebGLで描画されたコンテンツの画面キャプチャをする際の課題とどう解決したかのお話の紹介をしたいと思います。

## はじめに
まず、このWebViewの画面キャプチャというユースケース自体あまりないかもしれませんので軽くそこらへんの話をしたいと思います。現在、弊社では[ZOZOFIT](https://zozofit.com/)というフィットネスアプリを米国向けに展開しております。少し前にZOZOSUITを使って体の部位を計測するサービスがありましたが、その技術をさらに応用し、ZOZOSUIT2という計測用のハードを着用し、より身体部位の詳細な計測ができるようになりました。その新しいZOZOSUITとZOZOZFITアプリと併せて使い、ボディマネジメン

元記事を表示

Compose NavigationでParcelableを渡す際にキャッシュを使う

## はじめに
この記事は、Jetpack ComposeでSingle Activityのプロジェクトにおいて、Parcelableのような複雑な型を引数として渡す際に、キャッシュを使ってみたらどのようなコードになるかを検証するものとなっています。

## Compose NavigationでParcelableを渡す際の問題点
従来のnavigationでは、「引数をカスタムクラスにまとめてParcelableとして渡す」という方法がよく用いられていました。

一方で[Compose Navigation](https://developer.android.com/jetpack/compose/navigation?hl=ja)では、複雑な引数を渡すことはアンチパターンとして紹介されており、公式のドキュメントでは、**必要最低限の情報のみを渡してデータを取得する**べきであると説明されています。
> 移動時には複雑なデータ オブジェクトを渡すのではなく、ナビゲーション アクションの実行時に引数として必要最低限の情報(一意の識別子やその他の形式の ID など)を渡すことを強くお

元記事を表示

AndroidStudioのMemory Profilerを使ってComposeとAndroidビューシステムのメモリ使用量を比較してみた

これは [ZOZO Advent Calendar 2022](https://qiita.com/advent-calendar/2022/zozo) カレンダー Vol.6 の 17 日目の記事です。

# はじめに
この記事は「[Memory Profiler](https://developer.android.com/studio/profile/memory-profiler?hl=ja)を使ってみた」という点に主軸を置いています。その過程でComposeとAndroidビューシステムの比較を行なっていますが、両者の優劣を主張するものではありません。あくまで実装の一例の結果として捉えていただければと思います。

# 検証について
## 検証環境
– Android Studio Dolphin | 2021.3.1 Patch 1
– Pixel6a(OS13)

## 検証アプリ
Compose版とAndroidビューシステム版で2つのActivityを用意してそれぞれで同じようなレイアウトを実装しました。
アプリとしては2つの画面から構成されます。
1つ目の画面では「

元記事を表示

同一Activityで異なるレイアウトを表示させたい

# 概要
作成中の家計簿アプリで実装した内容を共有します!

# 実装内容
同じActivityに遷移するのだけど、押すボタンによって違うレイアウトで表示させたいなーと思いました。
![output.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629700/5f615cbe-3233-9777-e040-27fc1d0c1dc6.gif)

# 実装方法
方法としてたくさんあるとは思いますが、私は遷移の際に以下の方法で実装しました!
“`
①表示切り替えをするためのFlagを作成する
②遷移の際にFlagに値を渡す
③取得した値に沿って表示切り替えをする
“`

以下、コードです。
※ポイントのコードのみ挙げます。

①表示切り替のためのFlag作成
“`kotlin:BundleKey.kt
object BundleKey {
const val SPEND_INCOME_FLG = “SPEND_INCOME_FLG”
}
“`
②遷移の際にFlagに値を渡す
“`kotl

元記事を表示

【Android】ダークモードのレイアウト色崩れを防ぐ

テーマで`android:forceDarkAllowed`を`false`に設定すればよい。

“`themes.xml

“`

元記事を表示

ComposeでNavigationを実装する

# 初めに

[Android Advent Calendar 2022](https://qiita.com/advent-calendar/2022/android)の16日目の記事です。

今年自分が担当しているプロジェクトにJetpack Composeを導入しました!!
悪戦苦闘しながら、新規画面をComposeで書きつつも、既存の画面もComposeに置き換えてます。
そこで知見を得た、ComposeのNavigationについてお話ししています!

## Navigation Compose

Composeで画面遷移をする際は、[Navigation Compose](https://developer.android.com/jetpack/compose/navigation)を使用します。

Google公式が、ComposeのNavigationのpathway(= tutorial)を公開しているので、そちらも進めていただければ、理解できるかなと思います!

https://developer.android.com/codelabs/jetpack-comp

元記事を表示

Flutterでモバイルアプリ開発着手からリリース後まで。【感想】

この記事はリリースまでの一連のざっくりとした流れと感想を述べるにとどまり、年一回あるかないかぐらいの貴重なポエムとなっていることご了承ください。

約2年前の貴重なポエムはこちら

https://qiita.com/MasaoSasaki/items/bcdf9272437bdc6001c5

## 経緯
私はDMM WEBCAMPでRoRを学習したのち、インフラエンジニアに転職しました。
入社後の一年はインフラ系の入門的な資格を取得し、情シスなどを経てインフラ周りの業務知識を広く浅く習得しました。
インフラの知識・経験を得てゆくゆくはいつか開発エンジニアにという意志もあり、ご縁もあって今年の4月に開発職に転職しました。
入社後1ヶ月はLaravelのOJTがあり5月に入ると、上司から「スマホアプリどう?」と唐突に提案があり、少し迷いましたがその日のうちにやりますと返事をして、そこからはFlutterのOJTが始まりました。

余談かつ周りにはあまり言って来ませんでしたが、スクールの卒業前後には開発職になりたいという意志の裏に、Webアプリがある程度作れるようになったらモバイルアプリ

元記事を表示

Androidのプロジェクトで横断的にビルド速度を集計できるようにした話

# 目的
– アプリ開発において必ず発生するビルドという過程。
このビルドの状況を可視化することで、開発の現状を認識する

# やったこと
– Droidkaigi2022 @komatatsuさんのセッション「[はじめようビルドメトリクス](https://www.docswell.com/s/komatatsu/ZJD91Z-getting_started_build_metrics)」を参考にgradleからビルド時間をGASで計測する仕組みを導入しています。
## 追加点
### 集計用パラメータの追加
– 追加でビルドしたプロダクトの情報を追加

### シートの挿入処理
– 計測処理を他のプロダクトでも気軽に導入してもらえるよう、導入ハードルを極力下げる目的でGASのendpointは同じものを流用しています。
プロダクト名ごとにシートがなければ挿入、あればそのまま記録することで、他プロダクトで導入する際は`build.gradle`への記述追加のみで対応が可能です。

“`javascript
function getSheet(name){
//同じ名前のシ

元記事を表示

【Jetpack Compose】簡単なGuidesスタイルのOnboarding画面を作成する

この記事は、[リンクバルアドベントカレンダー2022](https://qiita.com/advent-calendar/2022/linkbal)の14日目の記事です。

# はじめに
よくスマホを使えば、多分新しいアプリケーションをインストールして初めて起動しようとするたびに、紹介や使用方法が表示されることがよくあります。 みなさんはそれらを何と呼びますか? チュートリアル、ウォークスルー、ガイド等?
これらは、Onboardingという一般名で知られています。 この記事では、[Jetpack Compose](https://developer.android.com/jetpack/compose)を使用して簡単に作成する方法を紹介します。

# Onboarding画面とは
Onboarding画面は、ユーザーがアプリケーションを起動したときに最初に目にするものです。[First User Experience (FUX)](https://www.bunkercreative.co.uk/posts/what-the-fux-is-ux-exactly.html)として知

元記事を表示

【Android】WorkManagerでHiltを使う

# まえがき
これはWorkManagerを使って,1日に1度のバックグラウンドタスクをスケジューリングするためのアプリ作ることを目的とします.

今回は,24時間分のユーザのアプリ使用履歴を取得してテキストとして記録するという機能を,1日に1度発火させるようにします.

あくまでも備忘録なモチベーションなのであしからず.

# WorkManagerとは
一応,WorkManagerについて触れておきます.

以下公式ドキュメント
>WorkManager は、永続処理のための推奨ソリューションです。アプリの再起動やシステムの再起動後もスケジュール設定が維持された場合、処理は永続します。ほとんどのバックグラウンド処理は永続処理で実現することが最善であるため、WorkManager が、バックグラウンド処理に推奨される主要な API です。

また,AlarmManagerも似たようなことができますが,これは絶亭に正確な時刻に発火が必要なものに対して使うものであり,WorkManagerに比べるとバッテリーに優しくないそうです.
また,デバイスがオンラインの場合,電源に接続されている場

元記事を表示

ONLYOFFICEでモバイル文書処理 〜アプリにモバイルエディタを導入する方法〜

紙文書の必要性は、とっくに過去のものです。文書処理のほとんどはデジタル化されています。ユーザーは外出先でドキュメントを扱う必要があるため、文字通り毎日ノートパソコンやデスクトップにアクセスすることなく、モバイルデバイスで文書処理は特に大きな需要を持っているのです。

この記事では、[ONLYOFFICE](https://www.onlyoffice.com/ja/)によるモバイル文書処理を取り上げ、モバイル統合がどのように機能するかをご説明します。

## アーキテクチャと技術スタック

ONLYOFFICE Document Server の通常のアーキテクチャには、以下のコンポーネントが含まれます。

* [server](https://github.com/ONLYOFFICE/server) – バックエンドサーバーソフトウェア層で、他のすべてのコンポーネントのベースとなるもの
* [core](https://github.com/ONLYOFFICE/core) – ファイルフォーマット間の変換を可能にするサーバーコアコンポーネント
* [sdkjs](https://

元記事を表示

AndroidでQRコードを読み取る

# QRコードを読み取るには?

最近はAndroid端末に標準でQRコードが読めるカメラアプリ、アプリ内でもQRコード読取の機能を持ったものがありますが、どうやって実現しているのでしょうか?調べてみました。

使用するライブラリが二種類あります。まずはカメラで画像を読み込むライブラリ。読み込んだ画像をQRコードとして解析するライブラリです。

## カメラライブラリ
本家 Android developer
[Choose a camera library](https://developer.android.com/training/camera/choose-camera-library?hl=ja)
ライブラリは3種類あって、よほどの理由がない限り、CameraXを使用しろと書いてあります。Cameara2はローレベルAPI(CameraXはCamera2の上に構築されている)なのでローベルのカメラの制御が必要な場合のみ使用するのがお勧めだと。

* [CameraX](https://developer.android.com/training/camerax?hl=ja)

元記事を表示

about librariesでライセンスを追加する

# 初めに
今回は`about libraries`ライブラリを使う際に自動では読み取ってもらえないライブラリのライセンス等を追加する方法を紹介していきます
### 本文
まず、プロジェクト直下に`config`という名前でフォルダを作成します。
その中に`libraries`と`licenses`という二種類のフォルダを作成します。
`libraries`には追加したいライブラリのjsonを、`licenses`には追加したいライセンスのjsonを作成します。
あとは`app`の`build.gradle`に対して以下のコードを追加します
“`kotlin
aboutLibraries { configPath = “config” }
“`
`configPath`に指定したフォルダを参照するようになるので、`config`となっている部分を自分のわかりやすい名称に変更することも可能です
### 最後に
自分が今回、ライセンス画面を作成するときに追加したいライセンスがあったのですが、一昔前の追加方法しか日本語記事が存在しなかったのでわかりやすいように備忘録として残しておきます

元記事を表示

【Jetpack Compose】React HooksとSWRに学ぶ宣言的データフェッチのすすめ

## TL;DR

[React SWR](https://swr.vercel.app/ja)をJetpack Compose向けに移植して公開したぞ!

https://github.com/KazaKago/swr-compose

## 前置き

もし今からモダンなAndroidアプリをゼロから書こうと思ったらおそらく[Jetpack Compose](https://developer.android.com/jetpack/compose)を採用したいという人が多いかと思います、いわゆる宣言的UIと呼ばれるやつですね。
![https://developer.android.com/static/codelabs/jetpack-compose-animation/img/5bb2e531a22c7de0_1920.png?hl=ja](https://developer.android.com/static/codelabs/jetpack-compose-animation/img/5bb2e531a22c7de0_1920.png?hl=ja)
この宣言的と呼ばれるト

元記事を表示

OTHERカテゴリの最新記事