- 1. Flutter で Android の productFlavors にて Target を指定する方法
- 2. [Kotlin]Firebase Analytics, Crashlyticsの実装
- 3. OlympusのカメラをWEBカメラ化する方法
- 4. [Kotlin]Firebase Remote Configの実装
- 5. AndroidでPush通知を表示する
- 6. startActivityForResult / requestPermissions が deprecated になる話
- 7. ExoPlayerで、暗号化されたHLSを任意のkeyで復号・再生するには
- 8. FragmentでActionBarのTitleを設定する方法
- 9. Android – AsyncTaskの直列処理と並列処理の順番は保証されるのか??
- 10. 【Android】Dagger2 ~基本編
- 11. ViewModelProviders is deprecated になっているので、ViewModelProviderを使う
- 12. Android、Chrome、CloudFrontの組み合わせでNo ‘Access-Control-Allow-Origin’が表示される
- 13. Jetpack Composeの公式サンプル JetNewsのFavoriteボタンを押した時の流れ
- 14. Android初学者用まとめ
- 15. アプリ未経験の大学生が1ヶ月かけてReactNative(Expo)でiOS/Android対応のアプリを作った話
- 16. AndroidのViewPagerを下タブで切り替え
- 17. 眺めて覚える C# Xamarin Forms(7) 画面遷移
- 18. 7年前 Corei5 WinタブにAndroidx86入れてゲームとか
- 19. termuxにmongodbをインストールする
- 20. [Android]Epoxy のサンプルと解説 (CustomView から作成)
Flutter で Android の productFlavors にて Target を指定する方法
# 結論
指定の flavor のところにこれを書けばよい`project.target = “lib/main_development.dart”`
flavor 指定の全体的にはこんな感じ
“`groovy
flavorDimensions “default”productFlavors {
development {
project.target = “lib/main_development.dart”
dimension “default”
applicationIdSuffix “.dev”
versionNameSuffix “.dev”
}
staging {
dimension “default”
applicationIdSuffix “.stg”
versionNameSuffix “.stg”
}
[Kotlin]Firebase Analytics, Crashlyticsの実装
# はじめに
– Analyticsでユーザー情報が取得できる
– Crashlyticsでクラッシュしたらとれる# 画面
Analytics
導入するだけで色んな情報がとれます![スクリーンショット 2020-05-01 13.14.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199764/eae71f76-9b07-f540-0ffb-9bf4a8547fe4.png)
Crashlytics
クラッシュするとクラッシュの詳細が見れます![スクリーンショット 2020-05-01 13.17.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199764/ae2c15b7-409f-99d8-353d-4d52f7cd1f76.png)
何もない画面
“`activity_crashlytics.xml
<
OlympusのカメラをWEBカメラ化する方法
# はじめに
最近在宅勤務などで一眼カメラのWEBカメラ化が流行っていますね。
SIGMA fpはつなぐだけでWEBカメラになりますし、Canonは自社のカメラをWEBカメラにする[ツールを公開](https://pc.watch.impress.co.jp/docs/news/1250292.html)してます。
それ以外のカメラでも[この記事](https://mono-logue.studio/19117)の方法でWEBカメラになります。流れとしてはテザー撮影用のソフトウェアでPCにライブビュー撮影の画面を映し、それを範囲指定してキャプチャしたものを仮想カメラ出力するというものです。ただ、私の所持するE-M10MarkⅢなどテザー撮影に対応していない機種もあります。ATEM MiniなどHDMI入力をUVC(USB Video Class)にしてくれる機器を使えばWEBカメラ化できますが、わざわざ購入するのはハードルが高いです。そこで無料で何とかする方法を見つけました。
結論から申し上げると画質が良くないのであんまり使えないです。
# 手順
全体の流れとしてテザー撮影用の
[Kotlin]Firebase Remote Configの実装
# はじめに
– [公式はこちら](https://firebase.google.com/docs/remote-config/android?hl=ja)
– メンテナンスモードや強制アップデートの実装に使える# 画面
Firebase consoleでRemoteConfigの設定![スクリーンショット 2020-05-01 11.09.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199764/de10c774-79d8-de89-5ef7-8b4451088795.png)
FirabseConsoleのRemoteConfigで設定する値は2つの為、それぞれ表示する用のTextViewを2つ用意
スクショは実装結果です![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77444/4978efe3-4e2f-5820-f0f8-7d045d31d259.png)
Firebase Cloud Messaging(FCM)を使って AndroidでPush通知を実装したときのメモです。(2020/4/29時点)
#Firebase Cloud Messagingとは
Firebase Cloud Messaging(FCM)は、メッセージを無料で確実に配信するためのクロスプラットフォーム メッセージング ソリューションです。以前は Google Cloud Messaging API が使われていたようですが、現在はFCMに移行しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77444/9c9c2a8a-605d-3030-6374-74da49559b33.png)FCMで端末にメッセージ
startActivityForResult / requestPermissions が deprecated になる話
# はじめに
影響範囲が大きそうなのでまとめておきます。
※本記事は Medium にも投稿済みです。 Qiita の方が見る人が多そうなのでこちらにも投稿しました。`androidx.fragment:fragment-ktx:1.3.0-alpha04` から、以下のメソッドが `deprecated` になります。
– startActivityForResult
– onActivityResult
– requestPermissions
– onRequestPermissionsResult[公式ソース](https://developer.android.com/jetpack/androidx/releases/fragment#1.3.0-alpha04)
代わりに 新しく追加された Activity Result APIs を使えとのアナウンスがあります。
[Getting a result from an activity](https://developer.android.com/training/basics/intents/result)
ExoPlayerで、暗号化されたHLSを任意のkeyで復号・再生するには
※この記事は[DRM](https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E8%91%97%E4%BD%9C%E6%A8%A9%E7%AE%A1%E7%90%86)が施されたHLSの復号についてではなく、[AES](https://ja.wikipedia.org/wiki/Advanced_Encryption_Standard)等で暗号化されたHLSを復号する方法について記載しています。
### HLSの暗号化の仕様
HLSストリームの暗号化に関する情報はm3u8ファイルの`#EXT-X-KEY`に記載されています。
例えば、以下のファイルでは暗号化の方法・暗号化キーのurl・[初期化ベクトル](https://ja.wikipedia.org/wiki/%E5%88%9D%E6%9C%9F%E5%8C%96%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB)の値がわかります。“`
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURA
FragmentでActionBarのTitleを設定する方法
# FragmentでActionBarのTitleを設定する方法
## すぐ忘れるのでメモ。
Navigationでもっとかっこよく出来るはずだが。。“`
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
(activity as AppCompatActivity).supportActionBar?.title = “タイトル”
}
Android – AsyncTaskの直列処理と並列処理の順番は保証されるのか??
Android開発において、AsyncTaskで直列処理と並列処理について、ほぼ同時に動いた時はどのような動きになるのか、実際に順番は保証されるのかわからなかったので、軽くコードを組んでみて確認してみましたので、メモとして残しておきたいと思います。
【参考URL】
[developer – AsyncTask](https://developer.android.com/reference/android/os/AsyncTask)
[Android – AsyncTaskの直列処理?並列処理?](https://qiita.com/marusa/items/e4c3b780f8926e6afc17)
[AsyncTaskの非同期処理はどのように実現しているのか](https://qiita.com/kazy/items/755e8d3e9e36f5730895)#【試作1】タスク1:直列処理、タスク2:並列処理の場合
task1:execute()
task2:executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)“`
// 1
【Android】Dagger2 ~基本編
# はじめに
[前回の記事(DI(依存性の注入)とは依存性を注入するということである、、?)](https://qiita.com/iTakahiro/items/353a11f6c9d2a927158d)では
DIとは何かについて記述しました。今回は[Dagger2](https://dagger.dev)を導入してみたので記事にまとめます。
言語はKotlinです!参考にしたチュートリアルは[こちら](https://www.raywenderlich.com/6583167-dagger-2-tutorial-for-android-advanced)です。
# 準備
まず、`build.gradle`にて`Dagger2`を導入します。
参照:[Dagger README.md](https://github.com/google/dagger#gradle)“`gradle:build.gradle(app)
apply plugin: ‘kotlin-kapt’ // Kotlinでアノテーションを使用するために必要
dependencies {
ViewModelProviders is deprecated になっているので、ViewModelProviderを使う
# ViewModelProviders が非推奨になっている
公[Android Developer 公式: ViewModel](https://developer.android.com/reference/android/arch/lifecycle/ViewModel?hl=ja)に書いてある
“ViewModelProviders.of(this).get(UserModel.class)“
をつかうと deprecated(非推奨) と表示されてしまう。
[公式のViewModelProviders](https://developer.android.com/reference/android/arch/lifecycle/ViewModelProviders)の説明によるともうメンテナンスがされないらしい。
今後は “ViewModelProvider“ を使わないといけないらしいので今回はその使い方を紹介する。#用意するファイル
## Activity
プロジェクト開始時に通常通り生成されるもの
解説は省く## ViewModel
MVVM
Android、Chrome、CloudFrontの組み合わせでNo ‘Access-Control-Allow-Origin’が表示される
CloudFrontでリソースの配信を行っているとき、Android版のChromeだけでCORSのエラーが表示されることがある。
“`
No ‘Access-Control-Allow-Origin’ header is present on the requested resource
“`CloudFrontにおけるCORSの設定は [CloudFront からの「No Access-Control-Allow-Origin」を解決する](https://aws.amazon.com/jp/premiumsupport/knowledge-center/no-access-control-allow-origin-error/) に書いてある通りなのだが、この設定を行っていてもエラーが起きることがある。
[Cross-origin request from cache failing after regular request is cached.](https://bugs.chromium.org/p/chromium/issues/detail?id=40909
Jetpack Composeの公式サンプル JetNewsのFavoriteボタンを押した時の流れ
現在Jetpack Composeは絶賛開発中ですが、以下で新しいバージョンを使ったサンプルアプリがあります。そのサンプルの中で、いいねボタンが存在します。これがどうやって動くのかを見ていきます。
https://github.com/android/compose-samples/tree/master/JetNews
![toggle.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27388/f86c1333-68c1-5d62-522f-21dcee92e0db.gif)
まだbeta版でもないので、きっと変わっていくとは思います。
0.1.0-dev09での情報です。## JetNewsのコードを読んでいく。
まずこの行はPostCardSimpleのようで、以下のようにプレビューされています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27388/37a34698-96dd-a02e-8
Android初学者用まとめ
はじめてAndroid開発を行って学んだことをまとめました。
最初は、[はじめてのAndroidプログラミング 第4版 | 金田 浩明 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4815601143/ref=cm_sw_r_tw_dp_U_x_ejxQEb7Q0AMYJ)を読むのがすごくお勧めです。
数時間ですらすら読めてAndroid開発の特徴をつかめました。# アーキテクチャ
## Androidのアーキテクチャを考える時
これが丁寧で分かりやすい。
[Androidアーキテクチャことはじめ ― 選定する意味と、MVP、Clean Architecture、MVVM、Fluxの特徴を理解する – エンジニアHub|若手Webエンジニアのキャリアを考える!](https://employment.en-japan.com/engineerhub/entry/2018/01/17/110000?amp=1)公式のアーキテクチャガイド
[アプリのアーキテクチャ ガイド | Android デベロッパー | Andro
アプリ未経験の大学生が1ヶ月かけてReactNative(Expo)でiOS/Android対応のアプリを作った話
先日、「ワセフリ」というアプリをリリースしました。開発期間は約1ヶ月。ReactNativeを使って、iOS/Android両対応しています。
先日、学生が教科書などを交換や売買できるようなフリマアプリ、「ワセフリ」をリリースしました!
開発に着手したのが2020年の3月19日。正式にリリースしたのが4/19日ということで、**まあ大体4週間かかったかな、という感じです。**
言い訳がましいのですが、平日はほぼフルコミットでエンジニアのインターンとして働いてい
AndroidのViewPagerを下タブで切り替え
下タブでのViewPagerの切り替えはよく実装するレイアウトのひとつです。
ということで、自分がすぐ思い出せるようにまとめておきます。`targetSdkVersion 29` で確認しています。
# 下タブに表示するメニューを作成
`app/res/menu/navigation.xml` を作成し、下記のように内容を修正します。
コード内の `android:id` は任意のidを指定可能です。
`android:icon` には下タブに表示する項目のアイコン、 `android:title` には、下タブに表示する項目のタイトルを指定します。
今回は例として、 `home` と `account` の2つの項目を下タブに表示します。“`xml:navigation.xml
7年前 Corei5 WinタブにAndroidx86入れてゲームとか
Android-x86が流行り始めた頃、一時期ハマって自作PC等に導入していた。しかし、あまり情報がなかったため起動してブラウジング程度でやめてしまった。
最近、ふとAndroid-x86を調べるとゲーム(デレステ、ミリシタetc)を上手く動作させている方がいるようで、今回このタブレットがワケアリで手に入ったため導入することにした。
**あくまでも個人的な動作メモなため、各端末での動作保証は確実ではないことを承知の上参考にしていただきたい。**
## Dynabook VT712/H スペック
![vt712.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543063/fba9ae66-99bc-bf52-3619-cf47545a5d2e.png)
Dynabookのサイト
[企業向けタブレット VT712 トップページ – Dynabook](http://dynabook.com/pc/catalog/tablet_b/130226vt712/index_j.htm)**概要*
termuxにmongodbをインストールする
2020/04/28現在、まだ公式にサポートはされていないらしい。
今の所この方法がいいらしい。
https://github.com/termux/termux-packages/issues/249#issuecomment-584677975
[Android]Epoxy のサンプルと解説 (CustomView から作成)
# はじめに
RecyclerView を使う際には Adapter などに独自で処理を実装する必要があり、ここが RecyelerView を利用する上でかなり面倒な実装だったりします。 Epoxy はこの面倒な処理を実装してくれるライブラリらしいです。Epoxy のサンプルを作成してどんなことができるのかざっくりと解説していきたいと思います。
# 準備する
Epoxy を利用できるようにセットアップを進めます。ライブラリとして epoxy、 epoxy-databinding, epoxy-processor を追加します。databinding を利用する際には epoxy-databinding が必要になります、databinding を利用しないのであれば追加する必要はないです。ライブラリを追加したら kapt と databinding を有効化するだけです。これでセットアップは完了です。
“`groovy
// kapt 有効化
apply plugin: ‘kotlin-kapt’android {
︙
// databinding