#自己紹介
はじめまして、まつもとかづまさと申します。
現在東京のIT会社でエンジニアとして働いています(掲載頃にまだ生き残っていたら4ヶ月目)
個人的にはQiitaに書いていい内容なのか迷っている内容ですが、ダメならダメで、あとで削除しておきます。
#今日のこの記事にあたって・・・
何書こうかなぁとなっていまして、せっかくなんでこの2年間の僕の活動をざっくりとまとめた内容になります。
エンジニアでもあるんですが、実証実験などコード書く以外にしなければいけないことを
いろいろしているので参考になればと思います。
#僕が作っているものは3ステップウォレットというものです
僕がみんなに投げかけたいメッセージは
「全ての人って健常者だけ?」(上の記事を読んでいただけると幸いです)
です。なのでその問題を解決するために開発を始めました。
(偉そうなことを言ってますが僕はまだ知的障がいの問題しか取り組めていません。今後、開発力やメンバーが増えてきたら、視覚障がいの問題にチャレンジ予定です)
##目的:「知的障がい者でもキャッシュレス社会に対応できるアプリケーション」
このアプリケーションの原則は知的障がい者支援にあります。
応用されるソリューションとしては
「子供のお小遣い管理アプリ」
「認知症の親の資金管理(振り込め詐欺などの犯罪を防ぐことが可能)」
です。
##現状:マルチシグに対応したキャッシュレスシステムはありません
- Apple Pay(検討するようです)
- Amazon Pay(問い合わせ窓口をたらい回しにされ、現在別のアプローチから模索中です)
- PayPay(窓口ありませんでした。)
- Line Pay(回答もらえてない)
ここが一番の課題
やはり現実で使われている決済システムに導入するのが一番かと思っています。もちろんNEMが世界共通通貨となれば僕のタスクも減るので助かるのですが、現状としてはまだみたいなので、この方法も考えておかないといけません。
##現時点でない理由
ここは資本主義に置いて理由は一つです。
「利益にならないから」
##3ステップウォレットの機能とは
仕組みとしてはこんな感じ
NEMのマルチシグの機能を使っています。
後見人承認という既存のシステムとマルチシグの機能がたまたま合致したので使っている感じです。
(ここは本当に運命の出会いのような気がします)
よく言われる
「それブロックチェーンである必要があるの?」
と聞かれますが、
安価に実証実験を行う条件でマルチシグを搭載しているものといえばNEMしか思いつかないんです(あとは開発が楽)
頑張って理解者を増やすために説明しています。
この機能を俺より優秀なエンジニアがたくさんいるこの現代社会でできないわけがない。
とは思っています。
##仕様
単なるnemの決済アプリケーション
ポイントとしては、操作ミスがそもそも発生しにくい設計にしないといけません。ここでみなさん健常者の方々はトップページに戻ってやり直せばいいやんと思いますが、何かしらの操作ミスで奇声を上げて他人に対して攻撃される方もいた経験(事業所で勤務時に)があるので、基本的には「本当に簡単、現在のテクノロジーでできること」というコンセプトになっています。
なのでかなり機能を削減していてボタンをぽちぽちQRをスキャンで基本的に意思表示ができるようにしています。
健常者の方は絶対にラクーンウォレットを使ったほうがいいです。
###理由
現在健常者向けのアプリケーションの基本は「多機能」にあります。
この多機能はエンドユーザーのリテラシーによるものですので、IQが低い人にはハードルが高くなります。
ここは仕方がないかなぁと思います。(今の時代では)
##中身
Ionic+vue+nem2-sdkです
正直この選択は間違えたと今になって思いました。
ただ作り始めたのは2019年の5月でこの記事が掲載されているときにDartなどのSDKがあるかどうかは不明ですが、Typescriptで作るしかなかったというのが正直な理由です。
決済に関してもnem2-sdkを使用していますので、正直ここについては新しいことは何もないかもしれませんが一応載せておきます。
以下は例としてシングルシグの送金
// シングルシグでの送金
import {
Account,
Address,
Deadline,
NetworkCurrencyMosaic,
NetworkType,
PlainMessage,
TransactionHttp,
TransferTransaction,
} from 'nem2-sdk';
// 受け取り先のアドレス
const recipientAddress = Address.createFromRawAddress('QRコードで読み込んだアドレス');
// トランザクションの作成
const transferTransaction = TransferTransaction.create(
Deadline.create(),
recipientAddress, // QRコードに記載されているアドレスになります
[NetworkCurrencyMosaic.createRelative(amount)], // QRコードにはamountでxemの送料を決定します。
PlainMessage.create('message'), // QRコードにはmessageとして購入するものを埋め込んでおきますex) わかばくじ
NetworkType.MIJIN_TEST);
// 秘密鍵からアカウントを作ろう
const privateKey = process.env.PRIVATE_KEY as string; // 秘密鍵
const account = Account.createFromPrivateKey(privateKey,NetworkType.MIJIN_TEST);
const networkGenerationHash = process.env.NETWORK_GENERATION_HASH as string; // Generation_Hash
const signedTransaction = account.sign(transferTransaction, networkGenerationHash);
// ノードに接続しましょう
const transactionHttp = new TransactionHttp('http://localhost:3000'); // 接続先によってリンクが変わります
transactionHttp
.announce(signedTransaction)
.subscribe(x => console.log(x), err => console.error(err));
みたいなイメージではいます。
これはあくまでもシングルシグでの送金で、結局のところ署名するんかい!!って感じのイメージを持ったことによって理解が深まった気がします。(間違ってないよね?)
この部分は健常者に設定してもらうところですが、秘密鍵を入力したらアカウントが作成されるようにしたかったので機能として入れています。
あとはNEMに関しては送信機能しかありません。
というより下手に解説するよりドキュメントやコミュニティから出ている本をじっくり読めばできます。
(ここを簡単と捉えるか難しいと捉えるかは人それぞれですが、今まで人生で触ってこなかった人間が努力してできるレベルなので、かなり優しいと思っています。)
マルチシグ送金の際にCORSエラーが出ます
確かListener関連でエラーが出るはずなので
(Vue.jsで確認しています。Angularでは何か別のエラーが確認できていますが、また解決次第掲載します。)
多分エラー出た時はこの記事読んでください。
その他の機能はどうしているのか?
-
アカウントのマルチシグアカウントへの変更などは外部で設定して行なっています。
-
マルチシグには承認機能が必要ですが承認についても外部アプリケーションで行なっています。
-
「3ステップウォレットは購入したい意思表示のアプリ」だと思ってください。
##シンプルにした理由
明確な根拠はありませんが、知的障がいと言われる人と一緒に生活をしてきた身としては一つだけわかっていることがあります。
それは「選択肢」に弱い。ということです。
選択肢に迫られた時に、そこで何が起こるかというと、おそらくですが本人にとってはパニックになるんでしょう、それでいろんな反応パターンが現れます。「笑う」「泣く」「黙る」「怒る」「殴る」「自害行為」など様々です。(正確なデータがないため個人の感想です)
なので当時支援を行うときはその突発的なパターンにはかなり注意をして支援を行なっていました。
だが
「学習はできる」とも思っています
簡易なルーティンなどはこなすことは以前勤めていたところで確認済みです。新しいことも2ヶ月もしたら学習しています。
(当時はレンタルDVDのシールを剥がす作業をしていたが、ヘラを使用しての作業で。早い人は2週間、遅くとも2ヶ月で習得できていることから学習スピードが健常者より遅いと認識。そのために訓練が必要なので新しい3ステップウォレットではNEM2のMIJIN_TESTを使用しています。)
*nem1ではMainnetを使用していましたが、マルチシグトランザクションの費用を考えるとnem2でできるかと考えると少し躊躇しています。本当はトランザクションを活発にできればという思いはあるのですが、やはりたくさん決済体験をしてほしいということもあり、MIJIN_TESTを使用します。
また使用者が楽しく使えるアプリの方がいいと思っています。(ここに関してはどんどん改良できればと思っています。最近Flutterのデザインが格好いいと思っています)
「健常者と知的障がい者の感じ取るUIデザインやUXデザインは一緒なのか?」(ここは今年の実証実験の要素にも入っています、テーマは「色」です。)
ということも考えないといけないのでここは実証実験を重ねたいと思っています。
はい。技術的な部分終わり。
#神様も知らないヒカリで歴史を創ろう
ここから先はポエムです。技術的なことを知りたい人はドキュメントでも読むほうがいいと思います。
##3ステップウォレットは単なるスタート地点
さてここでもう宣言しておいたほうがいいと思うので宣言をしておきます。
僕が今作りたいものは
です。
とりあえず「決済」ついてはマルチシグの機能を使えばいいなとは思っています。
ただ「移動」に関しては正直どうしようかな?とは思っています。
機械学習したARグラスが危険を事前に知らせることで可能になるのか?それとも別の方法があるのかわかりません。
こうしたらいいんじゃない?というアドバイスは大歓迎
#最終的なゴール
##「資本主義の恩恵を提供できるようにする」
さて「資本主義の恩恵」とは何か?
みなさんもここまで読んでくれたのであればいい機会なので是非とも考えていただきたい。
「競争があるからこそ、便利な世の中になる」
というのが資本主義の恩恵であると考えています。
テクノロジーなんてオモチャよオモチャ
だからこそみんなで一緒に楽しみたいやん
サービスの提供者の特性を把握して企業にこういうサービス提供したら利益になりますよ〜。で参入してもらい、サービスの競争が始まり、初めて便利で豊かな「現代社会」を提供できると信じてるからね。
健常者だけ「現代社会の恩恵を受けるなんてずるくない?」というのが俺の考え
そのためにはサービスの提供を受け取り、対価として報酬を支払う。という関係性にならなければ難しいと思っています。
##今、必要なのはデータ
現在3ステップウォレットは「QR決済体験アプリケーション」という位置付けになっています。
実際に知的障がいや発達障がいの方々が通う「放課後等デイサービス」にて実証実験をさせていただいております。
放課後等デイサービス「わかば」様の努力もあり、「わかば祭り」として、お祭りイベントでQR決済体験イベントを開催していただいています。
(本当に工夫していただきありがとうございます)
実証実験の様子
僕の立場としては「どんな時代になったとしても対応できる社会」を目指しているだけです。
なので必要なのはQR決済をした際のデータです。
nem1時代の実証実験データ(期間11/28~12/25)
わかばさんからのアンケート内容
とまぁ、現時点では障害支援区分が6に近づくほど難しいとなっています。ここをどうするかをまた考えないといけないです。
また福岡ということも関係するのかわかりませんが、ITリテラシーは高めではあるなぁとは思いました。
(なにぶん他のところで実証実験を行なっていない為、比較対象が不可)
(くじの人気はすごい)
#最後まで読んでくれてありがとうございます
こんな駄文を読んでくれてありがとうございます。
協力していただける方がおられましたら
-
実証実験先の紹介(関東近郊)
- 生活介護事業を行なっている事業所様
- 就労継続支援a型 b型を運営している事業所様
- 就労移行支援を運営している事業所様
- グループホームを運営している事業所様
- サービス付き高齢者住宅を運営している会社様
- 幼稚園や小学校や中学校で実証実験をさせていただけるところ
-
開発リソースの提供
-
上記実証実験先の紹介
-
開発チームへの参加(3ステップウォレット以外にもプロジェクトはあります)
- 移動支援型ARグラスの開発(単独旅行を可能にするシステム)
- 療育型VRアプリケーションの開発(しまじろうが日常生活を教えてくれる)
- マッチングアプリの開発(障がいのある方でも好きな人と恋愛を)
- プロジェクションマッピングで遊ぶプロジェクト(よくある壁に映像が映し出されて遊べるもの)
-
広報やってみたい人(僕が素人なので)
-
-
統計の専門家(大学機関など)
- データを確固たるものにしたいので
-
海外での事例紹介
費用につきましては要相談となります。
現在はみなさん無報酬でお手伝いいただいています。本当週に1時間だけとかでも全然ありがたいです。
今はこの4つを探しています。
純粋に応援という形でも嬉しいです。
(窓口はOpening Line様へお問い合わせください)
#最後に記事作成につき改めてお礼申し上げます
3ステップウォレット作成にあたり、様々な方々にご協力いただきました。
今は
など様々な方にご協力いただいて作成しております。
また過去には
- Shoheiさん
- nemコミュニティのみなさん
など様々な方々に協力をえて、一歩ずつ成長してきたプロジェクトだと思っています。
この問題に取り組み初めて2年が経ちました。
長く、そして終わりの見えない大変なプロジェクトです。
本当に協力してくださっている方には感謝、感謝です。
家族との時間を割いてコードレビューをしてくださったり、プライベートの時間を邪魔してしまったりして本当すいません。
もっと僕に開発力と、営業力と、資金力と、英語力と、カリスマ性があればよかったのですが・・・
こんな僕ですが、是非ともよろしくお願いします。
まつもとかづまさ
#あとがき
2年間の頑張りをかなり端折ってまとめるとこんな感じです。
これを読んでいるみなさんに向けてアプリケーションを作っているわけではないので、なかなか伝わりにくいと思います。疑問などはTwitterで質問してもらえるといいかと思います。
基本的な考えとして、「みんなでテクノロジーの時代を楽しもう!!」という考えのもと活動していますので、なかなか受け入れるのが難しいかと思いますが、単にそういう思想なので気にしなくていいです。
個人的にはマス向けのサービスを作るのは正しいことだと思っています。(むしろ時代がそれを証明してきた感じがあります)
そして心が折れそうな時の水樹奈々に感謝。。。
#追記
11/30にミーティングを行いまして、2020年1月ごろより実証実験第2期を始めます。(これを掲載した頃は絶賛準備中でバタバタしてます。)
今回の実証実験では
ネイティブ化の動作がうまくいくのか?(アプリとしての実行orブラウザとしての実行?)
知的障がいの方向けに適切なUIとは?
電話とメールどっちがいい?
など、少しずつではありますが、より良いものを作成できるように頑張ります!!