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
1k
運動モチベーション継続のためのiOSアプリ開発
tokizo
January 30, 2024
Tweet
Share
More Decks by tokizo
See All by tokizo
徐々に増えているSwiftUI Anchor関連API
tokizuoh
1
1k
iOS 曜日ランキングが出来上がるまで
tokizuoh
0
2.5k
メインスレッドをブロックさせないためのSwift Concurrencyクイズ
tokizuoh
1
5.5k
Xcode 15 で swift run が遅い
tokizuoh
0
3.7k
モノレポにおける path-filtering利用時でも GitHub ステータスのRequiredを 機能させたい!
tokizuoh
1
1.5k
累積和で配列の処理効率を改善しよう
tokizuoh
0
690
Other Decks in Technology
See All in Technology
Node vs Deno vs Bun 〜推しランタイムを見つけよう〜
kamekyame
1
380
次世代AIコーディング:OpenAI Codex の最新動向 進行スライド/nikkei-tech-talk-40
nikkei_engineer_recruiting
0
110
形式手法特論:コンパイラの「正しさ」は証明できるか? #burikaigi / BuriKaigi 2026
ytaka23
16
4.8k
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
3
290
わが10年の叡智をぶつけたカオスなクラウドインフラが、なくなるということ。
sogaoh
PRO
1
380
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
760
Master Dataグループ紹介資料
sansan33
PRO
1
4.2k
SES向け、生成AI時代におけるエンジニアリングとセキュリティ
longbowxxx
0
310
[PR] はじめてのデジタルアイデンティティという本を書きました
ritou
1
790
戰略轉變:從建構 AI 代理人到發展可擴展的技能生態系統
appleboy
0
190
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
1.3k
First-Principles-of-Scrum
hiranabe
3
1.6k
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
0
37
What's in a price? How to price your products and services
michaelherold
246
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
The Curse of the Amulet
leimatthew05
0
6.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
720
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
The SEO Collaboration Effect
kristinabergwall1
0
320
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
New Earth Scene 8
popppiees
0
1.3k
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