- 1. Android の Camera2 API を使って Color Effect する
- 2. [Android] パーミッション の Normal と Dangerous の違い
- 3. Android Dev Summit 2019 Extended Tokyoの登壇資料まとめときました。
- 4. Android Dev Summit 2019 Extended Tokyo メモ
- 5. Gradleで任意のファイル名で.apkを無警告で書き出す (2019/11版)
- 6. とりあえずDaggerを動かしてみる&詰まったところの解決
- 7. Android でパスワード表示/非表示できる EditText を実装する
- 8. しがない大学生がExpo(React Native)とfirebaseを使ってアプリ作ってみた
- 9. 【Flutter】’initialCameraPosition != null’ : is not true.が起こった時の解決策
- 10. KODIの日本語化する
- 11. Flutterウィークリー #83
- 12. VisualStudio&Gradleでマルチアーキテクチャ向けのAPKを作る
- 13. Android 9(Pie)以降で画面起動時に特定のViewに初期フォーカスを当てる方法
- 14. [Android]端末上のアプリ情報を覗き見る
- 15. CentOS7にcordova環境構築(GUI無し)
- 16. Dagger2をいまさらだけど導入する2019
- 17. [Android] タッチの座標を確認する
- 18. Android Studioを使ってGoogle Playを介さずにリアル(SHARP 304SH)で自作アプリを動かす方法
- 19. Firebase Cloud MessagingのFCMトークン更新タイミングについて
- 20. [ Android ] パーミッション設定
Android の Camera2 API を使って Color Effect する
[Android の Camera2 API を使って カメラのプレビュー画面を表示する](https://qiita.com/ohwada/items/7bb65a566114066c8ced)
の続きです。### Color Effect
Color Effect (色効果) は、
カメラデバイスからの画像の色合いを変更する機能です。
この機能は機種依存です。
この機能の解釈と実装は、Androidデバイスのメーカーに委ねられている。
すべての機種で同じ動作をするとは限らない。Camera2 API には下記の Color Effect が用意されている。
この機能がサポートされていないときは、OFF のみをリストする。– OFF
– MONO
– NEGATIVE
– SOLARIZE
– SEPIA
– POSTERIZE
– WHITEBOARD
– BLACKBOARD
– AQUA[reference : CameraCharacteristics.html#CONTROL_AVAILABLE_EFFECTS](https://developer.and
[Android] パーミッション の Normal と Dangerous の違い
# はじめに
Android ではセキュリティの都合上 Android で動作するアプリから個人情報の取得、端末の操作など
セキュリティ的に重要な制御をする場合はパーミッションで何をするか明示的に示す必要があります。そのパーミッションですが Normal や Signature や Dangerous といった3つの保護レベルがあるらしく、
その Normal や Signature や Dangerous でパーミッション許可の方法が異なるようです。# パーミッションとは?
Android では 次のような個人情報の取得、端末の操作などの
制御をする場合はアプリにパーミッションを設定する必要があります。| パーミッション | 内容 |
| — | — |
| ACCESS_WIFI_STATE | Wi-Fiネットワークに関する情報にアクセスできるようにする。|
| ACCESS_NETWORK_STATE | ネットワークに関する情報にアクセスできるようにする。|
| CAMERA | カメラデバイスにアクセスできるようにする。 |
| READ_CONTA
Android Dev Summit 2019 Extended Tokyoの登壇資料まとめときました。
# Android Dev Summit 2019 Extended Tokyoに参加しました。
GDGさん主催のAndroid Dev Summit 2019 Extended Tokyoに行ってきたので、
発表してくださったみなさまの資料をまとめておきます。# Android Developer Summit 2019 Overview
@mhidaka さん
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151973/2b8580eb-a5a7-4bd8-9dfb-c610e8fc32d5.png)
資料:https://speakerdeck.com/mhidaka/android-dev-summit-2019-conference-overview-and-keynote-session# Android Studio 4.0について
@wasabeef_jp さん
![image.png](https://qiita-image-store.s3.ap-north
Android Dev Summit 2019 Extended Tokyo メモ
## Android Dev Summit
GoogleのAndroid “開発者向け” のカンファレンス
[Android Dev Summit 2019](https://developer.android.com/dev-summit?gclid=Cj0KCQiAtrnuBRDXARIsABiN-7C0X5kxhNZVCFWazTCrhFaO_QxWIOAy0mJ5FdPcC0g-o6hM2oA-NbcaAt2JEALw_wcB&authuser=1)700参加者
– Modern Development
– Android Studo
– Jetpack
– Modern Distribution Channek
– Moderan OS## Conference Overview & Keynote Session
### Keynote
Androidは開発者とユーザーをつなぐプラットフォーム
増えるプラットフォーム : Foldable Chromebook
APEX (Android Pony Express)Google Associate An
Gradleで任意のファイル名で.apkを無警告で書き出す (2019/11版)
# TL;DR
AndroidのGradle Buildで出力される.apkのファイル名を好きに決めたかったので,何年か前にいろいろググって`build.gradle`を設定してあったのですが,最近のGradleのVersion UpでWarningが出るようになってしまいました...なので,最新Verでも無警告で気持ちよく任意名の.apkを出力できるようにします.
# 環境
“`
Android Studio : 3.5.2
Android Gradle Plugin Version : 3.5.2
Gradle Version : 5.4.1
“`# 何が問題だったか
もともとの`build.gradle`では ↓ のような処理で.apkの名前を差し替えていましたが,
`output.outputFile.name`の処理が内部でDeprecatedなAPIを使っているらしく,
`API ‘variantOutput.getPackageApplication()’ is obsolete and has been replaced with ‘variant.ge
とりあえずDaggerを動かしてみる&詰まったところの解決
# はじめに
Daggerのことググってもとりあえず動かしたいくらいの解説があまりなかったので、とりあえず動く物を。
あと、インジェクションするオブジェクトにactivityを引数として渡さないといけない時の方法で詰まったのでそれも書きます。ソースは[こちら](https://github.com/kkt-yu/Dagger-Practice)
# Daggerについて
ググってください# Daggerの下準備
Gradle(app)に下記追加“`gradle
// Dagger
implementation “com.google.dagger:dagger:$dagger_version”
annotationProcessor “com.google.dagger:dagger-compiler:$dagger_version”
implementation “com.google.dagger:dagger-android-support:$dagger_version”
kapt “com.google.dagger:dagger-compiler:$dagge
Android でパスワード表示/非表示できる EditText を実装する
# 概要
![スクリーンショット 2019-11-15 12.39.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34926/fc09a53a-2ab8-d15b-2810-9ecdfac9b88d.png)
![スクリーンショット 2019-11-15 12.39.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34926/3a71d41a-9be9-be9a-6ec1-294b03661a3c.png)こういうフォームを実装します。
「Android パスワード 表示 非表示」のようなキーワードでググると結構ヒットするのですが、
MATERIAL DESIGN ではなく
`android.support.design.widget.TextInputLayout`
の内容が多かったので書き残しておきます。# 手順
1.プロジェクトレベルの build.gradle に以下を追加します([コチラを
しがない大学生がExpo(React Native)とfirebaseを使ってアプリ作ってみた
こんにちは、ウマシバ([@UMA_987](https://twitter.com/UMA_987))といいます。
時々ウェブアプリやアプリを作ってる大学二年生です。
今回初めてAndroidアプリを作ったのでその紹介です。
#作ったアプリ
クリア時間割という時間割アプリをAndroid向けに作りました。[クリア時間割](https://play.google.com/store/apps/details?id=dev.umashiba.cleartimetable)
![ClearTimeTable_feature_graphic_min_ver.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307076/7ac94a64-8fcf-6248-e0fc-a0982fbe30d0.png)
#作った理由
firebaseを使ってみたかったのと自分が欲しい機能を自由に追加できる時間割アプリが欲しかったのが理由です。自分が作りたいものを作るって結構大事な気がしたのでこれを作ることに決めました。
【Flutter】’initialCameraPosition != null’ : is not true.が起こった時の解決策
#なりゆき
以下のページを参照しながらコピペをしていると途中で画像のエラーが起きた。
[Google公式Flutter用Google Mapsプラグインを一通り使ってみた](https://qiita.com/aoinakanishi/items/25f2526fc7c1fe8350c6)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533444/67c98215-52aa-c3e1-6898-7b1a9e3d0c1d.png)
#解決方法
initialCameraPositionがnullということなのでカメラの初期座標を設定する。“`dart:lib/main.dart
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
height: MediaQuery.of(context).size.height,
KODIの日本語化する
各OSに合うKODIをインストールする
設定選択
インターフェース選択
スキン選択
フォント選択し
Arialを選択すれば日本フォント再生出来ます。地域
地域押し言葉をjapaneseに選択してあげれば
日本語化完了します
Flutterウィークリー #83
# Flutterウィークリーとは?
FlutterファンによるFlutterファンのためのニュースレター
https://flutterweekly.net/この記事は#83の日本語訳です
https://mailchi.mp/flutterweekly/flutter-weekly-83※Google翻訳を使って自動翻訳を行っています。翻訳に問題がある箇所を発見しましたら編集リクエストを送っていただければ幸いです。
# 読み物&チュートリアル
### dart2nativeでDart 2.6を発表: Dartを自己完結型のネイティブ実行可能ファイルにコンパイルします
https://medium.com/dartlang/dart2native-a76c815e6baf
Dart 2.6のdart2nativeの公式発表。これにより、 Dartコードから実行可能ファイルを生成できます。### GitHubアクションを使用したFlut
VisualStudio&Gradleでマルチアーキテクチャ向けのAPKを作る
# 前回の記事
– [VisualStudioでAntを使ってNativeなAPKを作ってみる](https://qiita.com/furui/items/57df2533d1faa2a38b6f)
– [VisualStudioでGradleを使ってNativeなAPKを作ってみる](https://qiita.com/furui/items/59b5a290b2539bd0c8c3)# はじめに
armeabi-v7a と arm64-v8a の両方のダイナミックライブラリ(*.so)をを含めたAPKを作る方法を色々検証し、作成する方法が分かりましたのでまとめていきます。ただし、この方法ですと色々問題があります。
「**どのようなもんだいがあるのか**」「**私の場合はどのように対応したのか**」も一緒にまとめていきます。今回は「[VisualStudioでGradleを使ってNativeなAPKを作ってみる](https://qiita.com/furui/items/59b5a290b2539bd0c8c3)」のプロジェクトを使って説明します。
# マルチアーキ
Android 9(Pie)以降で画面起動時に特定のViewに初期フォーカスを当てる方法
今さっき知ったのですが(遅)、Android 9(Pie)で[Viewのフォーカスに関する仕様変更](https://developer.android.com/about/versions/pie/android-9.0-changes-28?hl=JA#focus)があり、**タップモードにおいてActivityは初期フォーカスを暗黙的に指定しなくなっていました**。
この初期フォーカスが自動で当たる機能は入力フォーム画面や検索画面では便利で、使っていた方も多いのではないでしょうか。Oreo以前であれば、以下のxmlを持つActivityが起動したとき、暗黙的に`EditText`に初期フォーカスが当たっていましたが、Pie以降で同様のことを実現する場合、**明示的に初期フォーカスを当てるViewを指定しなければならなくなりました**。
“`xml
[Android]端末上のアプリ情報を覗き見る ## 端末にインストールされたパッケージ(apk)のバージョン情報を覗こうとした
とあるプロジェクトにて、アプリのバージョンコード・バージョンネームを上げてビルド。
出力されたoutput.jsonをみると、どうやらバージョンが変わっていない。真偽を確かなものとするためapkの情報を覗くことに。
(注:ここではバージョンが変わらなかった場合の解決方法は説明しません。)## 前提として
調べたいapkがインストールされた端末がPCと接続されていること。
adbが使えること。## dumpsysコマンド
dumpsysコマンドはシステムサービスの状態をダンプしてくれます。
簡単な例で言うと、バッテリーの残量やメモリの消費量、ネットワーク通信状態などを、コマンド一発で確認することができます。(原文ママ)開発者としてはぜひ知っておきたいコマンド。
## dumpsys packageでパッケージ情報を覗く
ターミナルにて、以下を実行
“`adb shell dumpsys package パッケージ名“`
これで107行くらいの情報が出てくる。(長いから載
CentOS7にcordova環境構築(GUI無し)
CentOS7にcordova (android アプリコンパイル環境含む)の構築手順
android studioは導入せず、android sdkのみ入れてみました。
GUI環境無でapkファイルの生成までできます。“`sh
sudo yum install -y gcc-c++ make
curl -sL https://rpm.nodesource.com/setup_12.x | sudo -E bash –
sudo yum install nodejs
sudo npm install -g cordova
mkdir cordova
cd cordova/
cordova create myapp
cd myapp/
# cordova platform add ios
cordova platform add android
cordova requirements
“`“`console
$ cordova requirementsRequirements check results for android:
Java JDK: not ins
Dagger2をいまさらだけど導入する2019
自分の担当するプロジェクトで全然Daggerに触れる機会がないので、いい機会なのでDagger2を今更導入してみました。
# きっかけ
自分が今取り組んでいるDDDにおいて、各レイヤーごとに処理を分ける必要がありますが、プレゼンテーション層から下のレイヤーのインスタンスを作るのが非常に手間だったからです。
DIを利用して依存性を注入してあげれば、ActivityやFragmentから“`kotlin:HomeActivity.kt
private lateinit var homeApplicationService: HomeApplicationServiceoverride fun onCreate(bundle: Bundle?) {
・・・
val homeDatabase = HomeDatabase(this)
val homeCache = HomeCache(this)
val homeDataStore = HomeDataStore(homeDatabase, homeCache)
val homeReposit
[Android] タッチの座標を確認する
タッチの座標をお手軽に確認する方法の紹介。
`input tap`するときの座標を確認するときに便利。開発者オプションの”Pointer location”機能を有効にすることで、
画面上部にタッチイベントの詳細が表示される。タッチ数・座標・測度・強さ・大きさおよび、タッチの軌跡が確認できる。
“Pointer Location
Android Studioを使ってGoogle Playを介さずにリアル(SHARP 304SH)で自作アプリを動かす方法
本内容を利用した場合の一切の責任を私は負いません。
#バージョン
– OS
OS 名: Microsoft Windows 10 Home
OS バージョン: 10.0.18362 N/A ビルド 18362
システムの種類: x64-based PC
– Android Studio
Android Studio 3.5
Build #AI-191.8026.42.35.5791312, built on August 9, 2019
JRE: 1.8.0_202-release-1483-b03 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
– Android
4.4.2
– ADB USBドライバ
17.1(8698791byte 2019/7/9)#準備
Android Studioを公式からダウンロード&インストールする。
ADB USBドライバを下記からダウンロード&
Firebase Cloud MessagingのFCMトークン更新タイミングについて
# FCMトークンの仕様
Firebase Cloud Messagingを使ってアプリへのプッシュ通知テストをする際に、Firebaseコンソール上で対象デバイスのFCMトークンを登録する必要があります。
![スクリーンショット 2019-11-13 18.24.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6380/b96ec29a-dffc-ede4-7486-c76491810e8b.png)
このFCMトークンがデバッグ中にいつのまにか変わっていることがあり、挙動を把握するためドキュメントで仕様を確認してみました。OS毎に挙動が異なるようだったので、それぞれの生成・更新タイミングをメモしておきます。
# Android【参照】[Android で Firebase Cloud Messaging クライアント アプリを設定する | Firebase](https://firebase.google.com/docs/cloud-messaging/android/client?h
[ Android ] パーミッション設定
Androidのパーミッション設定について記す。
##パーミッションとは
例えば、Android 上でインターネットに接続するためには、そのためのパーミッションを必要とする。
この時AndroidManifest.xmlに以下のような内容を記述する。~~~xml
~~~これがパーミッションである。
##種類
パーミッションには様々な種類がある。
上記のNETWORK ネットワーク通信に関するものを始め、PERSONAL_INFO 個人情報、DEVELOPMENT_TOOLS 開発ツール、MESSAGES 送受信したメッセージなど多岐に渡る。
これらを指定したい場合は、上記の追加した記述でINTERNETという部分を変えればよいだけである。
以下に一例を示す。・ネットワーク通信
**ACCESS_NETWORK_STATE**:ネットワーク状態の表示を許可する。
**ACCESS_WIFI_STATE** :Wi-Fi状態に関する情報の表示を許可