Tequila Bell-テキーラベル-

https://github.com/TakeruYufune/tequilaBellApp

Swift

画像をTapするとベルが鳴る! AppleWatch対応!

どりー_ハックツ

みきどーざん

推しアイデア

シンプルなベルアプリだが、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

v1.0

  • 画像Tapでベルの音を鳴らす。
  • マナーモード/消音モードでも音が鳴るように実装

マナーモードでも音が鳴るように実装するための処理

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) } }

v1.1.0

  • ベルの種類を増やした
    • TabViewの追加
    • ベル画像を追加

TabViewを増やす処理

NavigationStackに新規作成したViewを追加していくだけ *iOS16.0~ でしか動作しないので注意

ContentView.swift
import 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() } }

どりー_ハックツ

@Friedrich_buryu