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

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

ArrowsM03(Android)の通知(電話、Lineなど)をiPhone(iOS)へ通知する方法

####作成経緯
スマホ2台持ち(ArrowsM03、iPhone11)でスマートウォッチ購入検討。
安価なスマートウォッチは2台のペアリングができない?
「PebbleTime」ならAndroidとiPhoneの同時接続する手順を見つけたが安くない。
ならばArrowsM03の通知をiPhone11へ通知。
その通知をiPhone11とペアリングしたスマートウォッチで受信。
####懸念事項
IFTTTの通知をスマートウォッチで受信できるか!
ここ大事ですが… 事前検証ができない^^;
####閑話休題 作成方法
![i01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145508/19862afc-50ca-9c51-d266-ae942ef027cc.png)
![i02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145508/6aa92b07-b6a2-e87c-805d-4b946f466406.png)

元記事を表示

Kotlin でも MediaPipe の MultiHandTracking を動かしたい

Kotlin で MediaPipe の MultiHandTracking を利用しているサンプルが無さそうだったので作ってみました。
プログラムは [GitHub](https://github.com/machidyo/MediaPipeHandTracking) に上げてあるので、よかったら参考にしてください。

こんな感じで動きます。
![mutli_hand_tracking_sample.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506075/65813178-202d-5b69-802b-d7ef0f78b593.gif)
# 作ったと言いながら
元々は[こちら](https://github.com/google/mediapipe/blob/master/LICENSE)の Java のコードを Kotlin に移植したものになります。Kotlin をある程度知っている人なら特に苦労することなく移植できると思います。(自分は素人に毛が生えたようなものなので小一時間ほどは浪費しまし

元記事を表示

【Kotlin】ViewPager vs ViewPager2

最近 `ViewPager` を使う機会があったので調べたことを備忘録として記事にします。
AndroidXに移行すると `ViewPager2` というViewPagerの改良版が使えるので2つについて書いていきます。

公式のドキュメントはこちら↓↓
[ViewPager](https://developer.android.com/reference/androidx/viewpager/widget/ViewPager?hl=en)
[ViewPager2](https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2?hl=en)

実装方法だけ知りたいよという方はこちらの記事が参考になるかと思います。
[Kotlinでアプリを作ってみる(TabLayout,ViewPager,Fragment,FragmentPagerAdapter)](https://qiita.com/nanamama/items/93ebd9c6a2732cb49777)
[ViewPager2 + Tab

元記事を表示

FlutterアプリをCodemagicでCDしてみた(Google Playストア)

FlutterアプリをGooglePlayストアコンソールに登録しました。
まだクローズドアルファ版ですが、公開してからやはりちょこちょこと修正したい箇所が発生して直しています。

しばらく、手動でリリースをチクチク作成していたのですが、ふと気付きました。

CodemagicでCD出来るじゃないか!

ということで、CDする場合の手順をまとめました。

# CDってなに?

CD = Continuous Delivery = 継続的デリバリー

つまりリリース作業を自動化しましょうってことです。

CIは、継続的インテグレーションで、これはテストまでの開発プロセスを自動化しましょうってことでした。

リリースは怖いからいくつもチェック表を見ながら人が作業して・・・
というのがほとんどだと思いますが、チェックしても人の作業にミスは付き物。だったら自動化すれば良いじゃ無い?

ということで、そっちを自動化するのが、CDの方です。

Codemagicへは、すでにtagトリガーなどで動くワークフローがあるものとします。
([こちらの記事](https://qiita.com/kasa_l

元記事を表示

[Kotlin]Firebase Cloud Messagingの実装

# はじめに
– プッシュ通知の実装

# 画面
Firebase ConsoleのCloud Messaging

コンソール上で各項目を設定してプッシュ通知を送信できます。

スクリーンショット 2020-05-05 14.10.11.png

今回は “テスト メッセージを送信” にて単一端末に対してプッシュ通知を送信します。
スクリーンショット 2020-05-05 14.10.39.png

Activityは何もない画面

元記事を表示

AndroidからXMLデータ形式のWeb APIを使う

# 概要

近年ではWeb APIのデータ形式といえばほぼJSONが使われていますが、最近XMLを使う機会があったので、そのAndroid実装についてメモを残しておきます。

# 要件

今回、実装に当たって以下のような要件で考えていました。

* Androidで動かす
* Kotlinで実装する
* Retrofit2から利用する (Converter.Factoryが必要)
* Converterのコードとか書きたくない

つまるところ、最近のよくある実装と同じ書き方で楽に実装したかったということです。

# ライブラリ

XMLシリアライザの有名所としては[SimpleXML](http://simple.sourceforge.net/home.php)があり、Webを調べるとよく名前が挙がります([GitHub](https://github.com/ngallagher/simplexml))。[Converterもある](https://github.com/square/retrofit/tree/master/retrofit-converters/simplexm

元記事を表示

React Native BLE Major/Minor取得

# はじめに
前回の記事(https://qiita.com/yokobonbon/items/f17bac71e9ba02a713ac)でReact NativeでBLEペリフェラルのスキャンを実現しました。今回はそこから、iBeaconのMajor/Minorデータ取得します。

# Manufacture SpecificとiBeacon
以下のページが参考になります。
https://fabo.gitbooks.io/bledocs/content/nordic/beaconadvdata.html

iBeaconはUUID + Major(16ビット) + Minor(16ビット)で一意な端末を識別しますが、その情報は、BLE Advertised PacketのManufacture Specificデータの中に含まれます。Majro番号は25,26バイト目に格納され、Minor番号は26,27バイト目に格納されます。

Manufacture SpecificデータはBleManagerDiscoverPeripheralにおいて、advertisingの中のmanuf

元記事を表示

Flutterでストアに提出できるrelease buildを一発で作るシェルスクリプト

タイトルの通り。本当はfastlaneとか使うか迷ったけどまずはこれで当分なんとかできそう。

1, 以下の内容shファイルをプロジェクトルートに作る。

“`shell

#!/bin/bash

echo ‘Build Android Release Resource’
flutter build appbundle –target-platform android-arm,android-arm64,android-x64

echo ”
echo ‘Build iOS Release Resource’
flutter build ios –release

ARCHIVE_PATH=”$PWD/build/ios/Runner.xcarchive”
IPA_PATH=”$PWD/build/ios/Runner.ipa”
xcodebuild -quiet -workspace ios/Runner.xcworkspace -scheme Runner -sdk iphoneos -configuration Release archive -archivePath

元記事を表示

眺めて覚える C# Xamarin Forms(11) ListView Programmatically Ⅱ

##今回は、ListViewにイメージを表示する方法です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/f402733b-42f6-6776-06e4-9d3cfebfa041.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/ccd1bffb-a14e-0331-e9c8-1c80bcd40f46.png)このイメージをListViewに表示します。**train.png**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/902c253c-b332-42b4-e400-056a106d321a.png)
###Resources/drawableの配下にドラッグします。
#ListViewの行データを保存するクラスを作成します。

“`

元記事を表示

Flutter アップデート(for macOS)

久々にFlutterを起動しようとしたときにアップデートをしたい場合のメモです。

# Flutter アップデート方法

doctor を実行する

“`
$ flutter doctor
“`

実行するとアップデートの通知やIDEのバージョン互換のエラーとか教えてくれます。

“`
╔════════════════════════════════════════════════════════════════════════════╗
║ A new version of Flutter is available! ║
║ ║
║ To update to the latest version, run “flutter upgrade”. ║
╚═════════════════════════

元記事を表示

Delphi10 でTwilio apiを叩いて発信+ボイスメッセージ

#はじめに
ほぼ前回の記事の使い回しですが、 Twilio のapiを使って発信を行い
音声合成によるボイスメッセージを送ってみました。
全く同じソースでWindows、Android共に動作します。

#画面作成
以下の画面イメージの様に必要なコンポーネントを配置します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625152/bdbc6f05-5d91-ebaf-69a5-49d3c9a86d4a.png)

#ソースリスト
“`Pascal
unit rest1;

interface

uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, REST.Types,
FMX.Controls.Presentation, FMX.

元記事を表示

Androidへのpush通知を試してみる

# 記事の趣旨

自端末のandroidにpush通知を送るまでの勉強.一応前提は以下.

– クライアントはAndroid 10,使用言語はKotlin
– IDEはAndroid Studioの3.4.2を使用
– 通知機能の実装に関する知識および経験は一切なし
– Googleアカウントは持っているが,Firebaseを使ったことはない

## 1. 前提知識:Firebase Cloud Messaging(FCM)

Androidへのメッセージ通知にはこれを用いるとのこと.公式ページは[こちら](https://firebase.google.com/docs/cloud-messaging/?hl=ja).

### 1.1 アーキテクチャ

[こちら](https://firebase.google.com/docs/cloud-messaging/fcm-architecture?hl=ja)に書いてある(なぜかこのページだけ英語).流れとしては以下らしい.

1. サーバ上で所定のプロトコルでメッセージを作成し,FCM backendにリクエストを送付する.
2.

元記事を表示

FlutterでGoogleMapとPersistentBottomsheetを実装した

### 実際の画面
![googlemap_with_persistentbottomsheet.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526878/536fdc79-0b29-f912-70d4-2abff93bb1b9.gif)

### 準備
– GoogleMapAPIを利用可能な状態にする。(android/ios)
– google_maps_flutterのReadmeにしたがってセッティングをする。

### 利用ライブラリ
– google_maps_flutter: ^0.5.27
– https://pub.dev/packages/google_maps_flutter
– sliding_up_panel: ^1.0.2
– https://pub.dev/packages/sliding_up_panel

### 実装

https://github.com/kiriko-rs/day3_point_in_map

GoogleMapのコードに関

元記事を表示

[初心者向け]JavaでDiffUtilsでRecyclerViewを更新するミニマムサンプル

# はじめに
Androidでリスト形式のViewを表示するときはRecyclerViewを使うのが主流です。
RecyclerViewのリストの内容を追加・削除・更新が必要な時はnotify系のメソッドを使うのが主流でした。
しかしSupoprt Library24からDiffUtilsが追加されて、DiffUtilsで過去のリストと新規のリストのdiffを計算し、その結果を元にパフォーマンス上最適なnotify系メソッドを読んでくれるdispatchUpdateToを使うのが主流になっていると思います。
というわけでDiffUtilsでリストを追加するミニマムサンプルを作ってみます。

↓完成イメージ
Screenshot_1588594304.png Scr</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Java</div>
<div class='tag-cloud-link'>Android</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/kawano108/items/964c7058aac49aac49e8'>元記事を表示</a></div>
<h3 id=FlutterアプリをPlayストアに登録してみた

リリースビルドも出来たので、ついにPlayストアに登録です。
まずはクローズドα版をリリースしてみます。

なお、この情報は2020/05/01現在のものであり、将来にわたって内容を保証するものではありません。
(GoogleさんがUI変えたりステップ変えたら該当しなくなっちゃいますよってこと^^;)

# Playストアの「リリース」の考え方
まずこれを少し説明します。
「リリース」=本番公開、と思っていると、多分混乱するので。

## 1.リリースの種類

「リリース」には、いくつか種類があります。

|トラック|リリースの種類|内容|審査の有無|
|:–|:–|:–|:–|
|製品版|製品版|いわゆる本番への公開。すべてのAndroidユーザーが(端末の使用条件などに合致していれば)プレイストアからダウンロードして利用できる。|有り|
|オープン|ベータ版|ベータプログラムに参加するAndroidユーザーが、テスターとして利用できる。テスターには上限人数が設定できる。課金などは通常通り行われる|有り|
|クローズド|アルファ版|テスターに登録されたユーザーのみが、専用のオ

元記事を表示

【Flutter】Flavorの設定~buildまで(Android編)

## はじめに
* 1つのプロジェクト内で複数の環境を動かしたい場合にFlavorを利用すると思います。その設定~buildの指定方法までを書いていきます。

※本記事では、Androidのみの説明をしています。
※iOS側の設定に関しては、本記事の下にある参考文献を見て頂けると理解出来ると思います。

## 手順
Flavorを使った環境分けの手順を書いていきます。

### 1. 作成する環境について
例として、今回は以下の3つの環境を作っていきます。

* develop → 開発環境
* staging → ステージング環境
* production → 商用環境

### 2. まずbuild.gradleにFlavorの設定を追記
* android/app/build.gradleの`android{}`内に以下を追記していきます。

“`android/app/build.gradle
flavorDimensions “flavor-type”

productFlavors {
develop {

元記事を表示

[Android 10]Bluetooth HCIスヌープログの取り方

# はじめに
BluetoothのHCIスヌープログを取得する方法をまとめました。確認はPixel 3(Android 10)で行いました。
他のOSバージョン、他の機種では方法が異なる場合がありますのご注意ください。

# Bluetooth HCIスヌープログとは

HCI(Host Controller Interface)はBluetoothのプロトコルの一種で
BluetoothプロトコルスタックとBluetoothのチップの間のプロトコルです。
実際にエアーを飛んでいるパケットとは違いますが、データの送受信周りはほぼ同等で高価なアナライザー不要である程度の解析ができます。
スクリーンショット_2020-05-04_15_30_20.png

# 確認環境
– MacBook Pro (13-inch,

元記事を表示

MediaCodecの非同期処理で動画再生

# はじめに
Androidで動画再生アプリを作る時には[VideoView](https://developer.android.com/reference/android/widget/VideoView)を使うと簡単に実装できるんですが、これだとコマ送りや再生速度の変更など欲しい機能が全然できなくて、調べてみたら[MediaCodec](https://developer.android.com/reference/android/media/MediaCodec)を使う必要があることがわかりました。
だけどこれ、色んなことができる代わりに色んなことを全部自分で実装しないといけなくて使用するのが大変なんですね。。。
そのせいなのか分からないですが、あまり使用者がいないのか公式ドキュメント以外に記事が全然無い。
特にまとめ的なものとか概要、全体図がわかるようなものが無いんです。
なので僕のようにこれから勉強しようとする人にはなかなか辛いんです(TдT)

まだ作りかけですが、MediaCodecを使って実装したサンプルを晒しておきます。
詳細は後述しますが、この記事のタイトルにある

元記事を表示

MediaPipe の Android のサンプルは簡単に試せます

こんな感じで動かせるサンプルが割と簡単にできます。

![output.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506075/ce84f0f8-509b-867c-cf23-013c36811de6.gif)

# こちらの手順がとても参考になりました
[Google MediaPipeのサンプルアプリをビルドしてAndroidにインストールする手順](https://qiita.com/d_forest/items/1b40fba54d7d896acfe6)

# 補足
## 先にこっちをやっておくといいかも
Mac の人は [mediapipe hand trackingお試し](https://qiita.com/3attoC/items/b5bad7b2d54fa0bf013a) を参考に hello_world と Desktop 版を動かしておくと、どこまでできているか問題の切り分けができるかと思います。

* Xcode をダウンロードするのに時間がかかります
* エラーが出ること

元記事を表示

【Kotlin】下部ナビゲーション・アクティビティを触ってみる

最近のアプリには必ずと言ってもいいほど存在する下部ナビゲーション
AndroidStudioにはテンプレとして存在するからお試しに使ってみる

![スクリーンショット 2020-05-03 17.30.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283826/3d5d6aa9-e396-4ebc-569f-f34d74041c99.png)

#作ったらこんなの入ってた

![スクリーンショット 2020-05-03 17.33.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283826/64accb3b-a1de-aeee-625a-9de9e0fc2ec4.png)

そのまま起動しても↓の感じで使える

![スクリーンショット 2020-05-03 17.40.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283

元記事を表示

OTHERカテゴリの最新記事