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
970
運動モチベーション継続のためのiOSアプリ開発
tokizo
January 30, 2024
Tweet
Share
More Decks by tokizo
See All by tokizo
徐々に増えているSwiftUI Anchor関連API
tokizuoh
0
15
iOS 曜日ランキングが出来上がるまで
tokizuoh
0
2.4k
メインスレッドをブロックさせないためのSwift Concurrencyクイズ
tokizuoh
1
5.2k
Xcode 15 で swift run が遅い
tokizuoh
0
3.7k
モノレポにおける path-filtering利用時でも GitHub ステータスのRequiredを 機能させたい!
tokizuoh
1
1.5k
累積和で配列の処理効率を改善しよう
tokizuoh
0
660
Other Decks in Technology
See All in Technology
関係性が駆動するアジャイル──GPTに人格を与えたら、対話を通してふりかえりを習慣化できた話
mhlyc
0
140
AIAgentの限界を超え、 現場を動かすWorkflowAgentの設計と実践
miyatakoji
1
160
Access-what? why and how, A11Y for All - Nordic.js 2025
gdomiciano
1
120
ガバメントクラウド(AWS)へのデータ移行戦略の立て方【虎の巻】 / 20251011 Mitsutosi Matsuo
shift_evolve
PRO
2
180
生成AIとM5Stack / M5 Japan Tour 2025 Autumn 東京
you
PRO
0
240
ユーザーの声とAI検証で進める、プロダクトディスカバリー
sansantech
PRO
1
110
Wasmのエコシステムを使った ツール作成方法
askua
0
110
Uncle Bobの「プロフェッショナリズムへの期待」から学ぶプロの覚悟
nakasho
2
100
AWS IoT 超入門 2025
hattori
0
290
なぜAWSを活かしきれないのか?技術と組織への処方箋
nrinetcom
PRO
1
220
ACA でMAGI システムを社内で展開しようとした話
mappie_kochi
1
310
これがLambdaレス時代のChatOpsだ!実例で学ぶAmazon Q Developerカスタムアクション活用法
iwamot
PRO
5
760
Featured
See All Featured
Producing Creativity
orderedlist
PRO
347
40k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Navigating Team Friction
lara
189
15k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
Docker and Python
trallard
46
3.6k
Designing for Performance
lara
610
69k
Mobile First: as difficult as doing things right
swwweet
224
10k
How to train your dragon (web standard)
notwaldorf
96
6.3k
Designing for humans not robots
tammielis
254
26k
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