- 1. Login Activity : Android Studioのテンプレートプロジェクト紹介
- 2. AndroidのButtonのTextのスタイルを設定する方法
- 3. Androidのリセマラを防ぐ
- 4. [導入]Kotlinをインストール
- 5. 【Android】Fragmentで安全にBindingObjectを参照する
- 6. 【ゲームアプリとベジェ曲線:その②】ストローク(線)による表現
- 7. FlutterのAndroidアプリを開発するときの備忘録
- 8. iOSとAndroidのアプリ画面を比較できるサイト「consim.」が便利すぎる
- 9. なぜKotlinでsynchronized suspendは機能しないのか
- 10. Android Jetpack Compose を試す
- 11. Instrumented Unit Test用resouceの追加(UnitTest探求記5)
- 12. Instrumented Unit Test内部でのActivityの起動(UnitTest探求記4)
- 13. MVVM、Dagger、Coroutine、Retrofit、Roomを備えた5つの素晴らしいオープンソースAndroid Kotlinアプリ!
- 14. 【android】【kotlin】WebViewでJavaScriptを許可する
- 15. Unity×ARcoreで空間上に絵を書く
- 16. Roomで動的に生成したクエリ(SQL文)を扱う方法
- 17. 【Android】定期購入の一時停止、再開がすべてのアプリで有効になるらしい
- 18. ToolKitを使って10分以内にGMSアプリをG+H対応に変換できました
- 19. HUAWEI ML Kitを使用して、ID用写真のDIYアプレットを作成する方法
- 20. 【Android , Firebase】Firestoreでリアルタイムなメッセージの送受信を実装してみた
Login Activity : Android Studioのテンプレートプロジェクト紹介
#はじめに
Android開発の勉強を兼ねて記事を執筆しておりますが,素人に毛が生えた程度の知識で解説している為,説明間違いが含まれている可能性があります。
お気づきの点がありましたら,是非コメントお願いいたします。
また,テンプレートのアップデートにより,機能やコードが記事執筆時点と異なる場合があります。#本記事の目的
Androidプロジェクトのテンプレートの一つである「Login Activity」について,機能や構成を説明します。#テンプレートの概要([公式](https://developer.android.com/studio/projects/templates?hl=ja)より引用)
>このテンプレートでは、標準的なログイン画面を作成します。ユーザー インターフェースには、メールアドレスとパスワードの各フィールドとログインボタンがあります。一般に、アプリ モジュール テンプレートではなくアクティビティ テンプレートとして使用されます。
>このテンプレートの内容は次のとおりです。
>- ユーザー インターフェースのメインスレッドとは別にネットワーク操作
AndroidのButtonのTextのスタイルを設定する方法
# 概要
AndroidのButton内のTextのスタイルを設定する方法をまとめる。
# 注意点
AndroidStudioではimport文の追加が自動で行われなかった。
以下のimport文を自分で以下を追記する必要がある。“`
import android.graphics.Typeface;
“`# スタイルの設定方法
“`
import android.graphics.Typeface;Button btn = (Button) findViewById(R.id.button);
// テキストをNormalに変更
btn.setTypeface(null, Typeface.DEFAULT);// テキストをBoldに変更
btn.setTypeface(null, Typeface.DEFAULT_BOLD);// テキストをBold + Italicに変更
btn.setTypeface(null, Typeface.DEFAULT_BOLD_ITALIC);// テキストをItalicに変更
btn.setTypeface
Androidのリセマラを防ぐ
# 要約
MediaDrmを使ってリセマラを防ぎます
# 概要
Androidでリセマラ(リセットマラソン)を防ぐために、一意のIDを取得します。
ここでいうリセマラとは、アプリをアンインストール/インストールを繰り返して、初回限定の利益を何度も受ける行為を指します。## 公式のドキュメント
リセマラのように何度もアプリを再インストールしてIDを作成することをシビル攻撃というらしいです。
そして、公式にも[不正行為防止: 無料コンテンツ制限を適用し、シビル攻撃を検知する](https://developer.android.com/training/articles/user-data-ids?hl=ja#anti-fraud-free-content-limits)というドキュメントがあります。> GUID やインスタンス ID を使用すると、ユーザーがコンテンツ上限の適用を回避するにはアプリを再インストールしなければならなくなるため、ほとんどのユーザーに思いとどまらせることができます。
しかし、これで思いとどまらないのがリセマラという行為なので、もう一つある
>
[導入]Kotlinをインストール
KotlinはAndroid開発で人気ですね。
以下、導入方法です。
・https://kotlinlang.org/
にアクセス!Learn->Getting started in Kotlin->Working with the Command Line Compiler
SDKMAN!のとこの
`curl -s https://get.sdkman.io | bash`をコピーして
ターミナルで叩くとアスキーアートがでてくるのでダウンロード完了まで少し待ちましょ。`Please open a new terminal, or run the following in the existing one:`
`source “/home/kaneko381/.sdkman/bin/sdkman-init.sh”`
とあるので
`source “/home/kaneko381/.sdkman/bin/sdkman-init.sh”`
を叩きましょ。次に、
`sdk install kotlin`
叩きましょ。インストールに5分くらいかかりました。結構かかりま
【Android】Fragmentで安全にBindingObjectを参照する
![Last Modified-2020/08/27](https://img.shields.io/badge/Last Modified-2020/08/27-brightgreen)
※ @zizi4n5 さんの[こちら](https://qiita.com/zizi4n5/items/c5f0013236fd055c3e02)の記事を参考にラベルを付けてみました:pray:どうもこんにちは、いつも便利なDelegateでハッピーな開発をしたい うえむーです。
親のFragmentのコンストラクタにLayoutリソースを引数としてとれるようになって、viewの生成を自前でやる必要がなくなりましたね!
しかし、onCreateViewをoverrideしなくてよくなったのは良くも悪くも何かしらの影響があるというもの。
例えばこのような課題がありました…> 今までonCreateViewで生成してFragmentにキャッシュしていたbindingObjectを、既存のコードを極力変更せずにどうやって取得しよう…:thinking:
→ Delegateで取得でき
【ゲームアプリとベジェ曲線:その②】ストローク(線)による表現
## はじめに
このシリーズで模索するのは、**iOS**/**Android** ゲームアプリ制作におけるベジェ曲線の可能性です。
第二回目は、ストローク(線)の処理結果を利用した表現について書かせていただきます。動作サンプルが **GitHub** にありますので、興味のある方はご覧くださいませ。
[**https://github.com/hakumai-iida/BezierSample**](https://github.com/hakumai-iida/BezierSample)
[![title_2nd](https://user-images.githubusercontent.com/13220051/91370162-9434d080-e848-11ea-918e-98d25b2d63b6.png)](https://github.com/hakumai-iida/BezierSample)前回:[【ゲームアプリとベジェ曲線:その①】環境準備とアンカーポイント(点)による表現](https://qiita.com/hakumai-iida/items/5
FlutterのAndroidアプリを開発するときの備忘録
Androidアプリを開発したくて、Flutterを勉強中です。
VSCodeを使って開発しているのですが、
毎回、ビルドして、実機にインストールするときの作業手順を忘れてしまうので、
自分向けの備忘録としてまとめます。# ビルド
“`
flutter build apk –split-per-abi
“`# 実機インストール
“`
adb -d install -r build/app/outputs/apk/release/app-arm64-v8a-release.apk
“`
iOSとAndroidのアプリ画面を比較できるサイト「consim.」が便利すぎる
# はじめに
**iOSとAndroidのアプリ画面を比較できるサイト「consim .」が便利すぎる!**と思ったので紹介します。
Apple MusicやTwitter、Slackといった有名なアプリの**iOSとAndroidのアプリ画面が大量に登録**されているので、観るだけでもUIの勉強になると思います。
(Apple Musicアプリだけで、**iOS 50枚**、**Android 48枚**のアプリ画面が登録されていました。)また、**[iOSとAndroidの画面を左右に分けて表示](#iosとandroidの画面を左右に分けて表示)**することもできるので、**iOS/Androidどちらかの画面だけ見てみたい**、といった方にも有用なサイトだと思います。
* https://consim.design
![スクリーンショット 2020-08-27 12.31.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63892/ffd72375-80b7-dac7-048a-cb
なぜKotlinでsynchronized suspendは機能しないのか
## なにが問題なのか
まずは以下のコードを見て頂きたいです。
“`kotlin
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlockingsuspend fun doSomething(i: Int) {
println(“#$i enter critical section.”)// do something critical
delay(1000)println(“#$i exit critical section.”)
}fun main() = runBlocking {
repeat(2) { i ->
launch(Dispatchers.Default) {
println(“#$i thread name: ${Thread.currentThrea
Android Jetpack Compose を試す
昨日 2020/08/26 に Jetpack Compose の 1.0.0-alpha がリリースされていました。
公式のサンプルアプリをサクッと試す方法を書いていきます。
最新の情報や公式チュートリアルは以下のページを参考にしてください。英語版で見たほうが情報の更新が早いのでおすすめです。
[Recent Release Notes \| Android Developers](https://developer.android.com/jetpack/androidx/versions/all-channel)
[Jetpack Compose \| Android Developers](https://developer.android.com/jetpack/compose)
## 準備
現時点(2020/08/27時点)では Android Studio の Canary build が必要です。
1. [Android Studio Preview \| Android Developers](https://developer.androi
Instrumented Unit Test用resouceの追加(UnitTest探求記5)
Unit Test 探求記は、unit test に関してまったりと実験しつつその過程を綴ってみるというものです。
# 今回のお題
Instrumented Unit Test 専用の resource を追加してみます。# 方法
普通に src/androidTest/res 以下に配置してあげれば OK です。# テスト対象
[View](https://developer.android.com/reference/kotlin/android/view/View) のコンストラクタ引数の [AttributeSet](https://developer.android.com/reference/kotlin/android/util/AttributeSet) から属性情報を取得するためのメソッドをテスト対象とします。[source](https://github.com/beyondseeker/of-commons/blob/d63265869d582c11799b73ae9068ef9a36cd8413/android/src/main/java/com/
Instrumented Unit Test内部でのActivityの起動(UnitTest探求記4)
Unit Test 探求記は、unit test に関してまったりと実験しつつその過程を綴ってみるというものです。
# 今回のお題
Instrumented Unit Test 内部にて Activity を起動してみます。# 依存関係の追加
## ◆ build.gradle.kts
`androidx.test.core.app.launchActivity` を利用するために `androidx.test:core-ktx` への依存を追加しています。
[source](https://github.com/beyondseeker/of-commons/blob/8ced68c123625f48e4e59d801f642d130c80ed93/android/build.gradle.kts)
“`kotlin:追加差分
dependencies {
// for androidx.test.core.app.launchActivity
androidTestImplementation(“androidx.test:core-ktx:1.3.
MVVM、Dagger、Coroutine、Retrofit、Roomを備えた5つの素晴らしいオープンソースAndroid Kotlinアプリ!
> 素晴らしいAndroid Kotlinアプリは、デベロッパーが特定のTech Stack / Librariesを備えたAndroidアプリを見つけるための出発点になることを目指しています。
## 1. Instant Weather ⛅
### GitHub URL:
https://github.com/mayokunthefirst/Instant-Weather### 約:
Instant Weatherは、OpenWeatherMap APIからデータをフェッチして、リアルタイムの気象情報を提供します。
また、さまざまな場所の気象条件を検索できるAlgolia Instant Searchサービスを利用しています。
### Tech Stack:
Dagger, Coroutines, Testing, Retrofit, Room, WorkManager, Paging, Data Binding, Navigation, Algolia Search, LiveData, ViewModel
![Screenshot_2020-06-23-
【android】【kotlin】WebViewでJavaScriptを許可する
AndroidでWebViewを使用してウェブページを表示したかったのですが
詰まったところがあったので備忘録として残しておきます。#WebViewでウェブページを表示させてみる。
WebViewでQiitaのTOPページを表示させています。
トレンドが選択されているのに記事が全くでてこない。んん?どうしてだろう:disappointed_relieved:と悩んでました。![screenshot-1598451884665.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329865/7b559e41-1790-51c8-9203-963465b99c7c.jpeg)
###JavaScriptが使用されているウェブページではWebViewのJavaScriptを有効にする必要がある
調べてみたところ、WebViewのデフォルトの設定だとJavaScriptが無効になっているため
JavaScriptの使用されている箇所が正常に表示できていないということでした:cold_sweat:
Unity×ARcoreで空間上に絵を書く
## はじめに
「Jsut a line」的な何かを作ったので、アウトプットをなぐり書きをする。
ARCoreが想像以上に凄かった。## 参考にしたサイト様
– 今回実装したのは[こちら](https://www.slideshare.net/ssuserc0d7fb/arcorefacetracking-136448820)
– [こちら](https://heartbeat.fritz.ai/the-subtle-art-of-making-lines-in-augmented-reality-using-arcore-and-unity3d-e26718dffa03)は英語ですが似たことをしています## 開発環境
– MacBookPro OS Catalina
– ※ Unity 2018
– ARCore SDK for Unity v1.18.0※ 2019ではDIINotFoundのエラーが出ました。現在も動作しないかもしれません。
## 実装
記事がとても親切なので詰まったところだけを補足。– ARcoreSessionについて“`Sess
Roomで動的に生成したクエリ(SQL文)を扱う方法
##はじめに
Roomを用いてDBを扱う際に、動的に生成したクエリを扱う必要があったため、その時に調べたことについてまとめてみました。
方法としては以下の2つ
* `@RawQuery`アノテーションを使用
* `RoomDatabase#query`メソッドを使用### 今回使用するデータベース
以下のようなメモを保存するテーブルを持つDBを例に説明していきます。
“`kotlin
@Entity
data class Memo(
@PrimaryKey(autoGenerate = true)
var id: Int,
val memo: String
)
“`また、事前に以下のデータを持っているものとします。
| id | memo |
| —- | —- |
| 1 | メモ1 |
| 2 | メモ2 |
| 3 | メモ3 |## `@RawQuery`アノテーションを使用する場合
まず、DAOインタフェース内に関数を定義しておきます。
“`kotlin
@Dao
inter
【Android】定期購入の一時停止、再開がすべてのアプリで有効になるらしい
最近になって、GooglePlayConsoleに以下のような注意文言が出るようになりました。
![一時停止.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106030/ba6fb172-ade7-948e-37c7-d5b6c8952bef.png)
どうやら、現状オフになっている機能である定期購入の一時停止・再登録(再購入)が、2020/11/01からすべてのアプリでONになってしまうとのことです。
それぞれどういったものか、どんな対応が必要になりそうかを簡単にまとめてみます。
半分が自分用のメモなので、読みづらかったらすみません:cold_sweat:##定期購入を一時停止する
ドキュメントには以下のように書いてあります。>ユーザーが定期購入を一時停止できるようにすることで、自発的な解約を防ぐことができます。一時停止機能を有効にすると、契約期間の間隔に応じて、ユーザーは 1 週間から 3 か月の間で定期購入を一時停止することを選択できます。一時停止機能を有効にすると、定期購入センターと
ToolKitを使って10分以内にGMSアプリをG+H対応に変換できました
#概要
この前の記事では、既存のAndroidアプリをHMS対応に変換する方法の概要を紹介しました。
この記事ではHuaweiが提供しているコード自動変換ツール(ToolKit)を使ってGMSアプリをGMS、HMS両方の端末で動作できるアプリに変換するやり方を紹介したいと思います。#ToolKitの紹介
まず、ToolKitの概要、原理を簡単に紹介したいと思います。
##ToolKitとは
ToolKitはAndroid Studioのプラグインツールであり、HMS開発の際のコーディングアシスタント、クラウドデバッグ、クラウドテスティングや自動コード変換などの機能があります。[ToolKitの自動コード変換ツール(GitHubリンク)](https://github.com/HMS-Core/hms-toolkit-convertor
)は、元のアプリの中で使用されたGMSのAPIを検出してG+H対応に自動変換するツールで、KotlinとJava両方に対応しています。今回は自動コード変換ツール(Convertor)を使用して、既存のGMSアプリをG+H対応に変換してみましたので
HUAWEI ML Kitを使用して、ID用写真のDIYアプレットを作成する方法
## 概要
以前の投稿で、HUAWEI ML Kitを使用したSmile-Cameraの作成方法を検討しました。今回は、HUAWEI ML Kitの新機能をご紹介します。学校や会社からIDカード用に特定の背景色で撮影された1インチか2インチのポートレート写真を用意するよう頼まれたことはないでしょうか?多くの場合、そのような用途に適した写真は手元にないでしょう。以前、私が通っていた学校が個人用入室カードを学生のために申請する必要がありました。ところが、フォトスタジオは閉店していました。そこで私は、ベッドのシーツを背景にして、自分のスマートフォンを使い写真を撮りました。その結果、担任の先生から叱られる羽目になりました。しかし、HUAWEI ML Kitを使用すれば、画像分割SDKをアプリに統合して、ID用写真のDIYアプレットを開発し、このような問題を解決することができます。
さらに良いことに、このSDKは完全に無償であり、Android端末で動作します。
## ID用写真のDIYアプレットの開発
### 1.準備
#### 1.1 Huawei Mavenリポジトリをプロジェクト
【Android , Firebase】Firestoreでリアルタイムなメッセージの送受信を実装してみた
#実装内容
Androidアプリにて,Firebaseを用いてリアルタイムなメッセージの送受信を実装
(Kotlinで実装しています。とりあえずの機能テストとして作っているので,細かい部分は適当です。)
イメージとしては,簡易なメールアプリと言ったような感じになります
Androidアプリ制作における基本的な説明は省略していますので,ご了承下さいアプリ開発に関して素人なので,動作は確認しておりますが,適切でない記述が多々あるかと思います。
気づいた場合にはコメントでのご指摘お願いいたします。#実装の流れ
1. UIを作る
2. ログイン機能を実装 (端末ID識別のため,Firebase Authenticationを使用)
3. メッセージ送信を実装(送信メッセージをFirestoreに格納)
4. メッセージ受信を実装(受信メッセージが更新されたタイミングでFirestoreから取得)#UIを作る
まずUIを作っていきます
特にデザインには拘らず必要最低限のパーツを配置していきますログイン画面と
メッセージ送受信画面の2つを作成します
画面1:ログイン画面
ー