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

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

RetrofitのAPIレスポンスをモッキング

コードのテストをしたり、APIがまだ未実装だったりで、モックが欲しかったのでそのメモ。

## 導入

[Retrofit Mock](https://github.com/square/retrofit/tree/master/retrofit-mock)を使う。

“`gradle
def retrofit_version = ‘2.7.0’
implementation “com.squareup.retrofit2:retrofit:$retrofit_version”
implementation “com.squareup.retrofit2:retrofit-mock:$retrofit_version”
“`

## 実装

サービスインタフェースを実装したモックを作成し、そこに返したいデータを書く。

“`kotlin:Service.kt
interface Service {

@GET(“api/v1/auth”)
fun getAuth(@Query(“id”) id: String): Single

@GET(“

元記事を表示

RxJavaで連続してAPIを叩いた時に発生したエラーのハンドリング

RxJavaで連続してAPIを叩いた時に発生したエラー、独自の形式にすることで処理を切り分けたいと思ったこと、ありませんか?僕はあります(そもそもAPIのエラーで判別したいけど、実装がアレだったもんで)。

## NGパターン

チェインの途中で`doOnError`を挟んでエラーをthrowしたけど、止まらずその後の`flatMap`に流れてしまうのでダメ。

“`kotlin
repo.getAuth(“xxx”)
.doOnError { throw AuthError(it.message ?: “”) }
.flatMap { repo.getPayment(it.token) }
“`

## OKパターン

`onErrorResumeNext`を使うと、エラーが発生した時に別のObservableを流せる。ここで独自のエラーを返せば、`onError`で処理を切り分けることが可能。

“`kotlin
repo.getAuth(“xxx”)
.onErrorResumeNext { Single.error(AuthError(it.mes

元記事を表示

Flutterウィークリー #85

# Flutterウィークリーとは?
FlutterファンによるFlutterファンのためのニュースレター
https://flutterweekly.net/

この記事は#85の日本語訳です
https://mailchi.mp/flutterweekly/flutter-weekly-85

※Google翻訳を使って自動翻訳を行っています。翻訳に問題がある箇所を発見しましたら編集リクエストを送っていただければ幸いです。

# 読み物&チュートリアル

### Flutterオンラインおよびオフライン接続を実装する方法

How to Implement Online & Offline Connectivity in Flutter

Sagar Shendeによるこのチュートリアルで、ユーザーがオンラインまたはオフラインのときにアプリ内の情報を処理する方法を学びます。

### Flutter Webを使用してサーバーにファイルをアップロードする
https://rodolfohernan20.blogspot.com/2019/12/upload-files

元記事を表示

Flutterウィークリー #84

# Flutterウィークリーとは?
FlutterファンによるFlutterファンのためのニュースレター
https://flutterweekly.net/

この記事は#84の日本語訳です
https://mailchi.mp/flutterweekly/flutter-weekly-84

※Google翻訳を使って自動翻訳を行っています。翻訳に問題がある箇所を発見しましたら編集リクエストを送っていただければ幸いです。

# 読み物&チュートリアル

### FlutterモジュールをネイティブのAndroidプロジェクトに追加し、Codemagicでテストする方法
https://blog.codemagic.io/flutter-module-android-yaml/

Flutterモジュールを既存のAndroidアプリに統合する方法に関するSouvik Biswaによるチュートリアル。

### Flutterアプリケーションで複数のテーマを管理する
https://blog.dammak.dev/managing-multiple-themes-in-flutt

元記事を表示

Xamarin.Forms でガワネイティブアプリを作るときのテンプレートプロジェクトを作る1

今年は専ら Angular で Webアプリを作ったり、ガワネイティブアプリを作ったりしていますが Xamarin のアドベントカレンダーと聞いてやってきました。

## 概要

最近は、モバイルネイティブアプリよりも Webアプリ(SPA/PWA)、そしてそれを利用したガワネイティブアプリを推している私ですが、ガワネイティブアプリを作る時の「ガワ」には Xamarin(Xamarin.Forms) を採用しています。

なぜガワネイティブなのか?ネイティブではなく、Web(PWA)でもないのか?については、

* [Angular と Firebase で月間PV1億超えの PWA を作った話 – Qiita](https://qiita.com/MasanobuAkiba/items/d2d4be3f8fd2e23c0c1a)

のエントリがよく解説されていますのでご一読を。私のケースは BtoC ではなく BtoB であるため、全面的に一致するわけではありませんが、内容については大いに同意できます。

ガワネイティブアプリは、Webアプリがネイティブの機能を欲するから採用されるわ

元記事を表示

androidでfortran開発する

#概要
androidでfortranコードを書いて実行する。

# スタック
CUI環境はUserLAndを使った。Termuxというものもあるが、昔試したところfortranコンパイラが使えなかった。UserLAndではLinuxパッケージもUbuntuやArch、kaliなどから選ぶことができ、Ubuntuの場合はaptでgfortranが入る。

エディタは別にEmacsでなくてもvimでもnanoでもお好きなものをどうぞ。

# 方法
## UserLAndのインストール
完全に焼き直しで申し訳ないが、下記の記事を参照してほしい。

https://qiita.com/bluepost59/items/7f5608dff98c82ffb668

Google Playからアプリをインストールして、環境を作る。結構でかいダウンロードが走るので、回線を確認してから環境構築に入ること。時間は5分〜10分程度かかる。今回はUbuntuを使った。

うまく行けば下記のようにCUIが立ち上がる。ソフトキーボードだと画面が半分圧迫されるので、ハードウェアキーボードを使うほうがよい。百均でO

元記事を表示

FirebaseとUnityの連携 入門(Cloud Storage編)

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

## 概要

以前、『[FirebaseとUnityでアプリ開発(ハンズオンみたいなやつ)](https://qiita.com/gremito/items/dfb2080300955c5d5768)』という記事をアップし、そこでFirebaseとUnityの連携方法を簡単に解説しました。

今回は特定のFirebaseのサービスを扱う際、まずは0から作るのではなく、サンプルを活用してFirebaseとUnityの連携をいち早く体験できる方法のご紹介です。

Unityの場合、AssetBundleをサーバに配置し、`UnityWebRequest.Get`などを使ってAssetBundleデータをダウンロードしますよね。
そのため今回は、[Cloud Storage](https://firebase.google.com/docs/storage/unity/start?hl=ja)を

元記事を表示

AndroidアプリからTVを電源ONして、しかも入力切替をしたい

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

## はじめに
自社でAndroid端末を開発していてかつ、その端末がTVにつながるようなサービスでAndroidアプリを作っているという、ニッチ中のニッチみたいな人たちに向けた記事になります。
Android7.1.1で動作の確認をしています。

## 実現したいこと
自社で独自のAndroid端末を製造していて、かつ、その端末がTVに接続するような端末の場合、結構な確率で下記のようなことがやりたくなります。

1. **Android端末からSW的にTVの電源をつけること**
2. **Android端末からSW的にTVの入力切替でその端末の入力に切り替えること**

昔々のTVと映像入力機器がコンポジット端子(黃赤白の3端子)で接続されていた頃には無理でしたが、最近のスタンダードである、HDMI端子では標準規格として上記のようなことが実現できるようになってきています。

## HDMI CE

元記事を表示

Flutter でアプリ開発してみる

# はじめに

個人的にスマホアプリをいくつか作りリリースしているのですが、作ったアプリを友達などに見せると、必ず言われるのが、
「iPhoneで動かないの?じゃいいや」
でした。
自分の周りでは、iPhoneを使っている率が高い気がしますが、実際のところ Android と iOSの日本でのシェア率は、ほぼ[半々ぐらい](http://www.moba-ken.jp/whitepaper/19_chap1.html)のようです。

そのような状況なので、モバイルアプリをリリースする場合は、Android, iOS の両対応が必須です。

ただ、Android と iOS はまったく別物なので、Native なアプリを作るとなると、工数は倍近く掛かってしまいます。

ということで、クロスプラットフォーム対応のフレームワークがいくつかあります。
たとえば、 Xamarin や PhoneGap、うちの会社なら Qt もその一つだと思います。

その中で、最近注目され、実際に使われ始めているものに Flutter があります。
この記事では、その Flutter について紹介致します。

元記事を表示

Android Code Searchを使ってみた

# Android Code Searchとは
AOSP(Android Open Source Project)のソースコードを閲覧するためのサービスです。
2019/12/10の[Android Developers Blog](https://android-developers.googleblog.com/2019/12/code-search-with-cross-references-for-aosp.html)の記事によると、AOSPのソースを閲覧するためのサービスが公開されたようですのでさっそく使ってみました。

# 使ってみました

URLはこちら:https://cs.android.com/

AndroidだけじゃなくAndroidXのソースも見れるようです。
![スクリーンショット 2019-12-14 18.22.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102273/33fb5943-e106-515b-1765-c7d1360c2f92.png)

`Blu

元記事を表示

【Android Studio】Layout Editorを活用してレイアウトを作成する

本記事は[and factory Advent Calendar 2019](https://qiita.com/advent-calendar/2019/andfactory) 14日目の記事です。

#はじめに
はじめまして。Qiita初投稿です。
and factory株式会社でAndroidエンジニアをやっているmyoshitaと申します。

###本記事の内容
Android Studioを使ってレイアウトを作成する際、どうやって作っていますか。
多分、xmlファイルにコードを書いていくのが一般的なのかなと思います。
Android StudioのLayout Editorは割と使い勝手がいいので、GUIによる操作だけでレイアウトをほとんど完成させることもできます。
本記事では、個人的に便利だと思うLayout Editorの機能をご紹介したいと思います。

#Layout Editor
Layout Editorは、ドキュメントによると以下の通りです。
>Layout Editor では、手動でレイアウト XML を記述する代わりに、UI 要素を視覚的に編集できる Desi

元記事を表示

WeChat SDKを用いたシェア機能の作り方

# はじめに
この記事は、[ZOZOテクノロジーズ #4AdventCalendar2019](https://qiita.com/advent-calendar/2019/zozo_tech4)の記事です。
昨日は[@inductor](https://qiita.com/inductor)さんの「[Kubernetesをぶち壊す10の奇妙な方法 (後編)](https://qiita.com/inductor/items/a79d9b0220834090a4c8)」の記事でした。

ZOZOテクノロジーズでは、他にもAdventCalenderを書いている方がいらっしゃるので、よかったらみていってください!

– [ZOZOテクノロジーズ #1AdventCalendar2019](https://qiita.com/advent-calendar/2019/zozo_tech)
– [ZOZOテクノロジーズ #2AdventCalendar2019](https://qiita.com/advent-calendar/2019/zozo_tech2)
– [ZOZOテクノロジー

元記事を表示

Jetpack Compose基礎

[FUN Advent Calendar 2019 Part1](https://adventar.org/calendars/4058),14日目の記事です.

昨日はふぁるくんの[世界料理学会 in Hakodateに参戦してきた話](https://fal0164.hatenablog.com/?_ga=2.62405036.1478605853.1575213225-390479868.1569589324)でした.

今年はじめて[Advent Calendar](https://adventar.org/)というものに参加してみました.
テーマが自由だったので,好きなことを書きます.
色々迷いましたが,[某LT会での記事](https://qiita.com/kota_2402/items/7bbdd87be8024785e25b)の続き的なことを書こうと思いました.
某LT会から結構時間が経ったのですが,最近触れていなかったのでJetpack Composet周りを軽くまとめてみようかなと思いました

# 概要
以前記事を書いた時には,[AOSP(Android Open

元記事を表示

ぬるぬる動いていい感じのアニメーションが簡単にできるらしいから触ってみた

Lottieという、おもしろそうな物を見つけたので色々やってみようと試行錯誤した記録です。
調べると自分が知らなかっただけなのか、結構記事があったので、あまり詳しいことは書かないと思います。

## Lottieとはなんぞや

– iOS、Android、Webと幅広くつかえる
– お手軽にいい感じのアニメーションがつけられる
– Apache License 2.0
– 色んな人のアニメーションが公開されているので[探すとたくさんでてくる](https://lottiefiles.com/featured)
– 自作する場合はAdobeのAfter Effectsとbodymovinという拡張機能が必要

# とりあえずクリスマスも近いことだし、アニメーションでカップルを爆発させてみようかと考える午前三時

### テンションでひらめいて、勢い任せにみんな大好きいらすとやで画像を集めてアニメーション作っていく(しっぱいする)

1.お好きな画像を用意してIllustratorでレイヤーを分けて保存する

スクリーンショット 2019-1</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Android</div>
<div class='tag-cloud-link'>Lottie</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/collapsar/items/486707f9e2c9fd0937b9'>元記事を表示</a></div>
<h3 id=Firebaseの無料枠でふぁぼを拡張した

「神絵師のツイートをふぁぼってブックマークしていたのにTwitterのAPIは3600件しか遡れない…」という悲しい気持ち、誰しも一度は抱いたことがあると思います。僕は抱きました。そこで、自前でふぁぼを保存することにしました。

## 概要
– Firebaseにツイートを保存する仕組みを作った。
– スマホに保存しているといつ死ぬか分からないので、Firebaseを利用してオンラインで保存することにした。

ただし、いろいろ問題が発生するので添付された画像や動画は保存しません。(直リンクは保存する)

## 構成

クライアントサイドは、ちょうど自前でAndroid用Twitterクライアントを作って使っていたので、そこにボタンを追加してサーバーに投げる処理を実装しました。
サーバー側は普通に借りるとお金がかかりますが、無料でも十分使えるFirebaseという神サービスがあるのでこれを使うことにしました。

– 無課金に優しい
– Cloud functions(簡単にAPIを設置できるやつ) 12.5万/月が無料
– Cloud firestore(簡単にDBを

元記事を表示

Android で OpenCV のサンプルを試す

[AndroidStudio で OpenCV をインポートする](https://qiita.com/ohwada/items/71eb18296aac46f9f5ee)
の続きです。

### 概要

Android 用 OpenCV には、
8個のサンプルが同封されている。
これを試す。

– tutorial-1-camerapreview
– tutorial-2-mixedprocessing
– tutorial-3-cameracontrol
– image-manipulations
– 15-puzzle
– color-blob-detection
– camera-calibration
– face-detection

[OpenCV4Android Samples](https://opencv.org/opencv4android-samples/)

### tutorial-1-camerapreview

カメラのプレビュー画像を表示する。
![opencv42_preview.png](https://qiita-image-stor

元記事を表示

星1個のアプリなんて作りたくない

「 [Labomartの軌跡。構想から運用まで](https://note.com/unotovive/n/n578baf44da60) 」 @unotovive
↑ [ゆめみ Advent Calendar 2019](https://qiita.com/advent-calendar/2019/yumemi) の前回の記事

# はじめに

 Android アプリ開発者のみなさん、Google I/O 2018 の下記のセッションは見ましたか?

ちなみに、私は、、、、、、見てないです :rolling_eyes:

セッションでは、Play Store で星1レビューのついた原因分析を公開して

原因の42% は**「アプリのクラッシュを含む安定性の問題」**だったみたい。

[](https://youtu.be/gp

元記事を表示

Flutter Interact 2019のまとめ

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

今年もすぐに枠が埋まってしまっていたのでFlutter Advent Calendarに参加する予定はなかったのですが、ふとカレンダーを覗いていみると11日枠が投稿されずに空いていたのでちょうどFlutter Interactが開催されたので急遽この記事を書くことにしました。

Flutterの最新情報に興味がある方はFlutterウィークリーもよかったらご覧ください
https://qiita.com/tags/flutterweekly

# Flutter Interact 2019とは
https://developers.google.com/events/flutter-interact

> Flutter Interact is a day dedicated to creation and collaboration with the world, inspi

元記事を表示

Android エンジニアがアプリ上で WebSocket を(比較的)易しく使うソリューション

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

# はじめに
NewsPicks で Android エンジニア兼、サーバサイドエンジニア兼、小さなチームのリーダをしている (何でも屋) の [kozmats](https://github.com/kozmats) といいます。

弊社は基本的に自由に副業が可という事もあり、自分もいくつか友人のプロジェクトを手伝ったり、個人的に仕事を請け負ったりする事があるのですが、その中の一つに Android で WebSocket どうしても扱わないといけない事がありました。過去 WebSocket を使うアプリを実装した事がなく少し実装までの調査に手間取ってしまった為、備忘録の意味も込めて記事にしてみました。

# そもそも WebSocket とは…?
アプリエンジニアが日々アプリを作っていく中で、REST や GraphQL は扱った事があるが、(使用しているライブラリの中で実は WebSock

元記事を表示

Google I/Oアプリで見る非同期通信

# はじめに
こんにちは!
andfactory App Div所属Androidエンジニアの久住です!
12月も中盤にさしかかってきて、忘年会やら年末調整やらで何かと忙しい時期ですね。

突然ですが、皆さんは**Androidの非同期通信**ってどのように実装してますか?
**ドメイン駆動設計**や**レイヤードアーキテクチャ**など、大枠の考え方はすぐに決められても、「レイヤー間の値の受け渡しはどうするか」とか「取得した値をどのようにしてViewに反映するか」など、細部については考えることも多くてなかなか決めづらいですよね!

というわけで!
僕の記事では、**Google I/O 2019の公式アプリのコードから、Androidにおけるモダンな非同期通信の実装方法**を見ていきたいと思います!
これでプロジェクト立ち上げ時にも、ズバっと非同期通信の実装方針を決められちゃう(かも)!

## プロジェクト構成

非同期通信に関係のあるディレクトリだけ切り抜いてみます。

iosched
├ mobile → Presentation層(View/ViewModel)
├ mod

元記事を表示

OTHERカテゴリの最新記事