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

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

AndroidにおけるJSR-310実装

ちょっとツイッターに流れてきた情報を見て気になったので改めて調べてみました。

[https://twitter.com/red_fat_daruma/status/1268177028915716102:embed]

## TL;DL
– ThreeTenABPでJSR-310を利用する場合は環境によらず同じtz databaseを参照する(はず
– desugaringでJSR-310を利用する場合は実行環境により異なるtz databaseを参照する(はず

## java.util.Date と JSR-310
java.util.Dateが使い勝手が悪いことは良く知られており、Java SE 8ではjava.util.Dateを置き換える`Date and Time API`が追加された。このAPIはJSR-310として標準化されており、インターフェースがデベロッパーフレンドリーであるだけでなくインスタンスがイミュータブル、スレッドセーフといった機能的な優位性を持つ。[1]

## AndroidでのJSR-310実装方法の変遷
前述の通りJSR-310はJava SE

元記事を表示

Error: Activity class [Activity名 ] does not exist.解決法

#実機ビルドでエラー発生!

とにかく早くこのエラーを解決したい方の為にまず試して欲しいキーワードを書いておきますので、それをコピペしてググってみてください。簡単に試せる方法からご紹介します。

**1.GoogolePlayStoreのPlayプロテクトを外す**
**2.Clean ProjectをしてAndroidStudioを再起動する**
**3.adb uninstall [パッケージ名] というコマンドを試す**

以下は私のエラー遭遇振り返りです。

バグ修正を反映させるため、実機にあったアプリをアンインストールしていざデバッグ起動しようとしたら突然の拒絶。

“`
Error: Activity class [Activity名 ] does not exist.
“`

え…?Activityあるよ…?え…?(パニック)

色々と試しましたが最終的に解決に至った方法は…

**GoogolePlayStoreのPlayプロテクトを外す**

信じられないくらい簡単な解決法。

これでもう安心かと思いきや、また同じエラーに遭遇。

GoogolePlaySto

元記事を表示

CloudFirestoreの簡単な使い方(Android)

##はじめに
CloudFirestoreのAndroidでの基本的な使い方をメモ。
(導入から簡単なデータの送信受信など。)
使用言語はJava、開発環境はAndroidStudioを使用しています。
初投稿なので見にくい点が多々あると思いますがご了承を。
##Firestoreについて
FirestoreはNoSQLデータベースです。
ファイル構造は画像の通りです。
コレクション内にドキュメントが入っていてその中のデータを使います。
ドキュメント内にサブコレクションを作成することも可能です。
![structure-data.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/686889/4a5dbf95-be00-ebfc-36e7-4f1fb87593b2.png)

##プロジェクトの作成、準備
[Firebase](https://console.firebase.google.com/u/2/)のホームページから使ってみるを押しプロジェクトを作成をクリックし、手順に沿って作成していく。
アプリ

元記事を表示

Firebase赤ちゃんがKotlinでPUSH通知を送信するまで

はじめまして。プロ赤ちゃんです。
この記事では、FirebaseのFも理解できていない赤ちゃんが三日三晩苦しんだ末にFirebase赤ちゃんからFirebase幼稚園に入園するまでのサクセスストーリーを書いていきます。
よろしくおねがいします

# Firebase赤ちゃんの誕生(サイトアクセス~ログインまで)

[Firebaseのサイト](https://console.firebase.google.com/)にアクセスし、押してくれと言わんばかりの「使ってみる」ボタンを押します。
Googleアカウントのログイン画面が出てくるのでログインするかアカウントを作るかして先に進みます。
そうしたら↓の画面が出てきました!Firebase赤ちゃんの誕生です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294935/424de5a6-b5f3-7f4c-d1ed-8b2359a44f3d.png)

次はプロジェクトを作成します。

# Firebase乳児期(プロジェクト作成まで)

元記事を表示

【超初心者向け】Android入門 EditText編

# はじめに
前回はButtonを解説したので、今回はEditTextについて解説していきたいと思います。

# 記事の対象
– Androidアプリ開発を始めたばかりの人
– 前回の記事を読んだ方

# EditText
EditTextとは、入力可能なテキストフィールドです。

# 1. EditTextを配置していく

“`xml:activity_main.xml

元記事を表示

MutableLiveData は双方向データバインディングにも使える

[データバインディング](https://developer.android.com/topic/libraries/data-binding?hl=ja)を利用して EditText に入力した内容を ViewModel に通知する処理を実装していました。

“`xml

“`

“`kotlin:FormViewModel.kt
class FormViewModel : ViewModel() {
var userName = ObservableField()
}
“`

上記の実装だと、`FormViewModel`から`userName`を変更すると View に反映されますが、逆に画面

元記事を表示

音声認識

音声認識を取り入れたアプリを開発した時にいろいろ詰まったことがあったので備忘録。

## 何を使った??
まず音声認識をするのに使ったのは**SpeechRecognizer**!
Androidの音声認識をやるにはこれが基本みたいです。

## やりたいこと
常に音声を拾いたい!拾ったら画面に認識した言葉を文字列として表示したい!

## 詰まったところ
### ひとつめ
いざ音声認識をしてみたのですが、一回拾ったらその次の言葉を拾ってくれない。。
ええええ、なんで?となって調べまくりました。
連続して音声を拾うには、音声の取得が終わったところでまた`SpeechRecognizer#startListening()`を呼べばいいそう!
音声認識した文字列を受け取った先でstartListeningするためにリスナーを用意しました。
エラーの時も処理を継続させたかったので、`onError`時にもリスナーをよんでいます!

ざっくりですが、こんな感じ。

▼SpeechRecognizerのコールバック用クラス

“`
class SpeechRecognizerListener(

元記事を表示

Android Navigationでアニメーション付きで画面遷移させる

## config.xmlとアニメーション用のxmlを作成する

“`main/res/values/config.xml


400

“`

“`res/anim/slide_in_right.xml



元記事を表示

【備忘録】プロジェクト作成

[戻る](https://qiita.com/Mosaku_Anchu/items/9dbf06c34577dfc7aa9c)
#新規プロジェクト作成
※著者のAndrid Studioは日本語化されています。

– Android Studioの以下の画面又は、[メニュー]→[新規]→[新規プロジェクト]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/362978/d643e5ee-9c8b-751b-880e-bdd5da9aeaa8.png)

***
– とりあえず[空のアクティビティー]を選択し、[次へ]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/362978/c8cdd561-1066-3200-7045-38f234e3a303.png)

***
– プロジェクト構成
– 名前 変更は面倒なのでよく考える
– パッケージ名 所持ドメインの逆順が一般的?
– 保存ロ

元記事を表示

【備忘録】業務用Andoridアプリ開発への挑戦

#前提情報

## 挨拶
乱筆乱文にて失礼いたします
業務改善のためAndroidアプリの開発に挑戦することに
開発手順を検討しつつ進める所存
都合により細部をぼかすことがあるはご容赦いただきたし
内容は随時追加予定

## 選定経緯
– 紙に記入→PCへ入力の業務が非常に多く
データ化されていない情報も多い
– PC台数が少なく調べものもままならない
– ネットワーク環境が弱いためオフラインでも使える
___→Androidでアプリ開発が最適では___

***
## 投稿者スペック
– システム管理者3年目(2020/10現在)
– Android使用経験なし
– Java経験なし

## 環境確認
– Windows10 Pro + Java7
– Android Studio 4.0
– サーバー + SQL Server + Tomcat7
– Androidタブレット(Android 9 Pie)

# 開発手順

## 要件定義
– ターゲット補足
– 理想形の構築
– 現状の確認
– すり合わせ

## Androidアプリ
– [プロジェクト作

元記事を表示

【未経験の方必見】アプリエンジニアが狙い目な理由

こんにちは。
この記事では、
「なぜアプリエンジニアが狙い目なのか」
「なぜアプリエンジニアが少ないのか」
にフォーカスを置いて書いていきます。

##なぜアプリエンジニアが狙い目なのか

理由は簡単です。
母数が少ないからです。
この理由から、需要に対しての供給が足りていません。
経験者の採用を諦め、未経験者の教育に力を入れている会社もあるようです。

実際、弊社では全ポジションを募集していますが、
アプリエンジニアの面談回数はサーバーサイドやフロントに比べてかなり少ないです。

サーバーサイドやフロントに対してアプリエンジニアは
大体5分の1〜10分の1ほどしか応募がきません。
アプリエンジニアの中でもAndroidエンジニアは特に、iOSエンジニアの10分の1ほどしか
来ないため、Androidエンジニアの希少性はかなり強いと言えます。

##なぜアプリエンジニアが少ないのか

Twitterを通していろいろな意見を見たり、実際に勉強会で交流を通して意見を聞いてきた中で、
アプリエンジニアが少ない理由がいくつか見えてきました。

###苦手意識
初学者の人はまず、「どの言語をや

元記事を表示

【超初心者向け】Android入門 Button編

# はじめに
前回Android入門 TextView編をやったので今回はButtonに関して解説していきたいと思います。

# 記事の対象
– Androidアプリ開発初心者
– Androidをこよなく愛す人
– 前回の記事を読んだ方

# Buttonとは

その名の通りボタンです。
押して何かしらのアクションを起こすものですね。

# 1. activity_main.xmlにButtonを追加する。

“`xml:activity_main.xml

元記事を表示

【超初心者向け】Android入門 TextView編

# はじめに
前回Android入門 Hello World編を書いたので、今回はHello World以外の出力をしてみたいと思います。

# 記事の対象
– Android入門者
– Android開発してみたい人
– 前回の記事を読んだ方

# TextViewとは
TextViewはテキスト表示するためのViewです。

前回の続きから書いていきましょう。

# 1. activity_main.xmlを確認

![スクリーンショット 2020-10-20 20.52.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411927/e73a0011-6b35-7383-3370-6caa85bc3aa0.png)

左側のディレクトリ構成を確認します。
app/res/layoutの中にactivity_main.xmlがあることがわかりますね。
基本的にレイアウトファイルはapp/res/layout下に配置していきます。

# 2. xmlを見てみる
上記の画像の右上のタブが今はDesig

元記事を表示

【超初心者向け】Android入門 Hello World編

# はじめに
今回は超初心者向け、AndroidでHello worldを出力するだけの記事です。

# 記事の対象
– Androidアプリ開発をしたことがない人
– Androidに挑戦してみたい人
– Hello World大好きな人

# 環境構築

[Android Studioをインストール](https://developer.android.com/studio?hl=ja)するだけです。

# 初めてのAndroidアプリ
## 1. Create New Projectを選択します。
![スクリーンショット 2020-10-20 19.33.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411927/0f85cafd-6627-9efe-2a15-88623bdb6002.png)

## 2. Empty Activityを選択しNextを押下
![スクリーンショット 2020-10-20 19.34.23.png](https://qiita-image-store.s3

元記事を表示

【Android】APKをデコンパイルしてみる

## はじめに
最近Android開発を始めて、絶賛Kotlin勉強中の者です。今回ソースコードを難読化してbuildすることがあり、本当に難読化できているのかを確かめてみたかったので、デコンパイルすることにしました。ただ、なかなか思うようにデコンパイルができなかったので、成功した方法を備忘録として残しておきます。

今回は、下図の通り、build前のソースコードをKotlinで書いたので、`.kt`ファイルをbuildして`.apk`ファイルになったAndroidのコードをデコンパイルし、`.java`ファイルを作成しました。

![デコンパイル図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546572/5645baef-472a-2373-a71b-fe26d1c46f29.png)

## 環境・バージョン

+ macOS Catalina バージョン 10.15.6

## 失敗した方法
調べるとよく出てくる`dex2jar`と`jad`を使う方法です。
この方法が定番なのかなと思

元記事を表示

Android で Youtube の動画を再生する[Kotlin]

# つくるもの

YoutubeAPI を使って動画再生するためには、そもそも端末に Youtube アプリが入っている必要があるとかで、Youtube アプリを必要としない Youtube 動画プレイヤーを実装する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/950807dc-7093-763d-1118-b8dbe6ca13c4.png)

# 今回やったこと

できることは [AndroidでYoutubeの動画を再生する](https://qiita.com/TaigaNatto/items/d3ff98961c346098eaf7) とほぼ同じ。
このコードを参考に、下記の内容を追加実装した。

– Kotlin化
– ExoPlayer を中心に各ライブラリの更新
– Youtube動画ID から直接再生

# 方法

ここのソースで動かせる
https://github.com/tktcorporation/ExoPlayerYoutubeSample

元記事を表示

Goでローカルサーバーを立てた~ファイルダウンロード~

初めに
===
Androidアプリからリクエストを投げて、GoでWebServerを立てたローカルサーバー上のファイルをダウンロードする

環境
===
PC Windows10
Android Studio 4.0
Kotlin 1.3.72
Android端末 Emulator(API Level 29)
Go 1.11.1

構成図
===
![go_server.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487320/e8771fc0-f61a-3472-8ab4-5f998bb3e704.png)
Androidアプリからファイル名を指定して、サーバー側にリクエスト、サーバー側に保存されているファイルとステータスコードを返却

実装
===
ローカルサーバー

“`Server.go
package controllers

import (
“fmt”
“io/ioutil”
“net/http”
“os”
“strconv”
“strings”
)

fu

元記事を表示

MediaCodecのencode

これ:http://tokyo.supersoftware.co.jp/code/6104

[うごかした](https://1drv.ms/u/s!ApO4wsxFJBbVulT15Cn8RGGgMzFe?e=94kJfV)

元記事を表示

#14 Kotlin Koans Conventions/In range 解説

#1 はじめに

Kotlin公式リファレンスのKotlin Koans/In rangeの解説記事です。

Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。

ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**

一度各自で挑戦してから、お目通し頂ければと思います:fist:

#2 contains()関数

[Operator overloading](https://kotlinlang.org/docs/reference/operator-overloading.html)

`a in b`とういう表現で`b.contains(a)`のように使用します。

#3 Conventions/In rangeの解説

[Kotlin Koans Conventions/In range](https://play.kotlinlang.org/koans/Conventions/In%20range/Task.kt)の解説です。
随時本サイトの内容を引用させていただきます。

右側の本文を見て

元記事を表示

#15 Kotlin Koans Conventions/Range to 解説

#1 はじめに

Kotlin公式リファレンスのKotlin Koans/Rnage toの解説記事です。

Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。

ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**

一度各自で挑戦してから、お目通し頂ければと思います:fist:

#2 rangeTo()関数とcontains()関数

[Operator overloading](https://kotlinlang.org/docs/reference/operator-overloading.html)
いずれもoperator修飾子がついた関数です。

`a .. b`という表現で`a.rangeTo(b)`のように使用します。

`a in b`とういう表現で`b.contains(a)`のように使用します。

#3 Conventions/Range toの解説

[Kotlin Koans Conventions/Range to](https://play.kotlinlang.org/

元記事を表示

OTHERカテゴリの最新記事