- 1. Android タブレットで Web 画面で作った UI ページを表示する
- 2. 【GAS×ChatGPT】Slackリマインド文言を毎日変えてお風呂の大切さを伝える
- 3. 開発未経験がKotlinでAndroidアプリを作ってみた!〜カメラ制御と文字認識の実装奮闘記〜
- 4. Intune で Android BYOD のスクリーンロックを制御する!
- 5. リリース作業のしくじり
- 6. 【Unity】Andriodビルド時にInstalled Build Tools revision **** is corruptedのエラーが発生する
- 7. 500時間かけて作成したアプリ、ダウンロード数は5件で全て社内の人間だった件について
- 8. FlutterでAndroidビルド時に「your project requires a newer version of the kotlin gradle plugin.」というエラーになる
- 9. Android Studio ショートカットを駆使して開発効率を最大化しよう!
- 10. Androd15からedge-to-edgeがデフォルトで適用されるので挙動を確認してみた
- 11. テストではMockよりもFakeを使おうという話
- 12. 「Kotlin/Androidでテスト駆動開発をはじめよう」のセッション補足について
- 13. Alldocube iPlay 50をアンロック
- 14. DTOクラスはアホにしよう
- 15. jetpack composeでcameraxとmlkitをつかってバーコード読み取り画面を実装するPart3
- 16. Kotlinで変数の範囲を強制する
- 17. 【Android】MockWebServerを使用してAPI通信部分のUnit Testを作成する
- 18. Kotlin Fest 2024のメモまとめ
- 19. Kotlin Fest 2024 で驚いたところメモ
- 20. UnityでAndroid向けアプリ開発をしてみたい
Android タブレットで Web 画面で作った UI ページを表示する
Web 画面で UI を作り、タブレット上の Web ブラウザで表示する。
アプリのように見せるためにいろんな Tips を組み合わせ。
今まで iPad でやってきたけれども、Android はどうかな?
# 環境
旧い機種を再利用
– Fujitsu arrows Tab F-02K
– Android バージョン 9# デベロッパーモードにする
「設定」-「システム」-「タブレット情報」-「ビルド番号」を7回押す
# 充電中にスリープモードにしない
「設定」-「システム」-「詳細設定」-「開発者向けオプション」-「スリープモードにしない」
# Webページのショートカットをホーム画面に配置
Chrome の右上のメニューから「ホーム画面に追加」-「ショートカットの作成」
PWA(プログレッシブウェブアプリ)に対応しているWebページの場合は、「ショートカットの作成」と共に「インストール」も表示される。「インストール」した場合は、ブラウザのタブやツールバー(アドレスバーや戻る進むボタンなど)が表示されない。
# アプリっぽく表示
PWAのよ
【GAS×ChatGPT】Slackリマインド文言を毎日変えてお風呂の大切さを伝える
:::note info
私の所属している「どすこい塾」のSlackで、とある人が毎日21時にお風呂リマインドを設定していました。ただ、毎日同じ文言で同じ時間にリマインドが来てしまうと、飽きが生じてしまいます。
そこでChatGPTのAPIを用いて、毎日違う文言でリマインドするように変更を行なったのでその備忘録です。
:::![スクリーンショット 2024-06-12 2.35.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670224/887fde39-2b8b-ac19-0f79-eed207f25331.png)
![スクリーンショット 2024-06-27 14.52.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670224/399f31c1-d987-f766-3e8f-958f65a6cb78.png)
# かかる費用について
**ChatGPTのAPIを用いるので少しだけお金が
開発未経験がKotlinでAndroidアプリを作ってみた!〜カメラ制御と文字認識の実装奮闘記〜
こんにちは!
前回こちらの記事を投稿しました。
https://qiita.com/ararrararararaarrrr/items/5e28201b9e453150fd5b
今回はカメラ制御にCameraX、文字認識にML Kitを使用したアプリの開発過程で遭遇した困難と、その解決策を初心者なりに紹介できたらと思います。
## はじめに
今回開発したのは、カメラで電話番号を認識し、即座に検索できるアプリです。固定電話にかかってくる不審な番号を、素早く調べられるようにしたいと考えました。
## 開発環境のセットアップ
まず、Android Studioのインストールから始めました。
公式サイトからダウンロードし、インストールしましたが、初めて見る画面の数々に戸惑いました。
参考にしたのは、Android Developers公式サイトです:https://developer.android.com/studio
## プロジェクトの作成と初期設定
Android Studioでプロジェクトを作成し、Kotlinを選択しました。
ここで最初の躓きがありました。G
Intune で Android BYOD のスクリーンロックを制御する!
Intune でデバイスを管理するにあたり、**スクリーンロック**設定は人気の設定と思います。
特にモバイルデバイスなど、**ハイブリッドワーク環境での利用**が想定されるデバイスだと、一定時間無操作だった場合に**なにかしらロックする仕組みを入れたい**ものです。
**Android 管理**界隈では、Intune サービスリリース 2403 でコンプライアンスポリシーで構成可能な項目に追加があり[^3]、従来の構成プロファイルに加えてコンプライアンスポリシーでもスクリーンロックを構成できるようになりました!
選択肢が増えて嬉しい半面、**どういうときに何を選べばいいの?** という新たな疑問もあります…
これを機に、あらためて**それぞれの動作特徴を検証をもとにまとめ**ていきたいと思います!
まず特徴をまとめた後で、細かい挙動を掲載します。本記事で扱う範囲は下表の通りです:
| # | カテゴリ |本記事の範囲 |備考 |
|:-:|:-:|:-:|:-:|
|1 | デバイス管理方式 | **BYOD** | 企業(お客様組織)が管理していない、
リリース作業のしくじり
# はじめに
結論から言うと、以下二3点となります。
①リリース作業は業界一年目にやらせるなよw
②ちゃんとダブルチェックはやろうね
③ちゃんと使用している公式アナウンスはチェックしようねIT業界20年近いですが、なんだかんだずーーっとリリース作業に関わってます。
その経験について少々話します。とは言っても、あまりにも基本的なことしか記載しません。。
リリース作業の工夫とかテクニカルな記事では一切ございませんので、あしからず。# 最初の仕事でやらかすリリースミス
業界最初にやったのがリリース作業でした。今考えると正気の沙汰では無いですが、
客曰くやらせることがなかったから取り敢えずリリース作業を割り振ってみたw
だった気がします。どうなったかというと、**案の定リリースミスを起こしましたorz**。
エンドの客に納品するソースコードのビルドが通らないと。。ハッキリ言って渡された手順書もイケてなかったし、ダブルチェックもほとんどしない状態で納品物のまとめ作業も私が担当。。
作業を振る側もどうかと思いますが、振られた私も文句言えなかった私が悪いと言えば悪い。。
で
【Unity】Andriodビルド時にInstalled Build Tools revision **** is corruptedのエラーが発生する
# はじめに
Niantic Lightship ARDKのサンプルプロジェクトをビルド時に以下のエラーが発生し、ビルドすることができない状態に陥りましたので、解決策を記録します。https://github.com/niantic-lightship/ardk-samples
“`
* What went wrong:
Could not determine the dependencies of task ‘:launcher:compileReleaseJavaWithJavac’.
> Installed Build Tools revision **.*.* is corrupted. Remove and install again using the SDK Manager
“`# 原因
GradleバージョンがARDKのサンプルプロジェクトとビルドしようとしているプロジェクトのバージョンがことなるため、Gradleが破損していると誤認識していることが原因です。# 解消方法
Gradleのバージョン指定を修正することでビルドできるようになります。
具体的
500時間かけて作成したアプリ、ダウンロード数は5件で全て社内の人間だった件について
## はじめに
26歳で4年間勤めた酒屋を辞め、未経験からIT業界に飛び込みました。
最初の一年は運用監視の仕事に従事し、その後、転職して開発の世界に足を踏み入れました。未経験でアプリのリリースまでを振り返りました。
誰にでもあるような普通の転職ストーリーかもしれませんが、もしよければご一読ください。## 作成した経緯とアプリ
携帯電話にかかってきた電話番号であればアプリでブロック等出来ますが、固定電話にかかってきた電話番号は手入力で検索しなければいけませんでした。
着信画面をGoogle検索しているうちに電話は切れてしまいます。
そこでカメラから電話番号を認識して検索するAndroidアプリを製作しました。https://play.google.com/store/apps/details?id=com.company.phonenumberOCR
FlutterでAndroidビルド時に「your project requires a newer version of the kotlin gradle plugin.」というエラーになる
## 自分の環境
– macOS Sonoma 14.4
– Flutter 3.22## 経緯
AndroidのエミュレータでFlutterアプリのデバッグのためビルドしたところ、「your project requires a newer version of the kotlin gradle plugin.」というエラーが出てしまった。
調べても対応方法で一致するものを見つけられなかったので、備忘録として残します。## 原因
要求するKotlinおよびGradleのバージョンが不一致であること。
私の場合はGradleは問題なく、Kotlinが原因だったのでKotlinのバージョンアップで対応しました。## よく見かける対処法
/android/build.gradle のbuildscriptを編集するというもの。
しかし3.16以降だとこの記載が消えたらしい。(なぜ)
そのためこの方法を諦めました。![スクリーンショット 2024-06-26 5.39.37.png](https://qiita-image-store.s3.ap-northeast-1.a
Android Studio ショートカットを駆使して開発効率を最大化しよう!
### はじめに
Android Studio は、Android アプリ開発者にとって強力なツールです。しかし、その機能を最大限に活用するためには、ショートカットを覚えることが重要です。本記事では、Android Studio の開発効率を大幅に向上させるための便利なショートカットを紹介します。### 一般的なショートカット
| 機能 | Windows/Linux | Mac |
|—————————–|———————-|————————–|
| ファイル検索 | `Ctrl + Shift + N` | `Cmd + Shift + O` |
| クラス検索 | `Ctrl + N` | `Cmd + O` |
| メソッド検索
Androd15からedge-to-edgeがデフォルトで適用されるので挙動を確認してみた
## はじめに
Android15 から `edge-to-edge` がデフォルトになり、意図しない挙動になっていないかの確認を行ってみました。
確認は、弊社で公開している [家計簿](https://play.google.com/store/apps/details?id=jp.co.tanocee.kakeibo.android&utm_source=qiita&utm_campaign=android15_edgetoedge) アプリで行いました。https://play.google.com/store/apps/details?id=jp.co.tanocee.kakeibo.android&utm_source=qiita&utm_campaign=android15_edgetoedge
## 変更内容の確認
変更点としては、以下になります。
– `targetSdk` を `35` に変更すると `edge-to-edge` が Android15 で対応していないアプリでも適用されること
– [M3](https://m3.material.io/)
テストではMockよりもFakeを使おうという話
# はじめに
https://testing.googleblog.com/2024/02/increase-test-fidelity-by-avoiding-mocks.html?m=1
この記事はGoogle Test Blogの記事を要約したものになります!# MockとFakeの違い
## Mock
– 呼び出され方を事前定義することができるオブジェクト
– メソッドの挙動を指定して、入力値と期待値を定義できる## Fake
– 実際のクラスと同じように動く
– SQLiteを使ってDBからデータ取得をする実クラスに対して、内部的にはHash等を使って同一の値を返すようなFakeクラスなど# Mockのデメリット
– Mock用のSDKの使い方を理解する必要がある
– テストクラスの内部を正確に知っていないとMockの挙動定義だらけになって可読性が落ちる
– Mock対象のクラスに変更があった時に修正する必要が出る場合がある
– 上記によりバグの見逃しが発生する可能性がある# 実コード > Fake > Mock
– 実コードが最も忠実度が高いため、テストでも
「Kotlin/Androidでテスト駆動開発をはじめよう」のセッション補足について
MagicPodさん主催のイベント[モバイルアプリ開発における良いテストコードの考え方](https://trident-qa.connpass.com/event/320151/)に「Kotlin/Androidでテスト駆動開発をはじめよう」という内容で、スピーカーとして参加させていただきました。今回はそのセッションの補足内容となります。テストというテーマは深く、考え方もいろいろあるので、15分のセッションに収めるのは大変なので、補足を書きました。
## TDDのやり方
### TODOリスト
Kent Beckの「テスト駆動開発」では、TODOリストを作りながらTDDを実践していきます。これは、Greenのフェーズでコードをきれいにする方法を思いついているが、このフェーズではまだ実施できない、のようなときに作るTODOリストです。TDDでは各フェーズでやるべきことが決まっているので、将来に手を付けるべきことを棚上げにしておかないといけません。
そのときにTODOリストとしてメモ書きを残しておくとよいです。頭の中で短期記憶しているだけだと、忘れてしまいそうで、不安になります。TOD
Alldocube iPlay 50をアンロック
# 注意
この記事に貼ってあるリンクはいつ死ぬかわからないし、ダウンロード先も煩わしいボタンが多い
正しいものであるかわからない場合はリンクを踏まず自分で探そう# 目次
1. ドライバのインストール
1. タブレットのタウングレード
1. アンロック# ドライバのインストール
今回は楽をするためにwindowsを利用するので、ドライバをインストールする必要がある
ドライバは以下のリンクからダウンロード可能
spd driver
https://androiddatahost.com/dsa6h# タブレットのタウングレード
今回使うツールではタブレットのバージョンをiPlay50(T1030)_EN_20230801にする必要がある
以下のダウングレードツールを利用する
spd flash tool
https://spdflashtool.com/download/spd-flash-tool-r27-23-1902
ここからiPlay50(T1030)_EN_20230801.Tをダウンロード
https://www.alldocube.com/en/firmware/
DTOクラスはアホにしよう
# DTOクラスはアホにした方がいい
– DTOクラスはただの入れ物であり、中身のデータが何かは知らない
つまり、getterやsetterは(中身は何か知らんけど)ただ来たものを、受け渡すだけ
– DTOクラスは、賢くしない方がいい(処理とかを入れない方がいい)
– 末端であるDTOクラスで色々やろうとすると、メンテナンス性が悪くなる
→・末端が広大化していく
・要件が増えた時にif文が増えたりしてカオスになる**どこで頭を使うかにもよるが、基本は末端がアホな方がいい**
# カプセル化の意味
– カプセル化とは、他のオブジェクトに「使っていいよ」と公開するフィールドとメソッドを最小限に抑え、さらには、公開するなら操作できる範囲を必要最小限に抑えること。(アクセス制御 access control)
↓
**いちいち色々と処理をするためのメソッドとかをDTOクラスに作っていたらキリがない!!**# 備考
– Androidの場合、DTOクラスはアホにしてView Modelは頭をよくするようにすればいいハズ。。。
– kotlinのdata class(
jetpack composeでcameraxとmlkitをつかってバーコード読み取り画面を実装するPart3
# はじめに
今回も前回に引き続きJetpackComposeでのバーコード読み取り機能を実装していきます。
### 本文
下記のコードをViewModelに追加することで実際にコードを読み取った時にやりたい処理をすることができます
“`kotlin
private val qrCodeFlow = MutableSharedFlow() val qrCodeAnalyzeUseCase: ImageAnalysis = ImageAnalysis.Builder()
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build()
.apply {
setAnalyzer(
Executors.newSingleThreadExecutor(),
BarCodeScanner { barcode ->
Kotlinで変数の範囲を強制する
# 実践
早速ですが実践です。“`
var x = 2
var y = 11println(x.coerceIn(0, 10)) // 2
println(y.coerceIn(0, 10)) // 10
“`**coerceIn**という関数の引数内で範囲を指定することで、その範囲を外れた場合 指定した範囲に矯正してくれるというものです。
coerceInを変換すると ”強制する”というそのまま出てきますので、わかりやすいです。
“`
var y = 11
var x = 2if(x < 0){ x = 0 } else if(x > 10 ){
x = 10
}if(y < 0){ y = 0 } else if(y > 10 ){
y = 10
}println(x.coerceIn(0, 10))
println(y.coerc
【Android】MockWebServerを使用してAPI通信部分のUnit Testを作成する
## はじめに
Androidアプリ開発では、API通信部分にRetrofitを採用するケースが多いと思います。
API通信部分のUnit Testを作成しようと思った時に、MockWebServerを使うと、ネットワーク通信を伴わない形でテストを作成できるとのこと。
今回はMockWebServerを使ったAPI通信部分のUnit Testを作成する方法をまとめていきたいと思います。## MockWebServerとは
[Retrofit](https://square.github.io/retrofit/)と [OkHttp](https://square.github.io/okhttp/)でお馴染みのSquare社によって開発されたライブラリです。
実際にはOkHttpの一部という位置付けのものになるみたいです。(MockWebServerのREADMERは[こちら](https://github.com/square/okhttp/tree/master/mockwebserver))OkHttpのAPI通信部分のテストを作る際にモックとして使うもので、リクエストに
Kotlin Fest 2024のメモまとめ
6/22に開催されたKotlin Fest 2024へ参加してきたので、拝聴したセッションについてのメモ書きまとめです。
※聞き間違い、誤解などがあるかもしれません。![IMG_8692.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2724617/8b2db8c6-6338-fe86-0354-6a00816fd08d.jpeg)
### [今こそ始めたい!Compose Mulitplatform](https://speakerdeck.com/ogi2ogi/get-started-with-compose-multiplatform)
* Compose Multiplatformを始める際は、公式のプロジェクト作成ウィザードであるKotlin Multiplatform Wizardを使おう
* 環境構築はKdoctorでちゃんとできているか確認しよう
* Android Studioでは共通部分のUI実装をするCommonMainでプレビューの確認ができない
* Andr
Kotlin Fest 2024 で驚いたところメモ
多分聞き間違えたりしているところがあると思いますが、面白かったり驚いたところを太字にしたりして、共有します。
Kotlinを愛でようというコンセプト。
## KotlinConf 2024 を後から256倍楽しむためのヒント
@ masaruhr さん### キーノートは?
K2:
コンパイル時間、ハイライトまでの時間が短くなる。文法的な変更は最小限に。”K2のKotlin IDEプラグインの中を覗いてみよう♪”で聞けそう。Multiplatform:
Fleetという多言語対応のIDEを出している。Swiftとかも触れる。IDEの生成AIの機能など
### どうやって見るか?
**タイトルとChatGPTのサマリーを見て、良さそうだったら動画を見るというのがおすすめ。以下にまとまっている。**
https://docs.google.com/spreadsheets/d/1v1BTe7zIE84uY8i97XfE98mCmY-8OlsPnKKiY-8k4KQ/edit
JetBrainsはコミュニティ支援を色々やっているという話。イベント開くとライセンスがも
UnityでAndroid向けアプリ開発をしてみたい
Android向けアプリ開発をするために、アプリのビルドなどのやり方を少しずつ整理していくつもりです。
モチベーションは、自分のスマホで、自分が作ったものを動かしたら面白そうだという好奇心です。# デバッグについて
## Unityの設定
* [Edit -> Project Settings -> Editor]に移動し、[Device] を [Any Android Device] にする
* [File] -> Build Settings] に移動し、[Run Device] ドロップダウンからAndroid端末を選ぶ## Android端末の設定
### 初回
* Unity RemoteアプリをGoogleストアからダウンロードする
* PCに対して、Android端末のRSAにアクセスすることを許可する(下記の過程で要求される)### 次回以降
* USBを接続し、[USBの設定]から[ファイル転送]を選ぶ
* [デバイス情報]の[ビルド番号]を7回連打して、[開発者モード]を有効にする
* 開発者向けオプションの[USBデバッグ]を有効にする
* 開発が終