ページビューの合計

2026年5月26日火曜日

2013年から続くタイムカードアプリを、Flutterで作り直すまで(K.O)

タイムカード公式サイト

機能の詳細・ストアへのリンク・使い方ガイドはこちらからどうぞ。

公式サイトを開く English

パートや掛け持ちで働く方向けの勤怠アプリ「タイムカード」を、いま Flutter で作り直し、iPhone と Android の両方で配信しています。

Android 版は Google Play で累計50万ダウンロード以上(公表値に基づく)の実績があり、長いあいだ多くの方に使っていただいてきました。一方で、開発者の私(K.O)の側では、2021年から2026年にかけての約5年間、ストア上の更新をほぼ止めていた時期があり、OS の進化に合わせて使いにくくなった機能も出てきました。

この記事では、2013年ごろのきっかけから Flutter 刷新までを、できるだけ素直に書きます。

2013年──SESの出退勤記録が、開発のきっかけだった

タイムカードの Android 開発は、2013年ごろから始めました。

当時の私は SES(システムエンジニアリングサービス) として働いており、毎月の出退勤を記録して提出する必要がありました。スマートフォンでも勤怠系のアプリはすでにありました。しかし、自分が毎日使うには、どれも少し違和感がありました。

そこで、「自分にとって一番使いやすく、かつシンプルなアプリを作ろう」と思ったのが、すべてのきっかけです。派手な機能より、サッと打刻して、あとから見返せること。いま公式サイトで言っている「ワンタップ」「シンプル」は、当時からの本音に近いです。

技術的には Java だけで書き、Android 一本でした。iOS 版はありません。それでも、同じように「時間で稼働している」人には刺さるのか、少しずつインストールしていただける方が増えていきました。

当時は アプリの更新も比較的頻繁に出していました。不具合修正に加え、要望に応じて画面や集計を直すのが、個人開発ならではの良さでした。

クロスプラットフォームを探したが、「これだ」がなかなか現れなかった

ユーザーからは、ときどき 「iPhone 版はありませんか?」 という声もありました。

クロスプラットフォームの選択肢も、いろいろ調べました。ただ、当時見えていた案のなかでは、「今すぐ乗り換えよう」と思えるものが、なかなか現れませんでした。パフォーマンス、開発体験、既存の Java コードとの距離──全部満たす案が見つからず、Android 一本で続ける判断を、何度も繰り返していました。

Swift を学んだが、「二つ同時に保守する気力」が湧かなかった

あとから Swift の勉強も始めました。iOS 版を出せば届く人は増える。頭では分かっていました。

でも現実的な問題は 保守の本数です。Java(Android)用と Swift(iOS)用──別々のコードベースを、同じ機能水準で揃え続ける想像をすると、個人開発では気力が湧きませんでした。結果として、iOS 版は出さず、Android に注力する時期が長く続きました。

Xamarin も少し検討したが、進めなくてよかった

Xamarin も、少しだけ検討しました。最終的には深く進めませんでした。いま振り返ると、進めなくてよかったと思っています。後から Flutter に出会ったとき、「一本のコードで両方」に、より素直に近づけたからです(他の選択肢が悪いという意味ではなく、自分のケースの話です)。

2021年の転職と、2021年〜2026年の約5年間の更新停止

2021年IT 関連の企業へ転職しました。SES ではない働き方になり、業務も職場の環境も、それまでとはかなり変わりました。

転職前までは、本業と両立しながら アプリの更新も比較的頻繁 に出せていました。ところが 2021年以降は、毎日が忙しく、ストアへのリリースや不具合対応に充てる時間が、ほとんど取れなくなりました。やる気がなかったというより、生活の優先順位のなかで、アプリ開発の時間が後回しになっていたのが正直なところです。

2021年から2026年にかけての約5年間、Google Play 上の Android 版の更新は、事実上ほぼ止まっていました。

個人開発アプリにとって、更新停止は厳しいです。OS が上がり、権限やストアのルールが変わり、周辺の前提も変わる。止めているあいだに、使えなくなる機能や、動かなくなる組み合わせも出てきました。

それでも、多くの方がインストールしたまま使い続けてくださっていた──ありがたい反面、「放置したまま申し訳ない」という気持ちが、刷新の大きなきっかけになりました。

※ 上記の期間は、Play ストアの更新履歴に基づく Android 版の事実です。

Flutter に出会って、「これだ」と思った

空白のあと、改めて「もう一度、ちゃんと動くアプリにしよう」と考え始めたときに出会ったのが Flutter でした。

  • 一つのコードベースで Android と iOS を狙える
  • 画面の一貫性を保ちやすい
  • 個人でも 継続的にメンテナンスしやすい

Swift で二本体を抱えるより、自分のリズムに合うと感じました。ここで初めて、「iOS も出せるかもしれない」が現実的な計画になりました。

いま進めている刷新版では、ワンタップで出退勤するしやすさは、2013年の頃から大切にしてきたところを引き継いでいます。月次の目安、複数勤務先、データは基本オン端末、という方針も整理し直しました。

運用としては、品質と既存データの両方を考え、iOS を先に本番で様子を見る一方、Android はデータ移行を慎重に試してから段階的に公開する方針にしています。

いまのユーザーへのお願い

新しく使う方

パート・フリーランス・時間契約の仕事向けです。

公式サイト(日本語)

昔から Android 版を使っていた方

刷新にあたり、端末内データの引き継ぎを最優先にしています。不安な場合は、Google ドライブ などのバックアップ機能と、公式の使い方ガイドをご確認ください。

不具合・要望

個人開発のため、すべてには即応できませんが、メールをいただけると助かります。
stallions.0721@gmail.com

給与表示はあくまで目安です。正式な金額は、勤務先・契約のルールに従ってください。

おわりに

2013年、SESとして毎月の出退勤を提出していた頃に、「自分が一番使いやすいシンプルなアプリ」を作ったことから始まりました。Java だけの Android 一本、クロスプラットフォーム探し、Swift や Xamarin の迷い、2021年の IT 関連企業への転職(SES ではない働き方)と、毎日の忙しさからアプリ更新ができなかった 2021年〜2026年の約5年間──長い道のりでした。

それでも「いつ働いたかを、面倒なく残したい」という用途は変わりません。技術だけ新しくしたのではなく、また続けられる形に戻したつもりです。

同じような道のりの個人開発の方や、昔から使ってくださった方に、少しでも参考になれば嬉しいです。

K.O ─ タイムカード

ワンタップ打刻・シンプルな勤怠アプリ

公式サイトへ

2026年5月14日木曜日

2026年4月12日日曜日

 

タイムカードアプリ プライバシーポリシー

最終更新日: 2026年4月12日

本ポリシーは、モバイルアプリ「Time Card(タイムカード)」(以下「本アプリ」)における個人情報および利用者情報の取扱いについて定めるものです。本アプリをご利用いただく前に、本文をお読みください。


1. 運営者・お問い合わせ

本アプリに関するお問い合わせは、次のメールアドレスまでご連絡ください。


2. 本アプリで扱う情報の概要

本アプリは、勤怠の打刻・勤務先・給与計算の目安などを端末内で主に処理します。次の情報が端末またはご利用者が選択したサービスに関係します。

区分

内容

端末内に保存される情報

打刻時刻、休憩、勤務先名・単価設定、メモ、バックアップ用のエクスポートデータの元となるデータ等

端末内の設定

言語、表示設定、広告関連の開発用フラグ(デバッグ時)等(SharedPreferences 等)

任意で外部に出る情報

Google ドライブ / iCloud へのバックアップ、メールアプリ等への CSV 共有、クラッシュレポート、広告配信に伴う識別子等

本アプリが開発者の独自サーバーに勤怠データを送信して蓄積する仕組みはありません(バックアップ・共有はご利用者が操作したときの Google / Apple / メールアプリ等の範囲に限ります)。


3. 利用目的

取得・利用する情報は、次の目的の範囲内に限ります。

  1. 本アプリの機能提供(打刻、一覧、集計、ウィジェット表示等)

  2. 不具合の調査・品質向上(クラッシュ情報の送信に限る)

  3. リリース版における広告の表示(Google AdMob)

  4. ご利用者が選択した場合のバックアップ・データのエクスポート


4. 第三者提供・委託

次のサービス提供者(Google 等)の SDK を組み込んでいます。各提供者のプライバシーポリシーに従い、同社が定める範囲でデータが処理されることがあります。

4.1 Google(Firebase / Crashlytics)

4.2 Google(AdMob・広告)

  • 目的: リリースビルドにおける広告の配信

  • 送信の例: 広告識別子、IP アドレス、広告の表示・クリックに関する情報等(パーソナライズの有無は Google および端末の広告設定に依存します)

  • 参考: Google 広告に関するプライバシー ポリシー

4.3 Google(Google ドライブ・Google サインイン)

  • 目的: ご利用者が任意で実行する「クラウドへのバックアップ・復元」

  • 内容: Google アカウントのメールアドレス表示、Google ドライブのアプリデータ領域へのバックアップファイルの保存(本アプリが Google 以外にメールアドレスを送信する仕組みはありません)

  • 参考: Google のプライバシー ポリシー

4.4 Apple(iCloud)

4.5 その他

  • 共有シート・メール: CSV 等のエクスポートは、ご利用者が選択したアプリ(メール等)に渡されます。開発者がその内容を受領するものではありません。

法令に基づく開示請求、生命・身体・財産の保護に必要な場合など、法令に従い第三者へ提供する場合を除き、開発者が個人情報を第三者に販売・提供することはありません。


5. 安全管理

開発者は、不正アクセス、紛失、破損、改ざん、漏えい等を防止するため、適切なセキュリティ対策に努めます。ただし、インターネット通信および端末の利用に伴うリスクを完全に排除することはできません。


6. 保存期間・削除

  • 端末内のデータは、ご利用者がアプリまたは OS の機能で削除するまで保持されます。

  • クラウドバックアップは、ご利用者が Google ドライブ / iCloud 上でファイルを削除することで削除できます。

  • クラッシュレポート等は、Google 側の保存期間・ポリシーに従います。


7. お子様の利用

本アプリは、主として就業に関する記録を想定しています。保護者の方は、お子様の利用にあたって必要に応じてご指導ください。


8. 本ポリシーの変更

法令の改正や本アプリの機能追加に伴い、本ポリシーを変更することがあります。変更後の内容は、本アプリ内の案内または掲載ページの更新日により周知します。重要な変更がある場合は、可能な範囲で分かりやすい方法でお知らせします。


9. 開示・訂正・削除等

個人情報の開示、訂正、追加、削除、利用停止等をご希望の場合は、上記お問い合わせ先までご連絡ください。本人確認のうえ、法令に従い対応します。


10. 法令遵守

運営者は、個人情報の保護に関する法令その他の規範を遵守し、本ポリシーを適宜見直し改善します。


改訂履歴

日付

内容

2026-04-12

現行機能に合わせ全面改訂(Firebase / Crashlytics、AdMob、Google ドライブ・iCloud バックアップ、共有等を明記。旧記載の「ランキング」利用は廃止)

2018年9月27日木曜日

タイムカードアプリ プライバシーポリシー

タイムカードは、以下のとおり個人情報保護方針を定め、個人情報保護の仕組みを構築し、個人情報保護の重要性の認識と取組みを徹底することにより、個人情報の保護を推進致します。

個人情報の管理
タイムカードは、お客さまの個人情報を正確かつ最新の状態に保ち、個人情報への不正アクセス・紛失・破損・改ざん・漏洩などを防止するため、セキュリティシステムの維持・管理体制の整備徹底等の必要な措置を講じ、安全対策を実施し個人情報の厳重な管理を行ないます。

個人情報の利用目的
お客さまからお預かりした個人情報は、各アプリ内でのデータ保存、ランキングのみに利用します。

個人情報の第三者への開示・提供の禁止
タイムカードは、お客さまよりお預かりした個人情報を適切に管理し、次のいずれかに該当する場合を除き、個人情報を第三者に開示いたしません。
お客さまの同意がある場合
お客さまが希望されるサービスを行なうために当社が業務を委託する業者に対して開示する場合
法令に基づき開示することが必要である場合

個人情報の安全対策
タイムカードは、個人情報の正確性及び安全性確保のために、セキュリティに万全の対策を講じています。

ご本人の照会
お客さまがご本人の個人情報の照会・修正・削除などをご希望される場合には、ご本人であることを確認の上、対応させていただきます。

法令、規範の遵守と見直し
タイムカードは、保有する個人情報に関して適用される日本の法令、その他規範を遵守するとともに、本ポリシーの内容を適宜見直し、その改善に努めます。

お問い合せ
タイムカードの個人情報の取扱に関するお問い合せは下記までご連絡ください。
タイムカード stallions.0721@gmail.com