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

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

Android(Kotlin)で標準の音声合成(TextToSpeech)を使う

#概要
Androidでは、TextToSpeechを利用することによって音声合成機能を実装することが可能です。
Android1.6からTextToSpeech自体は利用が可能でしたが、日本語は音声のモデルデータが端末に存在していない等、気軽に使えない期間も存在していました。最近は日本語の音声合成も不自由なく使える端末が出揃っています。今回はAndroid(Kotlin)でTextToSpeechを利用する方法について軽くメモします。

# 実装

音声の読み上げに必要な実装を掻い摘んでメモしていきます。

## 初期化
TextToSpeechを生成します。

“`kotlin
class MainActivity : AppCompatActivity(), TextToSpeech.OnInitListener {

private var textToSpeech: TextToSpeech? = null

override fun onCreate(savedInstanceState: Bundle?) {
// ~省略~

元記事を表示

[Android]カスタムビューの作り方 (複合コンポーネント)

# はじめに

Android では[公式](https://developer.android.com/guide/topics/ui/custom-components)にあるとおりカスタムビューを作成する方法が何パターンかあります。
今回は複合コンポーネントを作成してみたので作成方法をまとめたいと思います。

| 名称 | 説明 |
| — | — |
| フルカスタムコンポーネント | `View`を継承していちから新たなコンポーネントを作成するパターン |
| 複合コンポーネント | 既存のコンポーネントを複数組み合わせて新たなコンポーネントを作成するパターン |

![mermaid.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/79387/ad67be1d-78a4-4abf-75ec-a915df29d736.png)

今回は次のような3つのボタンをまとめ、選択したボタンのテキストが
赤く表示される複合コンポーネントを作成したいと思います。

![Dec-30-2019 20-

元記事を表示

35歳未経験でエンジニアになった自分がこの一年でやったこと

# はじめに
35歳定年説、という言葉があります。
文字通りエンジニアの定年は35歳までであるという意味ですが、逆に私は**35歳で実務未経験から**エンジニアという道に踏み込みました。

転職から約一年が経ったので、この一年の振り返りの意味も込めて記事を投稿します。

# この記事の目的
– 未経験からエンジニアへ転進しようとしている人の応援がしたい!
– プログラム初心者に**「こんなクソ雑魚でもエンジニアになれるんだ!」**と希望を与えたい!

# 誰?
@m-coder と申します。2018年10月よりAndroidアプリエンジニアをやっております。使用言語はKotlinです。

# 経歴
(多少ぼかしが入っています)
学歴はほぼ**無**です。高卒です。理系ですらないです。
職歴はアルバイト生活ののち、3年ほど事務職でExcelマクロをしこしこ組んでいました。
いろいろあって去年の10月に今の会社へ転職し、実務未経験からAndroidエンジニアになりました。

# 入社前のプログラミングスキル
高校の頃からぼんやりと「プログラミングでゲームとか作れたら楽しそうだなあ」と思いつ

元記事を表示

【ぶっちゃけAndroidアプリ開発】sqliteでデータベースを作成する

とりあえずsqliteでデータベースを作成したい人のためのTipsです。
csvからインポートしてデータベースを作成します。

<使用環境>
・Macbook Pro
・バージョン10.15.2(Catalina)

##csvファイル
“`test.csv
1,東京都庁,東京都新宿区西新宿2-8-1,03-5321-1111,metro.tokyo.jp
2,神奈川県庁,神奈川県横浜市中区日本大通1,045-210-1111,pref.kanagawa.jp
3,埼玉県庁,埼玉県さいたま市浦和区高砂3-15-1,048-824-2111,pref.saitama.lg.jp
4,千葉県庁,千葉県千葉市中央市場町1-1,043-223-2110,pref.chiba.lg.jp
5,静岡県庁,静岡県静岡市葵区追手町9-6,054-221-2455,pref.shizuoka.jp
“`
住所録ちっくなcsvファイルを作成しておく。
##データベースを作成してcsvをインポート
ターミナルでデータベースの器を作成しつつsqliteに入る。
既にデータベースがある場合も同じコマンドでO

元記事を表示

Android で OpenCL を試す

### OpenCL

OpenCL(Open Computing Language)は、マルチコアCPUやGPU などによる異種混在の計算資源において、
並列コンピューティングのためのクロスプラットフォームなAPIである。
標準化団体のクロノス・グループ(Khronos Group) によって仕様が策定され、
ロイヤリティフリーなオープン仕様として公開されている。

[ wikipedia : OpenCL](https://ja.wikipedia.org/wiki/OpenCL)

Android では、公式にはサポートされていないが。
CPU/GPUメーカーによりサポートされている。
機種依存性 高し。

[Android上でのOpenCLの現状](https://qiita.com/hnw/items/8c598eb897806a2b0623)

### Android で OpenCLの環境を作る

まず、CPU と GPUのメーカーと型番を調べる。

Nexus5 で実行した例

CPU
> $ adb shell cat /proc/cpuinfo | grep Har

元記事を表示

[Android]カスタムビューの作り方 (フルカスタムコンポーネント)

# はじめに

Android では[公式](https://developer.android.com/guide/topics/ui/custom-components)にあるとおりカスタムビューを作成する方法が何パターンかあります。
今回はフルカスタムコンポーネントを作成してみたので作成方法をまとめたいと思います。

| 名称 | 説明 |
| — | — |
| フルカスタムコンポーネント | `View`を継承していちから新たなコンポーネントを作成するパターン |
| 複合コンポーネント | 既存のコンポーネントを複数組み合わせて新たなコンポーネントを作成するパターン |

![mermaid.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/79387/ad67be1d-78a4-4abf-75ec-a915df29d736.png)

今回は`number`と`displayMode`を設定すると、モードごとに数字を表示する次のようなビューを作ろうと思います。

| ![Screens

元記事を表示

スマホで簡単にマイニングができるPi Network

#Pi Networkとは
Pi Networkとはスタンフォード大学の博士課程のグループによって開発されている仮想通貨だ。
今年の3月に公開され、現在では125万人を超えている。

#Pi Networkの特徴
##マイニングが簡単にできる
ビットコインなどの今までの仮想通貨では高性能なコンピュータを用いて知識のある人がマイニングをしていたが、Pi Networkでは誰でもスマホで1日に一回ボタンをタップするだけでマイニングをすることができる。

#Pi Networkの始め方
現在Pi Networkはβ版のためinvite code(招待コード)が必要なので以下のリンクからアプリをダウンロードしinvite codeのところに**entotsu**を入れることで登録できる。

>http://minepi.com/entotsu

元記事を表示

【Android】さくっとFloatingActionButtonを実装する

いつも忘れるのでメモ。

# Material Componentsを使えるようにする
dependenciesに追加(←これを忘れがち)。

“`groovy:build.gradle
dependencies {
implementation ‘com.google.android.material:material:1.1.0-alpha06′ // 追加
}
“`

最新バージョンは下記から確認できる。
https://github.com/material-components/material-components-android/releases

# Fabをレイアウトに追加する
“`xml
Coroutines私的メモ3〜Coroutines Flow〜

[前回の続き](https://qiita.com/sudo5in5k/items/319a7c45923aebc04571)となります

# Coroutines Flowとは

`Cold`データーストリームの一種

## Cold?

RxJavaのObservableにもありますが、データストリームは`Cold`と`Hot`に大別できる

### Cold
* 1つの消費者(生産者の対義語)に対して購読関係を結ぶ (=個別に値を流していく)
* Subscribeするまで値を流さない
* 通知するデータのタイムラインが購読されるたびに生成
* 大抵のObservableはCold

スクリーンショット 2019-12-29 14.07.36.png

### Hot
* 複数の消費者(生産者の対義語)に対し

元記事を表示

うつ病の僕がアプリ開発をする理由

 こんにちは。ヨースケです!
この1週間**ウイルス性急性胃腸炎**で苦しんでましたw今はお薬をもらってだいぶ楽にはなりましたが、発症当時は1時間に1回は下痢が止まらず中々眠れませんでした…頭痛と発熱もありましたがインフルじゃなくて良かったら…

## うつ病の僕がアプリ開発をする理由
 これには2つ理由があって、1つ目はまたアプリ開発がしたい!と思ったのがきっかけで、大学生の時に授業の一環でアプリを作ってから面白いな!またやりたい!と思ったのが強いての理由かもしれません(笑)。

 そして2つ目はうつ病になってから退職して1年1ヶ月ほど経つのですが、その半年間はほとんどと言って良いほど何もしてきませんでした。地学の勉強とかマイクラで遊んだりとか…やっぱり何かしないと!穴を埋めなければ!と思いアプリ開発をしています。自分でもやっぱり焦ってると感じますが、でも何かはしなくてはなぁーと思ってしまいます。

 開発は牛歩並みですが(笑)勉強しつつアプリを作ってます。今年は1週間前に身体を壊してしまったので、それからはパソコンを立ち上げてません(笑)。アプリ開発再開発来年入って落ち

元記事を表示

daggerの依存性を視覚化してくれるScabbardを使ってみた

#Scabbardとは
dagger2によるdependency graphを可視化してくれます。
Scabbard Processor(Dagger SPIの一部?), gradle pluginとide pluginの3種類が用意されてます。
java, kotlinに対応してます。
公式:https://arunkumar9t2.github.io/scabbard/

#環境
今回自分が試した環境です。

macOS
Android Studio 4.0 Canary 7
jdk1.8

下記リポジトリで試してみました。
https://github.com/RyuNen344/ConnpassSearch

dagger勉強中に出会ったため、全然見当違いのことを書いていたらすみません。

#使い方

今回はgradle plugin, ide pluginを両方入れてみます。

##GraphViz
可視化するにあたり、GraphVizが必要なので入れます。

mac、linuxの場合

“`bash
brew install graphviz
“`

winの場合
[G

元記事を表示

Kotlin, LiveData, coroutine なんかを使って初めてのAndroidアプリを作る(6)

[前回](https://qiita.com/kasa_le/items/7d680cb0c03d28c817a7)の続きです。

すっかり間が空きましたが、決してFlutterに浮気してたとかではありません(笑)

# 今回の目標

今回はちょっと趣向を変えて、SNS連携としゃれ込んで(?)みようと思います。

– メッセージ(文字列)をTwitterに投稿する
– 投稿用画像を作って保存する
– 画像をInstagramに投稿する

# SNS共有ボタンから共有画面に遷移

まずは共有ボタンを作って共有画面に遷移するようにします。

最初に、共有ボタンを押したら、Twitter/Instagramを選べるようにしましょう。

共有画面に遷移する導線は、このようにするのはどうでしょうか?

– 新規登録画面
– スイッチ(シェアするon/off)とチェックボックス(Twitter, Instagram)で選択
– 編集画面
– 共有メニューアイコンから(Twitter, Instagramの選択表示)

## (1) 新規登録画面にシェアメニューを追加する

元記事を表示

Androidの通知チャンネル作成でGroupIDとChannelIDを一緒にするとバグる

アプリを配信していたある日*「アプリの通知設定が変更できなくなった」*という問い合わせがチラホラが来るようになりました。
**通知のON / OFFはできるものの、バイブレーションの切り替え**など詳細な変更ができなくなったとの事です。

対象はAndroid8系以上、通知チャンネルの機能を実装しているバージョンでした。

# 通知チャンネルとは(簡単な説明)
通知チャンネルはAndroid8から採用された端末で通知を行う際の機能です。
targetSdkVersionをOreoに上げた場合、通知チャンネルを作成して通知を行わないとアプリでの通知が行えなくなります。

■通知の概要
https://developer.android.com/guide/topics/ui/notifiers/notifications?hl=ja

この機能より前は、アプリで通知の設定変更画面などを準備し、通知の詳細を変更できるようするのが一般的でした。(しかも結構面倒)
しかしこの機能が登場し、通知チャンネルを作成することで端末の設定画面の各アプリから通知の詳細な設定が行えるようになりました。(アプ

元記事を表示

AndroidからGoogle Cloud TTS を使ってみる 【SSML】

# 概要
[AndoirdからGoogle Cloud Text To Speech を使ってみる【音声を合成する】]
(https://qiita.com/maKunugi/items/16f2fcfbe5d4567b44bd)
の続きになります。

上記の記事では、Google Cloud Text To Speechを用いてAndroidアプリから音声合成を行う方法について紹介しました。

今回は、読み上げる音声がより自然な発話になるよう、SSMLを用いて発話をさせる方法についてメモしています。
SSMLについては下記をご参照ください。
[音声合成マークアップ言語](https://cloud.google.com/text-to-speech/docs/ssml?hl=ja)

# 実装方法
前回同様、下記のREST APIを利用していきます。
https://cloud.google.com/text-to-speech/docs/apis?hl=ja
(エンドポイント)
“`/v1beta1/text:synthesize“`

前回は文字列をそのまま投げていましたが、

元記事を表示

Nreal Light DevKit の使い方(基本操作編)

Nreal Light Deveveloper Kit のファーストバッチに入ったようで、年内入手が叶いましたので、いろいろ書いていこうと思います。

![IMG_E8500_small.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71421/9502611c-ff3d-96a2-d987-949794886814.jpeg)

## Nreal Light Developer Kitの構成

最初に、Nreal Light Developer Kitは主に以下の2つのパーツで構成されます。

* Glasses
* メガネ部分です。ディスプレイ機能とカメラ機能、スピーカーなどが入っています。
* Conputing Unit
* 四角いユニット。CPU、メモリが入っていて、実質表示機能を除いたAndroidスマホのようなものです。
* 分離するコントローラー(円盤状)と磁石でくっつきます。

そのほかのスペックはこちらに
https://www.nreal.ai/specs/

今後発売

元記事を表示

α版、β版、内部テスト版、オープンテスト版、クローズドテスト版ってどのように進めればいいのか?[Android]

#はじめに
テストする際にどのように進めればいいのか迷ったので記事にしました。:blush:

参考は
[「アルファ版」と「ベータ版」の違い](https://wa3.i-3-i.info/diff75version.html)
[オープンテスト版、クローズド テスト版、内部テスト版をセットアップする](https://support.google.com/googleplay/android-developer/answer/3131213?hl=ja)
です。

#では早速!
まず気になる出来ることですが、『α版』、『β版』、『内部テスト版』だろうと出来ることはほとんど変わらないという認識でいてもらった方がいいです。
じゃなぜ分けるか?答えは、どの状態のものかをはっきりさせるため。

| 分類 | 詳細 |
|:—————–|:——————|
| 製品版 | 通常のリリース |
| β版 | だいたいOKのものをテストする

元記事を表示

Android で OpenCV を使って QRコードを検出する

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

### OpenCV の QRコード検出

OpenCV 4.0 から QRコード検出用のAPIが追加された。
今回はこれを試す。

[opencv : cv::QRCodeDetector Class Reference](https://docs.opencv.org/3.4/de/dc3/classcv_1_1QRCodeDetector.html)

下記を参考にした。

[QRコード検出APIの解説](https://qiita.com/tomoaki_teshima/items/f136e51fa1da6927471b)

### アプリを作成する

まず、下記を読んでください。
[Android で OpenCV のサンプル camerapreview を試す](https://qiita.com/ohwada/items/53305d29f33bd14e6683)

CameraAc

元記事を表示

AndoirdからGoogle Cloud Text To Speech を使ってみる【音声を合成する】

# 概要
タイトルの通り、Google Cloud Text To Speech(以下、Google Cloud TTS)をAndroidアプリから利用する方法についてメモします。Androidから軽くGoogleCloudTTSを使ってみたい機会があったので、サンプルを実装してみた内容を書いています。

# Google Cloud Text To Speechとは?
https://cloud.google.com/text-to-speech/?hl=ja
Googleが提供するテキストを音声に変換してくれるサービス。
[アプリで利用できる音声合成](https://qiita.com/maKunugi/items/90cbefe97887470fb328)でもちょっと触れています。

# アプリ用SDK等は提供されていない
アプリから直接利用するためのSDK等は提供されていないようです。
(公式DocにKotlinやSwiftのサンプルはなし)
それもそのはず、実プロダクトでiOS/Androidアプリから直接利用されるケースはあまり想定されておらず、サーバサイドでの利用を想定

元記事を表示

【Android】htmlで「時計」を作ったら思いのほか安定していた

#内容

[Overlays](https://play.google.com/store/apps/details?id=com.applay.overlay&hl=ja)(com.applay.overlay)というアプリを使います。
このアプリにはフローティングブラウザを表示する機能があるのですが、

– 操作の透過
– 背景の透過
– 枠の完全非表示
– 縦画面、横画面で個別に表示位置を指定

といったことが可能です。
![20191227_flatclock.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554769/ae9dbed3-f52d-cbf8-a942-e66ee71425d1.png)
そこで、画像のような時計をhtmlで作り、常時表示するようにしてみました。

この時計の運用を数ヵ月間試す限りでは安定していて、動きが止まったり落ちてしまったりすることはありませんでした。

また、動画やブラウザよりも前面に表示されるため、時間を把握しつつ色々なことが出来ます。

そして何より、時

元記事を表示

Androidアプリ開発におけるベストプラクティスの探し方と活用の一方法

この記事は [Makuake Development Team Advent Calendar 2019 Day.25](https://adventar.org/calendars/4716) の記事です。

# はじめに

現在、AndroidアプリについてGoogleが公式にベストプラクティスを多く公開しています。これらのベストプラクティスを理解し取り入れることがAndroidアプリ開発においてはとても重要になってきます。本記事では、ベストプラクティスがどこにあるのか、またそれをどのように活用するべきかについて、私見をまとめたいと思います。

# ベストプラクティスの情報源の参考

以下に、個人的に参考にしている情報源をまとめます。

* [Android Developers](https://developer.android.com/?hl=ja)
* 公式の情報源。非常に充実しており何か気になったとき、まずはここを見る。
* [android/architecture-samples](https://github.com/android/architecture

元記事を表示

OTHERカテゴリの最新記事