推しアイデア
シンプルなベルアプリだが、BARで使用することにターゲットを特化。
シンプルなベルアプリだが、BARで使用することにターゲットを特化。
行きつけのBARにあるテキーラベルをAppleWatchから押せたら面白くね???と思って実装。
Swift UI iOS/Watch OSの両方を実装
ゲームバーSAVE https://twitter.com/bar_save_/ https://www.instagram.com/save_gamebar/
Swift 5 Xcode 14.2
Main部を下記のように実装
iOSの場合import SwiftUI import AVFAudio @main struct Tequila_BellApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate var body: some Scene { WindowGroup { ContentView() } } } class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { // Get the singleton instance. let audioSession = AVAudioSession.sharedInstance() do { // Set the audio session category, mode, and options. try audioSession.setCategory(.playback, mode: .moviePlayback, options: []) } catch { print("Failed to set audio session category.") } // Other post-launch configuration. return true } }
watchはAppDelegateがなさそうだったので、Viewの方からいじってみた。 Viewで使いまわせるようにfuncのswiftファイルを作成
watchの場合import Foundation import AVFAudio func setAudioSession(){ let audioSession = AVAudioSession.sharedInstance() do { // カテゴリの設定 try audioSession.setCategory(.playback, mode: .moviePlayback, options: []) // AVAudioSessionの有効化 try audioSession.setActive(true) } catch { print(error) } }
NavigationStackに新規作成したViewを追加していくだけ *iOS16.0~ でしか動作しないので注意
ContentView.swiftimport SwiftUI struct ContentView: View { var body: some View { TabView { NavigationStack { defaultTequilaBell() } NavigationStack { realTequilaBell() } }.tabViewStyle(.page) } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }