はじめに
名刺管理アプリ「めいしポケット」を個人開発しています。撮影→OCR→管理→連絡までをスマホ1台で完結させるアプリです。
v1.3.0で編集履歴・OCR精度向上を追加したので、実装の考え方と設計判断について書きます。
アプリの概要
| 機能 | 内容 |
|---|---|
| 名刺登録 | カメラ撮影 or ギャラリーから読み込み。表面・裏面対応 |
| OCR | 撮影と同時に名前・会社名・電話番号・メールを自動読み取り |
| 検索 | キーワード検索、50音順/更新日時順の並び替え |
| タグ分類 | 「取引先」「展示会」等の色付きタグで絞り込み |
| 詳細画面 | 電話・SMS・メール・地図・Web・連絡先追加・QRコード・FAX送付状をワンタップ |
| アプリ連携 | 名刺ごとにLINE・WhatsApp・Slack・Teams等を紐付け |
| マイカード | 自分の名刺情報をQRコードで相手に渡せる |
| データ入出力 | vCard / CSV エクスポート・インポート。写真付きはZIP形式 |
| アプリロック | 指紋・顔・パスコードによるロック |
設計で重視したこと
オフラインファースト
名刺データはすべて端末内に保存しています。クラウド同期は行いません。
理由はシンプルで、名刺には個人情報が詰まっているからです。「このアプリに名刺を登録したら、どこかのサーバーに送信されるのでは?」という不安があると使ってもらえません。端末内完結にすることで、その心配を根本から排除しています。
広告なし・課金なし
個人情報を扱うアプリに広告SDKを入れることへの抵抗感は大きいです。広告なし・課金なし・データ送信なしを徹底しています。
OCR精度の向上(v1.3.0)
名刺OCRの精度改善は、このバージョンで一番力を入れた部分です。3つのアプローチで対処しました。
1. 画像の前処理
撮影画像のコントラストを自動で最適化してからOCRにかけます。これにより、薄い印刷や色付き名刺でも読み取れるケースが増えました。
名刺の撮影条件は千差万別です。明るい会議室もあれば、薄暗い居酒屋で交換することもある。影が入ることもある。前処理でこれらの差を吸収しています。
2. 数字の自動補正
電話番号でよくある誤認識をルールベースで自動修正します。
| 誤認識 | 補正後 |
|---|---|
| O(オー) | 0(ゼロ) |
| l(エル) | 1(イチ) |
| S | 5 |
電話番号フィールドに限定して適用することで、名前や住所の文字を誤って書き換えるリスクを回避しています。
3. 学習辞書
ユーザーがOCR結果を手動で修正すると、アプリがその修正パターンを学習します。次回以降、同じ誤認識が発生した場合に自動で補正されます。
使い込むほど賢くなる仕組みです。例えば特定のフォントで「田」が「日」と誤認識される場合、一度修正すれば以降は自動補正されます。
編集履歴(v1.3.0)
名刺の情報を変更すると、「いつ・何を・どう変えたか」が自動で記録されます。
なぜ必要だったか
名刺管理アプリの運用では、こんなことが起きます。
- 部署異動で電話番号が変わったので更新したが、前の番号が必要になった
- OCRの読み取り結果を修正したが、元々何と読み取られていたか確認したい
- 間違って上書き保存してしまった
Undo機能を実装する方法もありますが、名刺管理の場合は「前の値を確認したい」ケースが多いため、変更履歴を一覧表示するUIにしました。
実装方針
- 特別な操作は不要。保存するだけで自動記録
- 詳細画面の下部に「変更履歴」セクションとして表示
- 日時ごとに「名前: 山田→山田太郎」のような差分表示
- OCRで読み取った後の修正も記録されるため、「元々どう読み取られたか」を後から確認可能
QRコードによる名刺交換
紙の名刺を持っていない場面でも名刺交換ができるように、QRコード機能を実装しました。
送る側: マイカードに自分の情報を登録 → QRコードを表示 → 相手に見せる
受け取る側: QRスキャン → 自動で名刺登録。既に同じ人が登録済みなら「上書き」か「新規保存」を選択
vCard形式でエンコードしているため、めいしポケットを使っていない相手でも、標準のQRリーダーで連絡先として取り込めます。
アプリ連携の設計
名刺ごとに「この人にはLINEで連絡」「この人にはSlackで」といったアプリを紐付けられます。
実装はシンプルで、端末にインストールされているアプリの一覧を表示し、選択されたアプリのパッケージ名を名刺データに紐付けて保存しています。詳細画面にアイコンが並ぶので、ワンタップでそのアプリが起動します。
解除はアイコン長押しで確認ダイアログを表示。誤操作で連携が消えないようにしています。
バックアップ(今後実装予定)
端末の故障や機種変更に備えて、名刺データをまるごとバックアップできる機能を予定しています。
設計方針
- 名刺データ・画像・タグ・アプリ連携・履歴など、すべてのデータを1つのファイルにまとめる
- 保存先は端末内フォルダやGoogle Driveなど、ユーザーが選択
- 復元はバックアップファイルを選ぶだけ
オフラインファーストの方針と整合させるため、自動クラウド同期ではなく、ユーザー主導の手動バックアップ方式を採用する予定です。
まとめ
| バージョン | 追加機能 | 設計判断 |
|---|---|---|
| 初期 | 撮影・OCR・検索・タグ | オフライン完結、広告なし |
| v1.3.0 | 編集履歴 | Undoではなく差分履歴表示 |
| v1.3.0 | OCR精度向上 | 前処理+ルールベース補正+学習辞書の3層 |
| 次期 | バックアップ | ユーザーが保存先を選ぶ手動方式(実装予定) |
名刺管理アプリは「個人情報を預かる」という性質上、信頼性が最重要です。オフラインファースト・広告なし・データ送信なしという方針は、機能面ではマイナスに見えるかもしれませんが、ユーザーの信頼という面では最大のプラスだと考えています。
55歳、地方の中小企業の総務が、AIだけで5ヶ月8本のアプリをGoogle Playに出した話
Claude Codeで Google Play 多言語ストア掲載情報CSVを一発生成する