iPhone アプリ「カロリッチ」 をリリースしました!

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

アプリのご紹介

IMG_7064

underscoreより、iPhoneアプリ カロリッチ をリリースいたしました。

このアプリは、シンプルで直感的なビジュアル歩数計です。

アプリを立ち上げると、現在の歩数を表す食べ物が表示されます。

IMG_0126

また、このアプリは Apple Watch に対応しています。

App Store でダウンロードする

対応機種・OS

  • iPhone (iOS 9以上)
  • Apple Watch (watchOS2 以上)

初回立ち上げ時の注意

IMG_7062

初回起動時にデータのアクセスの許可が求められます。「歩数」をONにし、「許可」をタップして下さい。「許可しない」を選ぶと、データが表示できなくなります。

manual

その場合、iPhone の設定アプリ > プライバシー > ヘルスケア > カロリッチ で「歩数」をONにすることで、正常にお使いいただけるようになります。

また、初回立ち上げ時に、トップ画面にフード画像が表示されない事があります。その場合、一度ホーム画面に移動し、改めてカロリッチを立ち上げることで、正常に表示されます。

特徴・使い方

パッとみてすぐわかるカロリー消費量

アプリを立ち上げておけば、ロックを解除した際に、すぐに現在のカロリー消費量が直感的に分かります。

履歴も表示可能

IMG_7066

本アプリは履歴表示機能を持っています。アプリをインストールする以前を含む、歩数・カロリー・フードの一覧を表示することが出来ます。「この日はスイカの分だけ消費した」など直感的に消費カロリーがわかります。

Apple Watch があれば更にベンリ!

IMG_0126

Apple Watch があれば、更に素早くカロリーを確認できます。このアプリは Apple Watch があることで、とても使い勝手が良くなるよう設計されています。

IMG_0127 IMG_0128 のコピー

ちなみに、 Apple Watch の画面をグッと押し込む Force Touch 動作を行うと、細かな数字が表示されます。

技術的な話し

MBCircularProgressBar

IMG_7064

本アプリは、以前ブログで紹介させて頂きました、MatiBot さんの、MBCircularProgressBarをメイン画面にて使用させていただいております。

[iOS][Swift] MBCircularProgressBar で円形のプログレスバーを実現!

※ MatiBot さんにおかれましては、上記ブログへのリンクを MBCircularProgressBar の README.md ファイルにて扱っていただいております。Thanks to introduce our blog at your GitHub page, MatiBot!

仕組み

本アプリは、watchOS2 の Watch Connectivity を利用しています。

Apple Watch 上でカロリッチが立ち上がると、ペアリングされている iPhone に対して、リクエストが投げられます。リクエストを受けた iPhone 側のカロリッチは現在の歩数やカロリー等が入った辞書データを Apple Watch 側に送り、その結果を Watch 側で表示することで、動作を実現しています。

[watchOS 2][iOS 9] Watch Connectivity で情報をやりとりする様々な方法

HealthKit

本アプリは、HealthKit を使って、iPhone に蓄積されている歩数データを読み取ることで動作しています。HealthKit が使用する、健康データを一元的に管理するデータ保存領域である HealthStore を使う場合、扱うデータ毎にユーザーによる許可がいります。

開発途中で気づいたのですが、読み込むことに対して、ユーザーが許可しているかどうかを判別することが仕組み上できないようになっています。Apple によるプライバシーへ配慮した API 設計によるものと思われます。このため、歩数が 0 なのか、読み込み権限がないために歩数データが入ってきていないのかがわからないのです。ちなみに、書き込み権限があるかは、判別可能です。

この件に関しては、以下の記事でも取り上げられています。

スタック・オーバーフロー - swiftのHealthKitでHKHealthStore.authorizationStatusForTypeの挙動について

この辺に関しては、割りきって実装し、データが正常に表示されない時の対策として App Store の説明書きで補足説明しています。

InfoPlist.strings の Target Membership

スクリーンショット 2015-10-13 18.45.06

スクリーンショット 2015-10-13 18.45.15

info.plist の Target Membership で Watch側を指定していると、Watch Connectivity がうまく働きませんでした。まだ詳しく検証はしていないのですが、どうやら、Watch Connectivity による情報伝達がうまくいかないようです。

この件に関しては、Twitter 上など複数の箇所で議論されているのを確認させていただいています。

コンセプト

このアプリを思いついたきっかけのひとつが、スポーツジムでのカロリー表示です。現在の消費カロリーを食べ物に置き換えて表示してくれるランニングマシンに乗っている時の事を念頭に、気軽にこのカロリー表示を見ることができたらベンリだなと思い、カロリッチを作りました。

このアプリは、空気のような、日常に溶け込んだ存在を目指しました。常にカロリーを気にするというよりは、ふとアプリを開いて、現在のカロリーを知る。そうしたコンセプト上、ローカル通知機能はあえていれていません。ただ、新しいフードを新たに出現させた時に通知を入れる程度であれば、今後のバージョンアップで対応しても良いかな、という気はしています。

まとめ

カロリッチは、歩いた歩数分のフードを表示する、直感的なビジュアル歩数計です。

今日の歩数がフード画像として表示されます。直感的に、一日でどのくらい歩いたかが分かります。

また、Apple Watch 上でこのアプリを立ち上げておけば、すぐに今の歩数が分かります。

今後は、より完成度を高めていきたいと思います。細かな使い勝手の修正や、フードの追加などを進めていきたいと思います。

ぜひ、カロリッチをインストールしてみてください。日常がほんの少し、楽しくなるとおもいます。

App Store でダウンロードする

クレジット

MBCircularProgressBar

Copyright (c) 2015 Mati Bot matibot@gmail.com

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.