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

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

Ionic & golangでリアルタイム大喜利アプリを作りました

アプリのリリースまでなんとか漕ぎ着けたので、宣伝も兼ねて使ったフレームワークについて紹介します。

### どんなアプリか

写真で一言アプリです。
特徴的なのはリアルタイムで集まった人たちが、お互いに投稿し合ったボケを評価し合う部分です。

マッチングした最大10名が、制限時間内に一つのお題写真に対してボケを投稿します。
投稿はお互いに評価することができ、一定数イイネを集めると一本獲得になります。

こちらからダウンロード可能です。
よかったら遊んでみてください。

android
https://play.google.com/store/apps/details?id=jp.co.popbits.funnyapp

ios
https://apps.apple.com/jp/app/funny-one/id1515018792

## アプリ側

### ionic

アプリのベースはIonic Frameworkで作成しました。

https://ionicframework.com/

ざっくりいうと、
webview + Angular
にネイティブっぽいリッチな見た目

元記事を表示

【Android】EditTextで日本語入力⇔英語入力の相互切替ハンドリングは難しい

## 初めに
すみません、解決策を提示する内容ではないです。

Emailアドレスの入力時は
`inputType:textEmailAddress`
で英字入力モード
テキスト入力時はを初期表示にしたい
`inputType:text`
で日本語入力モードを初期表示にしたい
と格闘し、結論無理と行き着きました。。

**非常に時間を浪費し、悲しみを覚えた**ので、同じような悩みを抱えて嵌り続ける方がもしいたら早めに切り上げるよう共有したくメモします。
いやいや出来るよ!という賢者がいらっしゃったら是非ご教示下さい。。

## 事象
以下のように、
TextInputEditTextにを指定して初期のソフトキーボードを英字入力にしようとしたのですが、
別のEditText等で日本語入力に切り替わると、以降inputType:textEmailAddressの初期表示も日本語入力になってしまいます。

“`java:activity_main.xml

元記事を表示

Splash画面を実装する方法

# はじめに
Splash画面とは、アプリ起動時に最初に表示される画面です。アプリを起動するのに少なからず時間がかかります。その間に差し込む画面です。

Splash画面は、↑のGIFで写っているドロイド君の画面です。
この画面を作成する方法は大きく分けて2つあります。
1つ目は、Activityのテーマを変更する方法
2つ目は、Splash画面ようにActivityを作成する方法です。
今回はそれぞれの長所短所と実装方法についてまとめていきます。

# 1つ目の方法
1つ目は、**Activityのテーマを変更する方法**です。アプリは起動すると、デフォルトでは`windowBackground`の画面が表示されるらしいです。このプレースホルダーをSplash画面に拡張します。

## 実装
`windowBackgroudcolo

元記事を表示

Apps Up 2020: アプリコンテストのご案内

### 革新的なアプリの作成、Huaweiモバイルサービスでアプリを最適化

Apps Up 2020ーHuawei HMSアプリイノベーションコンテストはHuaweiのDigiX Geekフランチャイズの一部です。
DigiX GeekフランチャイズはHMS Coreオープン機能の促進、HMS コアキットの導入と使用による革新的なアプリの作成、170以上の国と地域の6億人のHuaweiデバイスユーザーへのより優れたスマートライフサービスの提供を促す、グローバルプログラムです。
DigiX Geekプラットフォームは、HMSに根ざしたグローバルモバイルエコシステムを革新し構築するために、開発の才能と愛好家の新時代を統合することを目的としています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50470/98a8b1b9-57ed-b0ab-1133-02a382621173.png)
![image.png](https://qiita-image-store.s3.ap-north

元記事を表示

Realmの基本的な使い方まとめ in Kotlin

#1.概要
RealmはSQLiteに代わる軽量、高速データベースでアプリ開発にも利用できます。
そのRealmが7.0.0になりKotlinの正式ドキュメントも公開されました!
せっかくなのでAndroidアプリでの簡単な使い方をまとめます。
7.0.0はbeta版で、安定板は6.0.2になります。お好みでどうぞ!

■URL
【公式】Kotlinドキュメント
https://realm.io/docs/kotlin/latest/
【公式】Javaドキュメント
https://realm.io/docs/java/latest/
自作サンプル(INSERT,SELECT,DELETEしているだけ)
https://github.com/KIRIN3git/RealmTest

#2.事前準備
build.gradleは7.0.0と6.0.2で設定が違います。

“`build.gradle【7.0.0】
buildscript {
repositories {
jcenter()
google()
maven {

元記事を表示

KotlinでTCP/IP送信

#はじめに
AndroidでTCP/IP通信をしようとするとうまくいかないので、その対応方法の記録です。
2018年ごろに作られているTCP/IPのサンプルがまったく動作しないのでその原因を調査しました。
#サンプル1
MainActivityのボタンクリックイベント内に

“`sample1.kt
var socket : Socket? = null
try {
val socket = Socket(“localhost”, 12345)
val writer : PrintWriter = PrintWriter(socket.getOutputStream(), true)
writer.println(“serial test”)
}
if (socket != null) {
socket.close()
}
“`

と代表的なサンプルを書いて動作させてみましょう。
**コメントの方にすばらし

元記事を表示

Androidエミュレータ(Windows)で使用するシステムイメージを差し替える・/systemの内容を変更する

# はじめに
Android Studioでアプリ開発するにあたり、SDK Managerでエミュレータとシステムイメージを取得して使用していましたが
・自前でAOSPからビルドしたシステムイメージを使う
・エミュレータで/system以下に変更を加える(アプリをpushするなど)
という必要があり、それで行き詰まった部分があるので、解決した方法と合わせて記録しておきます。

## わたしの環境
– Android Studio/エミュレータ動作環境
– Windows 10 Home 64bit
– CPU: Core i7-8700 @ 3.20GHz
– RAM: 16GB
– Android Studio: 3.6.3
– Android Emulator: 30.0.12

– AOSPビルド環境(仮想PC)
– Oracle VM VirtualBox 6.0
– Ubuntu 16.04 LTS
– AOSPソースコード: Android Pie android-9.0.0_r42

# 自前でビルドしたシステムイメージを使いたい
## 困ったこと

元記事を表示

Flutterで画像、カスタムフォントを使用する方法

今回はFlutterアプリで画像とカスタムフォントを使用する方法を記述します。
## プロジェクトに画像とフォントを追加する
1. プロジェクト直下に`assets`フォルダを作成し、その直下に`images`と`fonts`フォルダを作成する。
2. 使用したい画像とフォントを各フォルダに格納する。

スクリーンショット 2020-06-29 4.11.29.png

## `pubspec.yaml`にパスを記述する
Flutterで画像やフォントを使用するには、`pubspec.yaml`にパスを記述する必要があります。

“`pubspec.yaml
flutter:

# The following line ensures that the Material Icons font is
# i

元記事を表示

Dagger Hilt触ってみた

# はじめに
巷で噂のDagger Hiltをようやく触ってみました。[Codelab](https://codelabs.developers.google.com/codelabs/android-dagger-to-hilt/#0)を一通り終わったので、実際に[過去の記事](https://qiita.com/karass/items/883353b80ac84becf44c)でDaggerを使ってDIしたのですがそれをHiltに移行した手順をまとめます。

# Gradle
“`build.gradle
// build.gradle (Project)
ext.hilt_version = ‘2.28-alpha’
dependencies {
classpath “com.google.dagger:hilt-android-gradle-plugin:$hilt_version”
}

“`

“`build.gradle
// build.gradle (App)
// Dagger_hilt

元記事を表示

Androidのウィジェットでできること、できないこと

iOS 14でホーム画面ウィジェットが使えるようになるそうです。Androidでは昔からウィジェットがありましたが、このタイミングでAndroidのウィジェットにももう一度注目が集まりそうな予感がします。しかし、ウィジェットはかなり制約が大きく、何ができて何ができないのかをエンジニア以外に理解してもらうのは難しかったりします。
ここでは、どうやって作るかという話ではなく、Android開発に詳しくない人や非エンジニア向けに、ウィジェットってどういうものなのか、何ができて何ができないのかをざっくり理解していただけるような内容で書いてみようと思います。

## ウィジェットの制約の考え方

あるアプリのウィジェットを表示しているのは、そのアプリ自身ではなく、ホームアプリ等のウィジェットが設置されているアプリです。ウィジェットを提供するアプリは、こういう内容を表示してくださいとお願いすることしかできません。
まずはここを押さえておいてもらえば以降の制約についても理解しやすいかもしれません。

実際に表示しているのは別のアプリなので、ウィジェットが表示されている間、アプリのプロセスは生きている

元記事を表示

リップルカラーの変更方法

# はじめに
Buttonのリップルカラーを変更したいと思ったが、思い通りの色に変更することができなかった。 ここではButton(Material)のリップルカラーの変更方法の手順をまとめます。

# 目標
以下のようなOutlineButtonを作成します。

## Layout
“`xml

元記事を表示

FlutterでWeb,Android,iOSの3プラットフォームから同じコードでS3に写真をアップロードする

##概要
6月にWeb向けのImagePickerが出ていたので、ネイティブアプリとブラウザアプリを同じソースコードでビルドして、どのデバイスでもファイルアップロード出来るのかというのを試しました。
AndroidとiOSに加えてWebでもPickerが同じ処理で使えるようになったのは結構画期的だなと思ってのメモです。内容はクライアント側に重点を置いています。

### 1. パッケージをインポートする。
pubspec.yamlにimage_pickerとimage_picker_for_web、amazon_cognito_identity_dart_2を追加する。
私が試したバージョンは以下です。

“`
image_picker: ^0.6.7
image_picker_for_web: ^0.1.0+1
amazon_cognito_identity_dart_2: ^0.1.14
“`

### 2. 画像取得処理を書く。thenを使用してますが、awaitでも問題ありません。

“`
import ‘package:image_picker/image_picker

元記事を表示

フォークしたリポジトリをライブラリとして取り込む

ケースとしてはあまり多くないとおもいますが、掲題のとおりフォークしたライブラリをプロジェクトに取り込む方法について記載します

経緯としては、以下のYahooのライブラリを改造して使いたかったためです。
https://github.com/yahoojapan/AppFeedback-android

通常なら類似のライブラリを探すのでしょうけど、今回は見当たらなかったためForkすることにしてみました。

1. Forkが完了すると以下な感じにリダイレクトします
https://github.com/harutamasato/AppFeedback-android

2. sdkディレクトリ内でいじりたい箇所をいじって、masterにコミットしていきます。

“`
$ git commit -a -m “Message”
$ git push origin master
“`

3. 使える状態になったらタグをきってPushします。
2020/6/28現在、オリジナルの最新が1.0.5なのでそれ以上のものを設定します。
今回は1.0.6とします。正常にPushされると、以下の

元記事を表示

別途アプリをインストールせずに、決まった時間にAndroid端末でアプリを起動する

# きっかけ

日付や時間帯を指定して、起動したいアプリがあります。たとえばmineoアプリなど、毎日一回アプリを起動させて、起動ボーナスの回収と「ゆずるね」の宣言を行いたい場合などがあります。

そういうときのために[AutomateIt](https://play.google.com/store/apps/details?id=AutomateItPro.mainPackage&hl=ja)などのアプリもあるのですが、なにぶんAutomateItは多機能な分端末にかける負荷も大きく、普段使いするような端末にはあまり入れたくありません。

そういうときには、Join by Joaoapps(以下Join)のAPIを使う という方法があります。これを使うとAPI経由で特定のURLをブラウザに開かせたり、アプリを起動させたりといったことがURLを叩くだけで実現できます。

## やりかた

まず自分のAPI KEYとデバイスIDを確認するため、[Join On The Web](https://joinjoaomgcd.appspot.com)を開きます。

![image.png](

元記事を表示

パッケージ名からアプリ名(AndroidManifestのlabel属性のもの)を取得する

暗黙的Intentで選択したアプリ名を使いたくて、パッケージ名からアプリ名を取得する必要があったため備忘録含め以下に展開します。

[こちらのgetApplicationLabel](https://developer.android.com/reference/android/content/pm/PackageManager#getApplicationLabel(android.content.pm.ApplicationInfo))を使うと以下のようになります。
※[loadLabelでも可](https://developer.android.com/reference/android/content/pm/PackageItemInfo#loadLabel(android.content.pm.PackageManager))

なお、パッケージ名はいくつか取得方法があると思いますがいつかよく使う、URLをブラウザで開くケースを載せておきます。

“`Case1.kt
override fun onCreate(savedInstanceState: Bundle?) {

元記事を表示

【Android】DataBindingのvariableはcamelCaseで書くのが無難

“`xml

“`
より、

“`xml

“`
のが困らないと思うっすという話。プチハマったので。

## 具体例
「被``ファイルでsnake_caseのvariableを使おうとしたらアクセスできなかった」

#### 書いてみるxml

“`child.xml




元記事を表示

【Kotlin】Firebase + CameraX でリアルタイム文字認識

Firebase ML Kit + CameraX でリアルタイム文字認識してBottomSheetに表示します。

#デモ

完成形はこんな感じです。

#おおまかな処理の流れ

カメラ起動

MLKitでリアルタイム文字認識

Bot

元記事を表示

CameraXとOpenCVを使った画像処理Androidアプリのひな形

# はじめに
Androidでカメラ画像を入力して、何らかの画像処理を行うためのサンプルプロジェクトです。

以前別の記事( [Androidで OpenCV 4を使う方法とカメラライブビューの表示](https://qiita.com/iwatake2222/items/2642669419fdaa20a8a6) )で、カメラ読み込みもOpenCVを使った方法を記載しましたが、最新のAndroid SDKだと使えないようでした。

Camera APIが廃止され、Camera2 APIを使うことが推奨されていましたが非常に使いづらいです。より簡単にAndroid上でカメラを触れるCameraXというものが存在しました。今回はこれを使ってみます。
CameraXは使い方が簡単で、チュートリアルも充実しています (https://developer.android.com/training/camerax ) 。ネット上のほとんどのサンプルがKotolin向けだったので、ここではJavaで書いてみようと思います。

今回は、入力画像と前フレームの画像との差分を計算して、変化したところが

元記事を表示

日本Androidの会浜松支部 第108回ミーティングでFlutter勉強会やるのでWindows10にFlutterの開発環境を整えた話

[日本Androidの会浜松支部 第108回ミーティング](https://jaghama.connpass.com/event/180670/)
でFlutter入門が開催されるので、Flutterの環境を整える。
こういったハンズオン系のイベントの場合、**あらかじめ環境を用意しておくと、セットアップだけで終わってしまって、本来イベントで学ぶべきことを学ばないで終わってしまう**というもったいない事態に陥ることが少ないです。
(これホント大事!)
環境構築で分からない場合は、事前に知ってる人に質問しましょう!

このドキュメントは前提として、開発経験があって、環境変数の設定とかできる人向け。
(初心者向けじゃないです)

あらかじめ、Androidの開発環境は整っています。
Android Studioの環境構築は他の人の記事を探してください。

やったことは以下のこと

– Flutterのダウンロード([公式サイト](https://flutter.dev/docs/get-started/install/windows)からダウンロード)
– Flutterのbinディレクト

元記事を表示

Android画面各部の名称

正しい呼び方を知らなかったので画面の各部の名称をまとめました。

出典は主に
[Androidデベロッパー|ユーザーインターフェースおよびナビゲーション](https://developer.android.com/guide/topics/ui)
[Material Design](https://material.io/design)
です。

# システムバー
通知の表示や、デバイスステータスの通信、デバイスの操作を行うための専用の画面領域。
システムバーはステータスバーとナビゲーションバーで構成される。
![alt](https://developer.android.com/images/training/system-ui.png?hl=ja)

## 1. ステータスバー
通知アイコンやシステムアイコンが表示される。

## 2. ナビゲーションバー
左から戻る、ホーム、タスクボタンが配置されている。
またAndroid9から2ボタンナビゲーション、Android10からジェスチャーナビゲーションが追加されたため3つボタンが表示されているとは限らない。

# トップアプリ

元記事を表示

OTHERカテゴリの最新記事