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

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

THETA PLUG-IN STOREへのプラグイン公開手順(リリースビルド編)

## はじめに
リコーの @KA-2 です。

弊社では[RICOH THETA](https://theta360.com/ja/)という全周囲360度撮れるカメラを出しています。
RICOH THETA VRICOH THETA Z1は、OSにAndroidを採用しています。Androidアプリを作る感覚でTHETAをカスタマイズすることもでき、そのカスタマイズ機能を「プラグイン」と呼んでいます(詳細は本記事の末尾を参照)。

今回は、[THETA PLUG-IN STORE](https://pluginstore.theta360.com/)に皆様の成果物を公開する手順を2回に渡って解説していきます。

– THETA PLUG-IN STOREへのプラグイン公開手順(リリースビルド編) ※本記事です
– THETA PLUG-IN STOREへのプラグイン公開手順(公開手続き編)※公開後にリンクを貼ります

![00_TOP.png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

Pepper SDK入門(35) LocalizeでPepperに相対的な立ち位置を自覚してもらう

#はじめに
なんだか世知が激辛そうなタイトルですが、あくまでも物理的な意味であり社会的な話は登場しません?☕️
PepperはLocalizeAndMapアクションで、ExplorationMapを内部に配置します。つまりLocalizeAndMapアクションを使って周辺環境の地図を作成した後、Localizeで相対位置の情報を保持するのですね。(極局所的)土地勘ゲットだぜ?⚡️
ExplorationMapはLocalizeアクションのビルドに使用されます。Localizeアクションが実行されている間、相対的な位置の軌道は保持されたままです!消失したりそこからずれたり、転がったり煮られたりすることはないため安心してください?
コード上では以下のようになります↓

“`java
//探索マップを取得
ExplorationMap explorationMap = …;

//アクションをビルド
Localize localize = LocalizeBuilder.with(qiContext)
.withMa

元記事を表示

Spinnerで同一項目が選択されたことを検知したい same position tapped of spinner

#やりたいこと
AndroidのSpinnerには、同一項目が選択されたタイミングを知る術がなく必須の項目なのに仕方なく未選択という項目を入れることになってしまう場合等があるかと思います。

#解決策
最も手っ取り早く簡単に解決する方法がカスタムのSpinnerクラスを作成することです

“`kotlin:CustomPtogramSpinner.kt
class CustomProgramSpinner @JvmOverloads constructor(context: Context?,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0)
: AppCompatSpinner(context, attrs, defStyleAttr) {

override fun setSelection(posit

元記事を表示

食べログアプリでの技術的負債との向き合い方

こんにちは。食べログでAndroidアプリ開発をしている [@sada](https://twitter.com/sadashi_ota) と申します。
この記事は 食べログ Advent Calendar 2021 22日目の記事です。

# はじめに

先月、[TECH HILLS #1](https://techplay.jp/event/836236) というイベントで登壇させていただきました。

https://techplay.jp/event/836236

その時の資料はこちらです。

https://speakerdeck.com/sadashi/shi-herokuahuritefalseji-shu-de-fu-zhai-tofalsexiang-kihe-ifang

今回は上記資料でも触れている「レガシーコードと向き合う辛さ」についてお話できればと思います。

イベントにご参加いただけた方は発表やその後のパネルディスカッションなどでお話ししたような内容も含まれるかと思います。その点はご了承ください。

# 簡単にチーム紹介

私は食べログシステム本部アプリ開

元記事を表示

apk ファイルと aab ファイルについて調べてみた

# TL;DR

App Bundle で問題なく開発できます。ていうかこれからリリースする人は AppBundle 推奨って Google も言ってる。

# 概要

かつて社内用に調査してまとめたものが褒められてうれしかったので公開してゆくスタイル。

# Android アプリのパッケージ形式

Android アプリのパッケージ形式には 2 つのタイプがある。

– .apk
– .aab

難読化を施した場合、.apk ファイルは mapping.txt を取得しておかないと難読化を解除できない。
一方で .aab は mapping.txt の内容をすでに含んでいるという話がある。

アプリをリリースする際には .aab で行うように Google が推奨しているが、__開発時にエラーログを読みやすくするためにはどちらの方式が良いか__ を決めるために、どちらのファイル形式が良いか調査を行った。

# 調査内容

##  Google Play ストアにアップロードできる形式の種類

– APK ファイル (.apk)
– [APK 拡張ファイル](https://de

元記事を表示

Product Flavor を複数のアプリモジュールに展開したお話

# はじめに

Android用のTwitterクライアントやmixiビューアといった個人開発アプリ[^1]をいくつか開発しています。

[^1]: 法人化していますが実質開発メンバー1人の個人開発です。

Twitterアプリの TwitPane は [無料版](https://play.google.com/store/apps/details?id=com.twitpane&referrer=twitpane.com)、[有料版](https://play.google.com/store/apps/details?id=com.twitpane.premium&referrer=twitpane.com)、[Kindle版](https://www.amazon.co.jp/takke-TwitPane-for-KindleFire/dp/B00LI9AWTG) という3種類を同一ソースから生成しています。

2013年頃から開発しているので `Eclipse+ADT` 時代にどうやっていたのかはもう既に覚えていませんが、`Android Studio` に移行して `Pro

元記事を表示

[Android] Roomの@RawQueryの使いどころ

## 利用すべきでないケース
使いどころの前に、まず使うべきではないケースについて説明します。[RawQueryのドキュメント](https://developer.android.com/reference/androidx/room/RawQuery)には以下のサンプルコードが記載されていますが、どれも基本的には利用すべきではないです。

– Observable Queries
– Returning POJOs
– POJOs with Embedded Fields
– Relations

適切にプレースホルダを利用すれば、これらのほとんどのクエリを他の`@Query`等のアノテーションでも実現できます。`@RawQuery`を利用してしまうとコンパイル時のバリデーションが出来ないため、Roomのメリットを捨てることになります。

## 使いどころ
Roomの他の機能を利用して、どうしても実現できない場合には`@RawQuery`の出番です。

### PRAGMA
[PRAGMA](https://sqlite.org/pragma.html)の利用が`@RawQuery

元記事を表示

Jetpack Composeが正式版になったのでQiitaビューアに機能を追加してみた

この記事は[NTTテクノクロス Advent Calendar 2021](https://qiita.com/advent-calendar/2021/ntt-tx)の21日目です。

こんにちは、NTTテクノクロスの戸部@etctaroと申します。

普段は社内でモバイルアプリ開発関連の技術支援や社内向けのノウハウ記事執筆、社内研修講師活動、社内コミュニティ活動などを行なっています。
社内研修でも本記事のテーマである[Jetpack Compose](https://developer.android.com/jetpack/compose?hl=ja)を取り扱っています。

# はじめに
– Jetpack Composeは今年7月に正式にリリースされた、Androidアプリの宣言的UIフレームワークです。
– 一言で言えば、新しいUI開発手法となります。
– 12/1現在のStable版は1.0.5であり、次のバージョンである1.1系についても、ベータ版になっています。

※という、ざっくりな説明を **今年たくさんした気がします** 。

# 今回のサンプルコードにつ

元記事を表示

【android】折りたたみ式端末対応

この記事は[and factory.inc Advent Calendar 2021](https://qiita.com/advent-calendar/2021/andfactory) 21日目の記事です。
昨日は [@ticktakclock](https://qiita.com/ticktakclock) さんの [【Jetpack Compose】お気に入りボタンのタップアニメーションの作り方](https://qiita.com/ticktakclock/items/e671733d1c5daac10ac7) でした。

# はじめに
android10で折りたたみ式端末のサポートが正式に始まり、OPPOから13万円台の折りたたみスマホが発表されるなど、折りたたみ端末が身近になりつつある昨今。
GoogleDevelopers[折りたたみ式端末に対応したアプリの作成](https://developer.android.com/guide/topics/ui/foldables?hl=ja)から、どう対応していくのかを見てみます

# [序文](https://develo

元記事を表示

Androidでもシェーダーでモニョモニョしたい!

こんにちは!tkhsktです。
昨今のオシャレWeb界隈ではWebGL(OpenGL)がたくさん使われていますが、AndroidやiOSではあまり話を聞かないな〜と思ったのでやってみました。

## OpenGL ES実行環境の構築

AndroidでOpenGL ESを使う場合、`GLSurfaceView`を利用することが多いと思います。が、`GLSurfaceView`では生に近いOpenGLの設定を書く必要があるため、OpenGLの知識がないとかなりキツいです。

### ShaderView

そんなOpenGL ESの辛さを(一部)解決してくれるのが、[appspell/ShaderView](https://github.com/appspell/ShaderView)です。これは、[TextureView](https://source.android.google.cn/devices/graphics/arch-tv?hl=ja)をベースに作られたカスタムビューで、シェーダーを簡単に扱うことができます。
本記事では、この`ShaderView`を使ってモニョモニョし

元記事を表示

[Android]Applicationクラスとは何か?

##この記事は
質問箱でも、聞かれたことのある

「Applicationクラスってなんですか?」

に対する回答を記事にまとめてみます。
##Applicationクラスとは?
まず、Applicationクラスを「全体」のことと捉えてください。
そうすると、イメージがつくかなと思います。

実際の動きとしては、Androidアプリが起動した時に最初にインスタンス化されるクラスです。

このクラスでは、アプリ全体で用いる設定をこのクラスで行います。
例えば、RoomなどのローカルDBの呼び出しやHiltのトリガーなどなど。

ちなみに、不要であればApplicationを継承したクラスをわざわざ作らなくても大丈夫です。

##まとめ
Applicationクラス is 全体.
##参考
https://guides.codepath.com/android/Understanding-the-Android-Application-Class

元記事を表示

【Flutter】AdMob広告のアプリID,ユニットIDをdebug/releaseビルドで切り替える

ちょっと想像してみてください。

Flutterで作ったアプリで儲けたい!そう考え、AdMob広告をつけることにしたあなた。
開発中エミュレータを使用するため、AdMob広告のIDはテスト用のものを設定します。

アプリを頑張って作って、審査も通って、よし、リリースだ!
そんな時ふと気づきます。
「あれ、AdMob広告のID,本番用にしたっけ。。。?」

こんな経験、ありませんか?(私はあります。)

IDを変えるのを忘れなければ済む話ではあるんですが、
リリースにあたっての作業はかなり多く、IDを変える、のような細かいタスクは忘れやすいです。
また、IDを変える作業は結構手間でミスも発生しやすいです。
なので、この作業、自動でできるように検討しました。

本記事では、AdMob広告のアプリID,ユニットIDをdebug/releaseビルドで切り替える方法について解説します。
具体的には以下を解説します。

– アプリID の切り替え
– iOSの場合
– Androidの場合
– ユニットIDの切り替え

設定はちょっと手間ですが、一度やってしまえば、自分で変え

元記事を表示

FlexboxLayoutManagerを利用した際のEditTextのfocusについて

会社ではRecyclerViewにいろいろなサイズ幅のViewを入れるフリーレイアウト機能みたいなのがあり、そこでFlexboxLayoutManagerを利用してRecyclerViewを利用しています。
その際にEditTextが入った時にフォーカスが外れるという現象に遭遇しちょっと調べた内容をまとめておきます。

下記条件が揃った時のみですが、フォーカスが強制的に外れます。。。
1. softInputModeをadjustResize
2. EditTextをキーボードが隠れる位置に配置

LinearLayoutManagerの場合
linearLayoutManager

FlexboxLayoutManagerの場合
linearLayoutManagerFlutterアプリに(ホーム)ウィジェットを追加してみる+α

この記事は [NTTテクノクロス Advent Calendar 2021](https://qiita.com/advent-calendar/2021/ntt-tx)の20日目です。

こんにちは。NTTテクノクロスで、エバンジェリストとして活動している神原([@korodroid](https://twitter.com/korodroid))です。実は、本日投稿予定だった弊社の別メンバがやむを得ない事情により、担当できなくなりました。同記事を楽しみにしてくださっていた皆様、申し訳ございません。代わりに、私が20日目をお送りします。

自己紹介は、投稿済みの14日目の私の別記事[「海外活動を通じて得た英語の学び方+α」](https://qiita.com/korodroid/items/193788fd1a911be77725)をご覧いただけますと幸いです。よろしければ、記事も合わせて読んでいただけたらうれしいです。

それでは、今回の内容に入っていきます。先日、 **Flutterでアプリを作っていて、このアプリに(ホーム)ウィジェットを追加したいという衝動に駆られ、実現しま

元記事を表示

ニフクラmobile backendの新Kotlin SDKについて

4年ぶりのqiita記事になりますが、今回FCJTが開催している[アドベントカレンダー](https://qiita.com/advent-calendar/2021/fjct)に参加するために、記事を書くことになりました。ということで、20日目の記事となりますが、どうぞよろしくお願いします。
昨日は[ysaotome](https://qiita.com/ysaotome)さんのがっちり内容となった [ニフクラ上の Docker ホストへ VMware Tanzu Community Edition(TCE) のマネージドクラスタを構築してみた(V0.9.1)](https://sotm.jp/2021/12/18/vmware-tanzu-community-edition-v091-managed-clusters-on-docker-on-nifcloud/)内容でしたが、今回はかなり初心者向けの内容になります。ニフクラmBaaSが2年ぶりに新SDKとなるKotlin SDK (ncmb_kotlin)を対応し、12月中に正式にリリースすることになりますので、こちらについていく

元記事を表示

AppLinksのサポート先を複数登録した場合の挙動

# 何が問題か

曖昧さ回避ダイアログが出てしまう。
![Screenshot_2021-10-15-16-20-37-857_android.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429030/e5737e50-ea22-6aec-9a76-3f27eb11ec64.jpeg)

AppLinksを設定済みで、SHA256証明書はyyy.page.linkと、xxx.page.linkに連携してます。

Android8の場合はアプリ設定画面にて”Open supported links”の設定がデフォルトで”open in this app”に設定されるのですが、
Android11の場合は”ask every time”となってしまうようです。

## Android11

毎回ダイアログで開くアプリを聞かれる
![Screenshot 2021-10-14 133304.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws

元記事を表示

フィーチャーで気にされる[戻る]ボタンについて

# はじめに
この記事ではGoogleゲームアプリのフィーチャーの審査においての、[戻る]ボタン(※)にフォーカスを絞ってお話しさせていただこうと思います。
[Developer向けガイドライン](https://developers-jp.googleblog.com/2017/07/standard-back-key-navigation-on-android.html)内でも記載されており、個人的に重要な要素として考えています。
実装的にというより、テストを依頼された際に観点を持っておく、期待値としての情報を持っておく目的で、参考になれば幸いです。

※バックキー、⇦ボタンなど呼称がありますが、この記事では[戻る]ボタンと記載いたします
####読了までの時間
・約5分
####ターゲット
・これから[戻る]ボタンのテストを行うが、明確な期待値をもっていない方

# [戻る]ボタンの動作について
Androidのナビゲーションバーにある[戻る]ボタンをタップした際の動作で好ましいものとしては、分かりやすく言うと下記のような動作が担保されていると指摘を受けにくいと感じます。

**

元記事を表示

【Jetpack Compose】 Molecule を使って Flow → StateFlow に変換する

## はじめに

本記事は [with Advent Calendar 2021](https://qiita.com/advent-calendar/2021/with) 20日目の記事です。

こんにちは [with](https://with.is/welcome) でAndroid エンジニアをしている石田です。Jetpack Compose がプロダクトで使えるようになって以来、 **「状態」** を扱うことが多くなったように感じる今日このごろです。

というわけで今回は状態にまつわるお話です。

## Composeで状態を扱う時に困ること

状態を扱うとき、ViewModel では `StateFlow` 、 Compose では `State` を使用します。 `StateFlow` は `collectAsState` を使って 簡単に `State` に変換することができます

困るのは `Flow` を `State` に変換したい場合です。 `StateFlow` と同様に `collectAsState` を使っ

元記事を表示

Jetpack Composeの学習にBloomはどう?

今年の7月にJetpack Composeが正式リリース(1.0)となり、本格的にプロダクトに利用されるようになってきました。
がっつり使っているよ!という方も、これから勉強していくよ!という方もいると思います。
Jetpack Composeの勉強にとても役立った課題について書かせていただきます。

## Bloom is :thumbsup:

[Android Dev Challenge: Week 3 – Speed round](https://android-developers.googleblog.com/2021/03/android-dev-challenge-3.html)のAPAC向け課題が**Bloom**というアプリを時間内に作成するというものでした。
この課題の良かった点を上げていこうとおもいます。

### Android Dev Challenge – Jetpack Compose
2021年の5月におこなわれたAndroid Dev Challengeは、Jetpack Composeを利用し限られた時間内に課題にそったアプリを作成し提出するとい

元記事を表示

【Android】Jetpack Composeでよく使うプロパティをまとめてみた

こちらの記事は[食べログAdvent Calendar2021](https://qiita.com/advent-calendar/2021/tabelog)の20日目の記事になります。

今年の8月に食べログのAndroidエンジニアとして入社しました、柴犬好きな @hokutonikukyu です!
食べログでは、主にUI/UX周りの開発・修正を担当しています!

AndroidのJetpack Composeが追加されてしばらく経ちますが、まだがっつり触れることができていないです、、、
今回は自身のメモがてらComposeのViewプロパティについて少しだけまとめてみようかと思います!!

#はじめに
JetpackComposeとはどういうものなのか、軽く触れます。
以下、[ **公式ドキュメント** ](https://developer.android.com/jetpack/compose/why-adopt?hl=ja)からの抜粋です。
> Jetpack Compose は、ネイティブ UI をビルドするための Android の最新ツールキットです。少ないコード、

元記事を表示

OTHERカテゴリの最新記事