- 1. Android Notification
- 2. .NET MAUI 環境構築に四苦八苦したときの備忘録
- 3. 【Android】gradleに設定したライブラリはどこから取得されるのか
- 4. 【自分用メモ】「setContentView(R.layout.activity_main)」は「家の全体の設計書」
- 5. 【Bingで解説】「android:ems」って何?
- 6. 【Tips】「Design」で配置せずに「Code」で直接書こう【Android】
- 7. 【Bingで解説】「Theme.MaterialComponents.DayNight.NoActionBar」と「Theme.MaterialComponents.DayNight.NoActionBar.Bridge」の違いって何?
- 8. 【Bingで解説】「@SuppressLint」って何?
- 9. Update this project to use a newer compileSdk of at least , for example 解決方法
- 10. 【Bingで解説】「container」って何?
- 11. 【Bingで解説】「onCreateView」と「onViewCreated」の違いって何?
- 12. 【Bingで解説】「アクションバー」「ツールバー」「アプリバー」の違いって何?
- 13. 5歳児向けの依存性注入から考えるアプリ開発の DI
- 14. 【Bingで解説】「Context」って何?
- 15. 【Bingで解説】BottomNavigationViewを使用してFragmentを切り替え
- 16. 【Bingで解説】「AppCompatActivity」って何?
- 17. 【Bingで解説】「supportfragmetmanager」って何?
- 18. 【最新】Unity でiOS, Android バイブレーションを簡単に共通化!Nice vibration, Feelを使って手軽に!
- 19. 【Android】画面回転後、画面を強制的に更新する
- 20. 【バグ日記】EditTextをLiveDataで持つむずかしさと立ち向かった
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=vswinhttps://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ライブラリ」という補助的なものを使っています。
【最新】Unity でiOS, Android バイブレーションを簡単に共通化!Nice vibration, Feelを使って手軽に!
Unityで人気のアセット、Nice Vibration(Feelに統合された)のプリセットバイブレーション一覧がこちら。
これらのメソッドを使うだけでいい感じになる。
“`
public virtual void SelectionButton()
{
HapticPatterns.PlayPreset(HapticPatterns.PresetType.Selection);
}public virtual void SuccessButton()
{
HapticPatterns.PlayPreset(HapticPatterns.PresetType.Success);
}public virtual void WarningButton()
{
HapticPatterns.PlayPreset(HapticPatterns.PresetType.Warning);
}public virtual void FailureButton(
【Android】画面回転後、画面を強制的に更新する
“`Kotlin
fragmentManager?.beginTransaction()
?.detach(this)
?.attach(this)
?.commit()
“`
【バグ日記】EditTextをLiveDataで持つむずかしさと立ち向かった
# この記事は
業務で少しつまづいたのでまとめます。
今更AndroidView&LiveDataの記事なんて誰も読まないかもしれませんが、これは私の知見としての備忘録というか、バグと戦った証というか。バグ日記(?)です。# 概要
[仕様]
とある画面にEditTextが配置されています。
その画面に遷移するとRoomから永続化されたテキスト情報を取得し、EditText上に表示させます。
EditText上でテキストを編集し、保存ボタンを押すと、書き換えられた情報が永続化されます。以上の仕様を踏まえて大体こんな感じのコードを書きました。
“`kotlin
// === Fragment ===override fun onViewCreated() {
viewModel.currentInputText.observe(viewLifecycleOwner) {
binding.editText.setText(it)
}binding.editText.addTextChangedListener(
af