Chart がきた
iOS には今まで標準ライブラリでチャートを表示させる方法がなく、外部ライブラリに依存しっぱなしだったのですがとうとう Swift にもチャートライブラリが実装されました。
正直、機能としてはまだまだ足りないところがあるのですが標準機能として実装されるのはありがたいですね。
今回はCreating a chart using Swift Chartsを読みながら、SwiftUI でチャートを実装させるための方法を学んでいこうと思います。
About 2 min
iOS には今まで標準ライブラリでチャートを表示させる方法がなく、外部ライブラリに依存しっぱなしだったのですがとうとう Swift にもチャートライブラリが実装されました。
正直、機能としてはまだまだ足りないところがあるのですが標準機能として実装されるのはありがたいですね。
今回はCreating a chart using Swift Chartsを読みながら、SwiftUI でチャートを実装させるための方法を学んでいこうと思います。
SwiftUI ではAppDelegate
とSceneDelegate
がないので@UIApplicationDelegateAdaptor
を使って対応する。
こうすると今までと同じようにAppDelegate
とSceneDelegate
が使えます。
@main
struct mainApp: SwiftUI.App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
class AppDelegate: NSObject, UIApplicationDelegate, UIWindowSceneDelegate {
func application(
_ application: UIApplication,
configurationForConnecting connectingSceneSession: UISceneSession,
options: UIScene.ConnectionOptions
) -> UISceneConfiguration {
let config = UISceneConfiguration(
name: nil,
sessionRole: connectingSceneSession.role
)
config.delegateClass = AppDelegate.self
return config
}
}
Introspect は SwiftUI のコンポーネントの裏に UIKit がいることを利用して SwiftUI のコードでは直接カスタマイズできないコンポーネントのかゆいところに手を届かせるためのライブラリです。
SwiftUI でScrollView
にはrefreshable
が効かないのですが、Introspect を使えば効くようにできます。
大前提として、秘密鍵をファイルにそのまま平文で書くことは全く推奨されません。
そのファイルが洩れれば、即座にセキュリティが崩壊することになるからです。
一般的には.env
などで対応することが多いと思うのですが、Xcode にはそんな嬉しい機能がありません。
正確には起動時に実行されるスキーマを変更すれば環境変数を設定することができるのですが、それをしても秘密鍵が書き込まれるのが*.swift
になるか*.xcodeproj
になるかの違いしかないので意味がありません。