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

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

DXライブラリ Android Studio 設定

Android用DXライブラリバージョン
“`
DxLib_Android3_24d
“`
AndroidManifest.xml
“`

元記事を表示

Androidアプリ開発環境のメモ

# 目的
Android開発環境で詰まらないための備忘メモ書き

# android開発環境について
> まず公式からインストールですが、以下の場合は注意が必要です。

> AndroidStudioではなく、Eclipseで環境整えたい場合は、Javaのバージョンを合わせないと「sdkmanager –list」sdkmanager(以下略SDK)コマンド後にJVMエラーが出る。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57249/7c9fa98f-5e90-e864-72bc-a6b661b66e0a.png)

## 補足
> もし、環境構築で縛りが特になかったり、訳あって、Javaバージョンをいくつかローカルに落としていて、使いたいSDKとJavaのバージョンが合わせられない場合は、AndroidSudioをインストールして、開発を進めるのもよいかもしれません。

### sdkmanagerって?
> Android SDK のパッケージを表示、インストール、更新、ア

元記事を表示

DMMの短期インターンに行ってきたよって話

![image.png](https://image.dmm-corp.com/qsxrp4g4qngbtismms5ygo8jdix7)
# DMM1Weekインターン結果報告
どうもGadgeloggerだ!季節が変わってきて寒くなってきたねぇ。。。俺は酒ばかり飲んで免疫力爆アゲと思って調子乗ってたら風邪引きました。最悪です🤦‍♂️

とまあそんな前置きは置いといて
# どんなインターン?(公式ページから抜粋)
DMM.comは、Webを通じて様々なコンテンツを提供する事業会社です。

2022年12月に新規でローンチした「DMM TV」をはじめとした国内有数の動画配信コンテンツや、電子書籍、FX、オンラインサロン、英会話、3Dプリントなど、60以上の幅広いサービスを時代に合わせて柔軟に展開することにより、常にユーザーへ価値を提供しています。

今回はAndroidの短期インターンを開催!

DMMの新卒技術研修をベースとした演習を体験していただきます。

「アプリ開発にチャレンジにしたい」「DMMの演習が気になる」などの興味をお持ちの方は、是非ご参加ください。

[詳

元記事を表示

【Flutter】Firebase Authenticationを使ってログイン/ユーザー登録画面を作成する(その5)

# はじめに
【Flutter】Firebase Authenticationを使ってログイン/ユーザー登録画面を作成する(その4)の続きです。
前回はログインとログアウトを実装しました。
今回はパスワードリセット画面を作成し、パスワードリセットのためのメールを送信する自走を行います。
引き続きVSCodeのMac版を利用していますので、AndroidStudio利用の方は適宜読み替えて行ってみてください。

# 更新履歴
2024.1.18 初回投稿

## Firebaseプロジェクト側でパスワードリセットメールのテンプレートを変更する
1. Firebaseのプロジェクトショートカットから「Authentication」をクリックして「Templates」を選択します。![スクリーンショット 2024-01-18 15.56.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9961/63d1c21a-17f1-0b1b-2c6a-1ccd89ac9652.png)
2. テンプレート画面左下の

元記事を表示

【Flutter】Firebase Authenticationを使ってログイン/ユーザー登録画面を作成する(その4)

# はじめに

【Flutter】Firebase Authenticationを使ってログイン/ユーザー登録画面を作成する(その3)の続きです。
前回はメールアドレスでのユーザー登録の実装を行いました。
今回はログイン画面を作成し、ログインできるように実装します。
引き続きVSCodeのMac版を利用していますので、AndroidStudio利用の方は適宜読み替えて行ってみてください。

# 更新履歴
2024.1.18 初回投稿

# ログインボタンを追加してログイン処理を実装
– 前回のコードにログインボタンとログアウトボタンを追加します。
“`dart
SizedBox(
width: double.infinity,
// ログインボタン
child: ElevatedButton(
child: const Text(‘ログイン’),
onPressed: () async {
try {
// メール/パスワー

元記事を表示

【Flutter】Firebase Authenticationを使ってログイン/ユーザー登録画面を作成する(その3)

# はじめに

【Flutter】Firebase Authenticationを使ってログイン/ユーザー登録画面を作成する(その2)の続きです。
前回はただ、Firebaseプロジェクト連携をしただけですが、これからAuthenticationの実装に入ります。。
引き続きVSCodeのMac版を利用していますので、AndroidStudio利用の方は適宜読み替えて行ってみてください。

# 更新履歴
2024.1.18 初回投稿

# FirebaseAuthの実装
1. FirebaseAuthパッケージをインストールします。
“`
% flutter pub add firebase_auth
“`
1. lib>main.dartを開いて、各パッケージのimportを追記します
“`dart
import ‘package:firebase_auth/firebase_auth.dart’;
import ‘package:firebase_core/firebase_core.dart’;
import ‘fir

元記事を表示

【Flutter】Firebase Authenticationを使ってログイン/ユーザー登録画面を作成する(その2)

# はじめに
【Flutter】Firebase Authenticationを使ってログイン/ユーザー登録画面を作成する(その1)の続きです。
前回はただ、TextFieldを実装しただけですが、これからFirebaseの連携を始めていきます。
引き続きVSCodeのMac版を利用していますので、AndroidStudio利用の方は適宜読み替えて行ってみてください。
 いつから変わったのかわからないのですが、久しぶりにFirebaseAuthを実装しようと今まで通りにやってみたところ、iOSは上手くったのですがなぜかAndroidでログアウトするとクラッシュするという現象がでてしまったので、いろいろ調べたらFlutterFireで自動化できるらしいので、これを機にやってみようと考えた次第です。

## 更新履歴
2024.1.18 新規投稿

## FlutterプロジェクトとFirebaseプロジェクトの連携設定
1. Firebaseプロジェクトでプロダクトのカテゴリ>構築>Authenticationを選択します。
![firebaseAuth設定0.png](ht

元記事を表示

【Flutter】Firebase Authenticationを使ってログイン/ユーザー登録画面を作成する(その1)

# はじめに
 FlutterでFirebase Authentication使ってユーザー登録・ログイン画面を作る手順などはよく見かけるのですが、バリデーションチェックや、ユーザー登録後の処理、パスワード変更処理などやらねばならないことはいろいろあります。また、FacebookログインやAppleログインについても備忘録かねてまとめてみようかと思います。
 まず最初はユーザー登録画面を作成してみます。
VSCodeのMac版を利用していますので、AndroidStudio利用の方は適宜読み替えて行ってみてください。

# 更新履歴
2024.1.18 初回投稿

# 環境
[✓] Flutter (Channel stable, 3.16.4, on macOS 13.5.2 22G91 darwin-arm64, locale ja-JP)
[✓] Android toolchain – develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode – develop for iOS and macOS (X

元記事を表示

Flutterでアプリのバックグラウンド状態で位置情報を使用しながら処理できるパッケージを作った

[株式会社Never](https://neverjp.com/)のshoheiです。

株式会社Neverは「NEVER STOP CREATE 作りつづけること」をビジョンに掲げ、理想を実現するためにプロダクトを作り続ける組織です。モバイルアプリケーションの受託開発、技術支援、コンサルティングを行っております。アプリ開発のご依頼や開発面でのお困りの際はお気楽にお問合せください。
https://neverjp.com/contact/

# 概要

弊アプリ(世界遺産ウォーキング)のユーザーさんから**アプリを閉じていても目的地に到達した事を教えて欲しい**というリクエストがあったので、その機能を実現するためのパッケージを作りました。

パッケージをアプリに導入したところ無事ストアの審査も通ったので宣伝(笑)も兼ねて共有します。

世界遺産ウォーキング
[iOS](https://apps.apple.com/jp/app/id1591767928)
[Android](https://play.google.com/store/apps/details?id=app.produ

元記事を表示

[androidアプリ]AWSのAPIgatewayを使用してみる

## はじめに
Cognito認証を使用した各種サービスへのアクセスに非常に困惑したので備忘録として情報を記載する
特にAWSMobileClientの仕様が理解できておらず困惑したので書き留めておく.

## 何をするか
android環境で,APIgatewayに3つの状況でリクエストを送信する.
– 1.認証・認可なしの場合
– 2.AWS cognito userpoolを使用する
– 3.AWS cognito userpool + idpoolを使用する

このページでは,1の認可・認証無しの場合について,解説する.
2: 追記予定
3: 追記予定

## 環境
S3や,UIはテスト目的以外に特に使用していないので無くても動作するはずである.また,後述するが,API gatewayのandroid SDKをビルドして使用する.

– minSdkVersion 28
– targetSdkVersion 34
– sourceCompatibility JavaVersion.VERSION_11
– targetCompatibility JavaVersion.VER

元記事を表示

Kotlin+JUnit4でもProperty Based Testingがしたいんじゃ!!!

# この記事3行まとめ

1. androidでPBTをしたい!!
2. kotestは依存がでかすぎるんじゃ!!
3. いいライブラリみつからないねぇ・・・・

# PBT(Property Based Testing)とは

PBTとは自動テストの手法の一つでシステムのあるべき挙動を満たす条件(Property)を定義し、その条件を満たすであろう入力をランダムに自動生成し実行することで想定していない挙動をしないかどうか検証する手法です。
従来のテスト手法ではテストケースを事前に手動で作成する必要があり、テストケースを網羅的に作成することは大変です。
PBTではテストケースを自動生成するため、テストケースの作成にかかる工数と時間を削減することができます。また、ランダムな入力を生成するため、想定していない入力によるバグを検出しやすくなります。

## メリット

– テストケースの作成にかかる工数と時間を削減できる
– 想定していない入力によるバグを検出しやすくなる

## デメリット

– プロパティの定義が難しい
– テスト対象のシステムのあるべき挙動を満たす条件(プロパティ)

元記事を表示

apk の中の AndroidManifest.xml を手軽に確認する方法2種

## はじめに

ビルドされた apk の中の AndroidManifest.xml に書かれている内容を確認したい!ってことありますよね。
このマニフェストファイルは勿論ソースコードの中にもあるのですが、

* ソースコードが手元にない
* 意図通りにビルドされているか実物を確認したい

とかの理由で「apkの中の」ものを見たいこともあります。
(特に現在では Jenkins などの CI/CD ツールを使って自動的に、かつ dev/prod などの接続先や debug ビルド/release ビルドなどのバリエーション違いのバイナリが生成されることもあるので)

apk を単純に unzip してもマニフェストファイルは人間が読める形にはなっておらず困ったので、調べた内容を書いておきます。

## 前提条件

* apk ファイルが PC にあること
* [Android Studio](https://developer.android.com/studio?hl=ja) がインストールされていること※

※非開発者であっても adb コマンドを使っている人であればインストール

元記事を表示

Android Chromeで混在コンテンツ(Mixed Contents)を表示する方法

# はじめに
テストサイトで画像表示されない問題がおきてしまい、テスト時に対策が必要となりました。

# 方法
1. URLに下記入力
chrome://flags/#unsafely-treat-insecure-origin-as-secure
※入力大変なら、chrome://flags、unsafelyで項目検索
2. 設定をEnabledに変更
3. テキストボックスに表示するコンテンツのURLを入力
4. 入力後、Relaunch表示されるので実行

参考
https://android.stackexchange.com/questions/224891/allowing-mixed-insecure-content-on-chrome-for-android

# まとめ
そもそも混在コンテンツとなる状況は対策しましょう
https://developers-jp.googleblog.com/2019/11/https.html
https://developer.mozilla.org/ja/docs/Web/Security/Mixed_content

元記事を表示

ChatGPTを使ってGB版風テトリス作った

作ったもの↓

環境:Kotlin +Jetpack Compose

開発期間:3週間

かかった費用:約3000円 (ChatGPT4.0 1か月/30ドル)

※自分が遊ぶ目的のためアプリ公開はしてないです。

## 開発の流れ
### ①ゲーム開発手法の決定
最初に、ChatGPTにゲーム開発手法を提案して貰った。

![①.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873792/75c5d676-71a3-8a6d-439d-58bc4d0f422e.png)

以前はJavaとXMLを使用したアプリケーション開発の経験があったが、折角なので新しい技術を採用することに。
今回はChatGPTの提案の中からKotlin

元記事を表示

【Android】GoogleMap上に円や線以外のものを表示する【Kotlin】

# はじめに 
今回は、前回に引き続きGoogleMap上に色々表示できるようにしていこうと思います。
前回の記事は こちら↓
**[【Android】GoogleMap上に円や線を表示する【Kotlin】](https://qiita.com/Tsubasa12/items/6c2fb5128c5562faca7a)**

# 画像

“`
googleMap.addGroundOverlay(
GroundOverlayOptions()
         .position(LatLng(35.689, 139.692), 500f)
.image(BitmapDescriptorFactory.fromResource(R.drawable.xxxx))
.anchor(0f, 1f)
)
“`
または、
“`
googleMap.addGroundOverlay(
GroundOverlayOptions()
.positionFromBounds(LatLngBounds(LatLng(

元記事を表示

Android デバイス を Intune へ 登録する(個人所有デバイス)

# はじめに
Android デバイス(個人所有デバイス)を Intune へ登録するための手順です。
この記事で紹介する方法は、以下の公開情報でも紹介されている、個人が所有する Android デバイスを 会社テナント へ Intune 登録して、BYOD の利用シーンを実現する方法です。

https://learn.microsoft.com/ja-jp/mem/intune/user-help/enroll-device-android-work-profile

これとは別に、会社が管理する Android デバイス を Intune に接続して、デバイスを全て会社の管理下に置く方法もあります。これについては、以下の公開情報で紹介されています。

https://learn.microsoft.com/ja-jp/mem/intune/user-help/enroll-device-android-microsoft-intune-app

# 事前準備

## ① Microsoft Entra テナント の手配
以下の記事を参考に、Microsoft テナント を手配して

元記事を表示

android端末のネットワーク接続を確認する

# はじめに
今回は端末がネットワークに繋がっているかどうかで処理を分けたい時に使える確認部分の実装を紹介していきます
### 本文
“`kotlin
// メンバでContextを取得
val context: Context = LocalContext.current
// 可読性を上げるために関数化
private fun isNetworkAvailable(context: Context): Boolean {
val connectivityManager = context.getSystemService(CONNECTIVITY_SERVICE) as? ConnectivityManager
connectivityManager?.let {
val nw = it.activeNetwork ?: return false
val actNw = it.getNetworkCapabilities(nw) ?: return false
return when {
ac

元記事を表示

proguard / R8 を使って、デバッグ用の処理をリリースビルド時に削除する

アプリを作っていると、デバッグログを始め、デバッグのためだけに必要な処理を書くことはよくあります。
ただ、リリースビルド版にはできるだけ影響を与えないように、可能であればそれらの処理をまるっと削除したいところです。例えばログメッセージのStringが残っているだけでもアプリ全体で見ると無視でできないサイズになっている、というのも良くあることです。
release版とdebgu版でsourceSetを分けて〜という方法もなくはないですが、異なるBuildVariantに同一のコードを置いて、それぞれをメンテナンスしていくのは非常に大変です。

proguard / R8 (以下proguard)には不要な処理を削除してくれる機能もあるので、これを使ってどんな方法があるのかを考えてみたいと思います。

# BuildConfig.DEBUGを使う

BuildConfig.DEBUGについて、デバッグビルド時には以下の様に定義されていますが

“`BuildConfig.java
public final class BuildConfig {
public static final

元記事を表示

Androidデバッグログの小ネタ

Androidではデバッグログ、Logcatへの出力をする `android.util.Log` クラスがありますが、これを直接使うことはあまりせず、独自のログ出力クラスを作る場合も多いかと思います。
そういった場合に使える、Androidでデバッグログ出力を行う上での小ネタをいくつか説明しようと思います。
最近では[Timber](https://github.com/JakeWharton/timber)を使っているプロジェクトが多いと思いますが、ライブラリプロジェクトでTimberを使うわけにはいかない状況があったり、独自の出力方法を作った方が都合がよい場合などもあります。

# コードジャンプ

Android Studio の Logcat View でスタックトレースの出力を見ると、以下のように「`ファイル名:行数`」の箇所がリンク風に表示されており、コードジャンプとして機能しますよね。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155171/d8b5d133-1215-c819-254

元記事を表示

Galaxy Z Fold5でProxy設定が解除されなくて困った話

## TL;DR
[Proxyman](https://proxyman.io/) 使って通信デバッグしてたら、設定からProxy解除しても内部的にProxy外れてない ということがありました。
端末固有な問題な気がしますが、内容を記事にします。

(結論: `adb shell settings` でプロキシ外した。)

# **Galaxy Z Fold5でのプロキシ設定解除問題の解決法**
プロキシを使用する際は手順に注意が必要です。Samsung Galaxy Z Fold5でプロキシマン([Proxyman](https://proxyman.io/))を使用されたところ、後でプロキシ設定が解除できなくなるという事態が起きました。
### 発生した事象
[Proxymanのトラブルシューティング](https://docs.proxyman.io/debug-devices/android-device#2.-troubleshooting)に記載されている手順に従って設定した後、設定からネットワークへと進み、プロキシ設定を解除しました。しかし、設定が解除されたにも関わらず、

元記事を表示

OTHERカテゴリの最新記事