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
860
運動モチベーション継続のためのiOSアプリ開発
tokizo
January 30, 2024
Tweet
Share
More Decks by tokizo
See All by tokizo
iOS 曜日ランキングが出来上がるまで
tokizuoh
0
2k
メインスレッドをブロックさせないためのSwift Concurrencyクイズ
tokizuoh
1
4.3k
Xcode 15 で swift run が遅い
tokizuoh
0
3.6k
モノレポにおける path-filtering利用時でも GitHub ステータスのRequiredを 機能させたい!
tokizuoh
1
1.4k
累積和で配列の処理効率を改善しよう
tokizuoh
0
570
Other Decks in Technology
See All in Technology
The 5 Obstacles to High-Performing Teams
mdalmijn
0
270
Platform Engineeringは自由のめまい
nwiizo
4
1.9k
MC906491 を見据えた Microsoft Entra Connect アップグレード対応
tamaiyutaro
1
480
エンジニアのためのドキュメント力基礎講座〜構造化思考から始めよう〜(2025/02/15jbug広島#15発表資料)
yasuoyasuo
15
5.5k
FastConnect の冗長性
ocise
1
9.6k
家電アプリ共通PF "Linova" のAPI利用とPostman活用事例ご紹介
yukiogawa
0
130
SCSAから学ぶセキュリティ管理
masakamayama
0
140
RSNA2024振り返り
nanachi
0
500
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
460
Postmanを使いこなす!2025年ぜひとも押さえておきたいPostmanの10の機能
nagix
2
120
Bounded Context: Problem or Solution?
ewolff
1
210
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
740
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Visualization
eitanlees
146
15k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Rails Girls Zürich Keynote
gr2m
94
13k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
How to train your dragon (web standard)
notwaldorf
90
5.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.4k
GitHub's CSS Performance
jonrohan
1030
460k
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