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

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

FirestoreのデータをRecyclerViewで表示する[Java]

Firestoreのデータが更新されるたびにRecyclerViewの表示も更新されるようなことをやりたかったのですが、日本語で書かれた記事が全然なくて苦戦しました。

この記事では[FirebaseUI for Cloud Firestore](https://github.com/firebase/FirebaseUI-Android/tree/master/firestore#using-the-firestorepagingadapter)を参考に**FirestoreRecyclerAdapter**を使ってチャットアプリを作ってみます。

Firestoreでのデータベース作成がまだの人は[Cloud Firestore を使ってみる](https://firebase.google.com/docs/firestore/quickstart?hl=ja)を参照してみてください。

#表示するデータのモデル
チャットアプリをイメージしてください。

“`java:Chat.java
public class Chat {
private String mNa

元記事を表示

【Mac不要】開発中のFlutter製アプリをiOSとAndroidに実機配備する手順 – Codemagic編

# はじめに

Flutterはクロスプラットフォーム対応ですので、作成したアプリはiOS, Android両方にリリースすることができます。ところが、WindowsではiOS向けのビルドができません。Macを持っていない人にはつらい事実ですね。そこで、この記事ではCodemagicというサービスを利用してiOS, Android両方にリリースする手順を紹介します。

## 前提

この記事は、以下に当てはまる人向けの iOS/Android 対応アプリを開発する手順を紹介します。

* 開発機はWindowsだ
* **Macを持っていない**
* Flutterで開発したい
* Apple Developer Programに既に登録している、または年間で約12,000円を支払えるクレジットカードまたはデビットカードを持っていて、支払い後に最大48時間待ってやるのも悪くない。※1

※1: 2020/03/25現在。

## 開発環境の前提

* AndroidStudioがインストールされていること(まだの方は、インストールをお願いします)
* Git for windowsが

元記事を表示

[Ubuntu]Android Studio をインストールしショートカットを作成する

最近、Android アプリケーションの開発環境を Ubuntu (Linux Desktop) に移行を試みています。Android Studio のインストール自体は簡単でうまく行くのですが、ショートカットの作成に手間取ったのでまとめたいと思います。

# インストールする

Android Studio のインストールは簡単で Android Studio をダウンロードし任意の場所に展開するだけです。今回は Android Studio を /opt に展開してインストールします。

1. [Android Studio](https://developer.android.com/studio) をダウンロードする
2. ターミナルを開く
3. ダウンロードしたファイルを tar コマンドで /opt に展開する。

“`
$ cd /opt
$ tar -zxvf ~/Downloads/android-studio-ide-192.6392135-linux.tar.gz /Desktop
“`

[![Image from Gyazo](https://i.gyaz

元記事を表示

[Android]ダブルクォーテーションを画面に表示する

# はじめに
strings.xmlで定義したダブルクォーテーション(二重引用符)したい場合、「`\”`」を使います。
ただ、WPFの文字列リソースだと`%quot;`で表示されるのに…となったため簡単にまとめてみます。

# 比べてみる
`”`を含む文字列をTextViewに指定してみます。
「xmlにべた書きする」「strings.xmlの文字列を指定する」「Activityから文字列を指定する」の3つで比べてみました。

## xmlにべた書きする
“`xml:activity_main.xml

“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245399/8d3eba4a-8f15-7c07-8cfa-6fbc78cb5db4.png)
xmlでべた書きすると、`\`は効かないため特殊文字である`%quot;`と書かなければ

元記事を表示

OpenAPIでお手軽にモックAPIサーバーを動かす

OpenAPIというものを教えてもらったので、ちょっと~~遊んで~~試してみました。

# 目標
APIをOpenAPIで定義し、コードをジェネレートしてAPIのレスポンスが得られる。
なので、使うのは[OpenAPI Specification](https://swagger.io/specification/)と[OpenAPI generator](https://openapi-generator.tech/)になります。

# 環境など

|ツールなど|バージョンなど|
|:–|:–|
| MacbookPro |macOS Mojave 10.14.5|
|Android Studio |3.6.1|
|Java |1.8.0_131|
|Postman|7.19.1|

# OpenAPIでAPIを定義する

## 1.APIの設計

APIの設計をzeroからやったことがないので流儀がよくわからないですが、以下のようなRESTfulAPIを考えます。

とあるログデータ型`LogData`があるとして、データは何かしらのDBに入っていると仮定します。プライマリキー

元記事を表示

【Kotlin初心者】Navigation + BottomNavigationで画面遷移

## やりたいこと

– BottomNavigationをNavigationで作成
– 画面遷移をNavigationで作成

## BottomNavigationをNavigationで作成

– 事前に以下のクラスを用意
– MainActivity.kt
– FirstFragment.kt
– SecondFragment.kt

– BottomNavigationのMenuリソース作成

BottomNavigationに表示するアイコンやタイトルを設定します。

“`xml:bottom_nav_menu.xml

JavaScript から javaを呼び出せた 最初のソース

MainActivity.java

“`
package pro.test.localweb;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

private WebView myWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// webView に関する

元記事を表示

消えたRecylerViewのitemたち

こんにちは。

# はじめに
Androidアプリを作成していたら,
RecyclerViewのアイテムの個数が,自分の思ってた数よりも小さくなってしまう現象が起きたので記事にまとめておこうと思いました。

## 最初の状態
とりあえずRecylerViewで,バナーを100個ならべてみます。

“`kotlin:DebugActivity.kt
class DebugActivity : AppCompatActivity() {
private data class Banner(
val index: String?,
val title: String?
)

private var bannerArrayList: ArrayList = arrayListOf()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this.setCon

元記事を表示

FragmentのonCreateView()とonViewCreated()の使い分け

# はじめに
 **Fragment** の **onCreateView(LayoutInflater, ViewGroup, Bundle)** と **onViewCreated(View, Bundle)** の使い分けに関するメモです。

# 結論
 Fragment の onCreateView() と onViewCreated() をどのように使い分けるかについて、まずは結論から。

– androidx の Fragment を使う
[android.app.Fragment](https://developer.android.com/reference/android/app/Fragment) ではなく [androidx.fragment.app.Fragment](https://developer.android.com/reference/androidx/fragment/app/Fragment) を使う。[^1]

– onCreateView() は使わない
[onCreateView(LayoutInflater, ViewGroup,

元記事を表示

AndroidでKoinを使ってDI

Koinは使ったことあるが、Androidプロジェクトに初期導入したことがなかったので、やってみる。

## KOINとは

公式より日本語化して引用
> Kotlin開発者向けの実用的な軽量の依存関係注入フレームワーク。
>
>純粋なKotlinで記述され、機能解決のみを使用します。プロキシなし、コード生成なし、リフレクションなし。

https://start.insert-koin.io

## 導入

まずはbuild.gradleに追加

“`groovy:build.gradle
buildscript {
ext.koin_version = ‘2.1.5’

dependencies {
classpath “org.koin:koin-gradle-plugin:$koin_version”
“`

“`app/build.gradle
// Koin for Kotlin
implementation “org.koin:koin-core:$koin_version”
// Koin fo

元記事を表示

Flutter初見が5日間のハッカソンでアプリ開発してきた

## はじめに
この記事はコロナで外出自粛ムードの中、 `#おうちハッカソン` なるものでFlutterアプリ開発をしてきたのでその体験記になります。

自分 [@hohohoris](https://twitter.com/hohohoris)の簡単なプロフィールとしては、

– サイバーエージェント21年度入社予定
– Androidエンジニア
– プログラミングを初めて1年3ヶ月、Android以外のプラットフォームでの開発経験はない
– もちろんFlutter初心者

という感じです。

## おうちハッカソン

https://connpass.com/event/174573/

外出のできないGWにせっかくだからハッカソンしようじゃないかということで、インターン先でメンターをしてくれている [@at_sushi_at](https://twitter.com/at_sushi_at)さんが主催されていました。

自分も暇だったのと、複数人で開発する中期間のハッカソンに参加したことがなかったためこれを機に参加してきました。

そして、内定者先で一緒に出る人を募集したとこ

元記事を表示

Color#argbのAPI Levelでの使い分け

Color#argbでRequireLevelでの警告が出て対処したので備忘録

Call Requires API Level 26

“`
Color.argb(alpha: Float, red: Float, green: Float, blue: Float)
“`

それ以下

“`
Color.argb(alpha: Int, red: Int, green: Int, blue: Int)
“`

`Float`か`Int`かの違いですね

元記事を表示

Android 11 Labs Day 2 メモ書き

少し時間が空いちゃったけど、[Android 11 Labs](https://developersonair.withgoogle.com/events/android11labsjp) の Day 2 で気になったところだけメモ。
(Day 1 は[こちら](https://qiita.com/koichi-ozaki/items/77313a8c49c0b2c76367))

– ストレージのスコープ化についての最新技術情報
– Android 10 でストレージのスコープは導入されている
– Android 10 より前
– 外部ストレージへのアクセスはストレージのパーミッションがあれば OK だった
– 他のアプリの領域も読み書きできた
– Android 10 から
– セキュリティの観点から、他のアプリの領域は参照できなくなった
– ファイルの所有者がちゃんとわかるようになっている
– 強制ではなく、manifest になんか書けばこの機能をオフにできてた

元記事を表示

いい感じにステータスバーの色をアクションバーの色と合わせる方法(Android)

## はじめに

Androidでは、アクションバーの色を濃くしてステータスバーの色にセットしているアプリが多く見られます。

|Nintendo Switch Online|Trello|Instagram|
|:–|:–|:–|
|![EVm70iSUcAEwsn6.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/81d261b6-6dfe-985e-4439-b83ba0e7e4f7.jpeg)|![EVm71buU4AA5jP-.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/78bf2ca3-9e9f-8deb-cba6-94a7fb974ecb.jpeg)|![EVm711fVAAIQdP3.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/61f22788-212b-837e-4

元記事を表示

【Android】初心者がJavaでタイマーアプリを作ってみた

ゴールデンウィークで暇な時間ができたので、JavaとAndroidについて勉強してアプリを作ってみました。
作ったのはタイマーアプリです。すごい簡単なものですが、JavaとAndroidを1から勉強したのでなかなか大変でした。
自分で入力した時間をカウントしてくれるというものですが、秒数でしか指定できません。
微妙な出来ですがとりあえず備忘録としておきます。

– 仕様
– 時間を自分で設定できる
– STARTボタンでカウント開始
– STOPボタンでカウントストップ
– カウント終了をバイブレーションで通知

– 環境
– windows10
– androidstudio3.6.3
– Java8

– ファイル
– MainActivity.java
– activity_main.xml

以下、コードです。

“`java:MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Count

元記事を表示

眺めて覚える C# Xamarin Forms(12) カメラ制御

#Xamarinを使ってスマートフォンカメラを制御します。
##空のプロジェクトを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/3b95bcd3-0913-1b33-aa92-b5c53426f22c.png)

##モバイルアプリを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/b5a27fb1-beee-2eeb-0dd6-125be138bcf6.png)

##プロジェクト名を指定して作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/e6487bb4-6e84-5033-e966-57f9157345d8.png)

##空白を選択してOK

![image.png](https://qiita-image-s

元記事を表示

おうち時間にWEBエンジニアがFlutter触ってみた(環境構築)

#はじめに
おはようございます。こんにちは。こんばんは。
今回は **#おうち時間** 家にいても何もすることがないのでFlutterでアプリ作って遊んじゃおう。と思いはじめました。
始める前に環境構築していきましょう。

#Flutterとは
Flutter は、Googleによって開発されたフリーかつオープンソースのモバイルアプリケーションフレームワークである。
FlutterはAndroidやiOS向けのアプリケーションの開発に利用されている。

#今の環境

– macOS: 10.15.4
– Android studio: 3.6.3
– Xcode: 11.4.1

#環境構築
[https://flutter.dev/](https://flutter.dev/)にアクセスして**Get Started**をクリックして下さい。
Flutter_-_Beautiful_native_apps_in_record_time.pngfindViewByIdの速度検証

# はじめに
最近Android開発を触り始めました。
findViewByIdを使用する事でviewを取得できますが、調べてみると繰り返し処理の中でfindViewByIdを何回も繰り返す事は処理速度的にあまりよくないとのことだったので検証してみました。

# なぜ処理速度的にあまりよくない?
findViewByIdはviewの階層の上から順に検索していくため、階層が深いほど処理時間がかかる。

“`activity_main.xml

PythonサーバからAndroidにpush通知する

# 記事の趣旨

[前の記事](https://qiita.com/nk5jp/items/7b7c1e70bde457041bd3)でとりあえずpush通知のひな形は作れたと思うので,今度はその通知をFirebaseコンソールではなく,自分のサーバを起点として発出してみようという記事.

サーバはAWS上に立てたCentOS7を使用する.使用言語は何でも良いと思うがとりあえずPython3.7を選択.Pythonおよびpipは既にインストールされている前提とする.

## 1. 通知メッセージの送信手順

通知だけでなく,そこで送った情報をトリガとしてクライアント側に色々やらせたいところだが,まずはその辺りは抜きにして,シンプルに通知だけを送ることを目指す.

### 1.1 Firebase Admin SDKの追加

Firebase Admin SDKとは,サーバとFirebaseとの対話を仲介してくれるツールという理解で良いと思う.今回は使用言語としてPythonを選択しているので,Firebase Admin Python SDKをインストールすることになる.これを[こちら

Flutter+Android4.4(Kitkat)でクラッシュする件の対応策

# 現象

Android4.4(Kitkat)の端末にFlutterアプリをビルドしてインストールしたところ、splash後にクラッシュする。

# 環境など

|ツールなど|バージョンなど|
|:–|:–|
| MacBook Air Early2015|macOS Mojave 10.14.5|
|Android Studio |3.6.1|
|Java |1.8.0_131|
|Flutter|1.12.13+hotfix.5|
|Dart |2.7.0|
|Xcode |10.2|

# クラッシュログ

debug起動した際のクラッシュログです

“`console
E/flutter (10422): [ERROR:flutter/shell/platform/android/platform_view_android_jni.cc(39)] java.lang.SecurityException: uid 10290 does not have android.permission.UPDATE_DEVICE_STATS.
E/flutter (10422):

元記事を表示

OTHERカテゴリの最新記事