Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
運動モチベーション継続のためのiOSアプリ開発
Search
tokizo
January 30, 2024
Technology
0
980
運動モチベーション継続のためのiOSアプリ開発
tokizo
January 30, 2024
Tweet
Share
More Decks by tokizo
See All by tokizo
徐々に増えているSwiftUI Anchor関連API
tokizuoh
1
690
iOS 曜日ランキングが出来上がるまで
tokizuoh
0
2.4k
メインスレッドをブロックさせないためのSwift Concurrencyクイズ
tokizuoh
1
5.4k
Xcode 15 で swift run が遅い
tokizuoh
0
3.7k
モノレポにおける path-filtering利用時でも GitHub ステータスのRequiredを 機能させたい!
tokizuoh
1
1.5k
累積和で配列の処理効率を改善しよう
tokizuoh
0
670
Other Decks in Technology
See All in Technology
TypeScript 6.0で非推奨化されるオプションたち
uhyo
14
4.9k
[CV勉強会@関東 ICCV2025] WoTE: End-to-End Driving with Online Trajectory Evaluation via BEV World Model
shinkyoto
0
330
ABEJA FIRST GUIDE for Software Engineers
abeja
0
3.2k
大規模モノレポの秩序管理 失速しない多言語化フロントエンドの運用 / JSConf JP 2025
shoota
0
350
『星の世界の地図の話: Google Sky MapをAI Agentでよみがえらせる』 - Google Developers DevFest Tokyo 2025
taniiicom
0
250
LINEヤフー バックエンド組織・体制の紹介
lycorptech_jp
PRO
0
850
Moto: Latent Motion Token as the Bridging Language for Learning Robot Manipulation from Videos
peisuke
0
160
Progressive Deliveryで支える!スケールする衛星コンステレーションの地上システム運用 / Ground Station Operation for Scalable Satellite Constellation by Progressive Delivery
iselegant
1
210
事業状況で変化する最適解。進化し続ける開発組織とアーキテクチャ
caddi_eng
1
6.5k
re:Inventにおける製造業のこれまでとこれから
hamadakoji
0
300
メッセージ駆動が可能にする結合の最適化
j5ik2o
9
1.5k
AWS re:Invent 2025 で頻出の 生成 AI サービスをおさらい
komakichi
2
210
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Optimizing for Happiness
mojombo
379
70k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
GitHub's CSS Performance
jonrohan
1032
470k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Producing Creativity
orderedlist
PRO
348
40k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Transcript
運動モチベーション継続のための iOSアプリ開発 id:tokizuoh 2024/1/30 Hatena Engineer Seminar #28 個人開発編 1
自己紹介 • id:tokizuoh • マンガアプリチーム ◦ iOS/Androidアプリエンジニア 2
話すこと • 個人で開発しているアプリの紹介 • 個人開発を始めた経緯 • 個人開発のここが良い! 3
4 アプリの紹介
『今月のキョリ』 • 月ごと・年間の運動した距離を表示する iOSアプリ ◦ 自身の運動不足解消が目的 ◦ 種目問わず運動した距離を伸ばすことに 主眼を置く ◦
公式の『Fitness』アプリには無い機能の ため開発 ◦ 未リリース 5
『今月のキョリ』 • 技術 ◦ Swift, Swift Concurrency, SwiftUI ◦ HealthKit
▪ iPhone, Apple Watchで計測した運動 データを取得する公式のフレームワーク ◦ iOS Deployment Target: 17.0 ▪ iOS 17から登場したSwift Chartsの スクロール系のAPIを使用 6
7 アプリを開発して どのぐらい運動したのか?
運動した距離の比較 • 運動不足だった年と最も運動した年の比較 8
運動した距離の比較 • 運動不足だった年と最も運動した年の比較 9 3倍!!
10 技術的なトピック
ローカライズ 11
ローカライズ 12 • 2023年にリリースされたXcode 15から使えるString Catalogsを使用 ◦ ビルド毎に文字列リテラルのリストアップが行われ、管理が楽に
スクロール可能なグラフ 13 動画
スクロール可能なグラフ 14 • 2023年にリリースされたiOS 17から使えるSwift Chartsの新しいAPI ◦ 今までは公式のAPIだけでは作るのが難しかったグラフの スクロールが簡単に実装できるように •
スクロール関係のAPIの例 ◦ https://developer.apple.com/documentation/swiftui/view/chartscro llposition(initialx:) ◦ https://developer.apple.com/documentation/swiftui/view/chartscro lltargetbehavior(_:)
15 個人開発を始めた経緯
運動が続かなかった過去 • リモートワーク生活で運動不足に • ランニングを始めるも三日坊主 16
なぜ運動をするのか考えた • 運動すると何が良いのか?を考えた • ふと、運動した日の寝付きが良かったことを思い出した ◦ よく眠るために運動をしよう!というモチベーションが生ま れた 17
どのように運動を継続するか • 「よく眠るために運動をしよう!」という気持ちだけでは続 かない ◦ 定量的に目標を設定したい → 運動種別問わず距離を伸ばそう 18
運動した距離 • 公式の『Fitness』アプリでは、運動した距離の 種目問わずの合算が表示されない ◦ → 自分で作ろう! 19 種目別なら合算は表示される 全体では合算は表示されない
散歩 全体
歴代の実装 20 • HealthKitを使い始めるところから始めて、 Swift Charts(iOS 16.0+) などの新しい技術の試し場に
21 個人開発のここが良い!
一から作ることで視野を広げる • 普段の業務では巨人の肩の上で開発をしている ◦ = 先人の積み重ねた仕組みの上で快適に開発をしている ◦ → 改善する側に回るためには、使用技術に対し、 スポットではなく全体を理解し視野を広げる必要がある
• 個人開発でスケール小さく全てを一人で作ることで、 iOSアプリ開発の全体像への理解が深まった 23
運動駆動開発 • 運動しないと表示されるデータが無かったり少なかったり して寂しい → 自ずと運動する 22
新技術の実戦投入の前準備 • Appleの大体のソフトウェアは毎年アップデートが 入るため、継続的なキャッチアップが必要 ◦ 「自分のアプリにはどう使えるだろうか?」という 視点を持ってキャッチアップできる ◦ 業務に導入する前段階として小さなコードベース上で試す ことができる
24
新技術の実戦投入の前準備 • 新技術を個人開発で試すことで自分の庭1を作る・広げる 一助となる ◦ 自分の庭 ▪ > どこに何があるか分かっていて、地図を見なくても安心して 歩いていって活動できる場所。そういう、守備範囲というか、
足場がチーム開発においてもあるとよい。 25 1 hitode909の日記 「チーム開発で活躍するために、自分の庭を作れると良い - hitode909の日記」 https://blog.sushi.money/entry/2020/06/27/114814
おわり • 個人で開発しているアプリの紹介 ◦ → 運動した距離に着目したアプリの紹介 • 個人開発を始めた経緯 ◦ →
運動不足解消のため ◦ → 公式アプリに無い機能が欲しかった • 個人開発のここが良い! ◦ → 運動駆動開発 ◦ → 視野・守備範囲を広げられる 26