【iPhoneアプリ開発集中講座】タイマーアプリのカスタマイズ

【iPhoneアプリ開発集中講座】タイマーアプリのカスタマイズのアイキャッチ

このページにはプロモーションが含まれています。

目次
プログラミング言語の人気オンラインコース

はじめに

こんにちは!はなまるです。

私は最近、iPhoneアプリ開発の勉強を始めました。

「iPhoneアプリ開発集中講座」という書籍のサンプルをもとに

初心者である私がカスタマイズしてみました。

書籍のご紹介

私が勉強に使用した書籍は、こちらです。

「SwiftUI対応 たった2日でマスターできる iPhoneアプリ開発集中講座 Xcode 15/iOS 17/Swift 5.9 対応」

藤治仁(著)・小林加奈子(著)・小林由憲(著)

iPhoneアプリ開発には、Macが必要になります。

Xcodeで開発します。

サンプルアプリ6本を手を動かして開発できます。

手順がていねいに解説されており、わかりやすかったです。

今まで理解が難しかったことも噛み砕いた表現のおかげで理解が深まりました。

さらに随所に学習者への励ましがあり、細やかな配慮を感じました。

はなまる

iPhoneアプリ開発
初心者におすすめです!

カスタマイズした内容

さて、早速本題に入ります。

まずはサンプルの動きからご覧ください。

アプリの動作確認の動画
STEP
秒数を選択して設定する
STEP
スタートボタンでカウントダウンを始める
STEP
カウントダウンが終わったら終了を知らせるアラートが表示される

続いて私が行なったカスタマイズはこちらです。

アプリの動作確認の動画
STEP
カウントダウンに合わせて音が鳴る
STEP
カウントダウンが終了したら音が鳴る

このように音が鳴るカスタマイズをしました。

追加したコード

STEP
音源の準備

Assets.xcassetsにダウンロードするなどして用意した音源ファイルを取り込みます。

音源を取り込む画面の画像
STEP
音を鳴らす機能を追加するファイルを作る

今回私は「alertSoundPlayer.swift」という名前で音を鳴らすファイルを用意しました。

import UIKit
import AVFoundation

class alertSoundPlayer: NSObject {
    let countDownData = NSDataAsset(name: "countDownSound")!.data
    
    var countDownPlayer:AVAudioPlayer!
    
    func countDownPlay(){
        do{
            countDownPlayer = try AVAudioPlayer(data: countDownData)
            
            countDownPlayer.play()
        } catch {
            print("アラートでエラーが発生しました")
        }
    }
    
    let endData = NSDataAsset(name: "endSound")!.data
    
    var endPlayer:AVAudioPlayer!
    func endPlay(){
        do{
            endPlayer = try AVAudioPlayer(data: endData)
            
            endPlayer.play()
        } catch {
            print("アラートでエラーが発生しました")
        }
    }
    
}
STEP
ContentView.swiftを編集
struct ContentView: View {
    let soundPlayer = alertSoundPlayer()

インスタンス変数を準備します。

func endSound(){
        if timerValue - count <= 0{
            soundPlayer.endPlay()
        }
    }

タイマー終了時の音を鳴らす関数を作成します。

    func startTimer(){
        if let timerHandler{
            if timerHandler.isValid == true{
                return
            }
        }
        if timerValue - count <= 0 {
            count = 0
        }
        
        timerHandler = Timer.scheduledTimer(withTimeInterval: 1, repeats: true){ _ in
            countDownTimer()
            soundPlayer.countDownPlay() //追加
            endSound() //追加
            
        }
    }

カウントダウンの音と終了時の音が鳴るように追加します。

以上で、今回のカスタマイズは完了です。

おわりに

私がカスタマイズを行なったサンプルはこちらの書籍で学べます。

参考になれば幸いです。

ここまでお読みいただきありがとうございました。

今日もはなまる🌸

よかったらシェアしてください!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

フリーランスとしてWeb制作をしています。
Webアプリ開発・セキュリティの勉強中です。
学んだことをアウトプットしてみたいと思い、ブログでの発信に挑戦中!
[保有資格:基本情報技術者]

コメント

コメントする

CAPTCHA


目次