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

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

macOS Catalina + Unity 2019.3でAndroidビルド(IL2CPP)に失敗する場合の対処

# 概要
macOS Catalina + Unity 2019.3でAndroidビルド(IL2CPP)に失敗したので対処のメモを残しておく。

# 何が起きたか
IL2CPPでAndroid向けビルドをした時に、以下のエラーが発生。

>Failed running /Applications/Unity/Hub/Editor/2019.3.0f5/Unity.app/Contents/il2cpp/build/deploy/il2cppcore/il2cppcore.dll (以下略)

# 原因(おそらく)
Android NDK を手動でインストールしたことにより、macOS Catalinaの強力すぎるセキュリティに引っかかってコマンドを実行できなかった。

# 対処方法
UnityHubからAndroid NDK をインストールする。(SDKも一緒にインストールされるが)
PreferenceからNDKのパスを設定することを忘れないこと。

# 環境
Mac OS 10.15.2
Unity 2019.3.0f5

元記事を表示

Androidアプリ開発でのSonarQube~Java~

はじめに
==
JavaでAndroidアプリの開発を行うときにSonarQubeを導入した時の手順を記載していきます。
ミニマムで導入した手順です。
Kotlinはもう少しシンプルにできると思います。

環境
==
OS:Windows 10(64bit)
Java:11
Android Studio:3.5

SonarQube
==
SonarQubeとは静的解析ツールの一つでJava, Kotlin, Swift, Goなど25以上の言語をサポートしているようです。
JenkinsやAzure DevOpsと連携することでCIツールの強化を図ることができるようです。

詳細は[公式ドキュメント](https://www.sonarqube.org/)を参照してください。

導入手順
==
基本的には公式の[Get Started in Two Minutes Guide](https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-gradle/)に沿って行きます。

1.SonarQube Serverのイ

元記事を表示

[Android] プログレスダイアログ(通信中のぐるぐる)

##実装方法
*非同期処理クラスの処理が終了したらBroadcastによりonReceiveが呼ばれる例を使っている。

~~~java
public class MainActivity extends Activity{

public ProgressDialog progressDialog_ = null;

@Override
protected void onCreate(Bundle savedInstanceState) {

//通信前にダイアログ表示
progressDialog_ = new ProgressDialog(this);
progressDialog_.setMessage(“実行中…”);
progressDialog_.show();

//非同期処理クラスを呼び出して通信処理
}

public class MyReceiver extends BroadcastReceiver{

元記事を表示

カスタムビューの実装でよく使うヘルパー関数を晒す

カスタムビューの実装など、 `onDraw` を継承して描画を自前で行う場合には、自分で描画位置の計算をしないといけないので計算量が多くなりがちです。

そういった場合に自前でちょっとしたヘルパー関数を用意しておくと便利なので、自分が使っている関数を紹介します。
( `Float` のバージョンのみを記載していますが、状況に応じて適宜 `Int` のバージョンなども作ると便利です。)

## constrain()
`value` が `min 〜 max` の間に収まるようにする関数です。こいつを一つ挟んでおくことでバリデーションになるので非常に重宝しています。

“`kotlin
fun constrain(value: Float, min: Float, max: Float): Float {
return max(min(value, max), min)
}
“`

## map()
`srcStart 〜 srcStop` の範囲にある値を `dstStart 〜 dstStop` の範囲に変換します。グラフを描画したいけれど、グラフの座標系と画面上の座標系

元記事を表示

LiveData Builderを使ってコードをスッキリさせる

# はじめに
LiveData Builderを勉強したのでメモ代わりに投稿します。

# LiveData Builderとは?
`androidx.lifecycle:lifecycle-livedata-ktx`に含まれる拡張機能で、`liveData` 関数内でsuspend関数を呼び出し、LiveDataに値を直接反映させることができます。

[Android Developers](https://developer.android.com/topic/libraries/architecture/coroutines)内に解説があります。

また、[こちら](https://codelabs.developers.google.com/codelabs/advanced-kotlin-coroutines/index.html)に公式のコードラボがあります。

# リポジトリ
GitHubからリポジトリ情報を取得してリスト表示するサンプルを[こちら](https://github.com/nanaten/Try_LiveData_Builder)に上げてあります。

#

元記事を表示

Shibuya.apk#38 参加メモ

# はじめに
2020/1/17(金)の [shibuya.apk #38 – report from KotlinConf 2019](https://shibuya-apk.connpass.com/event/159535/) に参加してきました。
slackにメモを残しても忘れてしまうので、どんな発表があったのか、
どんな資料が紹介されていたのかまとめました。
(自分用のメモです)

# Java Bytecode Vertical Tasting
### punchdrunkerさん
途中参加だったので、話の概要を掴めず…

> JavaのLTSがついていないのはすぐにサポートが切れる。今の本命バージョンは11

このあたりが要点?かも。
あと、

“`
innerクラスからフィールドにアクセスすんな
“`

コンパイラで余計なクラスが増えるかららしい。

# KotlinConf Overviewと2021年のアプリ開発トレンド
### mhidakaさん
“`
・春にはKotlin1.4が出るが、Updateはちょっと大変らしい。
・今後、宣言的UIは流行する

元記事を表示

Delphi タッチアニメーションを無効化する

#はじめに
Delphiでモバイル開発をしていると、コントロールをタッチした際に波紋のようなアニメーションが発生することに気がつきます。
ユーザーが操作可能なオブジェクトであることが分かりやすい一方、微妙にダサいというか・・頼んでないというか・・そういう気分になることもありますね!
![touchAnimation.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33684/3f1ea9c7-35c2-22c7-6bec-cb41b2871e34.png)(意外と撮るのに苦労するスクリーンショット)

しかしながら、無効化の方法については、ドキュメントを見つけることができませんでした。
なので、この記事は「方法が正しいかは解らないけどこれで無効化できたよ!」という内容になります。

Delphi 10.3 CommunityEditionで確認しています。
※iOSについては手元に環境が無いため、確認できていません。

##やり方
TButtonを例に説明します。

– マルチデバイスアプリケーションのプ

元記事を表示

React NativeのAndroidビルドでapp:mergeReleaseResources FAILED(Error: Duplicate resources)

## 下記の記事の補足
https://qiita.com/sekitaka_1214/items/2c9c3a698727d8bde659

## やること

1. `android/app/src/main/res/drawable-*`のフォルダを削除
2. `raw`フォルダ内のキャッシュみたいなファイルを削除
3. `cd android && ./gradlew assembleRelease`を実行

2に関しては、必要なファイルが含まれている場合もあるので、一旦全部削除して3を行い、not foundになったファイルだけをgitで元に戻す必要があるようです。

元記事を表示

MaterialButtonToggleGroupを使ってみる

## まえおき

とあるアプリ開発で「定休日」の入力フォームを作っていたときのこと。
![Rectangle.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/74571/d87e8be8-3bad-af24-ec27-59e2704fbd9d.png)
こういうフォームを作る必要があった。

一昔前だったら「そんなiOSっぽいフォームはAndroidの世界にはありませんよー?」だったんだけど、
今はもうMaterial Designのガイドにも存在している。
貼り付けた画像_2020_01_19_17_29.png

調べてみると、Android用のコンポーネントもあるようだ。
https://material.io/develop/a

元記事を表示

[Android]Room を使ったサンプルと解説

# はじめに

とりあえずこれに従えばできるみたいなサンプルを作ろうと思います。
サンプルは次の手順で作成していきたいと思います。

0. Room をセットアップする
1. Entity(User) を定義する
2. Dao(UserDao) を定義する
3. RoomDatabase(AppDatabase) クラスを定義する

| 役割 | クラス名 | 役割 |
| —– | ——- | ——- |
| Entity | User | データベースのテーブルを表すクラス |
| Data Access Objects | UserDao | データベースにアクセスするメソッドを定義するクラス |
| RoomDatabase | AppDatabase | Daoを生成するためのRoomDatabaseを継承した抽象クラス |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/79387/9a63c3bf-1db3-d8e2-1685-b15a1ac9d36f

元記事を表示

Androidアプリにプライバシーポリシーを置くときの構成

ここ最近は、Androidアプリにプライバシーポリシーを盛り込むことが当たり前になってきています。
以前にも、Googleのポリシー違反の取り締まりが厳しくなり、GooglePlayから大量のAndroidアプリがリジェクトされる事態もありました。

その時は、ブログに適当にプライバシーポリシーのページを作って、リンクを貼ることで難を逃れました。(いいのか、それで・・・)

しばらく放置していましたが、そろそろ改善しようといろいろ考えて、自分なりに考えてみましたので、まとめます。

### これまでの構成

![old.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113289/8d945487-e2fd-e184-0a16-3f3418577957.png)

– ブラウザを起動して、プライバシーポリシーのページを表示

> **改善したいこと**
>
> – 通信が出来ない時は表示できない
> – ブログにページを作ったのでイケてない

### 改善した構成

![new.png](https:

元記事を表示

React Nativeでコードの変更が反映されない時(Android)

## コードを変えても反映されない問題(RN)
React Nativeでしばらく触っていなかったプロジェクトやアップグレードを行なった際に、コードを変えても変更がデバイス上で反映されないことがある。

以下のコマンドで解決した。

“`bash
react-native bundle –platform android –dev false –entry-file index.js –bundle-output android/app/src/main/assets/index.android.bundle –assets-dest android/app/src/main/res/

# ↑を叩いたらいつも通り起動
react-native run-android
# or npx react-native run-android
“`

参考:
https://stackoverflow.com/questions/48304116/react-native-run-android-do-not-updating-modified-code

元記事を表示

クリーンアーキテクチャーをざっと理解できる短いコードを書いた

クリーンアーキテクチャーは沢山インターフェースやクラスが登場し、その関係をざっと把握するのが難しいです。
そこですべての要素が入ったなるべく短いコードを書いてみました。XCodeのPlaygroundなので、そのまま実行できます。[githubのリポジトリはこちらです。](https://github.com/TokyoYoshida/CleanArchitecturePlayground)なお、今回はざっと理解することを優先するため、クリーンアーキテクチャーについての詳しい説明は割愛します。参考記事をご覧ください。

このコードは、Uncle Bobの書いた[Clean Architecture 達人に学ぶソフトウェアの構造と設計](https://booklog.jp/item/1/4048930656)と、次の記事を参考に書いています。

参考記事:
実装クリーンアーキテクチャ: https://qiita.com/nrslib/items/a5f902c4defc83bd46b8
Laravelで実践クリーンアーキテクチャ: https://qiita.com/nrslib/i

元記事を表示

[kotlin]RecyclerViewの中身をGridLayout + CardViewにして表示する

#今回やること
RecyclerViewでgridLayout、tableLayoutっぽく表示する。あとcardViewを使ってUIを手っ取り早く、それっぽくする
これ↓

#RecyclerViewの配置
レイアウトファイルにRecyclerViewを配置する

“`xml:activity_main.xml
iOS, Androidアプリの価格変更(キャンペーン)の仕方

# はじめに
以前アプリをリリース([iOS, Mac, Androidのアプリをリリースしてみた
](https://qiita.com/am10/items/41d94d5175dbf63fc706))したのですが、複数の方から100円も払えるかクソが!!といわれました:sob:

まだ機能が思ってる完成形には達していないし、やっぱだれかがダウンロードしてくれないとおもしろくないししばらくは無料にすることにしました!!

たまにみるキャンペーンみたいなので期間限定無料をやりたいと思い調べていたのですがやり方があんま出てこなかったので備忘録として書きます。

# iOS, Mac版
iOSとMacアプリについてです。やり方はめっちゃ簡単。(だからあんま調べてもでてこないのかも)

1. 下記ページを開きます
App Store Connect -> マイ App -> 対象アプリ -> App Store -> 価格および配信状況
2. 価格表の「価格変更を計画」をクリック
3. 価格、開始日、終了日を選択
ios_price

元記事を表示

GatsbyJSとNetlifyでiOS/AndroidアプリのLPを勢いで作ってみた

## 経緯
2020年1月にiOSアプリをリリースして、もともとAndroidのアプリがあったので
これは今ならLP作れるのでは… :sparkles:
という浅い考えと、何か新しい方法で試してみたいという欲求から今回は
GatsbyJSとNetlifyを使ってLPを作る事にしました。