[開発体験記] 第2章 最初はWindows用のアプリだった

全国の ICカード これひとつ 開発体験記の第2章です
らんでんカードとCI-CA用のビューアーアプリ開発を始めた頃のお話

索引
もくじ
第1章 → 【第2章】 → 第3章 (準備中)
Purchase and enjoy MagabloSM!
This content is a MagabloSM (pay-to-view).
Purchase this content to continue to read!
What is MagabloSM?

▲ページトップ

[開発体験記] 第1章 筆者も最初はただのICカード利用者だった

全国の ICカード これひとつ 開発体験記の第1章です
初回なので、少し文章量多めで最低価格(100円)に設定してあります。ご一読いただければ幸いです。

索引
もくじ
【第1章】 → 第2章 最初はWindows用のアプリだった
Purchase and enjoy MagabloSM!
This content is a MagabloSM (pay-to-view).
Purchase this content to continue to read!
What is MagabloSM?

▲ページトップ

「全国の ICカード これひとつ」開発体験記

「全国の ICカード これひとつ」開発体験記
〜開発中におきた様々な経験の記録〜

最新話


第2章 最初はWindows用のアプリだった

本稿について


これは、現在社長が執筆中の回想記です。
連載形式で順次公開し、最終的には本にして自費出版することを予定しています。

アプリのマスコットキャラ「角是一美ちゃん」の挿絵も毎回イラストレーターに用意してもらいながら、不定期で順次公開してまいります。
各回、100円〜200円程度を予定しておりますので、気軽に読んでいただければ幸いです。

超縮小サンプル画像


イラスト、大きすぎるとパケット代が掛かるため、このブログに掲載する画像は閲覧に支障が出ない程度の大きさ(概ね800ピクセル程度前後)に縮小しています。ICカードこれひとつ プレミアムサービスでランダム選択される画像はフルサイズ版を提供しますので、入会や継続で気に入った絵が選択されるのをのんびりお待ちくださいませ。

もくじ


執筆中の項目については、随時変更される見込みです。

前史


第1章 筆者も最初はただのICカード利用者だった
 ICカードを使えなかった日々
 上洛
 京都からの通勤
 ICOCAとの最初の別れ
 大阪に引っ越して、VIEW Suicaをゲットした
 九州旅行

第2章 最初はWindows用のアプリだった
 ダンプツールへのふれあい
 手元にあるカードから始まった
 Windowsのコマンドライン用らんでんカードビューアーができた
 鉄道会社に電話してみた
 Windows用GUIアプリと窓の杜
 らんでんカードの次はCI-CAのビューアーを作った

第3章 調査の旅(と、よりみち)
 更に他のカードも欲しくなった
 目標は温泉♨とインド料理に決めた
 itappyとhanicaをお供にした旅
 CI-CAもゲットし鹿を堪能する
 当時の調査用荷物はヘヴィ級だった
 休憩:諦めて紅茶を飲み始めた
 休憩:FeliCaのダンプツールが完成した
 近江鉄道バスICカードは変なカードだった
 NicoPaでバスに乗ったら大変なことになった
 見たこともないカードの情報提供
 ayucaを求めて岐阜県へ
 Androidアプリが揃い始めた


歴史


第4章 アプリは一つに共通化できそうだ
 カードごとに異なるのは解析部分だけだった
 自動判定できれば一つのアプリにまとめられる
第5章 ICカードこれひとつの誕生
 アプリの名前
 開発は順調
 じゃあ改札も表示しよう
 ICOCAコレクターになった
 バスは車体番号が記録されるようだ
 PiTaPaで奈良交通に乗る
 更なる調査
 ついにリリースされた
 バージョン番号がオーバーフローした
第6章 最初はもう少し簡単だと思っていた
 相性問題で読めないカードが現われた
 絶対に読めないカードが現われた
 お金を積んででも仕様変更して欲しい人はいなかった
 入場と出場で属性が違う改札があった
 番号はちっとも一意ではない
 改札口番号は重複している
 バス停番号は重複している
 車体番号も重複している可能性
 遂に駅番号まで
第7章 路線バスに乗ろう
 バス停調査の旅
 目標は「樫原鴫谷」バス停……なんて読むんだ?
 バス停の情報の変遷
第8章 コミュニティバスに乗ろう
 目標はコミュニティバス
 初体験は「うめぐるバス」
 大阪狭山市循環バス
 箕面オレンジゆずるバス
第9章 更なる旅へ
 カード入手の旅
 ナイスパス
 LuLuCa
 Tsukica
第10章 開発中に訪れる大きな変化
 新潟交通新バスシステム
 宮交バスカの廃止
 EX-IC
第11章 改良と仕様変更
 設計ミスは数多い
 日付・時刻の扱いの設計ミス
 駅名などのマルチリンガル対応
 日付の管理方法も変更
第12章 よりみち:学生証への対応
 面白そうだったので
 標準仕様があることが分かった
 まだ未知な点が多い
 学校番号
第13章 マルチファンクションへの対応
 最初は機能一つにしか対応していなかった
 どうやって機能を切り替えるのか
 広告とボタンは画面下に固定化した
 広告は覆うように表示、ボタンはメニュー式にした
 Android Studioへの移行
第14章 物販店名への対応
 禁断の地へと足を踏み入れた
 重複する番号への対策
 重複すると、見たこともない店が表示される
 ついに警察沙汰になった
 標準で機能OFFにした
 標準で機能OFFも無駄なあがきだった
 トラブルは有料化で解決した
 これはいったい何の店だ
 ピクトで分類できるのでは?
 駅やバス停の近くのお店一覧とかが欲しくなった
 座標情報を使って一覧化しよう
 近くの店を探す機能の将来性
 こんなもの登録できるか
第15章 人気が出た
 予想以上に好評を博した
 だが、ちょっと待って貰いたい
 好評を博した後
 人的リソース不足の後
 膨大な報告量も大きな問題となった
第16章 次々押し寄せる難関
 Android 7 [Nougat]では微妙に動かなかった
 端末をもらった
 Android 8 [Oreo]でも微妙に動かなかった
 APIレベル26以上必須という難関
 Android 9 [Pie]では遂に本当に動かなかった
 強い要望なるものが来た「早急に対応しろ」
 Android 9 [Pie]はレンタルした
 受益者負担の原則、どうやら日本には存在しないらしい

ユーザーサポート


第17章 苦しめられるユーザーサポート
 技巧を凝らし性能を上げるほど★1が増えた
 ユーザーはマニュアルを読んでくれない
 ダイアログは読まれず★1が付く
 誤りを許容しないユーザーが増えた
 評価★1に思うこと
 GooglePlayでのサポート対応
 冷やかし
 ユーザーサポートはただではない
第18章 読み込みが遅いというクレーム
 遅いのは間違いないが、解決もできない
 レビューが「遅い」ばかりになった
 なぜ遅いのか
 高速モードとは何か
第19章 外部NFCカードリーダーへの対応
 FeliCa未対応の機種でクレーム
 相性問題は深刻な問題に
 USBカードリーダーへの対応
 パソリに対応した
 古すぎるパソリは難しい
第20章 資金難
 アプリ内課金が動かない
 広告を出稿してくれる店が現われない
 マスコットキャラ爆誕
 自前で会員サービスを始めた
 自発的に払ってくれる人は殆どいなかった
 有料機能を増やしたら★1が増えた
 決断
 特にコストが掛かっている機能
 制限を加え始めたら★1が増えた
 更に制限を強めたら更に★1が増えた
 改札タブ有料化が気に入らないので他のアプリに乗り換えたらしい人
 究極の性能を提供しても月100円が高いという人
 アプリ内課金が動いた
第21章 ネット乞食は客ではない
 恩を徒で返してくる人達は何なのか
 ネット乞食
 どんな素晴らしい機能でも対価は絶対払わない
 有料機能を広告で無料サービスしても満足しない
 無料お試しサービスをすると全部無料にしろと言われる
 開発中未完成機能の無料サービスはしない方が双方にとって良い
 耐えかねたので乞食にはお引き取りをいただくことに決めた
 300円は金払いが悪い人排除の相場価格
第22章 本当に有料化してみせた
 ネット乞食の反応
 無料だから使って(あげて)いた
 残高と履歴が見られれば充分だから
 アプリ協力者を愚弄する許されない発言

▲ページトップ

PASMOでバスに乗っている方への提案

PASMOを使っている方へ


普段PASMO/Suicaでバスに乗っている関東在住の方は多いと思われますが、幾つかの不便な点があると思います。

ICカードを読み取るアプリを使っても、

①乗り降りしたバス停が表示されない
②「バス特」の情報が表示されない

が、特に大きな不満点だと思います。今回は、これについて、あなたに「行動」することを提案します。


バス停表示は、本来なら技術的に可能


PASMO/Suicaは、精算した場所のバス停番号をカード内に書き込む機能を持っています。
運賃可変式の系統の場合、乗車のバス停は履歴には保存できませんが、降車したバス停は、本来なら保存できるのです。

たとえば関西のPiTaPaを使っているバスは、その機能を使って、普通にバス停番号をカード内に書き込みますので、ICカードこれひとつというアプリを使えば、このようにそれを読み出して、当たり前のように画面に表示することができます。
PASMOでバス停番号をカード内に書き込みしていないのは、単に事業者などの都合によるものでしかないのです。
allinone33.png

関西のバスでは、さらにどのバスを利用したかという、バスの車体まで特定できる情報を別途書き込んでいます。
バスを降りた後、忘れ物に気づいた時も、バスの車体が特定できれば(盗まれる前に)運転手が速やかに確保できる可能性がありますので、とても便利かつ、活用方法はいろいろとある機能です。
allinone4_20200202170014f2b.png

ICカードこれひとつは、これまで、こういった便利な機能を数多く、ユーザーの皆様に対して提供をしてきたのですが、残念ながら1億数千万の日本人の大多数は、この機能を事実上使うことができずにいます。この現状を残念に思っています。

沿線住民は陳情の声を上げましょう


ちゃんとカードに書き込みしていれば、ICカードこれひとつなどのアプリで、ごく普通に利用したバス停を履歴表示(最大20件)できるのです。

バス停番号をカードに書かなくても、事業者のコンピューターには保存されますから事業者は全く困っていません。
ですから、バス利用者がバス利用をより便利に、快適にするためには、そのバス利用者が直に改善すべき点を事業者に提案していく必要があります。

もちろん一人、二人くらいの声では変わらないでしょう。システムの変更には莫大なお金が掛かるからです。
しかし、多くの人が集まり、声を上げていけば、事業者も考えを変えてくれるはずです。
これは、沿線住民にしかできないことです。

本来ならできること、技術的にも難しいことはなにもないことです。あとは事業者側を納得させれば、きっと実現すると思います。

「バス特」


「バス特」の情報が表示できるアプリが実在しないのは、読み取れる範囲内にその情報がないためです。
暗号化された領域に書かれているのか、あるいはそもそもカードに記録されていないのかは分かりませんが、いずれにせよ読める場所には情報がありません。

今からカードの仕様を変えることは非常に難しいため、現実の可能性は低いかもしれません。ですから、せめてネットで確認できるようなサービスはあってもよいのかなとは思います。
これも、PASMO/Suicaでのバス利用者にしか提案できないことです。
もし実現したときには、ICカードこれひとつなどのアプリでも、何らかの対応ができるかもしれません。

他の地域も同様です


関東以外でSuicaを使っているバス、あるいは、manacaエリア、nimocaエリアといった各種のバスも同様です。
こういった事業者にもまた、同様に陳情の声を上げていくことで、より便利な状況に変わっていく可能性があります。

タダで便利が降ってくることはありません


人は何かの犠牲なしには何も得ることはできません。何かを得るためには同等の代価が必要になるのです。
その代価は、今回の場合はあなたの提案力と行動力です。


もし無事に停留所がカードに書き込まれるようになった時には、ICカードこれひとつは率先して対応をしていきたいと考えています。
ぜひ頑張ってください。

▲ページトップ

ブログ記事の一部有料化、始めます

まえおき


ICカードこれひとつ
何でも読めるアプリ、なおかつ詳細に読めるアプリで今のところ日本最強ではありますが、これだけの性能を提供しても売れ行き好調とは言えない状況、とにかく収入が乏しいので、アプリを売るだけではアプリの維持が困難な状況です。
つまり採算が全く取れていない。
以前のアプリを含めて開発開始から6年、莫大なコストを掛けて技術開発してきましたが、この状況では対抗アプリが登場する可能性は殆どなさそうですね。億の単位のお金を竹やぶに捨てる奇人はそう多くはないでしょう。

さてこのアプリ、使うのが生きがいだという方までおられたりするほど愛用されておりますし、のみならず、このアプリの本当の目的は地方の活性化にあって、過疎地の公共交通を何とかして維持できるように便利さを提供する、大店舗ではなく商店街などに目を向けてもらう、といったことなどがあるため、何とかしてこのアプリは維持する努力をしていきたいところであります。

かつて弊社では、文字コード変換ツール「もじかん」という製品を作っていて、こちらも要望や情報提供は多くあり、結果として一時は、ほぼ世界中の文字エンコードを変換できる世界最強に達したわけですが、こちらは全く売れず大変なことになり、プロジェクトを断念せざるを得なくなってしまったという苦い過去があります。この二の轍は踏まないよう、鋭意努力をしていこうと考えているところです。

そこで、アプリを支えるため、他になにか「売るもの」を作ろう、と考え始めて既に数年経過しているわけですが、そろそろ売り始めよう、ということで有料記事、始めます。

売る方法


色々ありますが、とりあえず今使用しているFC2ブログで有料記事を配信する機能があるので、これを試してみたいと思っています。
FC2 マガブロ

お支払い方法は、クレジットカードか、または、コンビニ決済・銀行振込み・ペイジー決済などでFC2ポイントを購入し、それで支払う形になるようです。

コンビニなどでは100円から1円単位、但し有効期限は買ってから6ヶ月。銀行振込は100円から1円単位、クレジットカードは500円から1円単位で、この購入方法は特に短い有効期限はないようです。

ちなみに、記事を購入された方の情報は一切こちらに提供されません。ご安心下さい。
システム自体はブログなので、従来通りコメントを付けることは恐らく可能だろうと思います。

何を書くか


「ICカードこれひとつ開発体験記」という、本にしようと思って少しずつ書きためている原稿がありますので、これを部分部分切り出して掲載する「連載」という形を想定しています。
まだ全体として未完成な原稿ですが、この機会に微調整をして完成させたいと考えています。

あとはICカードの解析結果などの技術情報であるとか、マスコットキャラの絵の新作をこちらに掲載するとか、ご要望にも応じる形で皆様に興味を持ってもらえる内容にできたらよいなと考えているところです。

文字記事は1記事内税100円くらいから、絵入りの記事はイラストレーターとご相談でちょっと上乗せなどを考えていますが、自分が書く文字記事については、1記事につき2〜3000文字前後を想定しています。
ちなみにfc2の手数料は30%だそうです。

ブログに書いたあともまた少しずつ調整しつつ、ある程度まとまったら自費出版して、これも開発費の足しにしようと考えています。

ICカードこれひとつ開発体験記


今のところ8万字少々、文字の大きさにもよるでしょうが、だいたい100ページを超えるくらいの分量があるようです。

書きかけ原稿の目次はこんな感じです。書きかけの部分はまだ多いので、内容や順番は今後変わる可能性が高いです。



前史
1 筆者も最初はただのICカード利用者だった
 ICカードを使えなかった日々
 上洛
 京都からの通勤
 ICOCAとの最初の別れ
 大阪に引っ越して、VIEW Suicaをゲットした
 九州旅行
 ダンプツールへのふれあい
2 最初はWindows用のアプリだった
 Windowsのコマンドライン用ツールができた
 次にWindowsのGUIアプリ
 らんでんカードの次はCI-CAのビューアーを作った
3 調査の旅(と、よりみち)
 更に他のカードも欲しくなった
 目標は温泉♨とインド料理に決めた
 itappyとhanicaをお供にした旅
 CI-CAもゲットし鹿を堪能する
 当時の調査用荷物はヘヴィ級だった
 休憩:諦めて紅茶を飲み始めた
 休憩:FeliCaのダンプツールが完成した
 近江鉄道バスICカードは変なカードだった
 NicoPaでバスに乗ったら大変なことになった
 見たこともないカードの情報提供
 ayucaを求めて岐阜県へ
 Androidアプリが揃い始めた


歴史
4 アプリは一つに共通化できそうだ
 カードごとに異なるのは解析部分だけだった
 自動判定できれば一つのアプリにまとめられる
5 ICカードこれひとつの誕生
 アプリの名前
 開発は順調
 じゃあ改札も表示しよう
 ICOCAコレクターになった
 バスは車体番号が記録されるようだ
 ついにリリースされた
 バージョン番号がオーバーフローした
6 最初はもう少し簡単だと思っていた
 相性問題で読めないカードが現われた
 絶対に読めないカードが現われた
 お金を積んででも仕様変更して欲しい人はいなかった
 入場と出場で属性が違う改札があった
 番号はちっとも一意ではない
 改札口番号は重複している
 バス停番号は重複している
 車体番号も重複している可能性
 遂に駅番号まで
7 路線バスに乗ろう
 バス停調査の旅
 目標は「樫原鴫谷」バス停……なんて読むんだ?
 バス停の情報の変遷
8 コミュニティバスに乗ろう
 目標はコミュニティバス
 初体験は「うめぐるバス」
 大阪狭山市循環バス
 箕面オレンジゆずるバス
9 更なる旅へ
 カード入手の旅
 ナイスパス
 LuLuCa
 Tsukica
10 開発中に訪れる大きな変化
 新潟交通新バスシステム
 宮交バスカの廃止
 EX-IC
11 改良と仕様変更
 設計ミスは数多い
 日付・時刻の扱いの設計ミス
 駅名などのマルチリンガル対応
 日付の管理方法も変更
12 よりみち:学生証への対応
 面白そうだったので
 標準仕様があることが分かった
 まだ未知な点が多い
 学校番号
13 マルチファンクションへの対応
 最初は機能一つにしか対応していなかった
 どうやって機能を切り替えるのか
 広告とボタンは画面下に固定化した
 広告は覆うように表示、ボタンはメニュー式にした
 Android Studioへの移行
14 物販店名への対応
 禁断の地へと足を踏み入れた
 重複する番号への対策
 重複すると、見たこともない店が表示される
 ついに警察沙汰になった
 標準で機能OFFにした
 標準で機能OFFも無駄なあがきだった
 トラブルは有料化で解決した
 駅やバス停の近くのお店一覧とかが欲しくなった
 座標情報を使って一覧化しよう
 近くの店を探す機能の将来性
 こんなもの登録できるか
15 人気が出た
 予想以上に好評を博した
 だが、ちょっと待って貰いたい
 好評を博した後
 人的リソース不足の後
 膨大な報告量も大きな問題となった
16 次々押し寄せる難関
 Android 7 [Nougat]では微妙に動かなかった
 端末をもらった
 Android 8 [Oreo]でも微妙に動かなかった
 APIレベル26以上必須という難関
 Android 9 [Pie]では遂に本当に動かなかった
 強い要望なるものが来た「早急に対応しろ」
 Android 9 [Pie]はレンタルした
 受益者負担の原則、どうやら日本には存在しないらしい


ユーザーサポート
17 苦しめられるユーザーサポート
 技巧を凝らし性能を上げるほど★1が増えた
 ユーザーはマニュアルを読んでくれない
 ダイアログは読まれず★1が付く
 誤りを許容しないユーザーが増えた
 評価★1に思うこと
 GooglePlayでのサポート対応
 冷やかし
 ユーザーサポートはただではない
18 読み込みが遅いというクレーム
 遅いのは間違いないが、解決もできない
 レビューが「遅い」ばかりになった
 なぜ遅いのか
 高速モードとは何か
19 外部NFCカードリーダーへの対応
 FeliCa未対応の機種でクレーム
 相性問題は深刻な問題に
 USBカードリーダーへの対応
 パソリに対応した
 古すぎるパソリは難しい
20 資金難
 アプリ内課金が動かない
 自前で会員サービスを始めた
 自発的に払ってくれる人は殆どいなかった
 有料機能を増やしたら★1が増えた
 決断
 特にコストが掛かっている機能
 制限を加え始めたら★1が増えた
 更に制限を強めたら更に★1が増えた
 改札タブ有料化が気に入らないので他のアプリに乗り換えたらしい人
 究極の性能を提供しても月100円が高いという人
 アプリ内課金が動いた
21 ネット乞食は客ではない
 恩を徒で返してくる人達は何なのか
 ネット乞食
 どんな素晴らしい機能でも対価は絶対払わない
 有料機能を広告で無料サービスしても満足しない
 無料お試しサービスをすると全部無料にしろと言われる
 開発中未完成機能の無料サービスはしない方が双方にとって良い
 耐えかねたので乞食にはお引き取りをいただくことに決めた
 300円は金払いが悪い人排除の相場価格
22 本当に有料化してみせた
 ネット乞食の反応
 無料だから使って(あげて)いた
 残高と履歴が見られれば充分だから


付録 年表 (ICカードこれひとつ これまでの流れ)

さいごに


↓面白そうと思われましたら、拍手ボタンをおしていただければ幸いです。

▲ページトップ

カレンダー

03 | 2020/04 | 05
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -

プロフィール

miraicorp

Author:miraicorp
未来情報産業(株) 社長

現在は主として「ICカードこれひとつ」、時々C++やKotlinなどについて記述しています。

twitterマストドン

管理用

検索フォーム

お知らせ

コメント等お気軽にどうぞ。

気に入ったら拍手して頂けると、今後の記事を書く際の参考や励みになります。

■お仕事を募集しております
ソフトウェア製造の仕事や、原稿執筆の仕事などは随時受け付けております。
お気軽にご相談下さい

■初めての方へ
こまごまと更新しているため、他にも関連する記事があるかもしれません。
「月別アーカイブ」「検索フォーム」「カテゴリ」などをお試し下さい。
トップページはこちら

最新記事

最新コメント

最新トラックバック

カテゴリ

月別アーカイブ

広告枠

メール

メールはこちら

リンク

このブログをリンクに追加する

RSSリンクの表示

QRコード

QR