Android関連のことを調べてみた2020年10月01日

Android関連のことを調べてみた2020年10月01日

【Android Studio】作業効率化 (Windows)

## はじめに

Android Studio用に個人メモとして書こうと思いました。

## フォント設定

見やすいフォントに変更しましょう。私のおすすめは、Ricty Diminished (自分でインストールが必要)、サイズが19、Line spacingが1.2です。

File -> Settings -> Editor -> Font

## システムのフォント設定

私はフォントはYu Gothic UIのままで、フォントサイズを13に変更してます。

File -> Settings -> Appearance & Behavior -> Appearance -> Use Custom font

## ダークモード設定

これは個人的な好みがありますが、私はダークモードにしています。ダークモードのほうが目に優しいそうです。

File -> Settings -> Appearance & Behavior -> Appearance -> ThemeをDarculaに変更。
## ショートカットキーの変更

Android Studioは自動保存するので、ctr

元記事を表示

FCM の onDeletedMessages() は呼ばれるのか?

## 最初に

FCM の Android 版にはメッセージがデバイスが1ケ月以上オフラインだったり、接続されたときに未読メッセージが100件を超えてる場合は **onDeletedMessages() が呼ばれることがある** とあります。

**[onDeletedMessages のオーバーライド](https://firebase.google.com/docs/cloud-messaging/android/receive?hl=en#ondeletedmessages-)**

“`
状況によっては、FCM からメッセージが配信されないことがあります。
これは、特定のデバイスが接続されたときにそのデバイスにまだ配信されていないアプリのメッセージが多すぎる(100 件を超えている)場合や、
デバイスが 1 か月以上 FCM に接続されていない場合に起こります。

このような場合、FirebaseMessagingService.onDeletedMessages() へのコールバックを受け取ることがあります。
アプリ インスタンスがこのコールバックを受け取った場合は、

元記事を表示

Unreal Engine 4 でAndroidのプロジェクト作成及びAndroidのプラグイン開発

Android用のUnreal Engine向けのプラグイン開発に携わったので、
インストールからAndroidで実行及びAndroid JAVA層へのアクセスするプラグイン開発方法。

# 1.Unreal Engine 4のインストール
[Unreal Engine をインストールする](https://docs.unrealengine.com/ja/GettingStarted/Installation/index.html)を参考にUnreal Engineをインストールします。

# 2.Unreal Engineのプロジェクトを作成する。
Unreal Engineを起動するとテンプレート選択画面が現れると思います。
![ProjectBrowserSelectTemplate.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/170755/eba695a5-f9a4-4a78-a393-fd1a2c1af6d3.png)

Blankを選び次へを選択するとプロジェクトの設定画面に遷移します。

元記事を表示

ファーウェイHSMの開発についての考察

# HMSの概要
HMSとはファーウェイが提供しているファーウェイモバイルサービス(Huawei Mobile Services)の略です。

### Android端末とGMSの関係
現在モバイルOS分野ではAndroidとiOSが独走しています。Android端末はAndroidというオープンソースのOSを搭載している端末だと多くの人が認識しています。おそらく皆さんはAndroid端末はこんな感じだと思っているでしょう。
スクリーンショット 2020-09-30 165008.png

昔ならこのイメージは正しいです。しかし近年、Android端末はAndroid OSとGMS(Google Mobile Service)のセットで出荷されていることがほとんどです。つまり、こちらこそ、正しい構成図というわけです

元記事を表示

Using a coroutine without a “GlobalScope” in Activity and Fragment

ActivityとFragmentで`GlobalScope`を使わないでコルーチンを利用する方法です。
`GlobalScope`を何気なく使わないようにしましょう。

### Do not use GlobalScope in local scope

At First. Look at follow code.
This example code is wrong coroutine usage.

“`kotlin
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)

GlobalScope.launch {
val data = wit

元記事を表示

Androidでバーコードスキャナーを実装

# はじめに

カメラやGPSなどハードウェア依存の機能を作る時、スマートフォンは便利ですよね。
アプリ版にしかない機能を盛り込む事で、Web版との差別化も出来ます。

今回は、Androidで`バーコードスキャナー`機能を実装してみたいと思います。

# 実行環境

– Android Studio: 4.0.1
– API Level: 29
– Kotlin: 1.3.70
– [zxing-android-embedded](https://github.com/journeyapps/zxing-android-embedded): 4.1.0

# インストール

“`diff
diff –git a/app/build.gradle b/app/build.gradle
index be61190..22efbee 100644
— a/app/build.gradle
+++ b/app/build.gradle
@@ -6,6 +6,11 @@ android {
compileSdkVersion 29
buildToolsVersion

元記事を表示

Robolectric 4.4 にバージョンアップした時に見るメモ

# Robolectric 4.4 がリリース
2020年8月末に`v4.4`がリリースされたようです。[リリースノート](https://github.com/robolectric/robolectric/releases/tag/robolectric-4.4)
`v4.4`では大きな変更があり、バージョンアップしたらテストの大半が失敗するなんてこともあります。

この記事では、`v4.4`での変更点と、テストが失敗する時の対処方法をまとめていきます。

# Robolectric 4.4 の大きな変更点
[リリースノート](https://github.com/robolectric/robolectric/releases/tag/robolectric-4.4)にある通り、`PAUSED looper mode`がデフォルトになったことが大きな変更点です。
これによって、大半のテストが失敗するようになるかも知れません。

`PAUSED looper mode` の説明は、公式のドキュメントに詳しく書いています。
[PAUSED looper mode の説明](http:

元記事を表示

[Android] ダイアログの横のスペース [メモ]

ダイアログに苦しめられたのでメモ。

# 起こった事

カスタムレイアウトのダイアログを作る時に、この両端のマージンがどうしてもいい感じに指定できなくて苦しめられた。

“`xml

[Android] Cloud FireStore使ってみた

[前回](https://qiita.com/karass/items/3269f4929ada967052d2)はRealtime Databaseを使ってみたが、今回はCloud FireStoreを使ってみる。

# Gradle
“`gradle
implementation ‘com.google.firebase:firebase-firestore:21.2.1’
“`
# 実装
公式Documentを見る感じ、ルールとかの特別な設定とか特になしでできるっぽい?(お試しで使う場合)
Cloud FireStoreはRealtime Databeseとは違うデータモデルです。データを1つの大きなJsonツリーとして保存していたRealtime Databaseとは違って、データをドキュメントのコレクションとして保存します。

コレクション:複数のドキュメントを格納しているもの
ドキュメント: データを格納しているもの

## データ書き込み
`FirebaseFirestore.getInstance()`でデータベースを取得します。取得したデータベースにデータを追加し

元記事を表示

[Android] テスト時のSimpleDateFormatの取り扱いで気をつけること [メモ]

日付を取り扱う時にSimpleDateFormatを使っていたのですが、テストする時にローカルでは通っているのにGitHubActionのUnitTestでエラーを吐いてしまう。

# 原因
テストしたいViewModelとTestコードはこちら

“`kotlin
class MainViewModel : ViewModel() {

fun getDate(): String {
val sdf = SimpleDateFormat(“yyyyMMdd HH:mm”, Locale.JAPAN).apply {
this.timeZone = TimeZone.getTimeZone(“Asia/Tokyo”)
}
return sdf.format(DateUtil.getCurrentDate())
}
}

object DateUtil {
fun getCurrentDate() = Date()
}
“`

“`kotlin
class ExampleUnitTest

元記事を表示

FlutterやってみたよPart7(retrofit導入)

# 初めに

ほとんどのアプリがapi通信をすると思います。
なんか楽にクライアント生成できるのないかな〜と調べていたらretrofitというライブラリを見つけました。
今回はそれを導入してみようと思います。

– [retrofit](https://pub.dev/packages/retrofit)
– [retrofit導入YouTube](https://www.youtube.com/watch?v=7VYwtpaZEhg)

# サンプルアプリ

まずはサンプルアプリの仕様をざっくり決めます。

– Qiitaのapiを使用して最新記事を取得する
– 取得した記事を一覧で表示する
– 記事のタイトルをタップしたら記事詳細をwebviewで開く

今回はこんな感じの簡単なアプリにします!

# retforitの仕組み

導入する前にざっくりとどういう仕組みで動くのか理解します。
公式のReadmeやSampleを見ればなんとなくわかると思いますが、
abstractでapiのエンドポイントを定義。
この定義されたファイルを元にクライアントの実体を自動生成する仕組みで

元記事を表示

【Android / Java】 フラグメントでの画面遷移と戻る処理

# はじめに
Android Studio で Javaを用いたモバイルアプリの開発を学んでいます。
layoutファイルについてはあまり力を入れて記述していません(ざっくりです)。画面切り替えの動作等にフォーカスしているため、stringファイルは使用しませんでした。

### 学んだ内容
– “FragmentManager“ “FragmentTransaction“ を用いた表示フラグメントの切り替え(画面遷移)
– “addToBackStack“ “popBackStack“ を用いたアクションバー戻るボタンクリックで戻る動作

# 学習のために作成したサンプルアプリの概要
1つのアクティビティにメインとなるフラグメントを用意し、そこからボタンを押すことによって2つのフラグメントに行き来ができるだけの簡単なアプリ。
アクティビティ:1つ
フラグメント:3つ(メイン1つ、サブ2つ)

この①、②ボタンでサブフラグメント1、サブフラグメント2にそれぞれ遷移する

メイン画面(MainFragment)|
———————-|

元記事を表示

モバイルアプリにおけるUIデザイン

#1.はじめに
私は(筆者は)モバイルエンジニア転職を目指す立場です。個人的にアプリのUIデザイン知識はデザイナーだけでなくエンジニアにも必須だと思っています。私自身がアプリ開発の過程でデザインについて指摘され、「このままデザインに無知では良くないと思った」、「同じような立場の方にモバイルアプリのデザインの事を少しでも知ってもらいたいと思った」その2つの理由から本記事を執筆しました。
現在、エンジニアを目指している方やアプリ開発はしているけどモバイルデザインについて改めて知りたいという方、そのような方向けに改めてiOS・Android双方のデザインガイドラインについてまとめてみました。

#2.iOSとAndroidのデザインの考え方
2020年現在、iOSではHuman Interface Guidelines、AndroidではMaterial Designの考え方をもとにアプリUIが作られています。双方の公式ページはモバイルアプリを構成する UI の基本指針が細かく記されているのでエンジニア&デザイナー必読です。AppleよりGoogleの方が画像や映像を多く使って解説しているた

元記事を表示

UnityChanSSUをAndroid実機ビルドした際シェーダのコンパイルエラーで失敗した時の対処法

個人的に偶然キレイなビジュアルが作れたので、PCではなくスマホで動かしたくなりました。

[Android] プロフィール画像とかでよく見る画像を丸にくり抜くやり方 [メモ]

#はじめに
プロフィール画像とかでよく見る、画像を円型に表示させる方法。色々なやり方があると思うが、今回はMaterial ComponentのShapableImageViewを使います。

# 目標

#Gradle
“`gradle
implementation ‘com.google.android.material:material:1.2.1’
“`

# 実装
`shapeAppearanceOverlay`属性に任意のスタイルを当てはめると簡単に円型やひし形などカスタマイズできます。

“`xml

元記事を表示

【Android】EditTextの下線を消し方

#【Android】EditTextの下線を消す
* EditTextの下線を消す方法

“` Activity.xml


“`

元記事を表示

UnityAndroidプラグインのIFメモ

Java

“`
package com.android.gl2jni;

// Wrapper for native library
public class GL2JNILib {

static {
System.loadLibrary(“gl2jni”);
}

/**
* @param width the current view width
* @param height the current view height
*/
public static native void init(int width, int height);
public static native void step();
}

“`

C++

“`
extern “C” {
JNIEXPORT void JNICALL Java_com_android_gl2jni_GL2JNILib_init(JNIEnv * env, jobject obj, jint width, jin

元記事を表示

低レベルネイティブプラグインインターフェースのメモ1

# 元ネタ
https://github.com/Unity-Technologies/NativeRenderingPlugin
https://qiita.com/fukaken5050/items/63940b65ec79a59161eb

# 環境
OS : win10pro
IDE : AndroidStudio 4.0.1
Unity : 2019.4.5f1
Unity/VS : VS2019
確認した実機: Galaxys8

# 要点の箇条書き
低レベルネイティブプラグインインターフェース(Low-Level Native Plugin Interface)を使ってUnityAndroid/Pluginで動画を再生する。

・AndroidStudio/C++で次を#includeする。Unityインストールしたフォルダからコピペする。

“`
#include “IUnityInterface.h”
#include “IUnityGraphics.h” // UnityRenderingEvent
“`

・Unityプラグインの更新はUnity再起動が必

元記事を表示

13. 【Android/Kotlin】Handler(画面遷移を遅延)

#はじめに
DreamHanksのMOONです。

前回はCircleImageViewという外部ライブラリを使用しました。
[12. 【Android/Kotlin】丸いイメージ(CircleImageView)](https://qiita.com/DreamHanks/items/b57d9eb22d70f70c0231)

今回は`Handler`について説明し、`Handler`で画面遷移を遅延してみます。

#Handlerとは
ハンドラは簡単にサブスレッドからメインスレッドへメッセージを受け渡すためのクラスです。

アンドロイドでは、UIの作業をサブスレッドですることは禁止されています。

なので、サブスレッドにUIの作業をしたい場合は`Handler`を使用します。

#画面遷移を遅延
・ローディング画面のActivityを作成

“`kotlin:LoadingActivity.kt
package com.example.practiceapplication

import android.content.Intent
import androidx.appco

元記事を表示

OTHERカテゴリの最新記事