Android関連のことを調べてみた2022年05月18日

Android関連のことを調べてみた2022年05月18日

アーキテクチャって何?(UIレイヤー・ドメインレイヤー・データレイヤーなど)

## はじめに

アーキテクチャについて学んだことを個人的にまとめました。「アーキテクチャ?何それ??」状態の方にとって少しでも参考になれば幸いです。
また、間違っている部分があればご指摘いただければと思います。

### この記事で分かること

– アーキテクチャとは?
– UIレイヤー・ドメインレイヤー・データレイヤーの概要
– その他、大切なこと

※細かい話は省いていますので、詳しくは公式ドキュメントなどをご覧ください

## アーキテクチャってそもそも何?

– 「堅牢で高品質なアプリを作るための設計」みたいなイメージ
– アーキテクチャがしっかりしてないと、修正やテストがしにくかったり、思わぬところに変更の影響が出てしまったり…など、余計な労力がかかる

## 推奨されるアプリアーキテクチャ

– 推奨されるアプリアーキテクチャは、下記の矢印のような依存関係を持つUIレイヤー・ドメインレイヤー(※必須ではない)・データレイヤーに関心の分離を行う

![mad-arch-overview.png](https://qiita-image-store.s3.ap-no

元記事を表示

開発者に向けたGoogle I/O 2022の新着情報と主な発表内容

![Codemagic_Android_Balakina.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2028491/16514b72-6e47-0533-18c0-3b0ca4c8a18b.jpeg)

> This article is originally posted to [Codemgic blog](https://blog.codemagic.io/google-io-2022/).

**Googleの年次開発者会議であるGoogleI/ O2022**がぢょうど終わりました。これは、想像のはるかに超えるものでした! [Pixel Watch関連の噂](https://www.cnet.com/google-amp/news/google-pixel-watch-rumors/)のように、真実であることが証明されたものもありますが、それらは特に驚くことではありません。開発者基調講演では、興味深く、予測しにくかった見どころが多数ありました。メインの基調講演の詳細はライフスタイルメディ

元記事を表示

セキュリティ上の理由により、Google Play に公開するにはデバッグを無効にする必要があります

## 現象
Google Play Consoleでaabファイルをアップロードすると上記タイトルのエラーになった

## 対応
Unity上で以下を検索してファイルを開く
__AndroidManifest.xml__

以下がTrueになっているのでfalseに編集する
__android:debuggable=”false”>__
![スクリーンショット 2022-05-16 23.42.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/376429/949a53e3-03c9-f01d-d8e1-5ae74677b28d.png)

再ビルドしてアップロードするとできた!

どうやら一度Development Buildにチェックをつけてしまうと、AndroidManifest.xmlのdebuggableがtrueになってしまうらしい

参考
https://unity-yuji.xyz/release-build-debuggable-apk-android-app-bundle-upl

元記事を表示

AndroidからPCへタップ座標値をUDPで送信

■プログラムの概要
 ・Android側:画面アイコンをタップ移動した際の座標をUDP送信。
 ・PC側:winapi(言語:C++)ベースで作成したUDF受信処理。
 ・開発環境:AndroidStudioBumblebee2021.1.1  VisualSutudio2013
 ・送信確認ツール:Wireshark ver3.6.3
 ・用途:電子楽器。※YouTube動画リンク先:https://youtu.be/9AdsV2z7p_E
 ・備考:UDP受信後の処理(音生成/音色制御)は割愛してます。

■Android側のプログラムのソースコード
 (補足)touch_iconはトランペットアイコン、bgは背景画像。いずれもpptで作成。
“`java:activity_main.xml

FreeBSDでAndroid USBデザリング

FreeBSD/i386 12.3RでAndoridをUSBにつないでUSBデザリングモードにするとカーネルモジュールがロードされue0が生えてきます。

dhclientをue0で上げるとプライベートが降ってきました。なぜかクラスCのプライベートアドレスなのに対向のアドレスの一番下が1ではなく129でした。

後はデフォルトルートと/etc/resolv.confを設定すればインターネットに接続できます。

インターネット接続がない状態でのインターネット接続は結構大変です。

とりあえずこれはWin10で書きました。

元記事を表示

Xsens Dot SDK( Android ) Recordingの基本

# はじめに
Xsens Dot を制御するAndroidアプリを制作できる「Xsens Dot Sdk」の、サンプルアプリに実装がない「Recording」の基本的な実装方法をまとめました。

Xsens DOT SDK本体や公式のドキュメントは、下記のURLのフォームに回答することで送られてくるメールからダウンロードすることができます。
https://content.xsens.com/xsens-dot-software-development-kit?hsCtaTracking=2af14a41-b15f-4733-b2ca-5498b2888842%7C21941862-cb62-421e-9e0e-2dac04d1ca9f
サンプルアプリもgithubに公開されています。サンプルにRecording機能はなく、Streamingのみの実装がされています。
https://github.com/xsens/xsens_dot_example_android

本記事は、サンプルアプリ内に実装されていることに関しては解説しておらず、サンプルアプリ内の実装に一通り目を通したこと

元記事を表示

もしAndroidオープンソースがクソコードだったら

## まえおき

– 下品なタイトルで申し訳ありません。
– あえてクソコード化させてクラス設計を考察する。という内容です。
– というのは、直近でCodeCompleteを読んでいてクラスをどう設計するべきかについて学びました。
– 抽象的な表現も多く記憶から消える前に実際のソースコードを通してクラス設計のアンチパターンをまとめてみようと思います。
– しかし設計を1からするのは難しいため、逆の発想でAndroidのオープンソースコードであればJavaで美しく設計されていると信頼して、そのうちのSimpleAdapterクラスを部分的に変更してどんなリスクが生じるのかを考察します。Fragmentクラスなどはメンバが多すぎたため少しマイナーかもしれませんがアダプタを説明の都合上採用します。
– CodeCompleteを読んだ人やクラス設計を学習している人、JavaでAndroid開発をしている人に楽しんでもらえたらうれしいです。

## クラス定義のねらい

– CodeCompleteを読んでいるといろんなことが書いてあるわけですが、そもそものクラス設計の本質は『複雑さの緩和

元記事を表示

Kotlin 1.6.20の変更点

※ソース記事は[こちら](https://kotlinlang.org/docs/whatsnew1620.html)
※Kotlin/JSやKotlin/Nativeについては個人的に使っていないので、割愛します。
Kotlin 1.6.20により、将来の言語機能のプレビューが明らかになり、マルチプラットフォームのプロジェクトのために階層構造がデフォルトになり、他のコンポーネントに進化的な改善がもたらされている。
こちらの[動画](https://youtu.be/8F19ds109-o)でも、変更の短い概要を見ることができる。
# 言語
Kotlin 1.6.20では、2つの言語の特徴を試すことができる。
– Kotlin/JVMのためのコンテキストレシーバーのプロトタイプ
– 明確なnon-nullable型
## Kotlin/JVMのためのコンテキストレシーバーのプロトタイプ
::: note alert
この機能はKotlin/JVMのためにのみ利用可能なプロトタイプである。`-Xcontext-receivers`を有効にすることで、コンパイラは本番コードでは利用できない

元記事を表示

[Android] Roomを使ってローカルDatabaseにデータを保存してみた

## 背景
データ永続化するニーズが出てきたので、ローカルDBにデータを保存して、サーバーと常に同期するようにした

### 技術背景
– Kotlin: 1.6.20
– KSP: 1.6.20-1.0.5
– Android Studio: BumbleBee

## Roomとは
> Room 永続ライブラリは SQLite 全体に抽象化レイヤを提供することで、データベースへのより安定したアクセスを可能にし、SQLite を最大限に活用できるようにします。

[Room  \|  Android デベロッパー  \|  Android Developers](https://developer.android.com/jetpack/androidx/releases/room?hl=ja)

## Setup Room
– kaptは非推奨になったため、kspを使いました。
– [Using kapt \| Kotlin](https://kotlinlang.org/docs/kapt.html)
– [Kotlin Symbol Processing API

元記事を表示

Kotest でのコルーチンのテスト向けのセットアップ

![kc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/359439/b75b01ab-e388-a968-242d-3c88796177b3.png)

テストフレームワークとして [Kotest](https://kotest.io/) を使っているのですが、コルーチンまわりのテストについて工夫が必要だったので、やっていることをご紹介します。

(ここでは `kotlinx-coroutines-test` 1.6 以降を対象とすることにします)。

## コルーチンのテストについて

テストフレームワークによらず一般論として、コルーチンのテストは `kotlinx-coroutines-test` を使ってテストを行うというやりかたが説明されています。

`kotlinx-coroutines-test` 1.6 への移行ガイドが一番わかりやすかったので引用します:

https://github.com/Kotlin/kotlinx.coroutines/blob/master/kotlinx-

元記事を表示

NCMBのKotlin SDKを使ってTodoアプリを作ろう

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回は公式SDKの一つ、Kotlin SDKを使ってTodoアプリを作ってみます。まず画面の仕様とSDKの初期化について解説します。

## 完成版のコード

作成したデモアプリのコードは[NCMBMania/Kotlin_Todo: Kotlin SDKを使ったTodoアプリです](https://github.com/NCMBMania/Kotlin_Todo)にアップロードしてあります。

## ベースアプリのダウンロードまで