Android関連のことを調べてみた2019年12月03日

Android関連のことを調べてみた2019年12月03日

AndroidStudioのProject Viewで、パッケージをまとめずに全階層表示する

#環境
Android Studio 3.5

#連結されたパッケージ表示
プロジェクト内にファイルやパッケージを追加する時、AndroidStudioのProject Viewから直接追加している人も多いかと思います。
この時、設定によっては以下のようにパッケージが連結されて表示されています。

![スクリーンショット 2019-12-03 9.51.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235269/a9434c05-44e8-d8c8-3aa5-7dcf2df5761a.png)

model直下にrequestしかないため、個別に表示する必要がないと判断されていますね。

#パッケージを全階層表示
これだと、modelの下に`response`というpackageを追加したい時に少し面倒です。
そんな時はこのようにして全ての階層を表示させましょう。

Projectから
![スクリーンショット 2019-12-03 9.51.22.png](https://qiita-image-

元記事を表示

Firebaseのサーバーレスアプリ開発について(Android編)

## Firebaseサーバーレスアプリのニーズ
2~3年前からサーバーレスのアプリ開発(Android/iOS)が増えています。
特にFirebaseを使っているスタートアップをよく見かけます。

アプリの競争が激しい中、今はいいアプリを作るだけで売れる時代は終わっているかも知りません。
特に資金力の弱いスタトアップだと限られた資金で短期間に成果をあげることは難しいでしょう
資金調達の為にもより早くアプリを見せないといけないです。
そういったニーズの答えがFirebaseのサービスだと思います。

## Firebaseサーバーレスのメリット&デメリット

メリット&デメリットはあくまで私の個人意見です。
以下の内容以外にもいっぱいあると思います。

### メリット
– サーバー開発期間がゼロ
– サーバー管理が不要で開発に集中できる
– 無料枠でも結構使える
– Firestoreだとほぼリアルタイムで更新するのでチャット機能も簡単に実現できる

### デメリット
– 無料枠を超えると料金がちょっと高めになること
– Firebaseの詳細料金表:https://fireb

元記事を表示

GitリポジトリのライブラリをAndroidアプリから参照する

#Gitのリポジトリのライブラリを参照する方法

色々調べてトライしたけれど、ブランチ指定した場合にうまく動作するのがこの方法だったのでメモ
他の方法はmaster指定しかうまく動かなかった・・・

詳細は以下のソースコードをみてください。

[ライブラリのリポジトリ]
https://github.com/tokuyama-san/MyLibrary

“`ruby:build.gradle(Module)
apply plugin: ‘com.android.library’
apply plugin: ‘kotlin-android’
apply plugin: ‘kotlin-android-extensions’
apply from: ‘maven.gradle’ ←ここを追加

android {
compileSdkVersion 29

defaultConfig {
minSdkVersion 28
targetSdkVersion 29
versionCode 1
version

元記事を表示

【Android】license-tools-pluginで出力したlicenses.htmlで、URLが長いと改行位置がずれてしまう

#はじめに
アプリでライセンス表示を埋め込む際、色々な方法があるかと思います。
今回クックパッドさんが開発された[license-tools-plugin](https://qiita.com/nissiy/items/b0c98cf210b7fe8833a7)を使わせていただくこととなり、
実際に表示まで行なった際に表題の問題が発生してしまいました。
その原因と対応方法を自分用のメモとして残しておきたいと思います。

license-tools-pluginの詳細な使い方については、
他の方がわかりやすくまとめられている為、本記事では割愛させていただきます。
※[あの素晴らしいlicense-tools-pluginをもう一度](https://qiita.com/toranoko0518/items/dff1d1ad0afa9f5a733f#%E5%BF%85%E8%A6%81%E3%81%AA%E9%A0%85%E7%9B%AE%E3%81%8C%E4%B8%8D%E8%B6%B3%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B

元記事を表示

MotionLayoutのサンプルコードから学ぶMotion Editor

この記事は[コネヒト Advent Calendar 2019](https://qiita.com/advent-calendar/2019/connehito) 3日目の記事になります。

## はじめに
[Android Studio 4.0 Canary 4](https://androidstudio.googleblog.com/2019/11/android-studio-40-canary-4-available.html)に新機能として導入されたMotion Editorについて調べてみたので、公開されているMotionLayoutのサンプルコードをベースに、どのように利用されているのか紹介します。

## MotionLayoutとは?
– ConstraintLayout 2.0に含まれている機能
– 始まりと終わりのレイアウトをXMLで定義することによって簡単にアニメーションを実装することができる

## Motion Editorとは?
– Android Studio 4.0 CanaryからMotion Editor導入された
– IDE内でViewの関係

元記事を表示

Coroutines私的メモ2~Dispatchers, withContext, async/await~

[私的メモ1](https://qiita.com/sudo5in5k/items/90b92eb5b7f43ce4ecf5)の続きです

# 前提
前回同様、現在のスレッドがわかるようにloggerメソッドを仕込むことにします

“`kotlin
fun logger(msg: String) = println(“${Thread.currentThread().name} : $msg”)
“`

# dispatchers
コルーチンを使う際に、どのスレッドもしくはスレッドプールにて実行・制御したいということがあります

その際にdispatcherを指定することで解決できます Dispatcherにもいくつか種類があるので使い分けたいところです

## Dispatchers.Main
UIに関する処理をするメインスレッドのためのコルーチン

## Dispatchers.Main.immediate
UI更新を即時行いたい際に使用される (e.g. textviewのtext更新とか)

## Dispatchers.Default
共有スレッドプールを使用し、CPUの

元記事を表示

【Android】世界一わかりやすいRecyclerViewの実装

この記事は[FUN Advent Calender 2019](https://adventar.org/calendars/4058)の3日目の記事です。

昨日の記事は、[【ガチ比較】登校ルートをチャリで往く](https://front-hair.hatenablog.com/entry/2019/12/02/000021)
でした。


# 前置き
Androidアプリ開発で、長ーいリストや逐次中身のデータ更新があるリストを扱いたいこと。結構あります。
そこでよく使われるのがRecyclerViewというものです。

この記事を書こうとしたきっかけは以下のとおりです。大抵の人がRecyclerViewを使いうとして調べた結果、たどり着く記事は大抵RecyclerViewを単体で扱ってくれていないということです。
~~RxJava….? DataBind….? 記事を読む人の学習コストをわざわざ上げていることがよくわかりません。分かっているなら話は別ですが。~~

ということで、今回はRecyclerViewをとりあえず動かせる最低限のコードをかんたんに解説していき

元記事を表示

[Android / Kotlin / OkHttp] JSONをPOSTする話と拡張関数を触った話。

どうもこんばんわ

# 本題
インターネットで何か情報をとってくるアプリを作るのは楽しいものです。
そこでWebAPIをよくたたきますが、その時に便利なライブラリが「OkHttp」です。
HttpURLConnectionよりわかりやすく書くことができます。

# なんのAPIを叩くのか
調べるの面倒なので身近な**Mastodon**の投稿するAPIを叩こうと思います。
青い鳥と違いアクセストークンは何もしなくても設定画面の開発から生成することができます。すごい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409918/03e990bc-6109-d8f0-ef18-657bd4aa9ace.png)

# OkHttp導入

“`gradle
implementation(“com.squareup.okhttp3:okhttp:4.2.2”)
“`

# POSTまで書く。

**これ書く前にAndroidManifestにインターネットのパーミッション書き足して

元記事を表示

android開発で実機デバイスからAPIを叩けないときのトラブルシューティング

こんにちは

最近ノリでdjangoAPIを作り始めた雰囲気エンジニアです。

ラズパイでサーバー構築したのですが、djangorestframeworkをうまくインストールできず、まずはローカルで環境構築してdockerでデプロイしたいななんて思ってます

…情弱の僕には厳し(ry

とまあそんなこんなで、ローカルにてAPIを作り始めたのですが、お決まりの
python3 manage.py runserver
で、サーバーを動かすじゃないですか
WEBからならAPIを叩けるのに実機ANDROIDからは叩けません

①python3 manage.py runserver 0.0.0.0:80でサーバーを起動すること
~~理由はよくわかりません~~
android側では192.168.x.xなどのパソコンのプライベートIPを叩きます

Error: That port is already in use.
ポートがすでに使われていますというエラーが出たら(①のあとによく出てきます)

sudo lsof -i:80

これで起動中

元記事を表示

ViewPager2 + TabLayout + DataBinding

# はじめに
[DMMグループ Advent Calendar 2019](https://qiita.com/advent-calendar/2019/dmm)3日目を担当します!@mii-chang です!

2018年新卒入社でDMMにJOINし、今は **AQUIZ** というクイズアプリのAndroidアプリを開発しています:muscle::fire:
https://aquiz.jp/

クイズに答えてお金がもらえる!:moneybag:面白いアプリなのでぜひ皆さん遊んでくださいね〜〜!:raising_hand:?

さて、今回はJetpackに新しく追加された`ViewPager2`について書いていきたいと思います!:rocket::rocket::rocket:

# ViewPager2 とは
従来の`ViewPager`の進化版の`ViewPager2`。
今までは、各Fragmentを`PagerAdapter`を使って表示切り替えをしていました。
`ViewPager2`では、`PagerAdapter`の代わりに`RecyclerView.Adapter

元記事を表示

初めてのConstraintLayoutでChainStyleを利用してみた

# はじめに
新卒で初めてAndroidアプリの実装を行いました。
その際、ConstraintLayoutの利用方法について調べてみたので、
アウトプットとして同じ初心者の方の参考になれば良いと思い記事にしました。

# 目次
* ConstraintLayoutとは
* Chainの設定方法
* ChainStyleの種類
* Weightの制約

# ConstraintLayoutとは
ConstraintLayoutは、ウィジェットを柔軟な方法で配置およびサイズ設定できるようにするものです。以下のように様々な制約をつけることができます。

* 相対位置決め
* マージン
* センタリング位置決め
* 円形位置決め
* 可視性の動作
* 寸法拘束
* チェーン
* 仮想ヘルパーオブジェクト
* オプティマイザ

# Chainの設定方法
![output.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542499/46d529ad-36f9-5ac2-cf33-2cf524905fd7.gif)

元記事を表示

Firebase App Distributionの特徴とCLIの使い方

この記事は、[Firebase \#2 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/firebase_2)の3日目の記事です。

今年の9月下旬ごろにリリースされた新機能、App Distributionについて解説します。

## App Distributionとはなにか

Firebaseが提供する、テスター向けのアプリ配信ツールです。同様のツールとして[DeployGate](https://deploygate.com/)やFabric betaが有名です。ちなみにFabricは、Googleが2017年にTwitterから買収しています。

はっきりと明言していませんが、[Fabricは2020年3月末にサービスが終了する](https://get.fabric.io/roadmap)こともあり、App DistributionはFabric betaの代替として用意されたものとして考えればいいと思います。実際に使い方も機能も、ほぼほぼ違いがありません。

なお、この記事を執筆時点ではまだベータ版

元記事を表示

Glideでキャッシングぅううう

# はじめに
[CA Tech Dojo/Challenge/JOB Advent Calendar 2019]の2日目はbatchが書かせていただきます.

私は今年の夏にCA Tech Dojo(Kotlin編)に参加させていただきました.めちゃくそ最高のインターンだったので来年も開催される場合は,おすすめです.Dojoはある技術の初心者の導入部分をサポートしてくれるインターンなので,最近気になってる技術をメンターさんに教えてもらいながら学ぶことができます.
詳しくは[コチラ](https://batch.hatenablog.com/entry/2019/08/19/215844)

# 本題
Glideを使って画像をリスト内で表示して,リストのItemがクリックして別の画面に遷移して,遷移先でリストに表示していた画像を使いまわしたいみたいなことはよくあると思います.そこで,Navigationなどつかって遷移先にも画像のURLをStringで渡して表示するということをしても実装できますが,GlideではURLをキーとして画像をキャッシュしてまた,遷移先でおなじキーでキャッシュか

元記事を表示

Android リアルタイム入力でハッシュタグ形式に文字装飾するTIPS

# 本稿の目的
`#`から始まるハッシュタグの部分の色が変わり、タップするとハッシュタグの内容に応じたフィードの検索などを行う機能は最近ではあたりまえのUXになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125724/8e1385cf-052a-7e93-ede3-8c520df845a8.png)

Androidでの文字装飾は`UnderlineSpan`や、`ForegroundColorSpan`を組み合わせれば簡単に実装できますが、文字装飾した部分をクリックできるようにしたり、TwitterやFacebookのようにリアルタイムで入力した内容に応じて文字装飾を行うためにはどのように実装するべきかを説明します。

[iOSについても記述しています。よろしければどうぞ。](https://qiita.com/nosaka/items/000271616c072285674c)

# ラベルにハッシュタグの形式に相当する部分を文字装飾する&クリックできるようにする

元記事を表示

OkHttpを使った場合にWebViewのJavascriptInterfaceはどう呼ばれるか軽く調べてみた

AndroidのWebViewでは、*addJavascriptInterface*という、JavaオブジェクトをWebViewに埋め込む機能があります。これにより、WebView内で表示しているWebページに埋め込まれたJavascriptから、当該Javaオブジェクトで定義されたメソッドを呼び出せるようになります。

今回は、WebViewでのHTTP通信にOkHttpを利用した時、WebViewのコールバックメソッドはどう呼ばれるか軽く調べてみました。
読むのがめんどくさい方は最後の「まとめ」だけを読んでいただいてもよいです。

## WebViewを使用するActivityの実装
WebViewを使用するActivityのソースコードはこんな感じです。
サンプルコードがお粗末なのはご愛嬌です。

“`kotlin:MainActivity.kt
class MainActivity : AppCompatActivity() {

companion object {
const val TAG = “WebViewTest_”
con

元記事を表示

AndroidでFFmpegを使って音声ファイルを解析・変換する

# はじめに
FFmpegと聞くと、動画や音声を解析・変換することができたりと機能豊富で非常に難しそうなイメージですよね。ですが、音声だけに絞ってみれば意外と簡単(?)に使いこなすことができるんじゃないかと思います。

今回は音声解析・変換の基礎的な使い方をAndroidで実践してみたいと思います!
(サンプルコードは[こちら](https://github.com/tarumzu/FFmpegSampleAndroid))

# FFmpegのインストール
AndroidのFFmpegライブラリはいくつかありますが一番開発が活発な[mobile-ffmpeg](https://github.com/tanersener/mobile-ffmpeg)を使ってみます。
mobile-ffmpegはAndroidの他にiOS, tvOSで利用でき、メインバージョンとLTSバージョンがあります。
(今回ご紹介するコマンドはどちらのバージョンでも使えます)

“`gradle:app/build.gradle
// NOTE: フル機能が使えるがサポートされるAPIレベルが24以上
impl

元記事を表示

AndroidでViewModelのLiveDataをアプリケーションで共有する

## 概要

AndroidでViewModelに保持したLiveDataの値をアプリケーションで共有したい場合のメモ

## 方針

本来の仕様では起動中のActivityのインスタンスとViewModelが1対1で対応するため、
Activityのインスタンスが変わってしまったり、異なるActivityのインスタンスからLiveDataをobserveしても、
変更検知ができません

“`kotlin
class MyActivity : AppCompatActivity() {
private val userViewModel: UserViewModel by lazy { ViewModelProviders.of(this).get(MyViewModel::class.java) }
override fun onCreate(savedInstanceState: Bundle?) {
userViewModel.user.observe(this, Observer{ user ->
// OtherActivit

元記事を表示

THETAにお手軽Linux環境を内包させる

この記事は [IoTLT Advent Calendar 2019](https://qiita.com/advent-calendar/2019/iotlt) の2日目の記事です。

## はじめに
リコーの @KA-2 です。

弊社では[RICOH THETA](https://theta360.com/ja/)という全周囲360度撮れるカメラを出しています。
RICOH THETA VRICOH THETA Z1は、OSにAndroidを採用しています。Androidアプリを作る感覚でTHETAをカスタマイズすることもでき、そのカスタマイズ機能を「プラグイン」と呼んでいます(詳細は本記事の末尾を参照)。

と、定型文をかきつつ、、、
今回の記事はプラグインの仕組みや知識を利用した新しいTHETAカスタマイズ方法についてまとめました。
タイトルをみて「adb shellの話?」と思った方、「遠からず」ですが、もっと自由度がある環境にする話です。

adb shellを上手に利用したAndroidアプリをTHETAにインスト

元記事を表示

androidアプリ 外部アプリを使ってファイルを転送する

androidアプリについて

– zipファイルを外部アプリ(mail、Lineとか)使って転送する機能を実装しようとして、ハマったのでメモ
– 結論としては、Android7から『file://』による指定ができなくなったため、fileproviderでuriを作る必要があった

## 実装

“`AndroidManifest.xml


元記事を表示

最近Flutterで作ってるもの

[Flutter #2 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/flutter-2)の2日目の記事です。

今までFlutter、Dart関連はちょくちょく触ってましたが、ちゃんとアプリとして公開等したことがなく、Flutter Web対応も発表されたので、もうちょっと深く触っていきました。

## 自分のレベル感

– 普段業務: Webプログラマ(Rails) 5年程度
– iOSとAndroidも一度は開発の経験有り

## 作ってるアプリ概要

– Bouyomisan Flutter
– 以前 Dart で作ったサービスのリプレイス
– Flutter web
– Regonn&Curry.fm
– ポッドキャストを聞くためのスマホアプリ

CIやデプロイは[Codemagic](https://codemagic.io/)を利用しているので、そのあたりも所感に含めて書いていきます。

## Bouyomisan Flutter
以前、YouTubeLiveコメント読み上

元記事を表示

OTHERカテゴリの最新記事