- 1. Kotlin Fest 2024 で驚いたところメモ
- 2. UnityでAndroid向けアプリ開発をしてみたい
- 3. Claude 3.5 SonnetのArtifactsを有効にしてPlantUMLで作図させてみた
- 4. LinuxでAndroidを接続して写真などを転送する方法
- 5. どうやってもAndroidスマホが重い場合の別のアプローチ
- 6. Flutter × symbol-sdk
- 7. [flutter] Androidのクラッシュ解決で沼った話
- 8. アプリアーキテクチャページのメモ
- 9. 【Android】Unit TestでTruthを使ってみる
- 10. OkHttpで通信速度を概算するIntercepterを実装してみる
- 11. [Android] AdMobのアプリ起動時広告(App Open Ads)のサンプル実装
- 12. ディープリンク・ユニバーサルリンク・アプリリンクの話
- 13. [Android] targetSdkVersion 34でGoogle Play Core Libraryの利用方法
- 14. Jetpack Compose でのクリーンアーキテクチャに関する Android 開発
- 15. [Android]SQLCipherをSQLiteOpenHelperからRoomに移行する
- 16. はじめてのAndroidアプリ(画像編)
- 17. 【Flutter】UXの向上に向けて知っておいたら得すること
- 18. Android:Office アプリの通知が来ない事象をトラブルシュートする!
- 19. jetpack composeでcameraxとmlkitをつかってバーコード読み取り画面を実装するPart2
- 20. Kotlin Fest 2024で個人的に気になる項目紹介
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デバッグ]を有効にする
* 開発が終
Claude 3.5 SonnetのArtifactsを有効にしてPlantUMLで作図させてみた
## はじめに
こんにちは!今回は、最新AIモデル「Claude 3.5 Sonnet」とその新機能「Artifacts」を使って、PlantUMLで作図を行ってみました。Anthropicが提供するこの新機能は、生成AIの新しい可能性を示しており、特にコード生成やドキュメント作成において大きな力を発揮します。以下の記事でやってみたことを、Claude 3.5 Sonnetでやってみました。
https://qiita.com/Tadataka_Takahashi/items/f20a472d1dea3abffa99
## Artifactsとは?
「Artifacts」は、Claudeとの対話を通じてコンテンツを作成し、管理できる新機能です。特に長いコンテンツや修正が必要なコンテンツ、会話の文脈外で使用されるコンテンツ(例:スライド、マインドマップ、コード)に適しています。現時点で無料版でも時間あたりの実行数に限りがありますが、試してみました。実行スピードが速く、少ないプロンプトの指示で精度の高いコンテンツを作成できる体験ができました。また、左側にプロンプトの画面が表示さ
LinuxでAndroidを接続して写真などを転送する方法
# LinuxでAndroidとデータ転送を行う
今回はLinuxでAndroidをUSB接続してデータ転送(差分バックアップ)を行います。
## 準備するもの
+ Andriod端末 (今回はXiaomi 13T Proを使用します)
+ Linuxマシン (今回はUbuntuを使用します)
+ USBケーブル“`bash:/etc/os-release
PRETTY_NAME=”Ubuntu 22.04.4 LTS”
NAME=”Ubuntu”
VERSION_ID=”22.04″
VERSION=”22.04.4 LTS (Jammy Jellyfish)”
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL=”https://www.ubuntu.com/”
SUPPORT_URL=”https://help.ubuntu.com/”
BUG_REPORT_URL=”https://bugs.launchpad.net/ubuntu/”
PRIVACY_POLICY_URL=”htt
どうやってもAndroidスマホが重い場合の別のアプローチ
## ・こんなところに書くことでもないが・・・
さて、Qiitaというのはエンジニアtoエンジニア向けのブログサービスであって、システムに詳しくない一般ユーザ向けのサービスではないのは周知のとおりである。時に、筆者のスマホ(Torque 5G)がどうもLINEを開くにも一苦労、いらないアプリを削除しても重いしウイルスチェックをしても引っかからない状況であった。
しかしながら、各事象を一つずつ紐解いた結果、原因が判明し対処を行ったところスマホの動作が正常になった。
しかもどのサイトを見てもその対処が書いてない始末。
**じゃあQiitaに書くしかないな。**
## ・結局のところ原因は何なのさ
まぁこんな記事を見ている時点で切羽詰まっているだろうし原因を記載する。
原因は、**SDカードの劣化による破損**
であった。
一般のアフィリエイトブログであればつらつらと毒にも薬にもならないことを書くのだがここはQiitaである。
筆者の解析した結果を以下に記載していく。## ・AndroidにおけるSDカードの役割
AndroidにおいてSDカードを使用する場合、役割は
Flutter × symbol-sdk
# はじめに
こんにちは。だい(@ishidad2)です。
晴れ時々Symbolということで久々にSymbolネタの記事を書いていこうと思います。
今回は@Toshi_maさんが作成されているFlutter用のSymbolSDKを使ってスマホからトランザクションを飛ばしてみようと思います。
なお、DartやFlutterのインストールなどは事前に済んでいることが前提条件となります。# 環境
FVMとは、Flutter SDKのバージョンをプロジェクト毎に管理するツールです。
以下を参考に必要であればインストールをしてください。(Flutterのバージョン管理が必要なければ不要です)https://fvm.app/
以下、私の実行環境です。
:::note warn
これより先の記述は筆者の環境であるMacでの説明になります。それ以外のWindows等では当てはまらない説明があるかもしれません。適宜読み替えてください。
:::“`bash
% fvm –version
2.4.1% dart –version
Dart SDK version: 3.3.1
[flutter] Androidのクラッシュ解決で沼った話
flutterアプリを開発している際にAndroidのクラッシュ解決で沼ったので備忘録として残します。
## 症状
Androidでビルドすると1瞬立ち上がり、アプリがクラッシュする(iOSは問題なし)## 原因探索
まずは `flutter run -v` で実行するがここから進まない。
>[ +1 ms] Waiting for VM Service port to be available…次にAndroid Studioからエミュレータを再作成して実行。
結果、変わらず。
次にChatGPTに聞いてみる。
>Logcatの取得:これにより、デバイスのすべてのログがlog.txtファイルに保存されます。特にエラーメッセージや例外が発生している箇所を探します。
>“`log.sh
>adb logcat -d > log.txtやってみて実際に得られたLogがこれです。
“`log.text
06-20 10:24:54.852 7017 7017 E AndroidRuntime: *******************************
アプリアーキテクチャページのメモ
## モバイルアプリのユーザー エクスペリエンス
アプリ開発者は端末のオペレーティングシステムやユーザーの操作にはせいぎょうができないのでアプリコンポーネントは体外に依存すんな## アーキテクチャに関する共通の原則
記載通りアプリコンポーネントをデータや状態の保存につかえない
アプリがデカくなったらアプリの拡張や堅牢度を高めてテストしやすくすることが大事
Activity と Fragment の実装はデベロッパーが管理するものではないこれらのクラスは、Android OS とアプリの間のコントラクトを体現する単なる結合クラスでユーザーの操作によって簡単に破棄されるからこれらへの依存を最小限にする。
#### 1 つの重要な原則は、UI をデータモデルで操作することです
アプリ アーキテクチャをデータモデル クラスに基づいて構築すると、アプリのテストのしやすさと堅牢性を高めることができます。信頼できる唯一の情報源これは一か所で操作ができるとデータの保護やバグが見つけやすくなる
アプリデータの信頼できる情報源は、通常はデータベースです。場合によっては、ViewModel や UI
【Android】Unit TestでTruthを使ってみる
## はじめに
Android開発のLocal Unit Testを作成していく際に、テストの検証ツールとしてアサーションライブラリを選択するかと思います。
選択肢としては、AssertJ、Truth が多くなるかなと思います。今回はTruthを選択し、どんな感じで使えるのかまとめていきたいと思います。
## Truthとは何か
[Truth](https://truth.dev/)とは、 Googleが提供しているアサーションライブラリです。
公式サイトを見てみると、Googleのコードのほとんどでこちらが使われているとのこと。Truthは、他のアラーションライブラリに比べAPIが直感的でシンプルという特徴があり、書きやすく読みやすいテストコードを作成することができます。
“`sample.kt
@RunWith(AndroidJUnit4::class)
class TruthUnitTest {
@Test
fun list_hasSize_3() {
val list = listOf(1, 2, 3)
assertT
OkHttpで通信速度を概算するIntercepterを実装してみる
OkHttpで簡易的にでも回線速度を測ることができないかなと作ってみました。
https://gist.github.com/satohu20xx/f19f77e4241b74452156f9ee4ba414b1
ざっくりしたコードですが通信時間と通信量が取得できるのでこれを使ってbpsを計算することが出来ます。僕の環境では1分ほどの通信で平均値を求めればそれなりの精度で通信速度を測ることが出来ました。
注意点としては通信時間はあくまでサーバからのレスポンス時間なので、サーバの処理時間も含まれてしまいます。なので、サーバで複雑な処理をするAPIの時間も含めてしまうと、実際の回線速度よりも遅く出てしまうことになります。
これを避けるために、画像のダウンロードなどサーバの処理時間がほとんど必要なく、ある程度の容量を通信するものに対してIntercepterを入れてあげるとよいのでしょう。
[Android] AdMobのアプリ起動時広告(App Open Ads)のサンプル実装
# 背景
AdMobのアプリ起動時広告(App Open Ads)を実装しようとしたが・アプリ起動時広告の日本語ページがInternal Server Errorになっている(2024/06/18時点)
・日本語ページもそのままコピーしていくと動かない(Last updated 2024-06-14 UTC.になっているので改変中?)
・サンプル実装のLifecycleObserverはdeprecatedになっている
・順番に説明しながら実装していくようになっているので全体の最終形が載っていない– 公式サンプル(en)
https://developers.google.com/admob/android/app-open?hl=en
– 公式サンプル(ja) Internal Server Error – 2024/06/18時点
https://developers.google.com/admob/android/app-open?hl=ja
のでサンプル実装を置いておくことにします。
# サンプル実装
上記公式サンプルを元にして動かない部分は修正、Lif
ディープリンク・ユニバーサルリンク・アプリリンクの話
# はじめに
あるURLにアクセスした時、スマホに指定のアプリがインストールされていればそれを起動し、未インストールでさればストアを表示したい。
ユニバーサルリンクでアプリ未インストールだとストア表示してくれる、みたいなことをいくつか見かけたので調べた。
# ディープリンク、ユニバーサルリンク、アプリリンク
いずれもURLっぽいもので、対応したアプリがインストールされていると、そのアプリが起動する。
ディープリンクの中に、
・カスタムURLスキーム
・ユニバーサルリンク
・アプリリンク
がある。– カスタムURLスキーム
URLの先頭部分(httpやftpのところ)をアプリ独自に定義したもの。
例:Googleマップ comgooglemaps:– ユニバーサルリンク と アプリリンク
iOSとAndroidでの呼び名が違うだけで同じもの。
URLと同じ形式なので、対応するアプリがインストールされていないと普通にWebページが表示される。ただし、これらだけではストアの表示は行わない。
しかし、ユニバーサルリンクとアプリリンクは、表記がWebページと同じURL
[Android] targetSdkVersion 34でGoogle Play Core Libraryの利用方法
# 背景
アプリ申請時にGoogle Play Consoleから下記の警告メールがきた>com.google.android.play:core: 1.8.0
>Google Play Core (com.google.android.play:core) は、SDK バージョン 1.8.0 に関して次の注記を追加しました:
>
>Play Core Maven 依存関係を Android 14 互換バージョンに更新してください。現在の Play Core ライブラリは targetSdkVersion 34 (Android 14) と互換性がありません。このバージョンでは、ユーザーのセキュリティを強化するために、ブロードキャスト レシーバーに下位互換性のない変更が導入されています。8 月 31 日より、Google Play ではすべての新しいアプリ リリースで Android 14 をターゲットにすることが義務付けられます。アプリのクラッシュを回避するには、Play Core ライブラリの依存関係を最新バージョンに更新してください: https://developer.an
Jetpack Compose でのクリーンアーキテクチャに関する Android 開発
皆さん、こんにちは。この投稿では、私が構築したクリーンアーキテクチャに基づいた Android アプリケーションのソースコードを共有したいと思います。
![Jetpack Compose](https://samyoney.github.io/static/images/clean/jetpack-card.png)
このソースコードは個人の GitHub に公開しています:[GitHub](https://github.com/samyoney)。
MVVM、MVC、MVP、TCA などのモデルを使用してモバイルアプリケーションの開発を行ってきましたが、MVVM がテストしやすく、維持管理が容易なため、最も実用性が高いと感じました。最も重要なのは、`use case` の概念があり、`user story` から分離して基本設計のドキュメントを作成できることです。
## Jetpack Compose とは?そしてなぜ使うべきか?
Jetpack Compose は、Google が開発した Android 向けのモダンな UI(ユーザーインターフェース)ツールキットで、柔
[Android]SQLCipherをSQLiteOpenHelperからRoomに移行する
# はじめに
SQLCipherとは、SQLiteのオープンソースの拡張機能で、データベースを暗号化して保存できる便利なツールとなっています。https://www.zetetic.net/sqlcipher/
今回は、このSQLCipherを使ったAndroidアプリをSQLiteOpenHelperからRoomに移行した際にハマったポイントを紹介しようと思います。
# SQLiteOpenHelperを利用したコード
SQLiteOpenHelperを利用したコードは以下のようにimportするSQLiteOpenHelperをsqlcipherのものにするだけで簡単に利用できます。
“`kotlin
import net.sqlcipher.Cursor;
import net.sqlcipher.database.SQLiteDatabase;
import net.sqlcipher.database.SQLiteOpenHelper;public class PasswordMemoOpenHelper extends SQLiteOpenHelper {
はじめてのAndroidアプリ(画像編)
## はじめに
この記事は、Kotlinもアプリ開発も学びたての筆者が、実際に手を動かしながらアプリ開発を学んでいくものになります。
本記事は第2弾の位置づけで、[前回の記事](https://qiita.com/teyama3/items/352bdb34743a6713f732)では Android Studio のダウンロードから初期構築までをやりました。今回は[このアプリ](https://github.com/google-developer-training/basic-android-kotlin-compose-training-dice-roller)を題材にアプリ開発に慣れていこうと思ったのですが…
ちょっと知識が足りないことに気付いたので、まずは画像の基礎を学びたいと思います。## 対象読者
* Androidエンジニアを目指している方(自分は目指してます!)
* 素人の奮闘記を読みたい方## アプリに画像を表示する
まず、ストレージに保存されている画像をアプリに表示するにはどうしたら良いのでしょうか。### Android Studio に画像を
【Flutter】UXの向上に向けて知っておいたら得すること
# 初めに
同期処理でプログラムが実行されるFlutterでは、非同期処理やUIのフレーム管理が非常に難しいし、UXを向上させるポイントにもなってきます。
そこで、今回はFuture.microtaskとWidgetsBinding.instance.addPostFrameCallbackの違いについて説明していきます。
これらのメソッドを適切に使用することで、より効率的で応答性の高いアプリケーションを構築できます。
本記事では、これらのメソッドの詳細な解説と、その使用例について説明します。# Future.microtask
1. Future.microtaskとは?
Future.microtaskは、すぐに実行するべきタスクをスケジュールするためのメソッドです。Dartのイベントループ内で最も高い優先度を持つため、できるだけ早く実行されます。これは、非同期処理の中で短時間で完了するタスクを実行するのに適しています。2. 基本的な使い方
Future.microtaskは、以下のように使用されます。“`dart
Future.microtask(() {
/
Android:Office アプリの通知が来ない事象をトラブルシュートする!
先日 **Android** の動作検証をしていて、組織 ID (Entra ID 上のユーザーアカウント) でサインインした **Office 系アプリの通知が来ない事象**に遭遇しました。
Android は機種によって設定画面や構成可能な設定項目、既定値に差異があり、他のプラットフォームに比べて動作差異が起こりやすいように思います。
備忘兼ねて、アプリの通知が来ない場合のトラブルシュート観点をまとめました!
# 端末環境
– **Android バージョン**:12, 13
– **機種**: OPPO (Color OS 12, 13)
– **アプリ**:Outlook
– **MDM**:Microsoft Intune
– Android Enterprise personally owned work profile (個人所有の仕事用プロファイル) 方式で **BYOD として Intune に MDM 登録済み**
– 当該アプリは**アプリ保護ポリシー** (App protection policy, APP) 適用済み:::note
本記事
jetpack composeでcameraxとmlkitをつかってバーコード読み取り画面を実装するPart2
# はじめに
今回も前回に引き続きJetpackComposeでのバーコード読み取り機能を実装していきます。
### 本文
下記のコードはカメラから取得した画像を加工している処理です
“`kotlin
class BarCodeScanner(
private val onBarCodeDetected: (Barcode) -> Unit,
) : ImageAnalysis.Analyzer {
private val qrScannerOptions = BarcodeScannerOptions.Builder()
.setBarcodeFormats(Barcode.FORMAT_ALL_FORMATS)
.build()
private val barCodeScanner = BarcodeScanning.getClient(qrScannerOptions)@SuppressLint(“UnsafeOptInUsageError”)
override fun analyze(image: I
Kotlin Fest 2024で個人的に気になる項目紹介
# はじめに
「Kotlin Fest 2024」が 2024年6月22日 (土)に開催するそうで、その中のタイムテーブルから個人的に気になった内容をいくつか記事にしたいと思います。
今回は5年ぶりのオフライン開催で、配信もなく 一般チケットは完売済みのようなので当日リアルタイムでみる方法はありませんが、過去のKotlin Festではアーカイブ動画や資料などが残っているので今回も後から確認することができると思います。
(私も当日は不参加なので、後から観られることを願っていますw)この記事では タイムテーブルを見て気になった記事を詳細URLとなぜ気になっているのか一言を添えて紹介したいと思います。
KotlinFest2024ホームページ↓
https://www.kotlinfest.dev/kotlin-fest-2024
タイムテーブル↓
https://www.kotlinfest.dev/timetable
以下から記事の紹介です。
順不同# 今こそ始めたい!Compose Multiplatform
https://fortee.jp/kotl