- 1. 『Android Jetpackプログラミング』Chapter2 最新バージョン対応(1.0.0-alpha03)
- 2. Android2015年知識の私が2020年のAndroid開発事情に追いつく
- 3. Androidエミュレータの通信をモニタリングしてみる
- 4. 【Flutter入門】短期集中講座やったので要点を整理してみた
- 5. AndroidStudioで(ほぼ)無限にUndoする
- 6. 通信処理で重くなり過ぎないようにするには
- 7. テストキーを使ってPlatform署名アプリをつくってみる
- 8. Android 11 対応
- 9. 【Flutter】Locale data has not been initialized, call initializeDateFormatting(). の解決
- 10. Android でFIS_AUTH_ERRORエラー Firebaseプッシュ通知が届かない
- 11. 12. 【Android/Kotlin】丸いイメージ(CircleImageView)
- 12. Chrome Custom Tabs で強制的に Chrome で表示する方法
- 13. 生成された図で見るDagger Hiltへのマイグレーション
- 14. エンジニア就職に向けてマッチングアプリ(Androidアプリ)を作ってみた
- 15. Android SDK platform-tools 旧バージョン インストール
- 16. Ubuntu18.04にAndroid Studio4系を入れる
- 17. 11. 【Android/Kotlin】Toast
- 18. Android: YouTube Android Player API
- 19. Dagger Hiltを踏まえたテストのプラクティス
- 20. 【Android】Android 11から始めるWireless Debugging
『Android Jetpackプログラミング』Chapter2 最新バージョン対応(1.0.0-alpha03)
### はじめに
本稿は秀和システムより発売された[Android Jetpackプログラミング](https://www.shuwasystem.co.jp/book/9784798063218.html)に関する内容です。
『Android Jetpackプログラミング』のChapter2ではJetpackのComposeに関して扱っています。
書籍ではComposeのバージョンとして”0.1.0-dev13″が使用されていますが、アルファ版のためか頻繁に更新されているため、現在の最新環境では掲載されているコードのビルドが通らないことがあります。
今回は掲載コードのうち現在の環境でも動作するように必要な変更箇所についてまとめました。
※目的としてはビルドを通し、元コードと同じように動作をさせることとなります。変更後コードの詳細な解説等はありません。
### 実行環境
今回の動作検証に用いた環境です。
Android Studio 4.2 Canary 11
compose_version = ‘1.0.0-alpha03’
### stateのDeprec
Android2015年知識の私が2020年のAndroid開発事情に追いつく
https://qiita.com/hikaruna/items/d0cd8f4d82aa03302689
の記事を書いた頃である5年前から今までAndroidから離れていましたが、また触る機会を得ました。Androidのことだからどうせ原型を留めないほどに変わっているだろうなと覚悟しながら望むつもりです。## kotlin
kotlinを使えという世界になったらしい。
javaを選択することはできますし、ファイル単位で共存ができますが、今更新たにjavaを書くべきではない、kotlinから逃げてはいけないと、私は理解しました。大体javaをswiftっぽくかけるだけだろうと舐めて掛かったのですが、以下が読めなくて無事死亡しました。
– primary constructor
– combine object
– byこのあたりは、周辺言語の経験で雰囲気を掴む感覚が働かなかったのでおとなしく公式ドキュメント読みました。
コルーチンまわりは難しすぎてまだよくわかっていません。パット見iOSと似てきた気がします。
## jetpack
よくわからないですが[サポートライブ
Androidエミュレータの通信をモニタリングしてみる
# やりたいこと
* AndroidエミュレータでHTTPのモニタリング
* ホスト側のWiresharkでリアルタイムで受け取り# 使うもの
* Android
* Pcap Remote https://play.google.com/store/apps/details?id=com.egorovandreyrm.pcapremote
* ホストPC(Windows)
* Android Emulator (今回はMemuを使用)
* Wireshark (要SSHDump)# すること
Android側のPcap Remoteで通信をモニタリングしその情報をSSHを介してWiresharkで受け取ります。# 流れ
1. AndroidにPcap Remoteをインストール
1. SSHのPrivateKeyを入手(メニューのHelp/Howto内のWireshark部分にあるリンクからDL or アプリ設定のExport→ホストへ転送)
1. ADBサーバーを起動し、ポート転送を設定
“`
adb forward tcp:[Hos
【Flutter入門】短期集中講座やったので要点を整理してみた
Android/iOS向けアプリ作りたいけどなんかいい開発環境ないかなぁ。
Electronのスマートフォン版あったら便利なんだけどなぁ。
Flutter?聞いたことはあるけどDartが不人気なことで有名だしなぁ。
(念の為改めて調査してみる)
は?Dartめっちゃいいじゃん!なにこのC言語系の正当進化版みたいな可読性!?何が不人気なの?? →完全にただの記憶違いでしたm(\_ \_)m
Flutterもデスクトップ・モバイル・Webをカバーした理想的な環境っぽいなぁ。
よし、まずは入門だ!
(最終更新:2020.09.27)## 作業した環境
– OS:macOS Catalina バージョン10.15.7
## 集中講座の元動画様(英語)
[Flutter Crash Course](https://www.youtube.com/watch?v=1gDhl4leEzA)
この記事の位置づけとして、基本的に元動画様に沿って進めていって、補助として個人的に記録しておきたいと思った情報を日本語でわかりやすくざっくりまとめた感じです。## 作るもの
シンプルな単語ペアジェ
AndroidStudioで(ほぼ)無限にUndoする
##Android Studio 唯一の問題点
AndroidStudio大好きです。年々改善が施されてきて史上最強のAndroid開発環境となりつつあります。Android開発者なら「必ず」入れているであろうこのAndroidStudioですが、とてもとても残念極まりない問題点があります。それが……「**Undoが全然できない問題**」
です。開発者なら「**あぁぁ!やり直しだくそやろう!!**」なんて場面は嫌ほどあったでしょうが、そのたびに直面するこの問題。Gitにコミットしているなら別に問題はないですが、コミットから編集し初めて結構経った後のあの場面に戻りたい!!なんてことはよくあります。イライラしながら必死にCtrl+Zを押すわけですが、戻る戻る……と思った次の瞬間、Undoが停止します。そうです。AndroidStudioのUndoは100件までが上限なのです。「**あぁぁぁぁぁぁ…**」と絶望し、直前のコミットから再編集をし始めるのでした……
なんて悲劇を二度と繰り返さないよう、そしてAndroidStudioを完璧なエディタに仕上げるた
通信処理で重くなり過ぎないようにするには
API呼び出しはコストのかかる処理で、呼び過ぎるとユーザーの回線に余計な負担を与える。また時間がかかるため、反応が遅いと感じられUXに悪影響を与えることがある。そのためどこでどう呼ぶかを考える必要がある。
### 呼ぶAPIの数の制限
例えばアプリなどで一画面で呼ぶAPIが多すぎると遅くなってしまう。そのため、1画面で呼ぶAPIは2〜3個までなどある程度基準を設け、一度に呼ぶAPI数が多くなり過ぎないように設計する。
### 回線状況の考慮
できれば、ユーザーがそのアプリ等を使う状況を考慮に入れ、通信回線がどのくらい良いかも念頭に置いておくと良い。例えば、電車の案内のアプリであれば、電車内とりわけ地下鉄など電波状況の悪い場所で使う場合もあることから、そのような場面であまり時間のかかる処理を入れるのは好ましくない。
### APIを呼ばなくて済むのではないか検討
同じデータを取ってくるだけなのに何度もAPIを呼ぶのは無駄である。そのため、一度取ってきたデータをデバイスのメモリに一時保存、あるいはストレージに恒久保存して対処する事ができないかを検討する。
また一部のデータが
テストキーを使ってPlatform署名アプリをつくってみる
### はじめに
製品版ではつかえません。エミュレータ等で確認してください。
### テストキーからPlatfoem署名用のkeystoreを作成する
AOSPの中にプラットフォームのテストキーがあります。
https://android.googlesource.com/platform/build/+/master/target/product/security– platform.x509.pem (公開鍵証明書)
– platform.pk8 (秘密鍵)上記をつかってplatform.jks(keysoreファイル)を作成します。
“`
// DER 形式の platform.pk8 を PEM 形式の platform.pem に変換
$ openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.pem -nocrypt// PEM 形式の platform.pem から PKCS12 platform.p12を作成
// alias: platform, key sto
Android 11 対応
とあるアプリをAndroid11に対応した際に起こった問題を書いていきたいと思います。
## 外部ストレージにファイル出力できなくなった…
##### 原因
外部ストレージ直下に独自のディレクトリを作成してファイル出力しているが、
ターゲットAPIレベルを29としたため、外部ストレージへのアクセス強化により出来なくなった。
##### 対処
外部ストレージでも、対象範囲別外部ストレージと呼ばれる場所へのファイル出力は引き続き可能であり、
こちらへファイル出力するように変更した。
また、対象範囲別ストレージへのアクセス権は自動で付与されるため、
WRITE_EXTERNAL_STORAGEパーミッションの確認が不要になった。
【Flutter】Locale data has not been initialized, call initializeDateFormatting(). の解決
## error内容
“`
Locale data has not been initialized, call initializeDateFormatting().
“`これは言語情報の初期化がされていないとのこと。
“`dart:
DateFormat.MMMM(‘id’)
“`上記のようにlocale情報を扱う前には、’initializeDateFormatting’を呼び出す必要があるとのことです。
## 対応
アプリの初期起動時のmain()処理内に以下を追記して対応しました。“`dart:
initializeDateFormatting(‘id’); //locale情報は各々変更してください。
“`## 参考文献
– [How to load all dart DateFormat locale in flutter?](https://stackoverflow.com/questions/49807687/how-to-load-all-dart-dateformat-locale-in-flutter)
–
Android でFIS_AUTH_ERRORエラー Firebaseプッシュ通知が届かない
#はじめに
![3864.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/cb31ee9c-3e35-9b7f-1086-8a6b97aca33f.jpeg)運営しているアプリを機種変更してから初めて起動すると突如、このようなエラーに見舞われた。。。。
#環境
Ionic 5 + Angular で開発したのネイティブアプリ
[Ionic プッシュ通知を送るテスト(Capacitor)](https://qiita.com/kokogento/items/c3390f16895a76dbde70#androidの設定)
:point_up:この記事と全く同じやり方でプッシュ通知を実装しました。#解決までにやったこと
※結論から言うと、解決はしてません。。。##Google Cloud PlatformでAPIの制限を追加
![スクリーンショット 2020-09-25 19.45.24.jpg](https://qiita-image-store.s3.ap-northeast-
12. 【Android/Kotlin】丸いイメージ(CircleImageView)
#はじめに
DreamHanksのMOONです。前回はToastという通知メッセージについて説明ししました。
[11. 【Android/Kotlin】Toast](https://qiita.com/DreamHanks/items/f35807698c0456a69534)今回は`CircleImageView`という外部ライブラリを使用していきます。
ライブラリを追加する方法については下記のリンクで確認してください。
[10. 【Android/Kotlin】ライブラリを追加](https://qiita.com/DreamHanks/items/b0326a6ede9c801a7137)#CircleImageViewとは
皆さんはラインや他のアプリで丸い写真のイメージを見たことがあると思います。それがCircleImageViewで変換されたイメージです。
CircleImageViewは原本のイメージを丸いイメージに変換してくれるImageViewのライブラリです。
#CircleImageView追加
・CircleImageViewのライブラリを
Chrome Custom Tabs で強制的に Chrome で表示する方法
# 概要
例えば AndroidManifest.xml の `
` に “`xml:AndroidManifest.xml
“`と定義していた場合、Chrome Custom Tabs で `https://example.com/` のページを表示しようとすると
intent-filter の条件に一致するため、
生成された図で見るDagger Hiltへのマイグレーション
Dagger Hiltへのマイグレーションのコードラボは数ヶ月前にやっていて忘れてきたので、どういう内容だったのか後から振り替えれるようにグラフをおいておきます。
ちょっと先にDagger Hiltのチュートリアル的なのは他の記事などでご確認ください。https://codelabs.developers.google.com/codelabs/android-dagger-to-hilt/#1
またDagger SPIを使ったいい感じのGradle Pluginも見つけたのでそれで見ていきます。
https://github.com/arunkumar9t2/scabbard今Daggerをグラフ化して見るのはDaggerの公式SPI(Service provider interface)を使っているこれが良さそうかも? https://t.co/IzVaZJofuo
&mdash
エンジニア就職に向けてマッチングアプリ(Androidアプリ)を作ってみた
# はじめに
こんにちは。タイトルにもある通りエンジニア就職のためにマッチングアプリ『Match-com(マッチコン)』を作成しました。
開発期間はおおよそ1ヶ月半です。
1年ちょっと前まではSESに9ヶ月ほど在籍していました。それ以降は少しエンジニアから離れて別のことをやっていましたが最近になってまたこの業界に戻ってきました。(プログラミングの学習自体は続けてました)# どんなアプリ?
![feature.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534109/049a6384-5c79-55c8-2836-de5d0b7146ff.png)男性と女性のマッチングアプリです。皆さんも一度は使ったことがあるんじゃないでしょうか。
お互いがいいねをしたらマッチングしてチャットができるようになります。**主な機能**
・Firebase
・メールログイン/Facebookログイン
・プロフィール登録
・いいね!
・マッチング
・リアルタイムチャット
・ブロック
・写真登録/プロフィール編集
Android SDK platform-tools 旧バージョン インストール
## 結論
Xの部分を欲しいリビジョン番号に書き換えます。`https://dl.google.com/android/repository/platform-tools_rXX.X.X-darwin.zip`
## URLの雛形が変わった場合の対応方法
URLの雛形が変わる場合があるので、雛形入手の手順も記載しておきます。### URLの雛形
Android SDK platform-toolsに関する情報は下記を参照します。https://developer.android.com/studio/releases/platform-tools.html
最新版は画面トップでインストールできるので、まずは最新版インストールのURLを入手しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/fddeda05-430b-6ae2-4d9c-3b932eca3c4d.png)
![image.png](https://qiita-image-stor
Ubuntu18.04にAndroid Studio4系を入れる
Android Studioは公式サイトから落としてきて展開しても良いが、面倒。
“`
snap install android-studio –classic
“`
と`snap`を使うとすんなり入り、`android-studio`コマンドで起動できる。別途、Androidのエミュレータ起動のために関連ライブラリを入れた上で、kvmへのパーミッションが通るようにしたらok。
“`
sudo apt install qemu-kvm -y
sudo adduser $USER kvm
sudo chown $USER /dev/kvm
“`
自分の環境では、PC再起動で反映された。
11. 【Android/Kotlin】Toast
#はじめに
DreamHanksのMOONです。前回はライブラリを追加する方法について説明しました。
[10. 【Android/Kotlin】ライブラリを追加](https://qiita.com/DreamHanks/items/b0326a6ede9c801a7137)今回は`Toast`という通知メッセージについて説明していきます。
#Toastとは
Toastはみんなさんが考えている`トーストパン`の意味と同じです。
トースト機器でトーストが完成すると飛び出るようなものだという意味で、
通知メッセージが画面に現れることを意味します。今回はこのテキストを入力し、Toastメッセージにテキストを表示していきます。
#Toast追加
・Activityを作成
“`kotlin:ToastActivity.kt
package com.example.practiceapplicationimport androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androi
Android: YouTube Android Player API
– Android Studio 4.0.1
– Kotlin 1.4.0
– YouTube Android Player API 1.2.2YouTube Android Player APIを使って、AndroidアプリでYoutubeを再生させます。
## Android Studioでプロジェクト作成
## アプリの登録
Google APIsでAPIキーを作成し、Androidのプロジェクトと関連付けます。
### Android Studioでプロジェクト作成
プロジェクトを作成し、パッケージ名を決めます。
### アプリのフィンガープリント取得
SHA-1のフィンガープリント取得方法
– AndroidStudioで、Gradleタブの「app/Tasks/android/signingReport」をダブルクリック
– Runコンソールに出力される### Googleプロジェクト作成
https://console.developers.google.com/cloud-resource-manager既存のプロジェクトを利用してもい
Dagger Hiltを踏まえたテストのプラクティス
Dagger HiltというGoogleがAndroid開発において推奨するDIライブラリ(JVM言語であれば使える)のこちらのドキュメントについてです。
https://dagger.dev/hilt/testing-philosophy
結構良いテストについて個人的に刺さる概念があったので、書いておきます。
またシンプルな部分以外のHiltの良いところが分かる気がします。—
Dagger Hiltを踏まえたテストのプラクティスについて書かれている。
Dagger HiltのAPIや機能は何が良いテストを作るかの暗黙の哲学に基づいて作られている。ただ、良いテストというのが万人に受け入れられているわけではいので、Hiltチームにおいてのテストの哲学を明らかにするためのドキュメントとなる。### 何をテストするのか
Hiltは外部の”**ユーザーからの観点でテスト**する”ことを推奨する。外部のユーザーとはたくさんの意味がある。本当のユーザーも指すし、クラスやAPIの利用者も指す。
大切なところは”実装の詳細を表現してはいけない”ということ。内部の実装に依存したテスト、例え
【Android】Android 11から始めるWireless Debugging
# Wireless Debugging
Android11からadbを介したワイヤレスでのアプリの**デプロイ**と**デバッグ**が可能になりました。
そのためUSB接続の必要がなくなりリモートで複数のデバイスにアプリにデプロイがしやすくなりました。
# 設定方法
1. AndroidStudioにSDK Platform-Toolsの最新版をインストールする(※30.0.4では確認済み)
2. デバッグで利用する端末でDeveloper OptionsをONにする
3. Wireless debuggingをONにする
4. 表示されるダイアログ内の**許可**を選択する
5. **Pair device with pairing code**を選択する
6. 表示