- 1. 【Kotlin】最近のバージョンアップに関して魅力的な差分まとめ
- 2. 【Android】Obsidianで日本語が太文字にならない件の解決策
- 3. Contextのメモ
- 4. AndroidでSDV(15)
- 5. 【Android】PullToRefreshBoxを使って引っ張って更新機能を実装する
- 6. 【パッケージ紹介】FlutterのアイコンはIconifyも使える
- 7. 新卒時代のXMLをJetpack ComposeのArrangementで再現してみた
- 8. ExpoなしのReact Nativeアプリケーションを作成するためのチュートリアル (windows)
- 9. Flutterの基礎をまとめてみた(3)
- 10. Flutterの基礎をまとめてみた(2)
- 11. Flutterの基礎をまとめてみた(1)
- 12. Android Studio環境構築・Windows
- 13. flutterでapk fileを用いた実機テストを行う
- 14. DataBindingとViewBindingの使い方と使い分け
- 15. android os のスマホで google colaboratory を見たメモ
- 16. adbコマンド
- 17. Jetpack compose Modifierとは?
- 18. 【Android】ComposeでON_PAUSEで発火するイベントを設定する
- 19. Jetpack composeでのバックボタン制御について
- 20. 元Flutter使い、現iOSプログラマが、Compose Multiplatformに入門してみた
【Kotlin】最近のバージョンアップに関して魅力的な差分まとめ
# はじめに
Kotlinも5月に2.0となり、かなり積極的にアップデートしているのが伺えますね。
そんな中で最近のアップデートでは便利な機能や言語仕様の追加など、魅力的なものがより一層多い印象です。
そこで今回は2.0に限らずですが、魅力的に感じた変化や機能を備忘録的にまとめてみようと思います。# その1: コンテキストレシーバー(旧称:コンテキストパラメーター)
コンテキストレシーバーは Kotlin 1.7.0で実験的に導入され、Kotlin 2.0で正式に安定版となりました。“`main.kt
class User(val name: String)context(User)
fun greet() {
println(“Hello, $name!”)
}fun main() {
val user = User(“Alice”)
with(user) {
greet() // 出力: Hello, Alice!
}
}
“`
この例のgreet関数は、Userコンテキスト内でのみ呼び出せるため、withブロ
【Android】Obsidianで日本語が太文字にならない件の解決策
## 事象
Obsidian上で日本語を太文字にしようとしても装飾なしの状態で表示される。
アルファベット表記の場合は問題なし。
【例】
入力:
\*\*Thank you\*\*
\*\*ありがとう\*\*表示:
**Thank You**
ありがとう## 解決策(2024/11/10現在)
#### 1.以下のフォルダを作成する
各自で設定したObsidianフォルダ > .obsidian > snippets#### 2.snippetsフォルダの中に適当なCSSファイルを作成する
#### 3.Obsidianアプリの”設定 > 外観 > CSSスニペット” にある作成したCSSファイルのトグルをオンにする
![Annotium1731209979.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534182/291cd202-42cf-5c51-ee8d-1870261e2d53.jpeg)#### 4.適当なテキストエディタで作成したCSSファイルに以下を追記する
“`
Contextのメモ
DoroidKaigi2024年で発表された「Contextを理解する」の内容を復習をかねてアウトプットする。
### コンテキスト(Context)とは
アプリがアプリ内外の色々な情報や機能を取得、利用するための窓口– 文字列リソースへアクセスする場合
端末の使用言語を取得することができ、それに合わせた文字列を返すことができる。– 通知の作成&表示を行う場合
Cotextを使用してNotificationManagerにアクセスして通知チャンネルや通知の表示を行える。
通知を作成する際に必要なリソースを取得するために使用される。### Contextの種類と使いわけ
Contextを継承しているクラスはたくさんあるけれど2つだけメモする
– ActivityContext:
– Activityのライフサイクルに依存
– Activityの情報が必要な処理Activityの起動、テーマに紐づいたUIの表示– ApplicationContext:
– Workerを利用した通知処理
– データベースへのアクセス間違ったContextを
AndroidでSDV(15)
Android Calendar 2024
https://qiita.com/advent-calendar/2024/android
4日目 AndroidでSDVBMWがパネルOSにAndroidを採用したらしい。
車のDiagTester(Monitor)として、BluetoothでAndroid端末に繋ごうと思う。
それなら、AndroidでSDVできるじゃんってなった。
SDV 一覧
https://qiita.com/kaizen_nagoya/items/49aba886ad208e2aa70f参加Calendarと参加記事一覧
https://qiita.com/kaizen_nagoya/items/d80b8fbac2496df7827f<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words and/or centences in order.
# 自己記事一覧
Qiitaで逆リンクを表示しなくなったような気がする。時々、スマフォで表示するとあらわ
【Android】PullToRefreshBoxを使って引っ張って更新機能を実装する
## はじめに
アプリでよく見る引っ張って更新する機能ですが、Material3のPullToRefreshBox使って引っ張って更新機能を作ってみたいと思います。PullToRefreshBoxの詳しい内容は[こちら](https://developer.android.com/reference/kotlin/androidx/compose/material3/pulltorefresh/package-summary#PullToRefreshBox(kotlin.Boolean,kotlin.Function0,androidx.compose.ui.Modifier,androidx.compose.material3.pulltorefresh.PullToRefreshState,androidx.compose.ui.Alignment,kotlin.Function1,kotlin.Function1))を参照ください。
## PullToRefreshBoxを使って引っ張って更新機能を実装
### PullToRefreshBoxでUIを作成
以下は単純なリ
【パッケージ紹介】FlutterのアイコンはIconifyも使える
![スクリーンショット 2024-11-09 111937.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/844247/2f55001b-ec1a-7038-4288-aba2c37b48da.png)
# 今回紹介するパッケージ
https://pub.dev/packages/iconify_flutter
### install
“`bash
flutter pub add iconify_flutter
“`
### yaml
“`yaml
dependencies:
iconify_flutter: ^0.0.7
“`## Iconifyとは
`Iconify`は、以下のような特徴を持つアイコンセットフレームワーク
`Figma`にプラグインがあるので、知っている人もいるのではないでしょうか?
– 多様なアイコンセットがある:
– 膨大なアイコンセットを混在させて使用できる
– 150,000個以上のオープンソースベクターアイコンが利用可能
– 必要なアイコンのみをロードす
新卒時代のXMLをJetpack ComposeのArrangementで再現してみた
# 目次
– はじめに
– 新卒時代に書いた記事の説明
– JetpackComposeとは
– Arrangementについて
– Weightの制約# はじめに
私は新卒時代、XMLのConstraintLayoutを使ってUIを作る作業には四苦八苦していました。
複雑なUIを複数のサイズが異なる端末で正しく表示する対応が必要でした。
現在、UI作成は苦労したXMLからComposeを利用する流れになりつつあります。# 新卒時代記事の説明
新卒時代の記事では、ConstraintLayoutにおけるChainとWeightの利用方法を説明しました。今回は、この同様のレイアウトをJetpack Composeでどのように再現できるかを見ていきます。[新卒時代に書いた記事はこちらです。](https://qiita.com/zooko/items/9105b6d6a90fb88abc6e)
# JetpackComposeとは
Jetpack Composeは2019年のGoogle I/Oで初めて発表され、2021年7月Jetpack Compose 1.0が正式にリリ
ExpoなしのReact Nativeアプリケーションを作成するためのチュートリアル (windows)
# はじめに
Windows環境下でReact NativeアプリケーションをExpoなしで作成するチュートリアルが見当たらなかったため共有します。
基本的にはReact Native公式のドキュメント([環境構築](https://reactnative.dev/docs/set-up-your-environment), [アプリ作成](https://reactnative.dev/docs/getting-started-without-a-framework))に従います。
改善点や間違い等ありましたらコメントの方を何卒…。
# 対象
1. Windowsユーザ
1. Expoを利用したくない人
1. Androidでデバッグする予定の人
# 環境構築
以下の4つが必要となります。(エディタはお好みで)
| 名称 | バージョン |
|:-:|:-:|
| Node.js | >= 18.0.0 |
| JDK (Java SDK) | 17 (推奨) |
| Android Studio | 最新のもの |
| Android SDK | 34 |
| An
Flutterの基礎をまとめてみた(3)
# Flutterのカウンターアプリについて
次は、Flutterで新しいプロジェクトを作ったときに自動で作られる「カウンターアプリ」について見ていきます。
### カウンターアプリって何?
![スクリーンショット 2024-11-07 14.50.40.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3929117/9be21d2f-81a7-6b6a-6ef6-88a5459f514d.jpeg)カウンターアプリは、ボタンを押すたびに数字が増える、とてもシンプルなアプリです。Flutterを学ぶときに最初に見ることが多いアプリで、どんなふうにアプリが動くかを知るための良い例です。
例えば、このアプリでは画面の中央に大きな数字が表示されています。そして、その下にあるボタンをタップすると、数字が1つずつ増えていきます。こうすることで、Flutterの基本的な画面作りや、ボタンを押したときにどう動くかなどを学ぶことができます。
### カウンターアプリの動き方
Flutterのカウンターアプリで
Flutterの基礎をまとめてみた(2)
![ダウンロード (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3929117/80a01506-ebd3-ac14-4f10-306434ddb46c.png)
# Dartってなに? – Flutterで使われる言語について
Flutterで使うのがDart(ダート)というプログラミング言葉です。Dartはとても簡単で覚えやすく、楽しくアプリを作るために作られた言葉です。ここでは、Dartの特徴を3つに分けて説明して、その後で基本の使い方を見ていきましょう。
## 1. シンプルで使いやすい言葉
Dartはプログラミングを初めてやる人にもわかりやすく作られています。
– **短い時間
Flutterの基礎をまとめてみた(1)
# Flutterってなに?
![ダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3929117/5871ab9e-fb65-3de4-7b24-6faabd324eff.png)## Flutter(フラッター)ってどんなもの?
Flutterは「フラッター」と読み、Google(グーグル)が作った便利なツールです。このツールを使うと、1回だけアプリを作れば、スマホやタブレット、パソコンでも同じアプリを動かすことができます。例えば、1枚の絵を描くだけで、いろんな画面にその絵が表示できる感じです!Flutterを使うと、たくさんのプログラムを書く手間が減って、いろんな機械で動くアプリを一気に作れるます。
### マルチプラットフォーム対応って?
Android Studio環境構築・Windows# はじめに
この記事では、Android Studioの環境構築を手順を追って解説します。細かい手順やスクリーンショットは、Windowsで進めるので、ご了承ください。
### 対象
次のいずれかに当てはまる人を想定して書きました:
– PCの操作もおぼつかないけど、スマホアプリを作りたいんだ!
– Android専用アプリを作るぜ!(IOS向けは今はいらないぜ!)
– Android Studioって評判良いから使いたいぜ!Googleのサポートも手厚いしね!
– 俺は絶対Kotlin + Jetpack ComposeでAndroid開発をする!これは決定事項だ!# Android Studioをインストールする
以下のページにアクセスすると、Android Studioのダウンロードページになっているはずです。
https://developer.android.com/studio
結構デカく「Android Studioをダウンロードする」みたいなボタンがあるはずなので、これを押します。(スクリーンショットを置きたいのですが、どうもこのページはしょっちゅう
flutterでapk fileを用いた実機テストを行う
flutter で android の実機テストを行いたいと思ったときのメモです。
# やりたいこと
flutter をbuildしたapk fileを各個人のandroidにいれてアプリを使えるようにする.
adbも考えましたが手軽なapkにしました。## 環境
flutter 3.24.0
fvm 3.1.4
実機デバイス OPPO Reno5 A
Android version 12## apk fileのbuild
プロジェクト直下(USBでdebugする際に`fvm flutter run`をする場所)
“`
$fvm flutter build apk
“`
これで自動的にリリースbuildされます。c.f.
デバッグモードのAPKを生成
“`
fvm flutter build apk –debug
“`プロファイルモードのAPKを生成
“`
flutter build apk –profile
“`特定のABI(Application Binary Interface)向けのAPKを生成
“`
flutter build apk
DataBindingとViewBindingの使い方と使い分け
# はじめに
既存のプロジェクトにDataBindig/ViewBindingのどちらを適用するか悩んでいましたが、画面によってロジックの複雑さが異なっていたため、使い分けて適用するのがベストかなと思い、使い分けたポイントと使い方について書いていきたいと思います。
そもそも、DataBindingとViewBindingについては簡単に説明すると以下となります。
– DataBinding
2015年に登場し、XMLで定義したレイアウトと、そのレイアウトで使用されるデータモデルの連携をし易くするのを目的として提供されました。双方向バインティングが出来るのが特徴です。
– ViewBinding
2019年に登場し、DataBindingに比べてシンプルかつ軽量な代替手段として提供されました。特に、シンプルなUIとロジックで複雑な双方向バインディングを必要としないケースでのViewの参照方法を簡単にするために設計されています。これから紹介するコードは、ベースとなるプロジェクトが以下となりますので、参考にして頂ければと思います。
https://github.com/highcom/
android os のスマホで google colaboratory を見たメモ
自分が調べた方法では上手くいかなかったので自分の環境で出来た方法を書いておく。
試した環境 デバイス AQUOS 、OS android バージョン13 、ブラウザ google Chrome
自分が調べた時は、スマホのブラウザだけでしか開けないというもの。Chrome で googleドライブにログインして ipynb ファイルを選択して開いても「サポートされていないファイル形式です。」と出て開けない。
そこで、ファイル名の右にある縦三点リーダー「︙」を押し「アプリで開く」を選択で ipynb ファイルを開くことができた。同じようにアプリの googleドライブ からも「アプリで開く」で開くことができた。以上。
adbコマンド
## 🎀 はじめに
(私が)よく使うadbコマンドをまとめます
システムアプリ(プリインストールアプリ)を作成時に使用しました### 端末に接続 / 接続解除
“`
$ adb connect IPアドレス
$ adb disconnect IPアドレス
“`### adb接続しているデバイス一覧
“`
$ adb devices
“`### 端末再起動
“`
$ adb reboot
“`## 🖥️ adbコマンド
adbコマンドを使うためにはUnixシェルにアクセスする必要があります
“`
$ adb shell
“`
もしくは、下記のコマンドの前に`adb shell`をつけてください例
“`
$ adb sell pm disable-user アプリパッケージ名
“`### システムアプリの無効化
“`
$ pm disable-user アプリパッケージ名
“`### システムアプリの有効化
“`
$ pm enable アプリパッケージ名
“`
### システムアプリがどうか
“`
$ dumpsys pac
Jetpack compose Modifierとは?
# 概要
JetpackComposeの`Modifier`について内容を雑にまとめる。# 詳細
`Modifier`は、`Jetpack Compose`においてUIコンポーネントの外観や動作を変更するためのオブジェクト。`Modifier`を使用することで、コンポーネントのレイアウト、スタイル、アニメーション、インタラクションをカスタマイズすることができる。
## 主な特徴
– **関数型のオブジェクト**: `Modifier`は、関数型のオブジェクトであり、チェイン(.で繋げること。いわばメソッドチェーン)することで複数の修飾子を組み合わせて使うことができる
– **UIコンポーネントへの適用**: `Modifier`は、Composeの各UIコンポーネントに対して引数として渡され、特定のスタイルや動作を適用できる## 主な用途
1. **レイアウトの変更**:サイズ、位置、パディング、マージンを変更
2. **スタイリング**: 背景色、ボーダー、影などの視覚的スタイルの設定
3. **インタラクションの処理**: クリック、タップ、ドラッグなどのユーザーイ
【Android】ComposeでON_PAUSEで発火するイベントを設定する
## はじめに
ActivityやFragmentでは、onPauseやonResume等の関数をオーバーライドしてあげれば、Androidのライフサイクルで発火するイベントを設定できます。
Composeで作った画面でもAndroidのライフサイクルを監視してイベント発火するに「LifecycleEventObserver」を使って設定可能なようです。
今回はComposeでAndroidのライフサイクルであるON_PAUSEを監視し、イベントを設定する方法をまとめていきたいと思います。## ComposeでON_PAUSEで発火するイベントを設定する
サンプルコードは以下になります。
“` sample.kt
@Composable
fun MyComposable() {
// Composeが所属するライフサイクルオーナ-を取得
val lifecycleOwner = LocalLifecycleOwner.current// DisposableEffectを使用して副作用を設定
DisposableEffect(lifecycle
Jetpack composeでのバックボタン制御について
# はじめに
今回はJetpackComposeでのバックボタン制御について少し話したいと思います
実装方法自体は依然記事を書いたのでそちらを参照してください
### 本文
さて、今回は話したい内容としてはバックボタン制御の伝播についてです。
コードの中身を見てみると引数で渡しているBool値でenableを切り替えています。
enableをfalseのときはBackHandlerのラムダに記述されたコードは実行されません。
その時にどういった挙動をするかというのがメインの話題になります。
何もみずに直感のみで答えるならAndroid準拠の何も制御してない状態と同じ処理をすると思います。
しかし実際にはそれよりも下のレイヤーで制御をしていた場合そちらを参照します。
ただしここで注意したいのが、特に何も記載しない場合はNavHost,composable(),Scaffoldで強制的にAndroid準拠のものに塗り替えられるということですそのため上記三種類を使う場合はBackHandlerにfalseをわたしてあげないといけません
### さいごに
今回はBackHandlerの制御
元Flutter使い、現iOSプログラマが、Compose Multiplatformに入門してみた
# はじめに
以前Flutterを使っていた経験から、現在はSESとしてiOSプログラマをしている[uehatsu](https://x.com/uehatsu)です。ちょっとCompose Multiplatformをいじる必要が出てきたので、連休を機会にさわり始めました。メモがてらまとめてみたいと思います。
https://www.jetbrains.com/ja-jp/compose-multiplatform/
# 環境構築
公式ホームページ通りにやったところ大きな問題はありませんでした。あえて言うなら以下の点で「あれ?」と思いました。
– Xcode 16.1をインストールした状態ではAndroid Studio上でシミュレータが正しく選べなかったので、Xcode 16.0にしたこと
– kdoctorがAndroid Studioのバージョンを正しく認識してくれなかったこと
– kdoctorが「Android Studio上で`Kotlin Multiplatform Mobile Plugin`をインストールしろ」と言うけど、そんなプラグインはなく`Kotli