- 1. AutoCompleteTextViewにフォーカスを当てたままキーボードを非表示にする
- 2. Github Actionsを使って自動テストをした話
- 3. 【Android】なんとかAndroidアプリのaabファイルのビルドに成功した件
- 4. 【Android】GooglePlayアプリのkeystoreパスがわからず新規アプリ登録した件
- 5. Flutter実装時にお世話になったページ 2020/11/17
- 6. Camera2+AudioRecord+MediaCodec+MediaMuxerでMP4録画するときの “こけポイント”
- 7. 脱SharedPreferences、DataStoreに移行してみよう
- 8. Android Firebase Cloud Messaging notification
- 9. Pepper SDK入門(5) Robot focus と Robot lifecycle
- 10. Pepper SDK入門(6) アクション
- 11. Pepper SDK入門(9) オートノマスライフ
- 12. Pepper SDK入門(4) はじめてのロボアプリ開発③
- 13. Pepper SDK入門(8) アクションの連結
- 14. Pepper SDK入門(3) はじめてのロボアプリ開発②
- 15. Pepper SDK入門(2) はじめてのロボアプリ開発①
- 16. Pepper SDK入門(7) UIスレッドとワーカースレッド
- 17. Pepper SDK入門(1) Pepper SDKプラグインのインストール
- 18. Pepper SDK入門(10) Animation Browser
- 19. Pepper SDK入門(11) Robot ViewerとRobot Browser
- 20. Pepper SDK入門(12) アニメーション編集
AutoCompleteTextViewにフォーカスを当てたままキーボードを非表示にする
## 環境
Android Studio 4.1.1
Build #AI-201.8743.12.41.6953283, built on November 5, 2020
Runtime version: 1.8.0_242-release-1644-b01 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 4029M
Cores: 8
Registry: ide.new.welcome.screen.force=true, external.system.auto.import.disabled=true
Non-Bundled Plugins: org.jetbrains.kotlin, com.developerphil.adbidea## AutoCompleteTextViewとは
キーボードによるインプットに対して、
自動で文字を補完してくれる機能を備えもったEditTextのことです。通常、
Github Actionsを使って自動テストをした話
# はじめに
今回はGithub Actionsを使って自動テストをした話を紹介していきたいと思います。# 自動テストのタイミング
PR出したタイミングとかPR出したブランチにpushしたタイミングでいいのでは?
と思う方もいるかもしれません。Github Actionsはpublicなレポジトリだと無料ですが、Organizationで使うと従量課金制になっています。
テストの量が多い場合、push毎にCIを走らせてしまうととんでもない実行時間になってしまいます。またPR出したタイミングで修正があることに気付き新しくpushした場合、その部分はグリーンになっている保証はありません。
なので今回はレビュワーがapproveしたタイミング(LGTMしたタイミング)で自動テストを回すようにしました。
PR出す→修正がある場合は新たにpush→レビュワーがapprove→テスト→成功でも失敗でもslackに通知
# レビュー時にテストをする方法
自動テストのやり方などはググればたくさん出てくるんですが、approveされたらという条件が合致するものがなかったので苦労しました
【Android】なんとかAndroidアプリのaabファイルのビルドに成功した件
【Android】GooglePlayアプリのkeystoreパスがわからず新規アプリ登録した件
https://qiita.com/technopixelinc2019/items/e7150caeadd1aff6ba4d上記の記事の続きです。
初心者向け、かつ自分への備忘録として記載残しておきます。ビルドしようとすると「Gradle build failed」と出るので調べてみる。
【参考URL】
参考ページによると、Unity2019からはBuild Settingsの項目から「Build System」が削除されたとの事。以前のver.なら「Systemの項目をInternalに設定」で良かったらしい。
Unity2019以降の場合は、Build Settingsの「Export Project」にチェック
【Android】GooglePlayアプリのkeystoreパスがわからず新規アプリ登録した件
【Android】GooglePlayのアプリを更新しようとしたらkeystoreのパスワードを忘れていた件
https://qiita.com/technopixelinc2019/items/754adba7fb151c5c62eb上記の記事の続きです。
結局パスは思い出せずじまい、新規アプリで登録する事にしました。
ただ、ビルドしようとするとエラーばかり。参考になるかわかりませんが、自分と同じようなプログラマ初心者に向けて記載しておきます。
unityでビルドしようとしたら下記エラー。
unable to install additional SDK platform. please run the SDK Manager manually make sure you have the latest set of tools and the required platforms installed. See Console for details.ググって調べてみると、2020/8/3からandroidAPI29以上が必要になったとの事。
参考URL
【Unity
Flutter実装時にお世話になったページ 2020/11/17
## なにか
毎回、同じ問題に、同じ検索して、同じページで解決してるので。。。
## TabBarViewのスワイプによる切り替えを無効にしたかった
[Stack Overflow “disable swiping tabs in TabBar flutter”](https://stackoverflow.com/a/51523272)
## Firebase の Cloud Messaging による通知がiOSで受け取れなかった
公式ドキュメントをちゃんと読めってことですね。
iOS Integration のステップ2で、以下を読み落としてたのと
> Don’t follow the steps named “Add Firebase SDK” and “Add initialization code” in the Firebase assistant.Dart/Flutter Integration のここを実装せずにテストしてました。(Androidは無くても届く)
“`
import ‘package:firebase_messaging/fireba
Camera2+AudioRecord+MediaCodec+MediaMuxerでMP4録画するときの “こけポイント”
# TL;DR
AndroidのCamera2,AudioRecord,MediaCodec,MediaMuxerを組み合わせてMP4録画機能を実装する中で,
『こけポイント』(ハマりポイント)に何個かぶつかったので,記録として残しておきます.
ぐぐってもあまり出てこなかったものばかりなので,このTextが誰かの助けになればと.(Code全体の説明は大規模になりすぎるので,こけポイントだけ書いておきます)
# 全体構成
↓ のような一番シンプルな構成を実現したときの,こけポイントを書きます.
![blueprint.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129035/5533b90d-9c71-8b9f-60f1-821a623df8cc.png)# こけポイント
## GL/EGLでMediaCodec Input SurfaceにRenderした画がEncodeされない
VideoのEncodeのために,MediaCodecのInput Surfaceに画を描く方法として
脱SharedPreferences、DataStoreに移行してみよう
# はじめに
Android開発について学んでいる時、SharedPreferencesは序盤に触れるものではないでしょうか?
つい最近その代替となるライブラリがリリースされたので紹介したいと思います。# Jetpack DataStoreとは
[Jetpack DataStore](https://developer.android.com/topic/libraries/architecture/datastore)は[Shared Preferences](https://developer.android.com/reference/android/content/SharedPreferences?hl=ja)の代わりに利用できる新しいライブラリです。Kotlin CoroutineとFlowを使っているので、非同期の読み取りや書き込みを簡単に行うことができます。(執筆時点の最新版は1.0.0-alpha02です)現状まだ解説されているページが少なく、いろいろな情報が断片的に散らばっているような状況なので調べたことを整理しつつ、纏めたいと思います。
# Prefer
Android Firebase Cloud Messaging notification
Android Firebase Cloud Messagingで、ノーティフィケーションが表示されるのは、アプリが終了している状態。
アプリが起動中、または、バックグラウンドにある状態では表示されない
Pepper SDK入門(5) Robot focus と Robot lifecycle
Pepper SDK Plugin導入から始まり、簡単なロボアプリの開発を行ってきました。今回は、QiSDKの基本となるRobot focus と Robot lifecycleについて説明します。
#1.フォーカスを理解する
まずはロボットフォーカスについての簡単な説明です。 Activityがロボットのアクションを実行するためには、ロボットフォーカスが必要です。ロボットフォーカスはフォアグラウンドのActivityだけが保持することができ、ロボットフォーカスオーナーと呼ばれます。ロボットフォーカスはQiSDKに管理されており、Activityはいつでもロボットフォーカスを獲得したり喪失したりする可能性があります。#2.ロボットライフサイクル
Pepper SDK入門(2) はじめてのロボアプリ開発①で登場したロボットライフサイクルについてです。 QiSDKがそれぞれのActivity用のロボットフォーカスを渡すために、RobotLifecycleCallbacksインタフェースを実装したオブジェクトが必要になります。以下はActivityにRobotLifecycleCall
Pepper SDK入門(6) アクション
ロボットフォーカスとロボットライフサイクルに関しては、前回学習しました。今回はPepperのアクションについて掘り下げます。
#Pepperでのアクション実行
Pepperは、話す・聞く・動く・アニメーションを再生する・人間を見つめる・チャットを行う・視線を動かす・特定の地点に留まる・写真を撮るといった動作が可能です。アプリを開発する際、これらのアクションがメインの構成要素になります。**前提条件**
このページで説明しているアクションの利用方法を理解するためには、Javaの非同期やスレッドに関する知識が必要です。##1.アクションの作成
ビルダーを用いて、アクションを同期もしくは非同期で作成します。以下が各アクションをビルドする手順です。1.アクションのビルダーにQiContextを渡す
2.ビルダーへアクションのパラメータを渡す
3.buildメソッドかbuildAsyncメソッドを呼び、アクションを作成する**同期**
アクションを同期で作成するため、ビルダーのbuildメソッドを呼びます。“`java
Say say = SayBuilder.with
Pepper SDK入門(9) オートノマスライフ
オートノマスライフについて、簡単な概要を説明します。
#自律モードの管理
Pepperはオートノマスライフというモードを持っており、人間の検知や追跡、音への反応や立ち位置の調整といった振る舞いを、自律して自然に行い、Pepperをより生き物らしく見せています。#1.Autonomous abilities
Autonomous abilitiesとは、Pepperに備わる複数の自律行動の機能のことです。自律行動はPepperへ生命らしさを与えるため、移動・アニメーション・顔追跡によって構成されています。#2.Autonomous abilitiesの管理
写真撮影など、Pepperのアニメーションの動きを完全に停止させたい場合には、Autonomous abilitiesを止める機能を使用してください。ここでは概要のみの記述ですが、詳細はまた改めて解説します。いつもよりも短いですが、今回はここで終了です。次回はアニメーションブラウザについて見ていきます。
Pepper SDK入門(4) はじめてのロボアプリ開発③
アプリの実行についてまとめた前回の学習を踏まえ、このチュートリアルでPepperに”Hello human!”と発話させる簡単なアプリを開発していきます。
**前提条件**
Android Studio、Pepper SDK plugin、Robot SDKとその関連ツールがインストールされていること。# 1.新規プロジェクトの開始
– HelloPepperの名称で、新しいプロジェクトを開始してください。
– Fileメニュー >New > Robot ApplicationからQiSDKの初期設定が完了していることと、ActivityにonCreateメソッドとonDestroyメソッド、及びRobotLifecycleCallbacksインターフェースが実装されていることを確かめてください。# 2.発話の実行
Pepperを発話させるために、[Say](https://qisdk.softbankrobotics.com/sdk/doc/pepper-sdk/ch4_api/conversation/reference/say.html#say)クラスを使用します。これ
Pepper SDK入門(8) アクションの連結
同期と非同期について、今回は様々なクラスやメソッドと共に解説を行っていきます。
#1.同期と非同期
アクションを順番に実行したい場合、同期で実行するようにコードを書く必要があります。“`java
//animateアクションのビルド
Animate animate = …;
//animateアクションを同期で実行
animate.run();
//listenアクションのビルド
Listen listen = …;
//listenアクションを同期で実行
listen.run();
“`ここでは[Animate](https://qisdk.softbankrobotics.com/sdk/doc/pepper-sdk/ch4_api/movement/reference/animate.html#animate)と[Listen](https://qisdk.softbankrobotics.com/sdk/doc/pepper-sdk/ch4_api/conversation/reference/listen.html#listen)を同期で順番に実行し
Pepper SDK入門(3) はじめてのロボアプリ開発②
Androidプロジェクトの作成及びロボアプリの初期設定を行った前回に引き続き、Pepperのエミュレータと実機でアプリを実行するために必要な手順を確認していきます。
#1.Pepperのエミュレータ
まずは、Pepperのエミュレータで動作確認するための方法についてです。**<手順>**
1.エミュレータボタン![WS000003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574697/63caa825-0f6a-984b-51a3-b5e969d4d75f.png)をクリックしてください。すると、ロボットエミュレータが表示されます。
2.プロジェクトにおける実行の構成でappが選択されているか![WS000002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574697/328c4224-a649-0da9-08c1-95d63fa408d6.png)を確認し、選択されていない場合はそれを選択して
Pepper SDK入門(2) はじめてのロボアプリ開発①
発話を行うロボアプリの開発をしながら、開発手順について説明していきたいと思います。Androidプロジェクトを作成し、ロボアプリの初期設定を行い、ActivityがPepperを操作するために必要な実装について見ていきます。
#1.プロジェクト作成
ロボアプリ開発にあたって、まず初めに標準的なAndroidプロジェクトを作成し、それにロボアプリの設定を追加します。Android StudioのFileメニューのNewからNew Projectを選択し、Androidプロジェクトを作成してください。プロジェクト作成時のTarget Android DeviceではPhone and TabletのAndroid 6.0 (Marshmallow)が選択してください。#2.ロボアプリの初期設定
作成したAndroidプロジェクトにロボアプリの初期設定を行います。**<手順>**
1.FileメニューのNewからRobot Applicationを選択します。
2.サポートするRobot SDKのバージョンと追加するモジュールを選び、OKをクリックしてください。
3.Sync
Pepper SDK入門(7) UIスレッドとワーカースレッド
前回、アクションについて解説するなかで同期と非同期の区別が登場しました。今回はその同期と非同期について、UIスレッドとワーカースレッドの二つを主軸に見ていきます。
**同期と非同期**
Pepperではタブレットと本体でそれぞれ異なるプロセスが動いており、二つのCPU間にはUSBを経由したTCP/IPによる通信があります。 同期と非同期のどちらでアクションを実行するかは、実際に動かしてみた上での選択をお勧めします。#1.UIスレッド
Androidシステムからのコールバック(onCreateやOnClickListenerなど)はUIスレッド上で動作します。“`java
@Override
protected void onCreate(Bundle savedInstanceState) {
}
@Override
protected void onResume() {
}
“`タブレットからPepperに指示を出した場合、Pepperとタブレット間での通信が発生します。しかしUIスレッド上でのネットワーク通信は出来ないため、NetworkOnMainThrea
Pepper SDK入門(1) Pepper SDKプラグインのインストール
Pepper SDK for Androidの公式サイトに記述されている情報から、理解したことをまとめていきたいと思います。
Android Studio対応版Pepperでは、AndroidのActivityからAPIを使用して、会話や動きを制御することが出来るようです。Pepper SDK for AndroidはAndroid Studioのプラグインであり、グラフィカルツール、Javaライブラリ、QiSDKを提供します。
Android Studio対応版Pepper向けのロボアプリを開発するため、以下に従って開発環境を整えましょう。##《OSバージョンの確認》
まずは、OSとバージョンの互換性を確認してください。
Linux … Ubuntu 16.04 Xenial Xerus – 64bits only
Windows … Microsoft Windows 10 – 64bits only
Mac … Mac OS X 10.12 Sierra
##《Android Studioのインストール》
ロボアプリはPepperにビルトインされたAndroidのタブレット
Pepper SDK入門(10) Animation Browser
これまでは実装方法の話題を続けてきましたが、Pepper SDK PluginにはPepperのアニメーションを作成できるツールやサンプルアニメーションも充実しています。今回からは、そうしたPepper SDK Pluginの使い方を勉強していきたいと思います。
#1.Animation Browserの起動
Animation Browserを利用して、サンプルアニメーションを自分のプロジェクトにインポートする方法を見ていきます。FileメニューのNewから、Import animation…を選択してください。
![2019-05-16 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574697/28d67360-9ce4-9728-a0af-6bd7b143946d.png)すると、Animation Browserが起動します。
![2019-05-16 (3).png](https://qiita-image-store.s3.ap-northeast-1.amazo
Pepper SDK入門(11) Robot ViewerとRobot Browser
Robot emulatorについては「[Pepper SDK入門(3) はじめてのロボアプリ開発②](https://qiita.com/kskrin/private/d3a2a02ec0f090540c0b)」でも触れましたが、もう少し詳しく見ていきたいと思います。
Robot emulatorは、下記のモジュールから構成されています。
モジュール名 概要 NAOqi Robot emulatorエンジン。実機での操作をエミュレートする。 Robot Viewer Pepperの挙動のシミュレーションを表示する。 AVD Android仮想 Pepper SDK入門(12) アニメーション編集
前々回のAnimation Browser、前回のRobot Viewerでの内容を踏まえた上で、様々なエディターを解説していきたいと思います。今回はAnimation Editorについて学習してみましょう。
#1.Animation Timelineファイルの作成
まずはAnimation Timelineファイルを作成してみましょう。**<手順>**
1.FileメニューのNewから、Animation Timelineを選択してください。
2.アニメーションファイルの名前を入力しCreateボタンをクリックしてください。すると、空のアニメーションファイルのAnimationEditorが表示されます。
関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた