- 1. Associate Android Developer スタディガイド翻訳①
- 2. [Delphi] 10.4 移行で TakePhotoFromLibraryAction を使ってると落ちる罠
- 3. [Android]apkへの署名
- 4. Firebase Crashlytics SDK 導入時にあった Gradle エラー
- 5. gradle “Error: Program type already present: “
- 6. AndroidのListViewに文字が表示されないとお怒りのあなたへ 続編(もう私は焦らない)==>SimpleAdapterの使い方
- 7. #7 Kotlin Koans Introduction/Nullable types 解説
- 8. KotlinでRealmを使って複数のデータベースを保存する
- 9. DatePickerをスピナー指定してもカレンダー部分が消えない(Tablet端末のみ?)
- 10. Android: Wifiで開発、デバッグのメモ
- 11. AndroidのListViewに文字が表示されないとお怒りのあなたへ(<ーー私のこと)==>ArrayAdapterの使い方
- 12. Androidアプリの申請。最初のリリース。「製品版としての公開を開始」ボタン押下でどうなる?
- 13. Termuxの意外と知らない日本語入力方法、特殊キータブの項目を増やす小技
- 14. 2020年10月版ActivityResultAPIを使ってみた。
- 15. 【Android】WebViewで、mailto:とかtel:を開けずに詰まった話
- 16. なぜAndroidエンジニアは少ないのか
- 17. Androidアプリアイコン設定
- 18. 【Qiita】Qiitaにスマホから新規投稿する方法
- 19. Android Studio 4.1に上げたらParameter ‘directory’ is not a directoryでBuildできない
- 20. Koinを使ってActivity/Fragment間で共有するViewModelをDIする
Associate Android Developer スタディガイド翻訳①
### Associate Android Developer certificate
Google公式のAndroid開発者認定試験があるの、ご存知ですか。
[Google Developers Certification : Associate Android Developer](https://developers.google.com/certification/associate-android-developer)あんまり普及してないのか、受験した方のブログなんかも少ないですね。
自分は太古の時代にAndroidアプリ開発をしていて、最近また何かやってみようとAndroid Studioをインストールしたものの何がなんだかわからず、とりあえず初心者として基本から勉強しようかと。
試験を受けるかはさておき、Androidの基礎を理解するのによさそうと思ってスタディガイドを読み始めたところです。
ただ漫然と読んでると目が滑るので、ノート取り代わりに翻訳してみることにしました。※そもそも試験が英語のみでオンライン面接もあるそうなので、英語が全くダメだと取得は難しいと思
[Delphi] 10.4 移行で TakePhotoFromLibraryAction を使ってると落ちる罠
# 10.4.1
みなさん!Delphi 10.4.1 は楽しんでますか!
Community Edition が出てないから楽しめないって!?
わかる~
早く出してくれることを祈りましょう。# TakePhotoFromLibraryAction
さて、僕は 10.4.1 を楽しんでいるのですが、**Android** で、ちょっとした問題にぶつかりました。
それは、[TakePhotoFromLibraryAction](http://docwiki.embarcadero.com/Libraries/Sydney/ja/FMX.MediaLibrary.Actions.TTakePhotoFromLibraryAction) を使っていると、10.4 に移行したときにアプリが落ちてしまうという問題です。
TakePhotoFromLibraryAction はデバイスの写真を取ってくるアクションですが、ここで写真を選択して、アプリに戻ると直後に落ちます。
## 対処
10.4.1 で新規に作ったアプリでは落ちないので 10.3.3 から持ってきたファイルで 10.
[Android]apkへの署名
# キーワード
キーワード|説明
—|—
アプリ署名鍵|apkファイルを端末にインストールする際に必要になる署名をするための鍵。
アップロード鍵|GooglePlayストアに公開する際に必要になる署名をするための鍵。
生成には署名情報(氏名/会社・部署/国・都道府県・市区町村)と、キーエイリアス、キーパスワードを設定する必要あり。
キーストア|アプリ署名鍵 または アップロード鍵を保管しているファイル(.jks or .keystore)。
何らかの鍵を内蔵したキーストアを生成する際にはストアパスワードが必要。# ざっくり説明
**apkファイルを端末にインストールしたい場合、アプリ署名鍵でビルド時にapkファイルにデジタル署名しておかないといけない。**
## debugビルドする場合
Android SDK ツールで生成された**デバッグ証明書で自動的にデジタル署名してくれる。**
「アプリ署名鍵とか作った覚えないのに・・・」という疑問への回答である。## releaseビルドする場合
一般には**アプリ署名鍵でのデジタル署名はGooglePlay
Firebase Crashlytics SDK 導入時にあった Gradle エラー
firebase crashlytics SDK の導入時に以下のようなエラーがありました。
“`
> Task :app:compileDebugKotlin FAILED
e: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:
class com.google.android.gms.location.LocationResult, unresolved supertypes: com.google.android.gms.internal.zzbeje: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:
“`
`com.google.android.gms.
gradle “Error: Program type already present: “
ライブラリのバージョン更新中に以下のようなエラーが出ました。
“`
Error: Program type already present: android.arch.lifecycle.ViewModel
“`# エラーについて
このエラーについて、[Android Studio ユーザーガイド : 重複クラスエラーを修正する](https://developer.android.com/studio/build/dependencies#duplicate_classes) に説明があります。
>
“`
Program type already present com.example.MyClass
“`
このエラーは通常、以下のいずれかの状況で発生します。
・バイナリ依存関係に含まれているライブラリが、直接的な依存関係としてアプリにも含まれている場合。たとえば、アプリでライブラリ A とライブラリ B に対する直接的な依存関係が宣言されているものの、すでにライブラリ A のバイナリにライブラリ B が含まれている場合などです。この問題を解決するには、ライブラ
AndroidのListViewに文字が表示されないとお怒りのあなたへ 続編(もう私は焦らない)==>SimpleAdapterの使い方
#1.きっかけ
斎藤新三著『Androidアプリ開発の教書(Kotlin版)初版第2刷』のp150の「2行のリストとSimpleAdapter]を写経していた際、ListViewに文字が表示されない(正確には、表示されているが、バックグラウンドと(ほぼ)同色で見えない)事象を発見したので報告します。この事象は先にご紹介した[ArrayAdapterの使い方](https://qiita.com/guijiu/items/bcdf296e7f792a618287)の場合と同様の原因と考えます。
下の写真は、エミュレータAPIレベル19で動作させた状態です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/fc613f3e-07c3-4670-74f6-d70484faf1e9.png)#2.対策
対策は本書のリスト7.3のSimpleAdapterの第1引数をapplicationContextからthisに変更します。“`kotlin
//リスト7.3抜粋
cl
#7 Kotlin Koans Introduction/Nullable types 解説
#1 はじめに
Kotlin公式リファレンスのKotlin Koans/Nullable typesの解説記事です。
Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。
ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**一度各自で挑戦してから、お目通し頂ければと思います:fist:
#2 null許容型・セーフコール(安全呼び出し)
Kotlinでは変数にnullを代入できない設定になっており、それによってNulllPointerExceptionという例外が発生するのを防いでいます。
どうしても変数にnullを代入したいときは、変数の型名の後ろに **?** を配置します。
nullが代入できる変数のことを**null許容型**の変数と言います。
ただ、null許容型の変数を扱うとNullPointerExceptionが発生してしまう可能性が出てきます。
そこでnull許容型の変数が関数もしくはプロパティを参照するときは、変数名の後に **?** を配置しないといけません。
この
KotlinでRealmを使って複数のデータベースを保存する
# はじめに
KotlinでRealmを使って複数のデータベースを保存する方法がわからずつらかったのでまとめておきます。
Realmの導入方法や使用方法などは書いていません、他にいい記事がたくさんあるのでそちらを参照してください。# 1.モデルクラスの作成
今回は例としてTeacherクラスとStudentクラスの2つを作ります。“`Kotlin:Teacher.kt
package com.example.sandbox01
import io.realm.RealmObjectopen class Teacher : RealmObject() {
var name: String = “”
var department: String = “”
}
“`“`Kotlin:Student.kt
package com.example.sandbox01
import io.realm.RealmObjectopen class Student : RealmObject() {
var name: String = “”
DatePickerをスピナー指定してもカレンダー部分が消えない(Tablet端末のみ?)
# 前提
– エミュレータおよび実機で検証 (API 28以降)
– htmlをWebViewで表示(Chrome for android)
– DatePickerをスピナーのみの表示にしたかった
– 結果的にスピナーのみの表示をあきらめています# input type=”date”の表示
### まずはデフォルト設定
#### Pixel 3a XLの場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548237/a6b54dde-da17-400d-d47b-36a3d2c69600.png)
#### Nexus 10 の場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548237/f4558d80-3cf4-dc2e-93a2-c8b7b372ebcb.png)
デフォルト表示だとスマートフォンでもタブレットでも同様の表示### 次にスピナーのみ表示する設定
Android: Wifiで開発、デバッグのメモ
– Android Studio 4.0.1
– Windows 10Androidアプリの開発にて、Android端末と別の機器をUSBで接続して使う仕様でしたので、WiFi経由で実行、デバッグ、ログ出力をしました。
手順だけのメモとなります。
詳細は、参考にさせて頂いたこちらの記事をご参照ください。
[AndroidアプリをWiFi経由でデバッグ](https://qiita.com/fukasawah/items/3f5b24819fac24c6686a)
[[Android]adbコマンドでunauthorizedが表示される](https://blog.integrityworks.co.jp/2015/10/18/android-adb-command-return-unauthorized/)## Android-PCをUSBケーブルで接続
## [PC] Android Studioは立ち上げておく## [Android]開発者向けオプションをON, USBデバッグをON
## [PC] AndroidのIPアドレスを調べる
“`powershe
AndroidのListViewに文字が表示されないとお怒りのあなたへ(<ーー私のこと)==>ArrayAdapterの使い方
#1.きっかけ
斎藤新三著『Androidアプリ開発の教書(Kotlin版)初版第2刷』のp109の「アクティビティ中のリストデータを生成する、ListViewSample2]を写経していた際、ListViewに文字が表示されない(正確には、表示されているが、バックグラウンドと(ほぼ)同色で見えない)事象を発見したので報告します。この事象はリストデータをstring.xmlに持つやり方では起こりませんでした。また確認した範囲では、エミュレータがAPIレベル24以上のときにはこの事象は起こりませんでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/97e20fa1-0d73-2bb0-521f-1e53a05001fc.png)どうでしょう?罫線と罫線の間にうっすらと文字が表示されているのが見えますか?(上の写真はAPIレベル19のもの)
次の写真はAPIレベル30のものです。本当ならこのように表示されるよう期待していました。
![image.png](htt
Androidアプリの申請。最初のリリース。「製品版としての公開を開始」ボタン押下でどうなる?
## 即公開 or 審査??
製品版をリリースする時に、必要な情報や、AppBundle or APKを用意すると最終的に以下の画面となります。「製品版としての公開を開始」ボタンを押すと、審査が入るのか、それとも即公開となるのかが気になりました。
実に、2年ぶりくらいのアプリ公開で、審査がApple並になってるとの事、プロモーションやマーケティングなどと並行する場合はタイミングが大事となりますので、実際にどうだったか簡単に載せます。※リリースのレビュー → 製品版としての公開のようになります
#### 1.リリースのレビューがある画面
|![ad_release01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297965/546ebc17-e45f-8e8e-4a8b-2c753669eaab.png)|
|:–|
リリースのレビューボタンを押下します
#### 2.公開直前の画面となります。
製品版としての公開を開始ボタンがあります|![ad_release02.png](https
Termuxの意外と知らない日本語入力方法、特殊キータブの項目を増やす小技
#Termuxで日本語入力をする方法
![Screenshot_20200929-005905_Termux.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747802/33f5dad4-5cbe-8ed0-067c-29b334e53093.jpeg)
この方法はキーボードアプリに依存しません。従ってどのキーボードアプリを使っていても日本語入力が可能です。
やり方は簡単。下の特殊キータブの部分を左にスワイプするだけです。
でも意外とこういうの見落としがちですよね。# 特殊キータブの項目を増やす方法
このように、左右の方向キーなどを追加する方法を紹介します。
![Screenshot_20200929-001020_Termux.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747802/26eefc40-3018-79be-a1bb-fbfb20797d1d.jpeg)### 1)テキストエディタをインス
2020年10月版ActivityResultAPIを使ってみた。
kotlinやandroidxの勉強も兼ねて、以前作った自作androidアプリケーションを一から作り直しているんですが、`Activity#startActivityForResult`は代わりにActivityResultAPIを使う事を薦められているとの事。
* [アクティビティからの結果の取得](https://developer.android.com/training/basics/intents/result)
いきなり使うのはためらうので、まずはテストプロジェクトで試してみましたが、まぁ、何ていうかその…。
**トラブル解決に自信があるなら別にいいけど、そうでないならあと1年は様子見でいいよ。**
## テストしてみる。
とりあえずテストした結果を書いておきます。
まず、「`build.gradle`」に依存関係を書きます。
“`
dependencies {
implementation “androidx.activity:activity:1.2.0-alpha08”
implementation “androidx.activity:acti
【Android】WebViewで、mailto:とかtel:を開けずに詰まった話
# 【Android】WebViewで、mailtoとかtelを開けずに詰まった話
AndroidのWebViewで、WebView内のリンクをタップした時に、mailto:やtel:だと、schemeに対応していないというメッセージが表示されて、電話アプリやメーラーが起動できないで詰まってました。## 参考
* [公式ドキュメント](https://developer.android.com/guide/webapps/webview?hl=ja#HandlingNavigation)
* こちらを読めば、理解が深まるかと思います。## 原因と対策
* 原因
* WebViewに対して、setWebViewClientをだけをしていたので、mailto:などのURLをWebViewでロードされるようになっていた。
* そもそもWebViewは、httpリソースを表示するようなので、mailto:やtel:などのURLスキームに対応していないみたい…(ドキュメントで明記されていたわけではないです。)* 対策
* WebViewClientに、shouldO
なぜAndroidエンジニアは少ないのか
# はじめに
まずはこちらのツイートをご覧ください
(駆け出しエンジニアのみなさん、モバイル開発は結構穴場ですよ…
今のところはかなり需要ありますし、供給が足りてないのでかなり狙い目ですよ…
とくにAndroidエンジニアは人足りてないので、狙い目ですよ…
Kotlin楽しいですよ…
みなさん、Android始めませんか?)— どすこい@Android Engineer (@dosukoi_android) October 12, 2020
Androidアプリアイコン設定
http://androidstudio.hatenablog.com/entry/2014/07/23/111303
【Qiita】Qiitaにスマホから新規投稿する方法
# 概要
スマートフォンからQiitaにアクセスした場合、リンク経由で新規投稿画面に辿り着けない(多分)ため解決手法を記載します。* 下図の通り、新規投稿画面へのリンクなどは見当たらない。(デスクトップモードでも同様)
![8C454D6D-65BD-4F79-ACF8-515E3AD29192.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670024/b5724f00-c9ed-d712-c4de-c6cb9d1f755c.png)# 再現環境
* iPhoneXR/iOS14/Safari
* SOV42(Xperia8)/Android10/Chrome# 結論
下記URLに直接アクセスすることで新規投稿画面が開きます。“`html:URL
https://qiita.com/drafts/new
“`
* 新規投稿画面。
![3B6C0F25-E0EA-4F6E-879C-E76CFCCE6E51.png](https://qiita-image-store.s3.ap-n
Android Studio 4.1に上げたらParameter ‘directory’ is not a directoryでBuildできない
pluginのアップデートがあるよ〜って出たのでアップデートしたらエミュレータへのinstallに失敗するようになって、試行錯誤ののち4.1以上じゃないと使えないplugin入れちゃったみたいで、勢いでAndroid Studioも4.1にしたら、
> Execution failed for task ‘:app:dataBindingGenBaseClassesHogeDebug’.
> Parameter ‘directory’ is not a directory: /Users/ibuse/Documents/workspace/Fuga/app/build/intermediates/data_binding_dependency_artifacts/hogeDebugですって。
cleanしてrebuildしても変化なし
Invalidate Caches/Restart…効果なし![スクリーンショット 2020-10-13 18.49.46(2).png](https://qiita-image-store.s3.ap-northeast-1.amazon
Koinを使ってActivity/Fragment間で共有するViewModelをDIする
– build.gradle
“`kotlin
buildscript {
ext.kotlin_version = ‘1.4.10’
ext.koin_version = ‘2.1.6’
repositories {
google()
jcenter()
}
dependencies {
classpath ‘com.android.tools.build:gradle:4.0.2’
classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version”
classpath “org.koin:koin-gradle-plugin:$koin_version”
}
}
“`– app/build.gradle
“`kotlin
dependencies {
implementation “org.koin:koin-android:$koin_version”