なんか作っていきますよ
前回に引き続きなんかつくっていくなどをしていこうと思います。後編にしたけども完全に網羅しているわけではないので抜けは多かれ少なかれあるかもしれない。もともと自分の興味があるとこだけかいつまんでやっているんで仕方ないね。そんじゃ、やっていきます。
books.apple.com今回もこのテキストを利用してなんやかんややっていきます。
元素クイズアプリつくったよ
とりあえず僕の苦手とするレイアウト関連の練習ができてよかった。
クイズといいながらコードがこんななのでランダム性が何一つないです。
@IBAction func gotoNextElement(_ sender: Any) { currentElementIndex += 1 if currentElementIndex >= elementList.count{ currentElementIndex = 0 } updateElement() }
ランダムにして、スコア機能追加としたらGitHubになげるかも。ただあんまりやる気が起きない。
動物鳴き声アプリつくったよ
個人的に音の出し方気になってたからやってみたけど自分で書くことはなかった……。
import Foundation import AudioToolbox class SimpleSound { private var soundID: SystemSoundID = 0 public init(named name: String) { if let soundURL = soundURL(forName: name) { let status = AudioServicesCreateSystemSoundID(soundURL as CFURL, &soundID) if status != noErr { print("Unable to create sound at URL: '\(name)'") soundID = 0 } } } public func play() { if soundID != 0 { AudioServicesPlaySystemSound(soundID) } } private func soundURL(forName name: String) -> URL? { let fileExtensions = ["m4a", "wav", "mp3", "aac", "adts", "aif", "aiff", "aifc", "caf", "mp4"] for fileExtention in fileExtensions { if let soundURL = Bundle.main.url(forResource: name, withExtension: fileExtention) { return soundURL } } print("Unable to find sound file with name '\(name)'") return nil } deinit { if soundID != 0 { AudioServicesDisposeSystemSoundID(soundID) } } }
AudioToolboxtってのが標準でついてるっぽいですね。
参考
AudioToolbox | Apple Developer Documentation
ジャンケンアプリつくったよ
最終課題がジャンケンかなんかよくわからないミームメーカだったのでジャンケンを作ってみることにした。ミームメーカの方はまじでどういうアプリなのか分からなかった……。
GameplayKitっての使えばゲーム性あるやつは比較的楽に実装できるらしい。今回はランダムのやつに利用しただけなんであんまり使いこなせてないけども……。
参考
GameplayKit | Apple Developer Documentation
んで、とりあえず作ったジャンケンアプリの方はGitHubにぶん投げておきます。久しぶりのGitHubにコードを投下。
GitHub - Andou666/JankenApp
色々と酷いところあるけど、以前に作ったジャンケンアプリよりだいぶましになっているんで許してほしい。
以前作ったジャンケンアプリもどき
Xcodeを触ってみたという話 - コミュ障だから明日が僕らをよんだって返事もろくにしなかった
完走した感想
前半がプロジェクトファイルとか丁寧に用意してあったから、後半もあのペースでいけるだろうとか思ってたら後半はコードを一から書くながれだったんで夏休み終わり間際に宿題を終わらせる人みたいな感覚に陥った。一気にもりっとやるものではない。とはいっても、シングルビューのアプリが中心なんで慣れれば早く終わるレベルだとは思いますが……。
んで、テキストの最後の方に次の方針みたいのあるんだけど、僕が今気になっているのはアニメーションとか演出周りのライブラリなんですよね。なんかいいものないかな。
おわり