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
930
運動モチベーション継続のためのiOSアプリ開発
tokizo
January 30, 2024
Tweet
Share
More Decks by tokizo
See All by tokizo
iOS 曜日ランキングが出来上がるまで
tokizuoh
0
2.3k
メインスレッドをブロックさせないためのSwift Concurrencyクイズ
tokizuoh
1
4.9k
Xcode 15 で swift run が遅い
tokizuoh
0
3.7k
モノレポにおける path-filtering利用時でも GitHub ステータスのRequiredを 機能させたい!
tokizuoh
1
1.4k
累積和で配列の処理効率を改善しよう
tokizuoh
0
620
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile for engineer
hr01
1
33k
作曲家がボカロを使うようにPdMはAIを使え
itotaxi
0
390
Fabric + Databricks 2025.6 の最新情報ピックアップ
ryomaru0825
1
160
WordPressから ヘッドレスCMSへ! Storyblokへの移行プロセス
nyata
0
340
LangSmith×Webhook連携で実現するプロンプトドリブンCI/CD
sergicalsix
1
150
ビズリーチが挑む メトリクスを活用した技術的負債の解消 / dev-productivity-con2025
visional_engineering_and_design
0
200
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
4
1.6k
解析の定理証明実践@Lean 4
dec9ue
1
200
Geminiとv0による高速プロトタイピング
shinya337
0
200
自律的なスケーリング手法FASTにおけるVPoEとしてのアカウンタビリティ / dev-productivity-con-2025
yoshikiiida
0
540
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
0
450
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
220
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Large-scale JavaScript Application Architecture
addyosmani
512
110k
GraphQLとの向き合い方2022年版
quramy
49
14k
Fireside Chat
paigeccino
37
3.5k
Six Lessons from altMBA
skipperchong
28
3.9k
Into the Great Unknown - MozCon
thekraken
39
1.9k
Unsuck your backbone
ammeep
671
58k
Code Reviewing Like a Champion
maltzj
524
40k
Embracing the Ebb and Flow
colly
86
4.7k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Scaling GitHub
holman
459
140k
BBQ
matthewcrist
89
9.7k
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