Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
swiftでメトロノーム作成中 / WIP metronome of swift
Search
akrolayer
September 07, 2020
Programming
450
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
swiftでメトロノーム作成中 / WIP metronome of swift
akrolayer
September 07, 2020
More Decks by akrolayer
See All by akrolayer
最近読んだ本の話
akrolayer
0
190
LTのモチベーション
akrolayer
1
810
よく使うキーって何?
akrolayer
1
270
史上最強の哲学入門の紹介
akrolayer
0
310
13歳からのアート思考の紹介 / art thinking from 13
akrolayer
0
260
老後貯金と今の幸せ / Hump saving and Now Hapiness
akrolayer
0
210
感情のカテゴライズ / Categorize of emotion
akrolayer
0
210
不安とは / What is Vague anxiety
akrolayer
0
320
LT説明会 / Introduce to LT
akrolayer
0
170
Other Decks in Programming
See All in Programming
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
120
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
1k
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
230
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
810
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
380
SREの越境 / SRE Collaboration
y0hgi
2
290
すこし踏み込む CancellationToken
htkym
2
1.5k
FreeBSDでZabbixを動かす
kenkino
0
340
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
370
Agents on Rails - Rails at Scale 2026
irinanazarova
0
310
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.2k
Featured
See All Featured
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
550
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
860
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
470
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
520
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
380
Transcript
Swiftでメトロノーム作成中 推しの技術LT
What are you like? • ごまなつ(@akrolayer) • 機器操作のWindowsアプリを作ってます(C#,
.NET) • 趣味:TCG, ボードゲーム, eスポーツ観戦, AC音ゲー(メインはDDR)
今日話すこと • 個人開発しているSwift アプリについて ◦ 初学者がやってみたこと ◦ 考えの変遷 ◦ 詰まっていること
None
音ゲーやっていて嬉しいこと
新曲が追加された!!
BPM230
・・・どのくらいの速さだっけ?
BPMとは • Beat Per Minite(1分間に何拍打てるか) ◦ BPM60が分かりやすい ▪ 1分間に60回=1秒の速さ
• 日常的に聞くのは大体150まで ◦ 200なんて速すぎて聞かない
メトロノームを作ってみる • Swiftを使ってみることにした • 60÷BPMのタイミングで音を鳴らすことによってメトロノー ムを作成した
次に思ったこと • BPM236の12分は4分だとBPMいくつ? ◦ このような変換がしたいことがある • 音ゲーには、12分、24分、48分が存在する ◦ 計算では3連符を表すことができないため
▪ BPMで計算する ▪ ×3/4すれば変換できる
次に思ったこと • BPMキープする練習、吹奏楽部のときやったな・・・ ◦ 一小節だけ鳴らして、その後音を消し正しいタイミン グだと思った時にどのくらいずれるか • この機能をつけるのが大変だった
計算誤差対策 • Decimal型にする ◦ SwiftのDecimalに、floor(), ceil(), Round()がない ◦ doubleに変換して掛けて割って強制的に丸める
テストを書いてみる • UITest ◦ ボタンの存在確認、Enable・Unable確認 ◦ 計算結果表示ラベル確認 • UnitTest
◦ BPM計算部分のテスト、正しいタイミング計算のテスト
タイミング計算が合わない・・・ • せっかくDecimalにしたのに、doubleに変換する時点で誤 差を許容してしまう ◦ もっといい方法があるのでは? • 処理時間の問題? ◦
処理時間はきわめて短いと思われるが、小数点以下 の秒数を表示している ▪ 小数点以下は1桁表示に変更 ▪ 誤差が0.3秒前後と発覚したので、0.3秒引く
C#.NETとSwift • どちらも、GUIを作成するときデザイン画面でボタン・ラベ ルなどのパーツを配置して、そのボタンの処理を書いて いく ◦ C#.NET経験者としては、似ていてやりやすかった
まとめ • 初学者がSwiftでアプリを作成してみた ◦ 音ゲーマーに役立つものを目指す • 計算誤差を解決したい ◦ つい先ほどNSDecimalNumberHandlerを発見・・・