- 1. No Code開発ツールが使っているクロスプラットフォームフレームワーク
- 2. 【Android/Java】初学者のためのRecyclerViewアプリ
- 3. 【Flutter】iOS/Android/WebでGoogleMapを表示する
- 4. 【Flutter】エラー対応 assets_audio_player
- 5. [Android]Realmってなんか名前かっこいいから、良く分からないけども使ってみる
- 6. WebViewにJavaScriptを注入してAndroid側に値を渡す
- 7. jCenterで公開していたKotlinライブラリをMaven Centralで公開する
- 8. GitHub ActionsでAABファイル生成のCDを構築する方法
- 9. jCenterが閉鎖されるらしいので一旦Github Pagesを野良mavenリポジトリにして待避した話
- 10. Tokenを用いて、AndroidStudioとGitHubを連携させる
- 11. M1 Mac Book AirにしたらAndroidStudioのビルド時間が37%になった話
- 12. Kotlin 生体認証(指紋認証、顔認証)
- 13. [Android]RoomでInsert時にOnConflictStrategy.REPLACEを使う際の注意点
- 14. Firebaseに保存した際に、そのTimestampを取得する方法(Android)
- 15. ConstraintLayoutとwrap_contentを両立させる
- 16. 【Android】特定のリンクをアプリ内で開く(WebView)
- 17. Android : Firebase Authenticationを用いたGoogleアカウント認証をKotlinで実装
- 18. Androidアプリを開発した話
- 19. 【Android】adbのデモモードを使って、ステータスバーをキレイにする方法
- 20. [UE4] Androidパッケージ作成失敗時に “Run with –stacktrace option to get the stack trace…” というエラーログが出力された時にすること
No Code開発ツールが使っているクロスプラットフォームフレームワーク
No Code開発ツールにはiOS/Androidアプリを出力できるものがある。
なんらかのクロスプラットフォーム技術が使われていると思われ、興味を持ったのでざっくり調べてみた。## 調査結果
8個のサービスについて調査したところ、– React Nativeが、2サービス(Adalo/Thunkable)で使われている
– Flutter、Capacitor、Cordovaを使っているサービスは探した範囲では見当たらなかった。## 調査結果詳細
ざっくり調べたので、すぐに分からなかったところは?を入れてある。|サービス名|Webアプリ|iOSアプリ|Androidアプリ|iOS/Androidアプリフレームワーク|
|:–|:–|:–|:–|:–|:–|
|[Glide](https://www.glideapps.com/)|o| x |x| -|
|[Adalo](https://www.adalo.com/)| o |o| o |React Native (根拠 https://developers.adalo.com/docs/workflow/c
【Android/Java】初学者のためのRecyclerViewアプリ
## はじめに
最初触れた時は全くわからなかった初学者殺しのRecyclerView。(勝手に命名)
だが、調べているうちに、実は作成手順は決まっていて、それに則ってやれば意外と何とかなることがわかったので、デモアプリを作りながら自分なりにまとめてみた。## 今回のデモアプリ
なかなか眠れないアプリを作成。
![recyclerview.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/8e1d05fa-ba7c-260e-bf03-70e20b242f00.gif)
## RecyclerView抑えるべきこと
### 作成するファイル
|作成ファイル|役目|
| —- | —- |
|Activity(Fragment)のlayout|RecycleViewを載せる|
|セルのlayout|各Viewパーツの配置を決める|
|セルのModelクラス|データ構造を決める|
|Activity(Fragment)クラス|Adapterに指示する,レイアウトを調整する(Layout
【Flutter】iOS/Android/WebでGoogleMapを表示する
# はじめに
昨年後半よりFlutter入門して社内用アプリを作っていたけど、Webで地図表示したい!って思い、トライしてみた。ぶっちゃけ、パッケージのReadmeをそのままやっただけですが….
# 更新履歴
2021.2.8 初回投稿# 環境
– macOS Big Sur(11.2)
– Flutter (Channel beta, 1.26.0-17.2.pre, on macOS 11.2 20D64 darwin-x64,
locale ja-JP)
– Android toolchain – develop for Android devices (Android SDK version 30.0.3)
– Xcode – develop for iOS and macOS
– Chrome – develop for the web
– Android Studio (version 4.1)
– VS Code (version 1.53.0)# 準備
– FlutterのChannelをbetaにしておくこと
– GoogleMa
【Flutter】エラー対応 assets_audio_player
#エラー内容
下記Gitでイシューに上がっていますが、根本的な解決策はまだ挙がってなさそうです。
https://github.com/florent37/Flutter-AssetsAudioPlayer/issues/399“`
e: /Users/yo4hi6o/flutter/.pub-cache/hosted/pub.dartlang.org/assets_audio_player-2.0.13+1/android/src/main/kotlin/com/github/florent37/assets_audio_player/Player.kt: (542, 5): ‘handleMessage’ overrides nothing
e: /Users/yo4hi6o/flutter/.pub-cache/hosted/pub.dartlang.org/assets_audio_player-2.0.13+1/android/src/main/kotlin/com/github/florent37/assets_audio_player/Player.kt: (54
[Android]Realmってなんか名前かっこいいから、良く分からないけども使ってみる
#Realmってかっこ良さそう!なんそれ?編
普通、クラスで宣言された文字や数値はアプリ(画面)を開く度に初期化されます。
なので、アプリで特定のデータを保存しようと思ったら、データベースを使う必要があります。
データベースは、アプリを利用している時だけでなく、消した後も保存されるのです。そのデータベースの一種が、Realmというわけです。
ちなみに、今回使うRealmはローカルデータといってアプリ内でデータを保存することができるのですが、アプリ自体をアンインストールしてしまったら、保存されたデータを使うことはできないのでそこだけは注意です。
#Realm使っちゃう編
早速使ってみます。今回は、本当にシンプルに文字を保存して、それを取り出すだけのシンプルな実装でいきます。データベースと言っても、箱みたいなもんですね。それと、正確さに欠けている部分アリの自信があるので、優しく指摘してくれると幸いです。それと、Fragmentでの実装すまぬ。######使うための準備
“`gradle
//appの方ね
plugins {
id “kotlin-android”
WebViewにJavaScriptを注入してAndroid側に値を渡す
WebViewで表示されているHTMLの内容から、特定の値をAndroid側で取得します。
考え方としてはHTMLページ内にAndroidからJavaScriptを注入して、JavaScriptからAndroidのコードを実行することで値のやり取りをします。
まずメインとなるコードから。
“`kotlin
val webView: WebView = requireActivity().findViewById(R.id.web_view)
webView.webChromeClient = WebChromeClient()
webView.webViewClient = CustomWebViewClient()
webView.settings.javaScriptEnabled = true
webView.addJavascriptInterface(WebAppInterface(requireContext()), “Android”)
webView.loadUrl(url)
“`
– webChromeClientをセットしないとJavaScriptが実行で
jCenterで公開していたKotlinライブラリをMaven Centralで公開する
**[Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/)**
jCenterが閉鎖するってことなので、jCenterで公開していたKotlinのライブラリをMaven Centralに登録することにしました。やり方はわかりやすく解説している記事がたくさんありますが、Kotlin特有のところで詰まったりしたので自分なりにまとめてみようかと思います。
やり方はいくつかあるらしいのですが、Sonatype経由で登録するのが簡単らしいです。
作業に当たり以下の記事を参考にさせていただきました。 :pray:
– [Maven Central Repository への公開手順(Gradle版)](https://blog1.mammb.com/entry/2020/02/19/090000)
ほとんど同じ内容なのとこっちの方が丁寧
GitHub ActionsでAABファイル生成のCDを構築する方法
## はじめに
GitHub Actionsを使い、AABファイルを生成するCDを構築します。
## 本記事で書かないこと
– GitHub Actionsの概要や基本的な操作方法
[私が以前書いた記事](https://qiita.com/uhooi/items/29664ecf0254eb637951) が参考になると思います## 事前準備: ローカルでAABファイルを生成できるようにする
私が以前書いた記事を参考にして、ローカルでAABファイルを生成できるようにします。
https://qiita.com/uhooi/items/3bee37d763642c703738## キーストアのエンコード
2021/02/06現在、GitHubではファイルを安全に管理する方法がないため、機密ファイルは文字列に変換する必要があります。
キーストアをBase64形式でエンコードします。
ローカルで以下のコマンドを実行します。“`shell-session
$ base64 ./app/release.keystore
“`標準出力された内容から __改行を
jCenterが閉鎖されるらしいので一旦Github Pagesを野良mavenリポジトリにして待避した話
**[Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/)**
jCenterが閉鎖するってことでもう大変ですね。自分が使っているOSSの作者さんは期日までに移行してくれるのかとか戦々恐々としているところでしょう。
一方、ライブラリを公開している人間としては、早く移行先探さなきゃ!そもそも今まで公開してたのどうするよ!という状態じゃないでしょうか。というか私だ。旧バージョンは移行できない可能性があるし、そもそも新バージョンも期日までに全部対応しきれるのか?状態なので、一旦bintrayに全くアクセスできなくなっても大丈夫なようにお手軽にできるバックアッププランを実行しておくことにしました。
# 今までアップロードしたファイル群を全部落とす
bitrayにアップロードした過去のファイル群を一旦手元に落とします。
といっても一括
Tokenを用いて、AndroidStudioとGitHubを連携させる
AndroidStudioとGitHubを連携させようとした際、GitHubのユーザーIDとパスワードを用いた連携が出来なかったため、代わりとして行った処置をメモしておきます。
なお、Gitがインストール済みであり、GitHubのアカウントを所持していることが前提となります。
##AndroidStudioでログインフォームを開く
上のメニューから、
VCS → Import into Version Control → Share Project on GitHub
と進んでいきます。
![Qi1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1086769/8b9df131-5114-5470-d7b5-bb32c036735c.png)すると下のような画面が現れ、GitHubのIDとパスワードを求められます。![Qi2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1086769/bfa220fc-5822-a
M1 Mac Book AirにしたらAndroidStudioのビルド時間が37%になった話
## 概要
Qiitaで**「M1 Mac AndroidStudio」**と検索したところ、意外にもM1 Macでのビルド速度比較結果に関する記事がなかったので、実際に**M1 Mac Book Air**で**Gradle**を**AppleSilicon対応**させた手順の忘備録も兼ねて、**ビルド時間を比較**しました。
当然プロジェクトの内容によって実際のビルド時間は差が出ると思いますが、一つの参考になれば幸いです。
## 使用した各種バージョン
### Android Studio – Android Studio Arctic Fox 2020.3.1 Canary 4
https://developer.android.com/studio/archive よりDL
これ自体はIntel版。Gradle7を使うためにInteliJのAndroidパッケージが4.3以上必要なので利用
![スクリーンショット 2021-02-06 14.47.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.
Kotlin 生体認証(指紋認証、顔認証)
こんにちはmessiです。
Androidエンジニアしてたり、Flutter触ったりしてます。
Twitterはこちら -> https://twitter.com/175Atsu175今回はAndroidの生体認証の実装について紹介します。
## はじめに
AndroidXの生体認証コンポネントBiometricPromptが正式リリースされた。
サポート対象はAndroid6.0以上
これまで使われていたFingerPrintManagerは非推奨になりました。
指紋認証を事前に端末登録しておかないと動作しません。(端末の設定でアプリに指紋認証の使用の許可してないといけないこともあるそうです。)今回顔認証も試してみたかったのですが、自分の所有端末が顔認証非対応だったので試すことができなかったのですが、このコードで顔認証も出来るようなので試してみてください。
pixel4なら出来るっぽいです。
[引用]
https://stackoverflow.com/questions/63629458/face-authentication-using-androidx-biomet
[Android]RoomでInsert時にOnConflictStrategy.REPLACEを使う際の注意点
Android のプロジェクトで Room を使用してハマったことがあったので共有したいと思います。
結論から言うと、`ForeignKey` で指定される Entity があった場合、その Entity を Insert する際に `OnConflictStrategy.REPLACE` を使用してはいけません。
## 理由
Dao で `@Insert` アノテーションに `OnConflictStrategy.REPLACE` を指定すると、SQL 的には `INSERT OR REPLACE` 文が実行されます。
SQLite の仕様では `INSERT OR REPLACE` 文では既存の行を削除した上で、行を追加、更新するようになっています。
参考: https://sqlite.org/lang_conflict.html
>When a UNIQUE or PRIMARY KEY constraint violation occurs, the REPLACE algorithm deletes pre-existing rows that are caus
Firebaseに保存した際に、そのTimestampを取得する方法(Android)
使用環境
ソフト Android Studio
言語 JavaFirebaseにデーターを保存するときに、タイムスタンプを取得する方法について解説します。
ちなみに、タイムスタンプというのは画像でいうと以下の-MSから始まるもののことで、保存先が重複しないようにFirebaseが発行しているサーバー時間のようなものです。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315874/4ea79df0-8da7-6cfb-79b5-538fbbaa1955.png)タイムスタンプは、保存時に.push()を入れることによって、発行できます。
そのため、
“`refMag.push().setValue(“保存する内容”)
“`
ではなく
“`refMag.child(“タイムスタンプに変わる文字列”).setValue(post)
“`
にすることで、タイムスタンプの部分を好きな文字列に変えることが出来ます。ただし、タイムスタンプは重複を防ぐためには欠かせないものなので、.
ConstraintLayoutとwrap_contentを両立させる
# 制限をつけて左右に寄せたい
左右の場合はlayout_constraintLeft_~とlayout_constraintRight_~で制限をつけた上でlayout_constrainedHorizontal_biasを設定します。0.0~1.0の間でbiasを設定でき、0.0だと左、1.0だと右に寄ります。![スクリーンショット 2021-02-05 0.44.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133311/70ced2c0-7a9f-46bb-88e3-d59d869cd35b.png)
“`xml
【Android】特定のリンクをアプリ内で開く(WebView)
## はじめに
アプリ内でWebページ(Qiita)を開き、
なおかつ、自分の記事をタップしたときはアプリ内でページ遷移、
それ以外(Homeボタン)をタップしたときはデフォルトブラウザを起動して開く実装をしてみた。|アプリ内(WebView)で開いたとき|デフォルトブラウザ(Chrome)で開いたとき|
| —- | —- |
|![webView.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/b88f7523-5c1b-efb6-c655-d9e9bc3d230b.gif)|![default.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/713cd96f-3eb5-8f61-ca06-1bb4f72e035d.gif)|## WebViewについて
WebViewクラスは、Viewクラスの拡張。
WebViewを使うことで自分のアプリ内でウェブページまたは他アプリを開くこ
Android : Firebase Authenticationを用いたGoogleアカウント認証をKotlinで実装
#この記事で紹介すること
FirebaseのAuthenticationを用いてGoogleログイン/ユーザー登録を実現する方法を紹介します。プロジェクト(アプリ)をFirebaseに登録していることが前提です。
まだできていない方は[公式ドキュメント|AndroidプロジェクトにFirebaseを追加する](https://firebase.google.com/docs/android/setup?hl=ja)を参考に、まずはアプリの登録から行ってください。またこの記事は私がアプリを作る中でドキュメントを参考にしてコードを書き、ドキュメント通りにいかなかった部分もあったため、あえて記事としてまとめています。参考にした公式ドキュメントは以下です。[Android で Firebase Authentication を使ってみる](https://firebase.google.com/docs/auth/android/start?hl=ja)
#Firebase Authenticationを使ってGoogleアカウントでログイン/ユーザー登録ができるようにしよう!
ま
Androidアプリを開発した話
##概要
去年の夏頃、このようなAndroidアプリを開発しました。
>○ MessengerApp TELL
>[アプリケーション紹介HP](https://lit-oasis-15875.herokuapp.com/)
>[Github](https://github.com/matsuokanao/MessengerApp)ちなみにアプリケーション紹介HPも自分で作成してみました。
【Android】adbのデモモードを使って、ステータスバーをキレイにする方法Android端末では、ステータスバーからアプリの通知などが一目で確認でき、便利ですよね。
ただ、画面のスクリーンショットを見た際に、ステータスバーがゴチャゴチャしていると、微妙な気持ちになることもあります。
例えばこんなスクリーンショットがあった場合…
↑ 「なんかいっぱい通知来ているし、充電33%だからそろそろ充電したほうが良さそう」など…そこでこの記事では、adbのデモモードを使って、ステータスバーをキレイにする方法をご紹介したいと思います。
[Demo Mode for the Android System UI](https://android.googlesource.com/platform/frameworks/base/+/master/packages/SystemUI/docs/demo_mode
[UE4] Androidパッケージ作成失敗時に “Run with –stacktrace option to get the stack trace…” というエラーログが出力された時にすること
# はじめに
UE4でAndroidパッケージを作成すると、以下のようなエラーログが出力されてパッケージングに失敗することがあります。“`cpp
UATHelper: Packaging (Android (ASTC)): FAILURE: Build failed with an exception.
UATHelper: Packaging (Android (ASTC)):
UATHelper: Packaging (Android (ASTC)): * What went wrong:
UATHelper: Packaging (Android (ASTC)): Execution failed for task ‘:app:linkDebugManifestForAssetPacks’.
UATHelper: Packaging (Android (ASTC)): > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFa