- 1. 【Androidアプリリリース】パワポでフィーチャーグラフィックを作成する方法
- 2. Androidアプリがバックグラウンドの時にDialogFragmentを表示しようとして落ちる時に試したこと
- 3. Navigationの実装方法まとめ
- 4. RedmiNote9sにMIUI12.5のGame TurboでEnhanced Audioを表示させる (動くとは言っていない)
- 5. fragment勉強記録1
- 6. エラーの対処方法: Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
- 7. Android, Kotlin: JavaMailでメール送信 (gmail)
- 8. 公式トレーニング「Android Kotlinの基礎」について
- 9. Material Youのサンプルアプリを触ってみる
- 10. Unity2019.4 + Android11でビルドエラーになったときの対策
- 11. Jetpack Composeのrecompose後。GlobalSnapshotへの適応のコードリーディング
- 12. 抵抗値のカラーコード表は二度と見たくないので、PyTorchでリアルタイムに物体検出をして抵抗値を計算してくれるスマホアプリをリリースしてみた
- 13. AlertDialogのカスタマイズその3:コンテンツエリアのカスタマイズ
- 14. 【Kotlin】 LicenseToolsPluginを利用したOSSライセンス画面の実装
- 15. Kotlinでアプリがバックグラウンドからフォアグラウンドのタイミングで処理を実行するには
- 16. AndroidStudio2020.3.1で日本語が文字化けする
- 17. Google Play Consoleで署名したアプリをダウンロードする方法
- 18. AndroidでFirebase Authenticationを利用してGoogle認証ログインする
- 19. Google I/O 2021 Material Youについて
- 20. selectableItemBackgroundBorderless が効かない場合の対処法
【Androidアプリリリース】パワポでフィーチャーグラフィックを作成する方法
#背景
先日初めてAndroidアプリをリリースしようとしたときに、**フィーチャーグラフィック**が用意できていませんでした。本来であればデザイナーさんに依頼するのが一番だと思うのですが、趣味程度のアプリリリースだったのでパワポで作成することにしました。#Androidアプリリリース時に必要な画像素材
(2021年10月現在)
– アプリのアイコン
– **フィーチャーグラフィック(Google Play ストアページの上部で使用されるんだと思います)**
– スマートフォン版のスクリーンショット
– 7インチタブレット用のスクリーンショット
– 10インチタブレット板のスクリーンショット##パワポで作成する手順
1) パワポの 表示>スライドマスター を選択
![スライドマスタ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/875694/bcdba880-407f-cf6e-8f05-d3d7862d6d87.png)
2) スライドのサイズ>ユーザー設定のスライドサイズ を選
Androidアプリがバックグラウンドの時にDialogFragmentを表示しようとして落ちる時に試したこと
# 概要
– アプリがバックグラウンド時にFragmentを追加・切替をすると落ちる・
– 回避する一つの方法として、
1. 親のFragmentがアタッチされているか判定。
1. `FragmentTransaction#commitAllowingStateLoss()`を使用してFragmentの状態を無視してcommitする。:::note warn
Fragmentの状態を無視して実行しているのでonSaveInstanceStateを気にしている場合はこの限りではないです。
:::# 詳細
アプリを使っていると非同期でデータを取得したタイミングで何か事を起こすことがあると思います。
私はよくそのタイミングでDialogFragmentを使っているのですが(これがよくない原因ですが)、DialogFragmentに限らずFragment全般に言えることで、アプリがバックグラウンド時にFragmentを追加や切替などを行うと大体`llegalStateException`が発生します。
原因は後述する[スタックトレース](#起きたエラーのスタックトレース
Navigationの実装方法まとめ
kotlinにおける`Fragment`間の遷移を制御する`Navigation`の使い方、実装方法についてまとめていきます。
# この記事の内容
公式の[ドキュメント](https://developer.android.com/guide/navigation?hl=ja)やトレーニング「[Android Kotlin の基礎](https://developer.android.com/courses/kotlin-android-fundamentals/overview?hl=ja)」のレッスン3「ナビゲーション」を参考に実装のポイントとエッセンスをまとめていきます。
そもそも`Navigation`とは何か、という点については触れません。### 前提知識
* kotlinの基礎的な文法
* AndroidStudioの使い方/アプリの作り方
* 画面や画面部品の配置方法### 開発環境
* Windows 10 Home
* Android Studio 4.2.1# 作成するサンプル
3つの画面を持ち、ボタンクリックにより画面遷移を行うごく簡単なアプリを
RedmiNote9sにMIUI12.5のGame TurboでEnhanced Audioを表示させる (動くとは言っていない)
#はじめに
Xiaomi製スマホのMIUI12.1以降のGameTurboには「WiFiの最適化」、「最適化されたタッチコントロール」の他に「強化されたオーディオ」の項目があるはずなのですが、RedmiNote9sにはMIUI12.5になってもありませんでした。
これの何が問題かと言うと、デレステ(アイドルマスターシンデレラガールズスターライトステージ)やプロセカ(プロジェクトセカイ)と言った音ゲー(音楽・リズムゲーム)をプレイする際に、タップした時に効果音が鳴るのですが、鳴った際にデレステではノーツが一瞬カクっと遅れます。
特に高難易度をやろうとすると音が狂うので大問題です。
Mi11Liteなどは問題なくEnhanced Audioが表示されているそうですが、私のスマホには無かったため表示させる方法を模索しました。
あとついでにゲームターボのボイスチェンジャーも有効化します。
キチンと検証してないので完全無責任です。
#必要なもの
MIUI12.1以上のスマホ(12.0.4などではダメ)
Rooted環境(推奨)
Magisk(推奨)
ADB環境(rootが無ければ)(出来るか不明
fragment勉強記録1
## 静的にFragmentを呼び出す
fragmentがまじでわけわからんのでmainActivity(緑)の中にfragment(青)を呼び出して表示させることから試してみた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1139020/4ed0c7cb-44c5-0340-20cf-d9b8c48a64aa.png)### mainActivity.java
mainActivity.java でやることは activity_main.xmlを表示するだけ
“`java:mainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setCont
エラーの対処方法: Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
このようなエラーが出てアプリの実行ができなかった時の対処方法です。
– Android Studio にて「File > Settings > Build, Execution, Deployment > Build Tools > Gradle > Gradle JDK」の設定を1.8から11に変更する
– Android Studioを再起動する以上です。
Android, Kotlin: JavaMailでメール送信 (gmail)
メール送信をするAndroidアプリを開発しましたので、最低限の実装を記録しておきます。
gmailにてメール送信する際の設定もあわせて記載します。この2つの記事を参考に作成しました。
– https://qiita.com/Rabbit_Program/items/9df03bf2c1885561a5bd
– https://it-engineer-info.com/language/android-app/2142/## gmailの設定
gmailはAPIで送信することが推奨されているらしいですが、今回はSMTPでという要件でした。
その際はgmail(googleアカウント)の設定にて「安全性の低いアプリのアクセス」を有効にする必要があります。1. https://myaccount.google.com/ にアクセス(対象のアカウントでログインする)
1. 「セキュリティ > 安全性の低いアプリのアクセス」を有効にする## JavaMail のインストール
Android Studio のgradleにJavaMailを追記します。
“`gra
公式トレーニング「Android Kotlinの基礎」について
`Android Jetpack`の入門として[公式サイト](https://developer.android.com/jetpack?hl=ja)で紹介されているチュートリアル「[Android Kotlin の基礎](https://developer.android.com/courses/kotlin-android-fundamentals/overview?hl=ja)」を紹介します。
この記事は何かしらAndroidアプリ開発の入門書を読み終えたくらいの方向けに書いています。
このチュートリアルから学習をスタートすることはお勧めしませんが、Androidの実践的な開発で用いられる要素技術が広く紹介されているので学習の次のステップとしては非常にお勧めできる内容です。ただ内容は結構ボリューミーで、**10個のレッスン、計33個ものコードラボで構成されています**。
英語読み込みながら全部マジメに取り組むと相当時間かかりま。内容はすべてサンプルアプリを作りながらのハンズオン形式ですので手を動かしながら学びたい方には合っているかと思います。
この記事では各章で作成する
Material Youのサンプルアプリを触ってみる
#はじめに
こちらの記事はGoogle I/O 2021で発表された『Material You』のAndroid向けサンプルアプリについての記事になります!
そもそもMaterial Youとは? という方向けの記事も書いてますので、よろしければ[こちら](https://qiita.com/t_nana/items/5f78377346030cb484fd)をご覧ください#サンプルアプリの取得
##動作環境
・ M1 MacBook Pro
・ Big Sur 11.4
・ Android Studio Arctic Fox
・ Pixcel 3a / Andorid12(ベータ版)※確認端末はエミュレータでも構いませんが、Android12が入っていることが前提になりますので、ご注意ください
##GitHubからclone
material-components-androidの中にサンプルアプリ『Catalog』がありますので、そちらを取得しに行きます。
以下のコマンドをターミナルで実行してください。“`
git clone https://github.com
Unity2019.4 + Android11でビルドエラーになったときの対策
## 経緯/現象
**Unity 2019.4 (LTS)** を使用して、とあるサンプルプロジェクトを **Android 11 (Pixel 4a(5G))** 上でBuild and Runしようとしたところ、以下のようなエラーダイアログが表示され、Android実機での実行に失敗した(実行できなかった)。
> Unable to start ADB server. Please make sure the Android SDK is installed and is properly configured in the Editor. See the Console for more details.
使用環境は以下の通り。
* PC
* Windows 10 20H2
* Unity 2019.4.30f1
* Unity HubからUnity 2019.4をインストールする際、**Android Build Support**にチェックを入れてAndroid SDKのモジュールもインストール
* 実機
* Google Pixel
Jetpack Composeのrecompose後。GlobalSnapshotへの適応のコードリーディング
https://qiita.com/takahirom/items/0e0a3559d95b49399c3b
の続きです。
今度まとめた記事を書く予定なので、この記事は読まなくていいです。
前回までで、recomposeの実装を読んでいくことができました。
これからSlotTableに反映していくところ
つまり3から4の間あたりをみていきます。1: recordComposerModificationsLocked() を呼ぶ。Recomposer.snapshotInvalidationsを見て、IdentityScopeMapを使って変更点に対しての影響を受けるスコープを取得し、Recomposer.compositionInvalidationsやComposition.invalidationsというフィールドに変更を入れる。
2: compositionInvalidationsをtoRecomposeに入れる。
3: toRecomposeに対して、performRecompose(composition, modifiedValues)、(内部でdoCompos
抵抗値のカラーコード表は二度と見たくないので、PyTorchでリアルタイムに物体検出をして抵抗値を計算してくれるスマホアプリをリリースしてみた
## これは何
スマホをかざすと、AIがリアルタイムに物体検出を行い抵抗値を判別してくれる抵抗値AI計算機というアプリを作成しました。
AlertDialogのカスタマイズその3:コンテンツエリアのカスタマイズ
`AlertDialog`について[引数を渡す方法](https://qiita.com/kame_yang/items/67978aa3cde688443cf5)と[戻り値を受け取る方法](https://qiita.com/kame_yang/items/435535850e47defc6b53)についてそれぞれ書きました。
今回はコンテンツエリアをカスタマイズする方法を紹介します。# コンテンツエリアとは
`AlertDialog`は`タイトル`、`コンテンツエリア`、`アクションボタン`の要素で構成されています。
下図の赤い枠線で囲っている部分がコンテンツエリアですね。
通常はメッセージが表示されます。
今回はコンテンツエリアをスコープとしていますが、タイトル、アクションボタンも独自にカ
【Kotlin】 LicenseToolsPluginを利用したOSSライセンス画面の実装
## 初めに
Androidアプリを作成するにあたって、たくさんのライブラリを利用するかと思います。
著作権的な観点から、それらのライブラリを一覧にして表示する必要があります。LINEやインスタでも以下のように形式は違いますが表示している画面があります。(普段は目にしませんが)
| LINE | Instagram |
| —- | —- |
| | |このような形式の表示方法は公式([Include open source notices](https://developer
Kotlinでアプリがバックグラウンドからフォアグラウンドのタイミングで処理を実行するには
### Activityで行う場合
Androidのライフスタイルに従い `onResume`を呼び出して記述するだけです。“`
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}override fun onResume() {
super.onResume()
Toast.makeText(baseContext, “フォアグラウンドから戻ったよ”, Toast.LENGTH_LONG).show()
}
}
“`
AndroidStudio2020.3.1で日本語が文字化けする
## はじめに
AndroidStudioを2020.3.1にバージョンアップしたら、コミットメッセージ等に含まれている日本語が文字化けしまくったので直し方メモです。## 環境
– macOS version:10.15.7
– AndroidStudio ArcticFox(2020.3.1)## 手順
1. AndroidStudio => Preference を開く
![Preference](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740646/014f9995-2490-2565-64a9-53f8cc439be5.png)2. Appearance & Behavior => Appearance を開き”Use custom font”のチェックを入れる。
![useCustomFont](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740646/353367e6-01ef-6a45-932f-3b5
Google Play Consoleで署名したアプリをダウンロードする方法
aab対応したアプリで且つ、Google Play Consoleでの署名管理に変更したため、
リリース前の検証用にGoogle Play Consoleで署名したアプリをダウンロードする方法を記載する。
(play store版からの上書きインストール検証に使用してます)## 手順
1. aabファイルをアップする
App Bundle エクスプローラ > 新しいバージョンをアップロード
![スクリーンショット 2021-09-29 0.41.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130708/00c2662e-8cf4-6183-16aa-703ea95cfee2.png)2. アップロードが完了したら、画面右上のaabファイル名をタップし、ダウンロードしたいバージョンに切り替える。
ダウンロード > 署名済みのユニバーサルAPK > 右側のダウンロードアイコンタップ
![スクリーンショット 2021-09-29 0.43.38.png](https://qiita-ima
AndroidでFirebase Authenticationを利用してGoogle認証ログインする
#はじめに
Firebase Authenticationを設定する記事や、Google認証でログインする実装を書いた記事はたくさん見かけるのですが、結局、何を設定して実装すれば出来上がるのか通しで書いてある記事がなかなか見つけられませんでした。
様々な記事を参考にしてGoogle認証でログインするところまで実装することは出来たのですが、途中でエラーで躓いたり、色々な調査をしたりと、ちょっと大変でした。
そこで改めて今回の記事で、プロジェクトの設定から実装、そしてGoogle認証の実行が出来るところまでを通しで書いていきたいと思います。
#Firebase Authenticationとは
パスワード認証やOAuth2に対応したフェデレーションIDを使った認証をアプリケーションに組み込む事ができるサービスの一つです。このサービスを利用する事で、簡単に、そして無料でユーザー認証の機能を実現する事が出来てしまいます。
今回は、特にその中でもユーザー操作が簡単なフェデレーション認証の1つ、Google認証を利用したログインの実装について投稿したいと思います。
Androidアプリに組み込む場
Google I/O 2021 Material Youについて
# 前身となったMaterial Design
– Googleが推しているデザインのガイドライン
– ユーザエクスペリエンスを向上、統一させるためのもの
– Androidだけではなく、WebやiOSなど様々なプラットフォーム向けにライブラリが用意されている
– どのサービスでもユーザエクスペリエンスを共通にすることで、ユーザが直感的に操作できるようになる
– 同じくGoogleが提供しているクロスプラットフォーム開発に用いられるFlutterもUIパーツはMaterial Designに準じたものになっているMaterial DesignはWebサイトにてガイドラインが公開されているため、誰でも学ぶことができるものになっている。
詳しくは[こちら](https://material.io/design/introduction)!# Material You
GoogleI/Oにて発表されたMaterial Designの流れを汲んだ新しいデザインフレームワーク。
今後全てのGoogle製品で採用されていくらしい。Android12からMater
selectableItemBackgroundBorderless が効かない場合の対処法
## 概要
Viewのサイズをはみ出した ripple エフェクトを適用したい時に便利な `selectableItemBackgroundBorderless` は、特に親のViewGroupが `ConstraintLayout` である場合に ripple が出ないといった意図しない挙動をすることがあります。
根本的な解決策を見つけるまでに時間がかかったので、自分用に調査したメモをまとめておきます。
## 結論
`selectableItemBackgroundBorderless`が効かない場合は、`selectableItemBackgroundBorderless`を適用しているViewを `android:background=”@android:color/transparent”`を設定した`FrameLayout` でラップする。
## なぜそうなるのか
[StackOverflowの回答に的確な説明](https://stackoverflow.com/a/37757154)があったので、重要な部分の抄訳をしておきます。
> **Explanat