Swift

Programmatic NavigationStack 備考録

これははてなエンジニアアドベントカレンダー2022 37日目の記事です。 2回目の登場 id:yutailang0119 です、おはこんハロチャオ~! 昨日は id:hogashi の aタグで#topにリンクするとページ先頭にスクロールするのは仕様 - hogashi.* でした。 冬休みはあつ…

JSON ArrayをSwift.Rangeでdecodeすると?

Swift.RangeはCodableである、ではencodeフォーマットは? - がんばってなんか書く の続き 疑問 Swift.RangeをJSON encodeした結果は [a, b] となることがわかった。 これはJSON Arrayを使って表現している。 では、[a, b, c] な要素数3以上のArrayに対して…

プログラムでCore Dataをセットアップする without xcdatamodel

Core Dataを使おうと思って調べると、解説のほとんどが .xcdatamodeld ファイルでセットアップを始める。 .xcdatamodeld はグラフィカルに構造を表示し、便利な反面、裏側の仕組みを理解しづらい、GitHubでレビューしづらいなどのコストは無視できない。 さ…

iOSDC Japan 2022にプロポーザル提出した -> 採択された #iosdc

fortee.jp 過去にも採択してもらってトーク枠をもらったけど、隔年の周期っぽい。 xcrun Essentials by Yutaro Muta | トーク | iOSDC Japan 2020 - fortee.jp weak vs unowned by Yutaro Muta | トーク | iOSDC Japan 2018 #iosdc - fortee.jp 提出したプロ…

【2022年】Xcode/Apple Platform/Swiftアップデートの歩き方

先にまとめ Xcode Xcode Release Notes Apple Platform ‪Technologies‬ Documentation API diff Tech Talks Swift apple/swift CHANGELOG apple/swift-package-manager CHANGELOG swift.org Blog swift-evolution apple/swift-evolution proposals Swift For…

Swiftのenumはコンパイルが通れば、本当に安全? (CGImagePropertyOrientation)

CGImagePropertyOrientation -> UIImage.Orientation に変換するコードを、ドキュメントを基に以下のように実装した。 extension UIImage.Orientation { init(_ cgOrientation: CGImagePropertyOrientation) { switch cgOrientation { case .up: self = .up …

Xcodeテーマを自作しませんか? #はてなエンジニアアドベントカレンダー2021

これははてなエンジニアアドベントカレンダー2021 6日目の記事です。 昨日は id:mizdra の Babel をリファクタリングツールとして使う でした。 はてなエンジニアでのアドベントカレンダー、2021年も盛り上がっております!!! 本題 自分はiOS、macOSにDark…

SwiftUI.AsyncImageのBackportを作っている

github.com iOS 15/macOS 12/tvOS 15/watchOS 8から使えるようになる予定の SwiftUI.AsyncImage が便利で早く使いたいので、SwiftUIが使えるプラットフォーム全てで使えるように、Backportライブラリを作ってみています。 はてなの同僚たちに協力してもらっ…

PrivateリポジトリのSwiftPMをCIから使う

最近はモバイルアプリのリポジトリのプロジェクト整理として、これまではPrivateなPodSpecsやgit submoduleを使って解決していた依存を置き換えたり、単体での取り回しが効く程度にリポジトリを分けたりなどをしている。 iOSアプリならPackage.swift を用意…

iOS/iPadOSアプリ PixelaUI 0.1.0 をリリースしました #pixela

PixelaUIYutaro Mutaユーティリティ無料apps.apple.com これはなに? Pixela のiOS/iPadOS向けクライアントアプリケーションです。 アプリ名は、後述する使用frameworkである SwiftUI ともかけています。 サポートOSバージョンは iOS/iPadOS 13.2以上 です。…

Swift Playgroundsで快適なSwiftUIコーディング環境を #SwiftAdventCalendar

これは Swift Advent Calendar 2019 24日目のエントリーです。 昨日23日は Moto0124 さんの CGAffineTransformを知る でした。 はてなエンジニアAdvent Calendar 2019での Deletable Table with TextField on SwiftUI に続いて、今回も SwiftUI ネタです。 …

Deletable Table with TextField on SwiftUI #はてなエンジニアAdventCalendar

これは はてなエンジニアAdvent Calendar 2019 1日目のエントリーです。 今年のAdvent Calendarでは初日を担当します id:yutailang0119 です! 去年はツール作りの話を書きましたが、今年は先日のアンケート記事でも言及していたSwiftUIの話です。 お題 Swif…

ProgressSpinnerKitというSwift CLI用ライブラリを作った

github.com 発端 yutailang0119.hatenablog.com というエントリで xcopen というCLIツールを作っている話をしたが、Swift製CLI向けのライブラリに、いわゆるSpinnerがなく、困っていた。 swift-package-manager/Utilityには ProgressBarは存在するが、パーセ…

xcopenというSwift製CLIを作った

GW暇だったので、Swift製CLIを作ってた。 github.com 現状あるのは open と list というコマンドだけだけど、とりあえず実用を始めることができるレベルにはなったかなと思ったので、公開した。 動機 構想自体は3ヶ月くらい前からあったが、SwiftPM Utility…