- 0.1. KotlinでAndroidアプリ開発時、ローカルのDBに保存処理を行った際に起こったエラーと対策
- 0.2. Androidライブラリ公開
- 0.3. 【Android】Room DaoクラスのアノテーションとOnConflictStrategyまとめ
- 0.4. KotlinでScopeクラスを作ってその中だけで呼べる拡張関数を定義する
- 0.5. 【Android】SearchView 使ってみた
- 0.6. #35 Kotlin Koans Properties/Delegates how it works 解説
- 0.7. Apple Developer と Google Play の公式テスターについて
- 0.8. Foreground Service利用時の注意点
- 0.9. [Flutter] [Navigator] 次画面へ複数の値を渡す方法
- 1. 渡したい値が1つの場合
- 2. 渡したい値が複数ある場合
- 2.1. Android-Kotlin入門記事まとめ
- 2.2. Android記事まとめ5
- 2.3. Android記事まとめ4
- 2.4. Android記事まとめ3
- 2.5. Android記事まとめ2
- 2.6. Android記事まとめ
- 2.7. Jetpack Compose で縦のDividerを引く
- 2.8. Vue3ベースのIonic-Vue(β)で実機デバッグするまで。
- 2.9. Firebase Cloud Messagingでトークンの取得方法が変わっていた
- 2.10. #34 Kotlin Koans Properties/Delegates examples 解説
- 2.11. Android Studio で実行しようとするとCould not start AVD
KotlinでAndroidアプリ開発時、ローカルのDBに保存処理を行った際に起こったエラーと対策
## はじめに
Kotlinで、バーコード読み取り機能を使用したAndroidアプリ開発時、
読み込んだ値をローカルのDBに保存する際に起こったエラーと、解決方法を共有したいと思います。## エラー内容
`Cannot access database on the main thread since it may potentially lock the UI for a long period of time.`UIスレッドを長時間ロックしてしまう可能性があるため、メインスレッド上でDBへのアクセスはできないようです。
## 解決方法
### 依存の追加
まずは、build.gradle に下記を追加します。“`app/build.gradle
dependencies {
implementation ‘io.reactivex.rxjava2:rxjava:2.1.12’
implementation ‘io.reactivex.rxjava2:rxandroid:2.0.2’
implementation ‘io.reactivex
Androidライブラリ公開
2020-05に別の場所で書いた社内用メモの転記です。
変わったところがあれば修正していきます。# Androidライブラリの公開手順
1. GitHubにレポジトリ作成 → Push
[SankoSC GitHub](https://github.com/sankosc?tab=repositories)
1. Bintrayにレポジトリを作る
[Sankosc Bintray](https://bintray.com/sankosc)
1. ライブラリのbuild.gradleにpublish情報を記述“`xml:build.gradle
publish {
userOrg = ‘sankosc’
groupId = ‘jp.co.sankosc’
artifactId = ‘webapi-client’
publishVersion = ‘1.0.0’
desc = ‘This is a Web API client library for android.
【Android】Room DaoクラスのアノテーションとOnConflictStrategyまとめ
[Room]:https://developer.android.com/jetpack/androidx/releases/room?hl=ja
[Room | Android デベロッパー]:https://developer.android.com/jetpack/androidx/releases/room?hl=ja[Room を使用してローカル データベースにデータを保存する | Android デベロッパー]:https://developer.android.com/training/data-storage/room?hl=ja
[Room DAO を使用してデータにアクセスする | Android デベロッパー]:https://developer.android.com/training/data-storage/room/accessing-data#convenience-insert
[OnConflictStrategy | Android デベロッパー]:https://developer.android.com/referenc
KotlinでScopeクラスを作ってその中だけで呼べる拡張関数を定義する
今日ご紹介させていただくのは、Kotlinの拡張関数を特定の条件下のみで使える様にする。
といった実装の話です。通常の拡張関数ではできないことが、特定の条件下ではできるようになることが今回のポイントになります。
これによって、ちょっと面倒な処理で、同じコードの繰り返しが多い場合に非常に楽になると思います。
ただし便利な反面設計が重要になります。より発展的なことをしようとすると隠蔽された実装のなかで、特に状態管理やAPI設計が非常に重要になるので、諸刃の剣になると言うことを十分に理解した上で適所のみに使うことが重要です。ではさっそく段階を踏んで紹介していきましょう。
## レベル1
まず最初は特定のクラス内でのみ使える拡張関数からです。
“`kotlin
class SquareScope {
fun Int.square(): Int = this * this
}
“`
上記のように`SquareScope`クラスの中に拡張関数を定義した場合、SquareScopeのインスタンスを`this`で参照できる場合のみ拡張関数の`square`を利用することができ
【Android】SearchView 使ってみた
#【Android】SearchView 使ってみた
## SearchViewとは
文字を入力してもらうような検索レイアウトを作るのって、面倒だなと思ってたら、もともと用意されているレイアウトで、SearchViewというものがありました。[SearchViewについての公式ドキュメント](https://developer.android.com/reference/androidx/appcompat/widget/SearchView)
## 使い方
使い方はとても簡単です。* レイアウト
“` searchView.xml
#35 Kotlin Koans Properties/Delegates how it works 解説
#1 はじめに
Kotlin公式リファレンスのKotlin Koans Properties/Delegates how it worksの解説記事です。
Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。
ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**一度各自で挑戦してから、お目通し頂ければと思います:fist:
#2 Properties/Delegates how it works の解説
[Kotlin Koans Properties/Delegates how it works ](https://play.kotlinlang.org/koans/Properties/Delegates%20how%20it%20works/Task.kt)の解説です。
随時本サイトの内容を引用させていただきます。本文とコードを見てみましょう。
> You may declare your own [delegates](https://kotlinlang.org/docs/re
Apple Developer と Google Play の公式テスターについて
## 概要
久々に調べて毎回ググるのが面倒だからここにまとめる。
iOS/Androidのアプリ開発で、公式のテスター登録について次の内容となる。※一部公式の内容を抜粋しているため、アップデートがあった際に詳細が異なる可能性があり、この記事をそのまま鵜呑みにせず必ず公式ページを確認するようにお願いします。
## [TestFlight](https://developer.apple.com/jp/testflight/)
### 内部テスター
* チームでAccount Holder、Admin、App Manager、Developer、Marketingのいずれかの役割を担うメンバーを**最大100人**まで追加可能。### 外部テスター
* Eメールアドレスを使用するか、任意のユーザーに対してAppのテストに参
Foreground Service利用時の注意点
Android開発を始めて間もないため、ちょっとしたことで躓いてしまうのですが、ForegroundServiceでハマってしまいました。
## API Level 28 以上の場合の対応
Manifestファイルに追記が必要でした。これがなかったため、Service開始時にアプリが落ちていました。“`Kotlin
“`## 参考
[Foreground Serviceの基本](https://qiita.com/naoi/items/03e76d10948fe0d45597)
[Android 9 Pie 時代のフォアグラウンドサービス](https://rakuishi.com/archives/android-9-pie-foreground/)
[Flutter] [Navigator] 次画面へ複数の値を渡す方法
Navigatorによる画面遷移時に次画面へ値を渡す方法です。
SQLiteやSharedPreferencesで保持する必要はなく、ライトに値を渡したいときにご参考になればと思います。渡したい値が1つの場合
変数 hogeを次画面に渡す例
第3引数のargumentsに変数 hoge をセットします。
遷移元
“`dart
String hoge = ‘hoge’;
Navigator.pushReplacementNamed(
context,
‘/next_path’,
arguments: hoge
);
“`遷移先
“`dart
final String hoge = ModalRoute.of(context).settings.arguments;
“`渡したい値が複数ある場合
変数 hogeId, fuga を次画面に渡す例
渡したい値をまとめたクラスを作成し、そのオブジェクトを渡します。
名前はなんでも良いので、ViewAToBArguments というクラス名で以下のように作成すると
Android-Kotlin入門記事まとめ
【超初心者向け】Android入門 Hello World編
https://qiita.com/dosukoi_android/items/0d70194a97b625206f40【超初心者向け】Android入門 TextView編
https://qiita.com/dosukoi_android/items/d72c2f6d668ef04206ac【超初心者向け】Android入門 Button編
https://qiita.com/dosukoi_android/items/823e7c293016db1deec3【超初心者向け】Android入門 EditText編
https://qiita.com/dosukoi_android/items/96868f29c061dd46950a【超初心者向け】Android入門 LinearLayout編
https://qiita.com/dosukoi_android/items/197d2704e7ec44cf884b【超初心者向け】Android入門 RecyclerView編
https://qiita
Android記事まとめ5
Androidの動画周りの技術
https://qiita.com/mechamogera/items/d243f52561e928106673AndroidStudioの設定について
https://qiita.com/bowyer-app/items/76e86c7303de8784a8bdAndroidのアップデートn仕組みが変わった
https://pc.watch.impress.co.jp/docs/news/1152404.htmlなぜAndroidエンジニアは少ないのか
https://qiita.com/dosukoi_android/items/19b476dd3823225d4b1dアプリエンジニアからみたピザ屋アプリのUIUX
https://qiita.com/dosukoi_android/items/b793194497f2668a6e8bKotlinでElmの便利関数実装してみた
https://qiita.com/dosukoi_android/items/82477dc6d68c84aa210c
Android記事まとめ4
設定変更画面を作成する公式テンプレート
https://qiita.com/Setz/items/180a41af8ee8cc678ac5
https://maku77.github.io/android/fw/preference-fw.html暗号化されたローカル保存ファイルを安全に管理できる
https://qiita.com/rmorimot/items/ba9e79825bccaa9c0abeKotlinでのスコープ操作
状態管理・オブジェクト指向ならStateパターンを使おう
ModelでのAPI通信などはActivityよりExecuterで監視する
https://qiita.com/teradonburi/items/f2aac85e53f8fa5c79bc
https://qiita.com/KeithYokoma/items/4e6
Android記事まとめ3
DataBindingを使うとレイアウト上で他のViewを渡して操作することができる
https://medium.com/@yuzumone/android-databinding-value-of-other-view-75a469f2d31fhttps://github.com/arsaga-partners/midascrane-android/blob/feb989f204ac243771c8d1a38db08b1950fb2180/app/src/main/java/jp/midasent/liftle/extensions/view.kt#L25
https://github.com/arsaga-partners/midascrane-android/blob/feb989f204ac243771c8d1a38db08b1950fb2180/app/src/main/res_screen/top/layout/fragment_category.xml#L44
アプリ内課金のライブラリが新しくなっていた
http://hatesatekite.hatenablo
Android記事まとめ2
Kotlin1.4.0
ラムダのスマートキャストやCorounineDebuggerと引数あり関数の
参照渡しが良さそう
https://qiita.com/sudo5in5k/items/e9207d39fbbfdfe827b2同じチームにいて最高に心強かったエンジニアの特徴まとめ
https://qiita.com/jofuku/items/6420097fd5ff4c44c24dKotlinのListとSequenceって何が違うの?
https://qiita.com/ktzw/items/9aa251a44c11900c8b5fAndroid開発のコードレビュー
botを乗り換えた話
Navigation Componentでのshared element遷移
[Android] Navigation Architecture Component で、Shared Element Transition を使用した遷移方法
メンバーに恨まれそうな3つのコードレビュー施策を徹底したら
逆にメンバーが爆速で成長した話
https://q
Android記事まとめ
Jetpack Composeの画面遷移
https://qiita.com/Nabe1216/items/f329e981f0da76c1d221個人開発・スタートアップで採用すべき最強のアーキテクチャを考えた
https://zenn.dev/yuno_miyako/articles/19201dcb19ff6b6ffc59MvRx(マーベリックス)
https://medium.com/airbnb-engineering/introducing-mvrx-android-on-autopilot-552bca86bd0aReactNativeをやめる話とKotlin Multiplatform
https://www.wantedly.com/companies/wantedly/post_articles/282562DataBingingを使っていてexecutePendingBindingを呼び出さないとどうなるか
https://android.gcreate.jp/358/JetPackComposeの参考資料リスト
https://qiita.c
Jetpack Compose で縦のDividerを引く
[Divider](https://developer.android.com/reference/kotlin/androidx/compose/material/package-summary#divider) の Composable は存在しますが横線のみで、縦線はなかったので実装してみました。
※Compose 1.0.0-alpha06 時点の話であり、破壊的な変更が入ることがあり得ます。縦線の Composable を用意します。
Modifier に `fillMaxHeight` を指定するのを忘れずに。“`kotlin
@Composable
fun HorizontalDivider(
modifier: Modifier = Modifier
) {
Spacer(
modifier = modifier
.preferredWidth(1.dp)
.fillMaxHeight()
.background(color = MaterialTheme.
Vue3ベースのIonic-Vue(β)で実機デバッグするまで。
Vue3が発表されてIonic-Vueがβで公開されて少し経ったのでどんなもんか触ってみました。
諸事情あってWindowsで開発環境を構築していますがMacでもほぼ差異なく動きましたionic/cliをglobalにinstallします。
“`shell
npm install -g @ionic/cli@testing
“`my-appはプロジェクト名なので任意に
“`shell
ionic start my-app tabs –type vue –tag vue-beta
“`1分程待つと
“`shell
Your Ionic app is ready! Follow these next steps:– Go to your new project: cd ./vocbook
– Run ionic serve within the app directory to see your app in the browser
– Run ionic capacitor add to add a native iOS or Android proj
Firebase Cloud Messagingでトークンの取得方法が変わっていた
タイトルのとおり。
[com.google.firebase:firebase-messaging.20.3.0](https://firebase.google.com/support/release-notes/android#messaging_v20-3-0) からは `FirebaseInstanceId` クラスの `getInstanceId` 関数からではなく、`FirebaseMessaging` クラスの `getToken` 関数から取得するようになったようだ。“`kotlin
// 1. リスナーで非同期的に取得するやり方
FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
if (!task.isSuccessful) {
return@OnCompleteListener
}val token = task.result
}// 2. kotlinx-coroutines-play-servicesを使ってコルーチン内
#34 Kotlin Koans Properties/Delegates examples 解説
#1 はじめに
Kotlin公式リファレンスのKotlin Koans Properties/Delegates examplesの解説記事です。
Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。
ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**一度各自で挑戦してから、お目通し頂ければと思います:fist:
#2 Delegated Properties/Lazy
**[Delegated Properties](https://kotlinlang.org/docs/reference/delegated-properties.html)**
`val/var: by `で表現される、プロパティの参照方法です。 以下でリファレンスの例を見てみましょう。
“`kotlin:Delegates_example
import kotlin.reflect.KPropertyclass Example {
v
Android Studio で実行しようとするとCould not start AVD
Android Studio でプログラムを書いていざ実行、デバッグ実行しようとしたら、次のエラーが出ました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184382/b5b79c39-ad17-2bee-c0f4-fc11b6d77712.png)AVD Managerを開くと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184382/9b46a567-c7fa-1f2c-ab0f-270a2e9a58d5.png)`VT-x is disabled in BIOS.` と表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184382/5d223415-f351-6ba5-1d6b-ed6daa4dd2ce.png)一旦、OSを終了してBIOS起動し、バー