2025-01-01から1年間の記事一覧
Defaultsというライブラリを試してみました github.com 新規にプロジェクトを作ってSPMでライブラリを追加します キーの定義と値の取得・保存は下の通りです import Defaults extension Defaults.Keys { static let quality = Key<Double>("quality", default: 0.8) </double>…
Jetpack ComposeとSnapshotを使ったViewModelで画面を構築してみました まずはViewModelなしでボタンを押すと画面の数字が増えるViewを作ってみました import androidx.compose.runtime.setValue import androidx.compose.runtime.getValue class MainActivi…
Thenというライブラリを使ってKotlinのapplyに近い事をしてみました github.com ライブラリはSwift Package Managerで追加します 他にもCocoaPodsにも対応しています Thenの使い方は下の通りです thenというメソッドを呼んでその中でそのオブジェクトに対す…
アプリ起動時の画面の設定であるLaunch Screenについて調べてみました Launch ScreenはInfo.plistに追加して利用します Launch Screen(UILaunchScreen)はiOS14から使えるようになったキーで起動画面の画像や背景色などを設定できます Storyboardほど複雑なこ…
下記事でChatGPTがXcode上のファイルの修正もできるようになったという事で試してみました www.publickey1.jp まずは下URLでデスクトップ版ChatGPTをダウンロードします デスクトップで ChatGPT | OpenAI 起動するとログインを求められるので自分のアカウン…
Combineを使ってViewModelの値を監視してみます 今回はUIKit(Storyboard)を使った処理について記述します まずはViewController用のViewModelを作成します import Combine import Foundation class ViewModel { @Published var count = 0 } 次にStoryboardに…
Swiftで下のようなコードを書いた時にタイトルのようなエラーが出ました let text = String(format: "date: %@", Date()) エラーは案内に従って下のように修正すれば解消します let text = String(format: "date: %@", Date() as CVarArg) エラーの原因です…
SceneDelegateやWindowなどについて改めて調べてみました SceneDelegateはiPadのマルチウィンドウで使われます 具体的にはSplit ViewやSlide overなどの時に活躍します 検証のためにマルチウインドウ対応のアプリを作ってみます 変更自体は簡単でInfo.plist…
アプリを閉じた時に通知をセットする方法について下URLを参考に調べてみました developer.android.com 調べた所、通知セットはMainActivityのonStopが良いようです onPauseでも動くのですが、重い処理は途中で停止される事もあるのでonStopの方が確実そうで…
Androidアプリでバックグラウンド処理を行うためにWorkManagerを試してみました まずはbuild.gradle.ktsにライブラリを追加します implementation("android.arch.work:work-runtime-ktx:1.0.1") 次にWorkerを継承したクラスを作成します doWorkメソッドの中…
UIViewControllerをpresentする時のアニメーションのカスタマイズ法について調べてみました まずはプロジェクトを作ってUIViewControllerを2つ作ります それぞれ真ん中のボタンを押す事で別画面の表示・画面を閉じる事をできるようにします modalPresentatio…
@Stateについて調べてみました @Stateは下のようにView内の変数で利用します struct ContentView: View { @State var test = 0 var body: some View { VStack { Text("\(test)") Button(action: { test += 1 }, label: { Text("Button") }) } .padding() } }…
まずは画面遷移をするためにライブラリを追加します build.gradleに下のようにnavigation-composeを記述します dependencies { implementation("androidx.navigation:navigation-compose:2.8.5") } 下のように画面を2つ作ります @Composable fun Screen1(nav…
AndroidのOS15から追加されたallowCrossUidActivitySwitchFromBelowについて、下サイトを参考に調べてみました 動作の変更点: Android 15 以上をターゲットとするアプリ | Android Developers allowCrossUidActivitySwitchFromBelowはAndroidManifest.xmlのa…
Gemini in Android Studioで何ができるか試してみました 初期設定は下ページを参考にしました Gemini in Android Studio | Android Developers まずはAndroid StudioのView → Tool Windows → Gemini を選択します 選択すると下のような表示が出るのでログイ…