- 1. Android レビューダイアログ メモ
- 2. 【iOS/Android】ネイティブアプリをAPIと繋ぎ込む時に便利なツール
- 3. InheritedWidgetの目的と使い方【Flutter】
- 4. 文字列(リソース名)で画像を取得してImageViewに貼り付ける(kotiln)
- 5. Android アプリ開発した際の躓きポイントを纏めてみた
- 6. 【Unity】Android実機につないでビルドが出来ない時の5つのチェックポイント
- 7. Flutter で仕事したい人のための Widget 入門
- 8. collbackFlowをFirebase Realtime Databaseに使うといい感じ
- 9. 【Android】 DB上に保存しているレコードをCSV形式(カンマ区切り)で保存する。
- 10. 【Android】ウィジェット(Widget)のUIテストを書く
- 11. Volley に headers を付加する(Kotlin)
- 12. AndroidアプリでUSBシリアル通信(usb-serial-for-android)
- 13. ツイッターのツイートURLのリンクがAndroidのChromeで上手く表示できなかった件
- 14. Flutterで作ったAndroidアプリをFirebaseで配布する
- 15. 【Unity】Androidアプリでバックグラウンドに移行する方法
- 16. 【Android】検証端末の選び方 7つのポイント
- 17. 【Android開発】GitHubActionsでCIやってみたい時の参考になる記事まとめ【ktlintとか】
- 18. 【Unity VR】備忘録 GVRを使った際にAndroid端末で2画面にならなかったときの話。
- 19. opencv4 系のsdkでonCameraViewStartedが呼ばれないエラー回避備忘録
- 20. android studio データバインディング生成で困った話
Android レビューダイアログ メモ
##参考記事
レビューダイアログの表示方法
https://ameblo.jp/highcommunicate/entry-12554726670.htmlmain_activityが解決されないエラー
https://teratail.com/questions/248389
【iOS/Android】ネイティブアプリをAPIと繋ぎ込む時に便利なツール
# iOS/AndroidでAPIをつなぐ時に便利なツールを紹介します!
## [Chrome拡張のTalend API TesterでAPIテスト – Qiita](https://qiita.com/ktr1211/items/c16cb4f99f91b998af46)
APIが正常に動いているか、これでチェックします!
この記事わかりやすくて神ですよ!## [Text Escaping and Unescaping in JavaScript](http://0xcc.net/jsescape/)
JSONに入っているUniCode、読みたいですよね?
そんな時はこれに打ち込めば!日本語に変換してくれて便利!!!## [JSON Schema Tool](https://jsonschema.net/login#/)
あとは最後に、これ
JSONを入れるだけでスキーマを作ってくれます!楽チンですね# まとめ
この記事で少しでも開発が捗ったら嬉しいです!
InheritedWidgetの目的と使い方【Flutter】
# まえがき
`InheritedWidget`の使い方の基本をまとめます!
Flutterを勉強していてよくわからなくなるポイントの一つがこの`InheritedWidget`だと思います。
筆射自身、これを理解するのにかなり時間がかかったので、「こういう説明があったらよかったな」と思う説明を書きます。
なお、以下では、`InheritedWidget`クラスを継承したクラスのことを単に`InheritedWidget`と呼びますね。他の`StatefulWidget`なども同様です。
## 前提知識
FlutterアプリがWidgetのツリー構造でできていることを知っていて、`StatefulWidget`と`setState`は使えるものとします。
`BuildContext`の知識も少しだけ要りますが、「Widgetツリー内での位置を表現するもの」程度の理解で十分です。
それについてはこちらをお読みください。
[Flutterのcontextの「お気持ち」を理解する](https://qiita.com/agajo/items/93d75aafe87bd
文字列(リソース名)で画像を取得してImageViewに貼り付ける(kotiln)
以前書いた記事
[画像名を文字列で指定してImageViewに貼り付けるコード(android)](https://qiita.com/marienplatz/items/d6081e629fec9bed22d1)これにLGTMしていただいていたので見てみたのですが、微妙だったので書き直します(ついでにkotlinで)
リソース名からImageViewに画像をセットするメソッドは、swiftにはあるんですがkotlinだとありそうでないです。ちなみにswiftでは
“`swift
imageView.image = UIImage(named:”hoge.png”)
“`
こんな感じでimageViewに画像をセットできます。同じようなものをkotlinで再現してみます。
# resourceIdを文字列から取得
“`kotlin:StringExtensions.kt
fun String.getResourceId(context: Context): Int {
return context.resources.getIdentifier(this
Android アプリ開発した際の躓きポイントを纏めてみた
#概要
とあることから、Google Maps APIを使用したAndroidアプリを作成することになったので、
参考にしたリンクを備忘録のために纏めました。#環境編
##前提
[Androidコードディング規約](https://qiita.com/Reyurnible/items/2de397b80391189af8e4)
[もしあなたが急にAndroidアプリを業務で作るはめになった場合の選択肢(2021年初頭版)](https://qiita.com/Gazyu/items/dafdb74c4aadf722da92?utm_source=Qiita%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9&utm_campaign=d50d3688f4-Qiita_newsletter_440_12_09_2020&utm_medium=email&utm_term=0_e44feaa081-d50d3688f4-33582113)##Android Studio
[Android studio の Gradleについて調べてみた](https://qii
【Unity】Android実機につないでビルドが出来ない時の5つのチェックポイント
**「あれ??何で実機が表示されないんだろう?」**
UnityでAndroid実機ビルド時の話。
そんな時にチェックする5つのポイントです。## 1.端末とPCは本当につながっているか?
当たり前ですが、PCと実機がUSBケーブルでつながっていますでしょうか?
そして、USBケーブルは故障していませんか?## 2.開発者向けオプションがONになっているか?
Android実機の開発者向けオプションは有効化しておく必要があります。
開発者向けオプションの出し方は[開発者向けオプション 出し方](https://www.google.com/search?q=%E9%96%8B%E7%99%BA%E8%80%85%E5%90%91%E3%81%91%E3%82%AA%E3%83%97%E3%82%B7%E3%
Flutter で仕事したい人のための Widget 入門
# この記事について
Flutter の入門記事の中には、初学者にもわかりやすく説明しようとするあまり実際のアプリ開発で重要になる内容まで抜け落ちてしまったり、意訳や曲解によって誤解を与えてしまう内容が含まれることもあったりします。
この記事は、Flutter で本格的にアプリ開発を進める上で僕が先に知りたかったこと、詳しい説明がほしかった部分を、過去の自分と同じような Flutter 初学者向けに説明する記事です。
本来は公式ドキュメントを読みながら学習を進められるのが理想ではありますが、Flutter のドキュメントは全て英語であること、またある程度のアプリ開発経験があることを想定した難易度になっている(ように感じる)ことから、まずは日本語の記事を頼りに学習を進める方も多いと思います。この記事は、そんな方の役に立つ内容を目指しています。
この記事では、中でも Flutter の Widget に焦点を当てて書いています。
# 本文
## Everything is a Widget
Flutter には __”Everything is a Widget”__ とい
collbackFlowをFirebase Realtime Databaseに使うといい感じ
## 概要
個人AndroidアプリでFirebase Realtime Database(略してRTDB)を使っているが、`ValueEventListener`のコールバックで実装する書き方がイマイチ好きではなかった。
そこで`collbackFlow` を使うと、RTDBとの接続をキレイに分離可能かつがStateFlow化できて、スッキリ書くことができた。
また、RTDBとの相性もよくて、値が何度も更新されてもFlowでちゃんと受け取れる。## コード: 状態管理
例として、天気を取得する機能を実装するコードを紹介する。
StateFlowで管理する状態クラス
今回は分かりやすいようにSuccess内の変数を`WeatherInfo`にしている“`kotlin
sealed class WeatherUiState {
// 値の取得成功
data class Success(val weatherInfo: WeatherInfo) : WeatherUiState()
// 失敗
data class Error(val me
【Android】 DB上に保存しているレコードをCSV形式(カンマ区切り)で保存する。
## ご挨拶
かなり久々の投稿になります。少し雑談から。急ぎの方は横の目次からジャンプしてください。
2020年は今まで生きてきた中である意味衝撃的でエキセントリックな1年でした。
皆さんも環境の変化やコロナへの不安などで、心が落ち着かない毎日を過ごされたかと思います。自分も働く環境など、いろんなものが今までからガラッと180度変わった1年でした。
まさか、BTSにハマるなんて思いもしなかったし。(この投稿を書きながら今も聞いています。)そんな中でもこの投稿を(ひいてはQiitaを)見に来られた方は、何かしらのシステム(アプリ)を自分の手で作り出すことに夢中になっている方かとお見受けします。
自分が嫌になることが多いこの職業ですが、「自分はできる!」と信じて頑張って欲しいです。
自分が投稿しているものは深い技術のものではなく、素人程度の技術をシンプルに応用しているものが
多いです。
まだまだ勉強中の身ですが、アプリ開発をされている方の少しでもお役に立てれば幸いです。## 今回の目的
DB上に保存しているレコードをCSV形式(カンマ区切り)で保存して、そのデータを取り込
【Android】ウィジェット(Widget)のUIテストを書く
#はじめに
エンジニアであればUNITテストやUIテストを書いていると思います。
ActivityやFragmentは参考になるespresso等のテスト記事を多く見かけます。
しかし、ウィジェット([RemoteViews](https://developer.android.com/reference/android/widget/RemoteViews))のテスト方法がネット上を検索してもあまりなかったのでメモがてら残しておきます。#仕様
まず、ウィジェットの仕様を考えます。
テストがメインなのでシンプルな仕様にします。
・Viewはボタンとテキスト
・ボタンを押すと1づつカウントアップ
・テキストの初期表示は0
・最大は12で最大を超えると0に戻る
・3の倍数で文字色が赤になる#ウィジェットの実装
まずはウィジェットを実装して動かしてみましょう。ウィジェットなのでAppWidgetProviderクラスが必要です。
“`kotlin:TestAppWidgetProvider.kt
import android.appwidget.AppWidgetManage
Volley に headers を付加する(Kotlin)
Kotolin で Volley を使っていて、API アクセスの際に headers に認証情報を付加したかったので、やり方メモ
“`kotlin
val queue = Volley.newRequestQueue(this)
val url = “アクセス先 URL”val stringRequest = object: StringRequest(Request.Method.GET, url,
Response.Listener{ response ->
val toastText = response.toString()
Toast.makeText(this, toastText, Toast.LENGTH_LONG).show()
},
Response.ErrorListener{
// Error 処理
})
{
override fun getHeaders(): MutableMap{
val headers = HashMap()
headers[“A
AndroidアプリでUSBシリアル通信(usb-serial-for-android)
## やったこと
市販のAndroidタブレットとシリアルインタフェースを持ったデバイス間の通信をしてみました。
通信プロトコルは、素のシリアル通信と、modbusどちらでも成功しました。## 構成イメージ
[リンク先](https://www.ratoc-e2estore.com/blog/2012/08/usb60mi-01)の構成図とほとんど同じような構成です。
今回、シリアル通信の知識はゼロからスタートしたので、このサイトを死ぬほど見て勉強しました。
とてもわかりやすく纏まっていて助かりました。このサイトがなかったら多分実現できてません。## ライブラリ情報
usb-serial-for-android v2.2.2(https://github.com/mik3y/usb-serial-for-android/releases)
2020/4月ぐらいの話なので、バージョン古くてごめんなさい。## 説明したいこと
当時はライブラリの使用方法について、ReadMeに書いてある内容があまり充実していなかったので、記事を書きたいと思っていました。
今は多少充実しているので
ツイッターのツイートURLのリンクがAndroidのChromeで上手く表示できなかった件
## 0.初めに
既知で当たり前なのかもしれませんが、TwitterのAPIでツイート検索したURLをAndroidのChrome上で開こうするとおかしくなったのでメモ。
私はGASで試しているときに発見しましたが、GASだけの話ではないと思われます。
おま環の可能性もありますが、一応投稿します。
## 1.事象
GASでTwitter Standard search APIで検索して生成したツイートのURLが以下の形式だとAndroidのChromeでは開けない。
[GET search/tweets | Docs | Twitter Developer](https://developer.twitter.com/en/docs/twitter-api/v1/tweets/search/api-reference/get-search-tweets)
“`
https://twitter.com/i/web/status/(ツイートID)
“`このURLで利用したHTMLのAタグのリンクをタップすると、一瞬、ツイッターのAndrodアプリが起動しようとしますが
Flutterで作ったAndroidアプリをFirebaseで配布する
## 目次
1. アプリをビルドする
1. 事前準備
2. APKのビルド
2. APKファイルをFirebaseコンソールから配布## 参考
– https://qiita.com/kasa_le/items/d23075d817f42e869778
– https://flutter.dev/docs/deployment/android## 事前準備
### 1. build.gradleの変更
“`
buildTypes {
debug {
resValue “string”, “app_name”, “(d)アプリ名”
applicationIdSuffix “.debug”
versionNameSuffix “-d”
}
release {
resValue “string”, “app_name”, “アプリ名”
}
}
“`### 2. マニフェストファイル変更
“`xml
// AndroidManifest.xml
【Unity】Androidアプリでバックグラウンドに移行する方法
# 初めに
Unity で実装した Android アプリの話です。
Unity 側でアプリをバックグラウンドに移動させたかっただけなのですが、調べるのに時間がかかったので記事にすることにしました。# 動作確認環境
– Unity 2019.4.13f1
# コード
“`c#
AndroidJavaObject activity = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”).GetStatic(“currentActivity”);
activity.Call(“moveTaskToBack”, true);
activity.Dispose();
“`# 簡単な解説
初めに、Android ネイティブの機能を使うので、`Activity` を取得します。
`Activity` を取得するには、 `AndroidJavaClass` を使用してUnityPlayerクラスを取得し、そのクラスを使って `currentActivity` を`Andr
【Android】検証端末の選び方 7つのポイント
# はじめに
みんな違ってみんないい、がAndroidの長所です。
サイズ、スペック、色、形、色んな機種があって選ぶのが楽しくなるAndroid。
選択肢が豊富でどれを買おうか選ぶのが楽しくなります。
しかし、開発者としては困ってしまう問題があります。そうです。機種依存問題です。
Pixelで動いたのに別の機種で動かない。。。なぜなのか:cry:
少しでも多くの方に自分のアプリを使ってほしい、そのためには色んな端末でテストするより他ありません。では、どんなAndroid端末でテストすればよいのでしょうか?
# まとめ
Androidの検証端末を選ぶときのポイントを7つにまとめました。| No. | ポイント | 説明 |
|:–|:–|:–|
| 1 | 素のAndroid | Android標準の動作 |
| 2 | OSバージョン | バージョン毎に動作が変わる |
| 3 | 端末シェア | 使っている人が多い端末かどうか? |
| 4 | 形状 | スマホ、タブレット、TV、Wear、車載 |
| 5 | 画面サイズ | スマホ
【Android開発】GitHubActionsでCIやってみたい時の参考になる記事まとめ【ktlintとか】
## まずは最強の記事
[Github ActionsでマルチモジュールAndroidプロジェクトのCI環境を整えよう(ビルド/Slack通知/Danger/ktlint) – Qiita](https://qiita.com/hohohoris/items/f934beb4ea0b432af488)
この記事が今のところ最高です!
この記事を読んでわからない、動かないって時にはしたの記事を読みましょう!## Danger?なにそれ美味しいのって時に読んでね
[Danger 導入した – Qiita](https://qiita.com/takakuda/items/2c796346323c7eb9242f)
Dangerの入門記事、これを読んでから公式ドキュメントにあたるとはやいですよ!## ktlintをプラグインで使いたい時に参考にどうぞ
[【Gradle】ビルド時にktlint(に限らずタスク類)を走らせる【Kotlin】 – Qiita](https://qiita.com/wrongwrong/items/86dfda0cdad5de57e619)
ktlint っ
【Unity VR】備忘録 GVRを使った際にAndroid端末で2画面にならなかったときの話。
UnityVersion : 2019.4.16f
GVRの設定を終わらせ、
Cardboardの設定も済ませたが、
Android実機で2画面にならなかった。![Screenshot_20210103-224833.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/794992/1f2af201-99e7-41b9-6a22-e4d34c4d72f4.jpeg)
設定を見直したが、
マニュアル通りの設定になっている。おかしい。
ジャイロセンサーも効かない状態。
何度か繰り返しても1画面のままなので、
ふとした瞬間にある事がよぎった。「もう一回CardboardのSDKインストールしてみるか。。。」
VR SDKsのCardboardを削除して、もう一度プラスボタンを押し、
CardboardSDKを再インストール。
![スクリーンショット 2021-01-03 224609.png](https://qiita-image-store.s3.ap-northeast-1.amazo
opencv4 系のsdkでonCameraViewStartedが呼ばれないエラー回避備忘録
## 概要
“`java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.tutorial2_activity_surface_view);
mOpenCvCameraView.setVisibility(CameraBridgeViewBase.VISIBLE);
mOpenCvCameraView.setCvCameraViewListener(this);
mOp
android studio データバインディング生成で困った話
#データバインディングの基礎
##データバインディングを有効にする1.build.gradle(Module:app)を開きます。
2.androidセッション内の閉じる}の前に、buildFeaturesセクションを追加してdataBindingをtrueにします“`:build.gradle(Module.app)
android {buildFeatures {
dataBinding true
}
}
“`
4.プロジェクトを同期します。プロンプトが表示されない場合は、[ファイル]> [プロジェクトをGradleファイルと同期]を選択します。##Fragmentを追加する
1.追加するパッケージで右クリックし、new>Fragment>追加したいFragmentを選択する
2.フラグメント名を変更し、完了を押すとfragmentクラスファイルとfragment.xmlが生成される##データバインディングを使用できるようにレイアウトを変更する・・・()
“`:生成されたときのFragment.xml