Android関連のことを調べてみた

Android関連のことを調べてみた

【Bingで解説】「buildAnnotatedString」って何?

「Jetpack Compose」に出てくる「buildAnnotatedString」とは何ですか?
小学生でも理解できるくらい丁寧に解説して頂けますか?

「Jetpack Compose」は、AndroidアプリケーションのUIを構築するためのツールキットです。 「buildAnnotatedString」は、Jetpack Composeで使用されるテキストスタイルの一種で、テキストに注釈を付けるために使用されます¹。

例えば、以下のように使用できます:

“`kotlin
buildAnnotatedString {
pushStyle(MaterialTheme.typography.body1.copy(color = MaterialTheme.colors.primary).toSpanStyle())
append(“this is a link”)
pop()
}
“`

上記の例では、テキストの一部をリンク化しています。この場合、リンクは通常、`pushStringAnnotation`と一緒に使用されます。これは、注釈を取得するた

元記事を表示

Kotlin Parcelableの使用ケースについて

Androidのアプリケーション開発をしているとParcelableというものが出てきます。

## Parcelableとは?
Androidにおけるシリアライズ、デシリアライズするためのインターフェースです。
Parcelableを実装することで、オブジェクトの状態を保持できます。つまり、値を受け渡しを可能にします。

## どんなシナリオで使われるか?
**アクティビティやフラグメントが一時停止したり再開する場合**
onSaveInstanceStateおよびonRestoreInstanceStateメソッドでParcelableを使用してオブジェクトの状態を保存および復元します。
以下のような感じです。

“`kotlin
private val SAVE_KEY = “save_key”

//保存する
override fun onSaveInstanceState(outState: Bundle) {
outState.putParcelable(SAVE_KEY, myDataObject)
super.onSaveInstanceState(o

元記事を表示

jetpack composeのktlint導入メモ

[litintを実装する時の参考ドキュメント](https://pinterest.github.io/ktlint/latest/install/integrations/)

## 導入
まずbuild.gradle.ktsを書き換えます
“` build.gradle.kts(app)
val ktlint by configurations.creating

dependencies {
ktlint(“com.pinterest.ktlint:ktlint-cli:1.0.1”) {
attributes {
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling.EXTERNAL))
}
}

}

val ktlintCheck by tasks.registering(JavaExec::class) {
group = LifecycleBasePlugin.VERIFICATION_GROUP
descri

元記事を表示

Android Notification

# 基本的なNotificatationを作成する
## 基礎知識
### Verごとの動作の違いについて
・Android 8.0(API26)以下 ⇨ 通知チャンネルの作成は必要なし
・上記以上 ⇨ 通知チャンネルの作成が必要

・権限について
Android 13.0(API33)以上 ⇨ android.permission.POST_NOTIFICATIONSのパーミッションリクエストが必要

## 実装する
### 1.通知チャンネルの作成
“`kotlin
private fun createChannel(){
//通知チャンネルの名前を指定
val name = “Web notification”
//チャンネルの説明文を指定
val description = “this notification is notify when you access web site”
//通知の重要度を指定
val importance = NotificationManager

元記事を表示

.NET MAUI 環境構築に四苦八苦したときの備忘録

## 参考記事
https://learn.microsoft.com/ja-jp/dotnet/maui/get-started/installation?tabs=vswin

https://learn.microsoft.com/ja-jp/dotnet/maui/get-started/first-app?tabs=vswin&pivots=devices-android

https://learn.microsoft.com/ja-jp/xamarin/android/get-started/installation/android-emulator/device-manager?tabs=windows&pivots=windows

https://learn.microsoft.com/ja-jp/dotnet/core/tools/dotnet-workload-restore

https://learn.microsoft.com/ja-jp/visualstudio/install/update-visual-studio?view=vs-2022

##

元記事を表示

【Android】gradleに設定したライブラリはどこから取得されるのか

# はじめに
こんにちは。
Android開発者が何気なく使っているライブラリですがどこから取得しているかすごく調べる機会があったので備忘録として。
前提としてbuild.gradleのdependenciesブロックにimplementationを追加すれば外部ライブラリを取得するということは知っているのですが(おそらく大半のAndroidエンジニアはわかっていると思いますが。。)ただ、ビルド時にライブラリがどこのコードでどのように取得されるのかは、詳しく理解していませんでした。
なので、流石にAndroidエンジニアを名乗るのに知っておかなければということで調べたことをまとめることにしました。

# 用語のおさらい
前提として知っておくといい用語をいくつか書いておきます。
### Gradle
高度なビルドツールキットのことで本来は「Gradle Build Tool」でありそれを略してGradleとのことAndroidとして使用されているのはGroovyそして最近はKotlinですね。

https://docs.gradle.org/current/userguide/user

元記事を表示

【自分用メモ】「setContentView(R.layout.activity_main)」は「家の全体の設計書」

【先輩Androidエンジニアから教えられたこと】

「setContentView(R.layout.activity_main)」は「家の全体の設計書」

「val spinner:Spinner = findViewById(R.id.spinner)」は「家のリビングをどこに置くか的な」

元記事を表示

【Bingで解説】「android:ems」って何?

以下のコードの「ems」とは何でしょうか?

小学生でも理解できるくらい丁寧に解説して頂けますか?

“`kotlin

“`

ーーーーーーーーーーーーーーーーーーーーーー

「ems」とは、テキストの幅を決めるための単位です。

小学生でも理解できるくらい丁寧に解説しますね。

まず、このコードは、Androidというスマートフォンやタブレットのためのシステムで使われるものです。

Androidでは、アプリの見た目や動きを決めるために、XMLという言語で書

元記事を表示

【Tips】「Design」で配置せずに「Code」で直接書こう【Android】

【先輩 Android エンジニアからのアドバイス】

「Design」で動かして配置するのはできる限り辞めた方がいい。

(「Design」で動かして配置するとだいたサイズに小数点が入っていまう。「width」や「height」等含めてdp値は【4の倍数】が良いと基本的に決まっているので、こは好ましくない。)

なので、「Split」で分割して「Code」で直接書きしながら「Design」を見て段階的に修正するべし。

元記事を表示

【Bingで解説】「Theme.MaterialComponents.DayNight.NoActionBar」と「Theme.MaterialComponents.DayNight.NoActionBar.Bridge」の違いって何?

「Theme.MaterialComponents.DayNight.NoActionBar」と「Theme.MaterialComponents.DayNight.NoActionBar.Bridge」の違いについて小学生でも理解できるくらい丁寧に解説して頂けますか?

ーーーーーーーーーーーーーーーーーーーーーー

「Theme.MaterialComponents.DayNight.NoActionBar」と「Theme.MaterialComponents.DayNight.NoActionBar.Bridge」の違いについて、小学生でも理解できるくらい丁寧に解説しますね。

まず、これらのテーマは、Androidというスマートフォンやタブレットのためのシステムで使われるものです。テーマとは、アプリの見た目や色などを決めるものです。

例えば、背景が黒いテーマと白いテーマがあったら、どちらが好きですか?テーマを変えると、アプリの雰囲気も変わりますよね。

さて、今回のテーマは、Material Componentsという名前がついています。
Material Component

元記事を表示

【Bingで解説】「@SuppressLint」って何?

Android開発で出てくる「@SuppressLint」とは何ですか?

小学生でも理解できるくらい丁寧に解説して頂けますか?

ーーーーーーーーーーーーーーーーーーーーーー

@SuppressLint とは、Android Lint というツールが使うアノテーションの一種です。

Android Lint というのは、コードに問題がないかチェックしてくれるツールで、例えば、アプリが落ちたり、動きが遅かったりする原因になるようなコードがないか、教えてくれます。

@SuppressLint というアノテーションをコードに書くと、Android Lint に対して、このコードには問題がないから、警告を出さないでね、という意味になります。

NewApi というのは、Android Lint がチェックする問題の種類の一つで、自分が作っているアプリが対応している最低限の Android のバージョンよりも新しい機能を使っていないか、確認してくれます。

例えば、自分が作っているアプリが Android 4.0 以上で動くように設定しているとします。
そのとき、Android 5.0 で

元記事を表示

Update this project to use a newer compileSdk of at least , for example 解決方法

エラー内容
Recommended action: Update this project to use a newer compileSdk of at least 34, for example 34.
推奨されるアクション このプロジェクトを更新して、少なくとも34(たとえば34)の新しいcompileSdkを使用してください。

解決法

Android Studio で以下のファイルを開く
C:\Users\<ユーザー名>\AndroidStudioProjects\<アプリケーション名>\app 内の build.gradle.kts (Module :app)

build.gradle.kts (Module :app) ファイルの androidの個所を編集する。

android {
namespace = “com.example.myapplication”
compileSdk = 34

※今回は事例として 34 にしたが今後新バージョンが出ると 35, 36,, と数字は更新されるので最新バージョンの番号は各自で要確認。2023年11月1

元記事を表示

【Bingで解説】「container」って何?

以下のコードの「container」とは何でしょうか?小学生でも理解できるくらい丁寧に解説して頂けますか?

“`kotlin
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
)
“`

https://e-words.jp/w/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A.html。

例えば、貨物輸送に使われる金属製の箱もコンテナと呼ばれますが、これは物を入れて運ぶという入れ物の役割をしていますね

あなたが示したコードは、Androidアプリの開発に使われるKotlinというプログラミング言語で書かれています。

このコードは、onCreateViewという関数を定義しています。

関数とは、ある処理をまとめたもので、名前をつけて何度も呼び出すことができます。

この関数は、アプリの画面に表示する部品(ビュー)を作るときに呼び出されます

元記事を表示

【Bingで解説】「onCreateView」と「onViewCreated」の違いって何?

「onCreateView」と「onViewCreated」の違いを小学生も理解できるくらい丁寧に解説して頂けますか?

ーーーーーーーーーーーーーーーーーーーーーー

「onCreateView」と「onViewCreated」の違いを小学生も理解できるくらい丁寧に解説しますね。😊

まず、フラグメントというのは、画面の一部を別の部品として作ることができるものです。

例えば、スマホの画面に時計や天気予報やニュースなどが表示されているとします。それぞれの部分は、フラグメントとして作られています。
フラグメントは、画面の大きさや向きに合わせて、自動的にレイアウトを変えたり、別の画面に移動したりすることができます。

フラグメントは、自分のライフサイクルというものを持っています。ライフサイクルというのは、フラグメントが作られたり、表示されたり、消えたりするときに、どんなことをするかというルールのようなものです。

ライフサイクルには、いくつかの段階があります。

その中で、「onCreateView」と「onViewCreated」は、フラグメントのビューというものを作る段階です。

元記事を表示

【Bingで解説】「アクションバー」「ツールバー」「アプリバー」の違いって何?

「アクションバー」「ツールバー」「アプリバー」

それぞれの定義の違いについて小学生でも理解できるくらい丁寧に解説して頂けますか?

ーーーーーーーーーーーーーーーーーーーーーー

「アクションバー」「ツールバー」「アプリバー」とは、Androidというスマートフォンのシステムで使われるものです。

Androidでは、画面に表示されるものを「アクティビティ」という大きな部品に分けて管理しています。

例えば、電卓のアプリであれば、数字や記号を入力する部分と、計算結果を表示する部分とがそれぞれ「アクティビティ」になります。

これらの「アクティビティ」の上には、アプリの名前やメニューなどを表示するための帯状の部分があります。

これを「アプリバー」と呼びます。

「アプリバー」は、以前はAndroidで「アクションバー」と呼ばれていましたが、デザインが変わって「ツールバー」と呼ばれるようになりました。

「アクションバー」と「ツールバー」は、似ているようで違うものです。その違いは以下の通りです。

「アクションバー」は、Androidのシステムが用意してくれるもので、アプリの中で使える

元記事を表示

5歳児向けの依存性注入から考えるアプリ開発の DI

# 本記事のターゲット

– DI の基本を理解しているが、もう少し理解を深めたい
– アプリ開発(Android/iOS)で DI を採用したことがある。あるいは、これから採用しようとしている

# キーワード

– Dependency Injection
– Service Locator
– Property Injection
– Constructor Injection
– Composition Root

# はじめに

まず、英語版 Wikipedia の [Dependency Injection](https://en.wikipedia.org/wiki/Dependency_injection) の記事に面白い喩え話が載っているので、引用したい。

> Dependency injection for five-year-olds
>
> When you go and get things out of the refrigerator for yourself, you can cause problems. You might leave the do

元記事を表示

【Bingで解説】「Context」って何?

以下の記事を参考に「Context」について小学生でも理解できるくらい
丁寧に解説して頂けますか?

https://developer.android.com/reference/android/content/Context

ーーーーーーーーーーーーーーーーーーーーーー

「Context」とは、Androidというスマートフォンのシステムで使われるものです。

Androidでは、アプリという小さなプログラムを作って、スマートフォンで動かすことができます。
アプリは、色々な機能や情報を提供してくれます。
例えば、カメラのアプリであれば、写真を撮ったり、編集したりすることができます。
地図のアプリであれば、現在地や目的地を調べたり、ナビゲーションをしたりすることができます。

アプリを作るときには、「Context」という特別な道具が必要です。
「Context」とは、アプリがスマートフォンの中でどのような状況にあるかを知るためのものです。
例えば、「Context」を使うと、アプリは以下のようなことができます。

– スマートフォンの画面の大きさや向きを知ることができます。

元記事を表示

【Bingで解説】BottomNavigationViewを使用してFragmentを切り替え

以下のコードの解説を小学生でも理解できるくらい丁寧に解説して頂けますか?
ちなみに、このコードは以下の記事を参考にコードを書きました。

KotlinでBottomNavigationViewを使用してFragmentを切り替え
https://qiita.com/iKimishima/items/d44bb9cc2a1d04548fdd

“`kotlin
class MainActivity : AppCompatActivity() {

private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->

when (item.itemId) {
R.id.navigation_home -> {
supportFragmentManager.beginTransaction()
.replace(R.i

元記事を表示

【Bingで解説】「AppCompatActivity」って何?

「AppCompatActivity」について小学生でも理解できるくらい丁寧に解説して頂けますか?

ーーーーーーーーーーーーーーーーーーーーーー

「AppCompatActivity」とは、Androidというスマートフォンのシステムで使われるものです。

Androidでは、画面に表示されるものを「アクティビティ」という大きな部品に分けて管理しています。

例えば、電卓のアプリであれば、数字や記号を入力する部分と、計算結果を表示する部分とがそれぞれ「アクティビティ」になります。

これらの「アクティビティ」をうまく動かしたり、切り替えたりするためには、「AppCompatActivity」という特別な道具が必要です。

「AppCompatActivity」は、「アクティビティ」に色々な機能を追加することができます。
例えば、画面の上部にある帯状のところに、アプリのタイトルやメニューなどを表示することができます。これを「アクションバー」といいます。

「AppCompatActivity」を使うことで、「アクションバー」を簡単に作ることができます。
「AppCompatActiv

元記事を表示

【Bingで解説】「supportfragmetmanager」って何?

「supportfragmetmanager」について小学生でも理解できるくらい丁寧に解説して頂けますか?

ーーーーーーーーーーーーーーーーーーーーーー

「supportfragmetmanager」は、Androidというスマートフォンのシステムで使われるものです。
Androidでは、画面に表示されるものを「フラグメント」という小さな部品に分けて管理しています。

例えば、天気予報のアプリであれば、日付や地域を選ぶ部分と、天気の詳細を見る部分と、お気に入りの場所を登録する部分などがそれぞれ「フラグメント」になります。
これらの「フラグメント」をうまく動かしたり、切り替えたりするためには、「supportfragmetmanager」という特別な道具が必要です。

「supportfragmetmanager」は、「フラグメント」の状態を記憶したり、追加したり、削除したり、入れ替えたりすることができます。
また、「supportfragmetmanager」は、古いバージョンのAndroidでも使えるようにするために、「supportライブラリ」という補助的なものを使っています。

元記事を表示

OTHERカテゴリの最新記事