聴講メモ:potatotipis #89 @GMO Pepabo, Inc.

ひさびさにLT系イベントの物理参加だった。休憩時間や懇親会では、LTの内容を受けて主催側や参加者の方と話が弾んだり、まさかな出会いもあったりし、現地参加の魅力を感じた。

イベントページ:https://potatotips.connpass.com/event/331173/


Kanagawa.swiftのWebページをIgniteで作ってみた!

@u5_03 さん

ブログ記事:https://ulog.sugiy.com/ignite-kanagawa-swift/

  • Kanagawa.swift のWebページを DocC でなく Ignite で作った
  • Ignite とは:静的Webサイトビルダー、内部的にResultBuilderを使っている
  • SwiftUI や Jetpack Compose と同じ宣言的実装
  • Localize、ID指定でのでリンク遷移を接続、OGP対応など

Android 15 でアクションバー表示時にステータスバーが白くなってしまう問題について

@tonionagauzzi さん

ブログ記事:https://blog.cybozu.io/entry/2024/10/21/080000

  • edge-to-edge 想定がされてなかったため発生
  • ステータスバーの色指定よりレイアウトを変えが方がいいが、ハードル高い
  • 対応方法の2方針、edge-to-edge 無効化は一時凌ぎ

SwiftSyntaxでUIKitとSwiftUIの使用率を完璧に計測できちゃう件について

@dsxsxsxs さん

  • SwiftUI 移行の状況把握を自動解析で
  • Swift Syntax、Inheritance Clause で配列で完璧に撮れる
  • SwiftSyntaxParser で構文取得 → スタート地点になる型リストから継承先が見つからなくなるまで遡り取得
  • Cache+Concurrency で高速化したら、実行時間が2分から8秒になった(むしろこっちが気になった笑)

Figma APIつかってみた

@mattukouta さん

  • Figma API でどのような情報が取れるのか?
  • 認証方法や取得情報など
    • fileKey の使い方
    • 特定ノードの構造、デザインの画像データ
    • ファイル上のリアクション情報
    • バージョン履歴一覧で取得可能
      無料版でここまでできる

Cursorでアプリ創ってみよ

@dokozon0 さん

  • Docs 機能・Composer 機能
  • Docs 機能:対象のURL読み込ませるだけでドキュメント生成
  • Composer 機能:アプリの仕様を入力して複数ファイルを生成する、アーキテクチャの指定も可能
  • SweetPad 使うと Xcode を介さず Cursor から直接ビルドできる


“ちゃんと”アクセシビリティ対応やってみた

tepi さん

  • TalkBack(Voice Over)対応における、Jectpack Compose contentDescription 以外の手法について
  • TalkBack は読み上げてくれるが、コンテキストが欠落し何を指しているのかが分かりづらい
    • 例:レビューの5つ星を「星です」と読むだけでは意味不明
  • semantics:グルーピングし、下位に対するの読み上げを無効化
  • customActions:実行可能なオプションの指定
  • clearAndSetSemantics:読み上げ内容を上書き

Pathのあまり知られてない部分を知る

@yamakentoc さん

  • move(to:)closeSubpath() の正しい理解
  • そもそも subpath とは
  • Path の要素解析:forEach が使える
  • 自己交差で塗りつぶしが効かない場合があり、normalized を使う

KMPプロジェクトでマニュアルDIを使う選択

@_rmakiyama さん

  • DIライブラリの選択肢さまざまだが、DIライブラリを使わない選択肢もある。
  • 外部からの依存が注入できればOK (constructor injection)
  • Kyash での事例
    • すでにDIライブラリ採用しており(Hilt/Swinject)、KMP向けDIライブラリの移行コストが高い
    • 手動でDIしている、ReactorKit を汲んだ MVI like な設計にしている(State/Action/Event)
    • クライアントが要求するインスタンスの公開を責務としている

Universal Linksの実装方法と陥りがちな罠

@kudokai00 さん

  • Universal Links とは
  • Apple CDN から apple-app-site-association ファイルを端末にダウンロード
  • サーバー・アプリ両方で実装が必要
    • サーバー:apple-app-site-associationファイルを用意して特定URLにホスト
    • アプリ:Associated Domains の追加、UIApplicationDelegate メソッドでの起動時処理の実装
    • アドレスバーに直接URLを入力しても Universal Links は機能しない:
    • TestFlight 配布は、すぐに apple-app-site-association が端末ダウンロードされるわけでなくタイムラグがある(1時間ほどで浸透した実例)。
    • 同一ドメインのブラウザ遷移だと Universal Links が機能しない(サブドメインを設定して回避する)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です