- 1. 細かいことはいいから特定のAPIエンドポイントのOkHttpログをtailする
- 2. [Android]XMLファイルに記述したオブジェクトを読み込む
- 3. Android-Codelabs-2.2: EditTextを使って入出力のできるアプリの作り方
- 4. Andorid のブラウザで加速度の値を取得してグラフ表示したりローカルなファイルにセーブしたりする
- 5. Android-Codelabs-2.1: LinearLayoutとScrollViewの使い方
- 6. アンドロイドアプリ開発時に自作したお気に入りシェルスクリプト
- 7. Androidアプリ1月目の練習成果
- 8. [kotlin]アンドロイドでViewにアニメーションを設定する
- 9. Androidアプリの時間指定公開のやり方と注意点【2020年2月4日時点】
- 10. adb接続できない端末でadbコマンドを実行する
- 11. Flutterでパッケージ名がcom.exampleになっているのをiOS/Androidで修正する箇所まとめ
- 12. [Android]リアルタイムデベロッパー通知をFirestoreに保存
- 13. 【Android】カメラ等の権限リクエスト実装方法まとめ
- 14. [Unity] モバイル VR の APK 出力を Docker で構築するための手順
- 15. AndroidでImageViewをソースコードで丸くしたい(Kotlin編)
- 16. Android-AndroidStudioのテンプレート「Basic Activity」の構成要素を調べる
- 17. Android-CodeLab-1.4: アプリのアイコンをImageAssetを使って変更する
- 18. DataBindingとLiveDataのハマりどころ
- 19. Android 小ネタ帳
- 20. [Android] 静的解析ツールPMD
細かいことはいいから特定のAPIエンドポイントのOkHttpログをtailする
Androidの開発をしてると、特定のAPIに対するリクエストとレスポンスを確認したいことって、あると思います。
普通にlogcatを眺めるだけだと、目的外のログもぶわぁーって出てしまって涙目ですよね。
皆どうしてるんですかね?私はこうしてます。(pidcatを利用)
以下、`v1/users/register` というパスを含むリクエストとレスポンスを確認するとします。
### リクエストを確認
##### コマンド
“`
pidcat com.sample.package -t OkHttp | awk ‘/–>.*v1\/users\/register, /–> END/’
“`##### ログ
“`
OkHttp D –> POST https://api.sample.com/v1/users/register http/1.1
D Content-Type: application/json; charset=UTF-8
[Android]XMLファイルに記述したオブジェクトを読み込む
# はじめに
Android では `res/xml` フォルダ に任意の XML ファイルが作成できるようになっており、
ここに XML ファイルを作成し、格納しておけば、簡単に読み込めるようになっています。
今回は この XML ファイルに記述したオブジェクトを読み込む方法について説明します。“`Kotlin
val parser = applicationContext.resources.getXml(R.xml.user_list)
parser.getAttributeBooleanValue …
“`# 永続化するオブジェクト(クラス)を作成する
永続化するオブジェクトは次の `Person` クラスのオブジェクトにします。
`Person` クラスは 名前(String) と 年齢(Int) 、アイコン(リソースID)を持つクラスです。“`Kotlin:Person.kt
data class Person(val name: String, val age: Int, val iconRes: Int)
“`# XML
Android-Codelabs-2.2: EditTextを使って入出力のできるアプリの作り方
2019年にGoogleから,Web上でAndroidを学べるコースが提供されました.([Android Kotlin Fundamentals Course](https://codelabs.developers.google.com/android-kotlin-fundamentals/))
この記事では,そのコースを実際にやってみてアウトプットしてみるといった内容です.
何かツッコミなどあれば編集リクエストかコメントかTwitterでいただければ修正いたします :pray:#今回学ぶこと
・`EditText`のビューを使用して,ユーザー入力を取得する方法
・`visibilty`属性を使って,Viewの可視性(Visible)を変更する方法#目指す成果物
ここでは,前回使ったアプリにインタラクティブ機能を追加します.ソースコードは[こちら](https://github.com/syuheifujita/android-codeLab-fundamental-2-1)になります.
![2-2-1.png](https://qiita-image-store.s
Andorid のブラウザで加速度の値を取得してグラフ表示したりローカルなファイルにセーブしたりする
# やること
タイトルそのままです。Chrome でしか動作は確認していません。多分 iOS + Safari でも動きます。下記サイトで動作を見れます。
– https://royalcrab.github.io/sample/acc_graph.html
正常に動くと上のような感じになります。加速度センサがついてない PC などでは、加速度の値やグラフは表示されません。
# ソースコード
全体のコードは下記に置いてます。
– https://github.com/royalcrab/royalcrab.github.io/blob/master/sample/acc_graph.html
# 要点
## 加速度データの取得
下記のコードで、加速度を取得するたびに arr に加
Android-Codelabs-2.1: LinearLayoutとScrollViewの使い方
2019年にGoogleから,Web上でAndroidを学べるコースが提供されました.([Android Kotlin Fundamentals Course](https://codelabs.developers.google.com/android-kotlin-fundamentals/))
この記事では,そのコースを実際にやってみてアウトプットしてみるといった内容です.
何かツッコミなどあれば編集リクエストかコメントかTwitterでいただければ修正いたします :pray:#今回学ぶこと
・LinearLayoutを使ってビューを整理する方法
・ViewGroupの使い方#目指す成果物
今回は,AboutMeというアプリを作ってみます.
このアプリは,自分に関することを紹介したり友人,家族向けにカスタマイズしたりできます.![2-1-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249786/efb8f8d4-7d07-62c7-55ac-fb17d3e57b42.png)
アンドロイドアプリ開発時に自作したお気に入りシェルスクリプト
先日アンドロイドアプリをリリースしました。
エンジニア・デザイナが何か一緒に作ったり、勉強会開いたりを気軽に出来るコミュニティツールです。[EDICPAT ](https://play.google.com/store/apps/details?id=com.engineer_forum.engineer_forum “EDICPAT”)
アプリを作る時に自作して、いい感じに動いていたツールというか、シェルスクリプトを公開します。なお、前提としてPCはLINUX(Manjaro)を使用していますが、Shell(とかadbとか)が動けば他のOSでも使えるはずです。
# クライアント編 (adb)
– apkを端末にインストールする用のShell (install.sh)“`
#! /bin/bashif [ $
Androidアプリ1月目の練習成果
## 参考書
・Androidアプリ開発の教科書Kotlin対応
・Kotlinスタートブック## 作成しているアプリ
Androidアプリの勉強で今は、出勤管理アプリを作成しています。## 今後
・Fragmentの使い方を学ぶ。現状使っていない。
・DB接続にRoomを用いているが、ViewModelは用いていないので、使う。
・お試しのため、画面からデータを取得しておらず、直接挿入している、画面かた取得して挿入するようにする。
・取得したデータが画面に表示さない。## アドバイス助言お待ちしてます。
データ取得したリストがなぜ画面に表示できないか教えてください## 現状できているコード
“`ruby:MainActivity.kt
class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView
[kotlin]アンドロイドでViewにアニメーションを設定する
#今回やること
TextViewにアニメーションを設定して**「タップしてアニメーション発動 -> アニメーション終了時に画面遷移」**の動きを実装する
公式ドキュメント :https://developer.android.com/guide/topics/resources/animation-resource
これ↓#実装
##アニメーションの定義
流れ的にはアニメーションをxmlファイルで定義してそれをテキストビューに設定する**resフォルダ直下のanimフォルダ**(デフォルトではないので新規追加する)にアニメーションを定義した以下のxmlファイルを置く
“`xml:scale_down_up.xml
Androidアプリの時間指定公開のやり方と注意点【2020年2月4日時点】 Google Play Console で【時間指定公開】をする場合のやり方と注意点のメモです。
現状UI/UXともにかなり使いづらい点があるので、早く改善されることを祈ってます。#内部テストを飛ばして【審査中】の時は、そもそも【時間指定公開】の設定ができない
>内部テスト配信 → 本番の時間指定公開申請
内部テストおわったらすぐリリース準備しようとしたら、内部テストが【審査中】となった。
気にせず下記URLのヘルプの手順に従って本番の時間指定公開の設定をしようとしたところ、設定バーが表示されない事態に…。どうやら内部テストが審査中のステータスの時は、**時間指定公開**の設定はできないようです。
審査中のステータスが消えると、時間指定公開設定バーが表示されるようになるので、内部テストがリリースされてから時間指定公開の設定をするようにしましょう。
これはヘルプを見ても分からなかったので、要注意です。
[Play Console ヘルプ 時間指定でアプリを公開する](https://support.google.com/googleplay/android-devel
adb接続できない端末でadbコマンドを実行する
特殊すぎる状況だと思います。普通に開発していれば知らなくて良い情報だと思いますが、同じ境遇に遭遇してしまった方へ哀悼の意を込めてこの記事を贈ります。
## 対象端末
私が出逢ってしまった子のスペックは、以下のとおりです。
– Android5.0
– WiFi接続は可能
– USB type-Aのポートはある
– USB type-Cはない
– micro USB Type-BもないつまりPCと接続できないため、**adbコマンドが実行できない**という特殊端末を想定します。
(Wifi経由での接続方法はここでは割愛します)## 手順
#### (1)Android端末上でコマンドを打てるアプリをインストールする
Android端末上でadbコマンドを実行するため、アプリをインストールします。必要に応じて、ストアから、またはサイトからAPKを落としてきてUSBなどで転送することも可能です。
ここではAndroid Terminal Emulatorを紹介します。
[PlayStoreから](https://play.google.com/store/apps/det
Flutterでパッケージ名がcom.exampleになっているのをiOS/Androidで修正する箇所まとめ
# はじめに
flutterでプロジェクトを新しく作成するとき、“`
flutter create my_app_name
“`とすると、Package Name/Bundle Identifier は自動的に `com.example.my_app_name` のように指定されてしまいます。リリースに向けて開発を進めるのであればパッケージ名を正しく修正する必要があるので、その修正箇所をまとめておきます。
# Android
### 1. android/app/src/AndroidManifest.xml
– 3行目: package
– 8行目: android:label“`xml
[Android]リアルタイムデベロッパー通知をFirestoreに保存
少し前に、Androidのサブスクリプションについて、GooglePlayから更新情報を取得しFirestoreに保存する実装をしたので、思い出しながらまとめてみた。
## 前提
– Firebaseでプロジェクトを作成している
– FirebaseでCloud Functionsを編集できる権限を持つ
– Google Play Consoleで編集できる権限を持つ
– Cloud PubSubを設定する権限を持つ## 実装手順
### Cloud PubSubでトピックの作成
参考:[トピック作成手順](https://cloud.google.com/pubsub/docs/quickstart-console?hl=ja#create_a_topic)– [Cloud Pub/Sub設定ページ](https://console.cloud.google.com/cloudpubsub/topic/list)に移動
– (必要であれば)プロジェクトを変更
– 「トピックを作成」を押すと、作成ダイアログが表示される
– トピックIDを入力
– 暗号化は「Googleが
【Android】カメラ等の権限リクエスト実装方法まとめ
# 概要
自作のアプリでカメラやマイクを使いたい、位置情報を取得したい、などで、ユーザーに権限を許可してもらいたいときがあります。Android 6.0(API レベル 23)以降では、実行時に必要な権限を許可するようリクエストする必要があります(それ以前はアプリのインストール時にまとめてリクエストされる)。
権限リクエストの実装方法をまとめます。必要な権限は`AndroidManifest`に記述しておいてください。# 権限をリクエストする
以下ではカメラの権限をリクエストすることにします。まず、現在のカメラのアクセス権限の状態を確認します。
[`checkSelfPermission()`](https://developer.android.com/reference/kotlin/androidx/core/content/ContextCompat.html?hl=ja#checkSelfPermission(android.content.Context,%20kotlin.String))で特定の権限があるかどうかをチェックします。ある場合は0(`PackageM
[Unity] モバイル VR の APK 出力を Docker で構築するための手順
# はじめに
最近 Go/GearVR 向けに作っていた VR アプリを Quest にも対応させる機会がありました :sunglasses:
その際 Go/GearVR と Quest の APK をそれぞれ出力する時に、
Go/GearVR と Quest の設定を切り替える度に `ApplicationID` を変更したり、
外部サービスのコンフィグファイル差し替え作業等が必要になることが判明しました。。:pick:更に改修の度に検証やリリース用として、Go/GearVR と Quest 用含め、
計6つも APK を出力することが必要になりました。。:persevere:仕方なく最初は手作業で APK を 6つ出力していたのですが、
それだけで 20分近くも時間がかかるようになってしまいました。。 :sob:
(しかも手作業だと誤った APK を出力してしまう時もあり、そうなるとやり直し。。:x:流石にこのままだとマズイと感じたため、まずは APK 出力を Docker で自動化しました :robot:
Docker を採用した理由は様々な CI 環境
AndroidでImageViewをソースコードで丸くしたい(Kotlin編)
今回はAndroidでImageViewをソースコードで丸くしたいなと思いまして、対応しました。
私のメモレベルです。
よかったら参考にしてもらえると幸いです。## Javaの場合
Javaをご利用しているは、こちらを参考してください。## Kotlinの場合
下記の関数を導入します。“`
fun getCroppedBitmap(bitmap: Bitmap): Bitmap? {
val width = bitmap.width
val height = bitmap.height
val rect = Rect(0, 0, width, height)
val rectf = RectF(0F, 0F, width.toFloat(),
Android-AndroidStudioのテンプレート「Basic Activity」の構成要素を調べる
#Basic Activityのアーキテクチャ
![basicactivity.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249786/69844085-a19b-6b0e-7055-08a85f67b157.png)###① ステータスバー
Activityからステータスばーへアクセスすることができて,このバーを非表示にすることができる.
###② アクションバー/アプリバー
このようにナビゲーションを提供します.
###③ アプリ名
`AndroidManifest.xml`というファイルから,`android:label=”@string/app_name”`の要素から変更できます.
(`@string/app_name`は,`string.xml`の`app_name`の要素という意味)###④ オプションメニュー
検索を配置するときもあります.
###⑤ Coordinatorレイアウト
アプリのUIは,`content_main.xml`に定義されていて,Vie
Android-CodeLab-1.4: アプリのアイコンをImageAssetを使って変更する
2019年にGoogleから,Web上でAndroidを学べるコースが提供されました.([Android Kotlin Fundamentals Course](https://codelabs.developers.google.com/android-kotlin-fundamentals/))
この記事では,そのコースを実際にやってみてアウトプットしてみるといった内容です.
何かツッコミなどあれば編集リクエストかコメントかTwitterでいただければ修正いたします#今回学ぶこと
アプリのランチャーアイコンを変更する方法#目指す成果物
まずシンプルなアプリを作成します.
そしてアプリのランチャーアイコンを,AndroidStudioで用意されているImageAsset(イメージアセット)に置き換えてみます.![1-4-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249786/c60c5522-46ab-6e0b-d95b-057c83feed5d.png)
#ステップ
##
DataBindingとLiveDataのハマりどころ
layoutとLiveDataをbindingする際のはまりどころとチェックポイントをまとめる。
公式ドキュメントや人の解説をしっかり読んでいる人なら、はまらないレベル。
が、たまに新規アプリを作ると、いつもはまる。FragmentのlayoutにViewModelのメンバLiveDataをbindingする場合を例にする。
## Bindingクラスが生成されないんだけど
FragmentXXXBindingが生成されないケース。
build.gradleに以下の記述をしているか?
“`gradle
android {
…
dataBinding {
enabled = true
}
}
“`layout XMLのルートを
にしているか “`xml
Android 小ネタ帳
Androidの開発を行っていると、「そんな機能があるの?」という機能を時々見つけます。
業務上、スマートフォンの機能を全て押さえておきたいため、知らなかった機能を見つけたら随時追加します。## Android 9
### 画面の手動による回転機能
普段は表示されていませんが、画面を回転させると回転ボタンが表示され、ボタンを押すと回転されます。
![20190219-y0102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56144/1f706308-5df8-d5a8-2545-5f97eca49bc8.png)
https://dekiru.net/article/17811/
## Android 10
## 画面録画機能
「電源ボタン」の長押してから、「画面の保存」の長押しすることで「画面の録画」ができるようになります。ただし、その前に adb 経由で設定を有効化している必要があります。
“`
adb shell settings put global settings_
[Android] 静的解析ツールPMD
##導入
「ファイル」→「設定」→「プラグイン」でPMD Pluginと出てくるので、それをインストールする。
![スクリーンショット (7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506451/db3c9d3f-0818-5e5e-bf87-4ee8883a2b58.png)その後再起動する。
##使い方
右クリックで「Run PMD」と出てくるので、その中の選択肢を選んで解析できる。![スクリーンショット (8).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506451/4cca077d-aba3-7e16-8e2e-0202b90a5a5e.png)
##結果
以下のような結果が出てきた。
![スクリーンショット (9).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506451/b0d1b939-8b12-a