2024-01-01から1年間の記事一覧
SwiftUIのForEachなんですがあまり分からずに使っているので調べてみました ForEachですが下のように繰り返しのViewを表示する際に利用します struct ContentView: View { var body: some View { ForEach(1..<6) { i in Text("Item \(i)") }.padding() } } F…
KotlinのJetpack compose試した時にrememberというキーワード出てきたので調べてみました 調べた所、Jetpack composeを保持する時に使うキーワードのようです 今回は手元の環境でrememberを動かして動作を確認してみました まずはプロジェクトを作ってMainAc…
ウィジェットのボタンを押したら特定のActivityを開くような実装をしてみたいと思います まずは新規プロジェクトを作成します 次はウィジェットを追加します 追加後はnew_app_widget.xmlで下のようにボタンを配置します
Xcode 16からAIがコード補完をできる機能が登場しました XcodeではGitHub Copilotも使えるので簡単に補完の性能の比較をしてみました GitHub Copilot単独で試した記事は下のものです llcc.hatenablog.com 比較のため、GitHub CopilotをOFFにします 設定アプ…
SwiftUIでダークモード判定する時などに使う@Environmentについて調べてみました 調査では下記事を参考にしました qiita.com @Environmentの使い方は下の通りです 下ではダークモードかの判定をしています struct ContentView: View { @Environment(\.colorS…
SwiftUIでは下のようにModifier(imageScaleやpaddingなど)を中心にコーディングしていきます struct ContentView: View { var body: some View { VStack { Image(systemName: "globe") .imageScale(.large) .foregroundStyle(.tint) Text("Hello, world!") }…
CocoaPodsを使ってiPhoneアプリを開発していると下のようなエラーが出てシミュレーターで動かせない事があります Could not find module 'SwiftDate' for target 'arm64-apple-ios-simulator'; found: x86_64-apple-ios-simulator, at: /Users/XXX/Library/D…
SwiftUIでif文が使えるのはbuildIfに自動変換されていると聞いたのでbuildIfを見てみました buildIfメソッドはViewBuilderのメソッドで下のようなものになります extension ViewBuilder { public static func buildIf<Content>(_ content: Content?) -> Content? wher</content>…
SwiftUIのマスクを使って色々試してみました 画像素材は下サイトのものを使わせてもらいました フリーテクスチャ素材館/Calkboard(黒板)テクスチャのシームレスパターン4種類(PHOTO) まずは円形に切り抜いてみました struct ContentView: View { var bo…
GitHub CopilotがXcodeを公式をサポートしたようなので試してみました ただBeta Previewsなので今後変更される事が多いことは注意が必要です それとGithub Copilotは事前に契約しておく必要があります github.com GitHubのページのLatest Releaseからdmgファ…
SwiftUIのStyleを使うとデザインの共通化ができるようなので調べてみました Styleの定義方法は下の通りです ButtonStyleに準拠した構造体を作ってmakeBodyメソッドを定義します struct CustomButtonStyle: ButtonStyle { func makeBody(configuration: Confi…
下のスライドが面白かったので実際に自分でも動作を確認してみました TextKit 2 時代の iOS のキーボードとテキスト入力と表示のすべて - Speaker Deck まずはプロジェクトを作って普通にUITextViewを表示してみました class ViewController: UIViewControll…
xcstrings-toolというツールを使うとxcstringsの翻訳データを補完できるようになるらしいので調べてみました github.com 今回はSwiftPackageManagerを使いました CocoaPodsやCarthageは未対応のようです インストールしたらプラグインを追加します プラグイ…
iOS 16で登場したLayout protocolというのを使うと柔軟なレイアウトができるようなので調べてみました 使い方ですが、まずは下のようにCustomLayoutを定義します CustomLayoutはVStackやHStackのように親ビューとして使う事ができます struct CustomLayout: …
SwiftUIでのアニメーションを試してみました まずは画面上にTextを配置します 最初はButtonで試したのですが、自動的にアニメーションが入ってしまうようなのでTextにしました struct TestView: View { var body: some View { Text("Text") } } まずはボタン…
iOS15で登場したUIButton.Configurationを使うとボタンを柔軟にカスタマイズできるようなので調べてみました 通常UIButtonを画面に設置する方法は下の通りです let button = UIButton() button.setTitle("test", for: .normal) button.sizeToFit() button.ce…
iOS18ではホーム画面をカスタマイズできるようになりました カスタマイズすると下のようにホーム画面の色を変える事ができます アイコンの対応方法は下で書いたので、次はウィジェットの対応方法について調べようと思います アプリアイコンをiOS18のホーム画…
iOS18ではホーム画面をカスタマイズできるようになりました カスタマイズ時のアプリアイコンはiOSによって良い感じに色を付けてくれます ただ自分でコントロールできるようなので、その方法も調べてみました テスト用に下のようなシンプルなアイコンを制作し…
Androidで当日の歩数の取得を試してみました 今回は下のドキュメントを参照しました ヘルスコネクトを使ってみる | Android health & fitness | Android Developers 歩数の取得はヘルスコネクトという機能を利用しました こちらを使うと健康系のデータを簡単…
ContentResolverのrequestSyncというメソッドで同期を早くできるという話があったので検証してみました それとrequestSyncはシステムのリソースを多く使うという話もありました、実装する際はその辺りも検証しつつ導入した方が良さそうです 今回はGoogleカレ…
今更ですがAndroid14で通知周りの変更があったので調べてみました。 まずは普通に通知を送ってみます。 下のように新規にプロジェクトを作成します。 まずは下のようにAndroidManifest.xmlに通知に関する行を追加します。 <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> </manifest>
Swift5.5から登場したConcurrencyで並列処理を実現してみました。 まずは下のように一定時間待ってからprintするメソッドを作ります。 func testFunction() async { try? await Task.sleep(nanoseconds: 1_000_000_000) print(1) try? await Task.sleep(nano…