0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人開発の名刺管理アプリにOCR・学習辞書・編集履歴を実装した話

0
Last updated at Posted at 2026-08-04

はじめに

名刺管理アプリ「めいしポケット」を個人開発しています。撮影→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を一発生成する

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?