運動モチベーション継続のためのiOSアプリ開発
by
tokizo
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
運動モチベーション継続のための iOSアプリ開発 id:tokizuoh 2024/1/30 Hatena Engineer Seminar #28 個人開発編 1
Slide 2
Slide 2 text
自己紹介 ● id:tokizuoh ● マンガアプリチーム ○ iOS/Androidアプリエンジニア 2
Slide 3
Slide 3 text
話すこと ● 個人で開発しているアプリの紹介 ● 個人開発を始めた経緯 ● 個人開発のここが良い! 3
Slide 4
Slide 4 text
4 アプリの紹介
Slide 5
Slide 5 text
『今月のキョリ』 ● 月ごと・年間の運動した距離を表示する iOSアプリ ○ 自身の運動不足解消が目的 ○ 種目問わず運動した距離を伸ばすことに 主眼を置く ○ 公式の『Fitness』アプリには無い機能の ため開発 ○ 未リリース 5
Slide 6
Slide 6 text
『今月のキョリ』 ● 技術 ○ Swift, Swift Concurrency, SwiftUI ○ HealthKit ■ iPhone, Apple Watchで計測した運動 データを取得する公式のフレームワーク ○ iOS Deployment Target: 17.0 ■ iOS 17から登場したSwift Chartsの スクロール系のAPIを使用 6
Slide 7
Slide 7 text
7 アプリを開発して どのぐらい運動したのか?
Slide 8
Slide 8 text
運動した距離の比較 ● 運動不足だった年と最も運動した年の比較 8
Slide 9
Slide 9 text
運動した距離の比較 ● 運動不足だった年と最も運動した年の比較 9 3倍!!
Slide 10
Slide 10 text
10 技術的なトピック
Slide 11
Slide 11 text
ローカライズ 11
Slide 12
Slide 12 text
ローカライズ 12 ● 2023年にリリースされたXcode 15から使えるString Catalogsを使用 ○ ビルド毎に文字列リテラルのリストアップが行われ、管理が楽に
Slide 13
Slide 13 text
スクロール可能なグラフ 13 動画
Slide 14
Slide 14 text
スクロール可能なグラフ 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(_:)
Slide 15
Slide 15 text
15 個人開発を始めた経緯
Slide 16
Slide 16 text
運動が続かなかった過去 ● リモートワーク生活で運動不足に ● ランニングを始めるも三日坊主 16
Slide 17
Slide 17 text
なぜ運動をするのか考えた ● 運動すると何が良いのか?を考えた ● ふと、運動した日の寝付きが良かったことを思い出した ○ よく眠るために運動をしよう!というモチベーションが生ま れた 17
Slide 18
Slide 18 text
どのように運動を継続するか ● 「よく眠るために運動をしよう!」という気持ちだけでは続 かない ○ 定量的に目標を設定したい → 運動種別問わず距離を伸ばそう 18
Slide 19
Slide 19 text
運動した距離 ● 公式の『Fitness』アプリでは、運動した距離の 種目問わずの合算が表示されない ○ → 自分で作ろう! 19 種目別なら合算は表示される 全体では合算は表示されない 散歩 全体
Slide 20
Slide 20 text
歴代の実装 20 ● HealthKitを使い始めるところから始めて、 Swift Charts(iOS 16.0+) などの新しい技術の試し場に
Slide 21
Slide 21 text
21 個人開発のここが良い!
Slide 22
Slide 22 text
一から作ることで視野を広げる ● 普段の業務では巨人の肩の上で開発をしている ○ = 先人の積み重ねた仕組みの上で快適に開発をしている ○ → 改善する側に回るためには、使用技術に対し、 スポットではなく全体を理解し視野を広げる必要がある ● 個人開発でスケール小さく全てを一人で作ることで、 iOSアプリ開発の全体像への理解が深まった 23
Slide 23
Slide 23 text
運動駆動開発 ● 運動しないと表示されるデータが無かったり少なかったり して寂しい → 自ずと運動する 22
Slide 24
Slide 24 text
新技術の実戦投入の前準備 ● Appleの大体のソフトウェアは毎年アップデートが 入るため、継続的なキャッチアップが必要 ○ 「自分のアプリにはどう使えるだろうか?」という 視点を持ってキャッチアップできる ○ 業務に導入する前段階として小さなコードベース上で試す ことができる 24
Slide 25
Slide 25 text
新技術の実戦投入の前準備 ● 新技術を個人開発で試すことで自分の庭1を作る・広げる 一助となる ○ 自分の庭 ■ > どこに何があるか分かっていて、地図を見なくても安心して 歩いていって活動できる場所。そういう、守備範囲というか、 足場がチーム開発においてもあるとよい。 25 1 hitode909の日記 「チーム開発で活躍するために、自分の庭を作れると良い - hitode909の日記」 https://blog.sushi.money/entry/2020/06/27/114814
Slide 26
Slide 26 text
おわり ● 個人で開発しているアプリの紹介 ○ → 運動した距離に着目したアプリの紹介 ● 個人開発を始めた経緯 ○ → 運動不足解消のため ○ → 公式アプリに無い機能が欲しかった ● 個人開発のここが良い! ○ → 運動駆動開発 ○ → 視野・守備範囲を広げられる 26