iOSDC JAPAN 2019 Day2 参加してきた

Pocket
LINEで送る

Day2(実質3日目)(最終日)の参加記です。
昨日まででめちゃくちゃセッション詰め込んで聞いてしまったので今日はスポンサーブースにも行くぞという心構え。

そういえば参加記とDay1のときも書いていたけど、セッションを聞きながらメモを取りつつ感想を書いていたりするのでご了承ください。

kenmazさんの「モバイル決済アプリの作り方 」

自分自身がキャッシュレス、モバイル決済に興味がある(キャッシュレス生活2018 in 京都 | やぎ小屋)ので選択。メルペイの方だった。

自分自身普段の生活ではかなりキャッシュレスに寄っていて上記にあるとおりApple Payは使い倒してるし、現金を下ろすためにATMはここ数ヶ月行ったことない感じ。Apple Payの仕組み周りも聞ける(merpayのiD決済)めちゃくちゃ貴重なセッションだと思う。

資金決済法周り、わかる。ハードルも高いしキャッシュアウトで口座振込(現金引き出し)ができない企業・サービス(資金移動業)が多いのも仕方ないよね……って気分になる。AML観点とか犯収法とかの観点でしかたないししかたないんだけどスマートになってほしいなあという気持ちはある。

KYCも郵便によるKYCが現状ほとんどで、やっぱり受け取りコストが高いのわかる〜〜って感じ。銀行系の仮想通貨交換業の企業は自社グループの銀行口座の接続でKYC完了ってのも凄い楽だけど、例えば楽天ウォレットだと楽天銀行の講座がないとみたいな形になって辛い。メルペイとかはeKYCを導入していて最初のKYCの動線がすごく良かった記憶がある。

Apple Pay便利でセキュアらしい。セキュアってのがピンと来なかったけど、Apple Payへのカード登録フローとかで生のカード番号がDPANトークンになっているっぽい。決済のフローもDPANからFPANにはトークンプロバイダーが初めて行うので実際のカード番号データのやり取りがなくセキュアということだった。

Apple Payを実現するにはApple Pay In-App Provisioningという技術があって、これを使ってメルペイの残高をiD払い(Apple Pay)できるように実現しているらしい。

コード決済、CPM(利用者がQRを出して店の人がスキャン)、MPM(利用者がQRをスキャンする)。前者は大きい店が導入する傾向があって、後者は特別な機器がいらないので中小企業が導入する傾向にある。たしかにPayPayとかは飲食店ではMPMになっているところが多い印象(コンビニとかのPayPayはCPMだけど)。

JPQRの話、各事業者での統一しようで1つのQRコードで複数の決済サービスを利用できる。まだ始まったばかりで東京にもほとんどないらしい。探してみたい。

メルペイのQRコードはEMVの仕様(IC型クレジットカードの統一規格)を使っているので海外企業との連携をやろうとしたときのハードルを低くなるようにつくってあるっぽい。すごい。

iOS13からはQRCodeGeneratorというクラスがあって、OS標準でQRコードを出力できる。凄い。AndroidだとZXingとかのライブラリを使うか自力で頑張るかみたいな形になっているのだ……。

統一店舗識別コード、国で定まっているコードらしいんだけど居酒屋で言うところのテーブル1つ1つのレベルの細かさまで振るっぽくてすごい。

MPMでの決済の偽造を防ぐ技術とかめちゃくちゃ聞きたい。正直PayPay使ってるとアプリ開発者からするとちょっと頑張ればあの画面偽造できそうな気がしてならないんだけどどうなんだろう。実際店舗の人って音が鳴るかと金額を入れてるところしか見てなくない?っていう気持ち。

既存アプリに決済機能を導入する話。LINE PayであればLINEアプリにPay機能を搭載する、メルペイならメルカリアプリにメルペイ機能を搭載していく話。
メルカリは1機能ごとにフレームワークが分かれていた(Androidでいうところもモジュールっぽい)のでスムーズに開発ができたとのこと。

基本的に各種動作確認には実機が必要らしい。Apple PayのプロビジョニングもFelicaを搭載した実機端末できしかできない。めんどうそう。

メルペイではDIでカメラモジュールのスタブ化などを行って、デバッグ時はなにかQRをスキャンしたことにするみたいなStubを作って実機じゃなくてもスムーズな開発が行えるようにしたとのこと。よさそう〜。そういえば昨日もカメラ使う系のセッションで「実機必須」って話があったけどiOSシミュレーターだとカメラ周りが大変なんだろうか。Androidのエミュレータは無駄にカメラ周りが凝っている……。

セッションを聞いてやっぱりモバイル決済系のサービスは参入ハードルがめちゃくちゃ高いなっていう気持ちになった。法律周りもそうだし、結構複雑な形(ビジネス的にも開発的にも)になってるな……っていう感想。
そうなってくると力のある大手だったり、既に金融業界に進出しているIT企業もしくは銀行系のPayが増えてくるのも凄いわかるな〜〜〜。

satoshin21さんの「iPhoneのカメラで写真撮影から現像までの技術を紐解く」

最近はめっきりカメラ持たなくなったけど昔はちょこっとだけかじっていて、もう今はスマホ(Pixel3a, iPhoneX)のカメラで撮っているのでiOSxカメラのセッションを選択してみた。

あとAndroidではカメラのAPIがCameraAPI→Camera2API→CameraXAPIという変遷をしていて非常に辛い(CameraXで内部でCamera2の辛さを吸収してくれているのでかなり良くなった)のでiOSでカメラを扱う技術に関して興味があったので。

カメラの歴史や仕組み、原理から紐解いていてすごい。カメラ・オブスクラのお話から。
色収差、ふんわりとした知識しかなかったけど講義か?!ってレベルで丁寧なお話ですごいわかりやすくて良い。

非球面レンズ、IMAGING LENS SYSTEMは2016年4月にAppleが取った特許がある。(今のiPhoneにその技術が使われているかは不明とのこと)

写真のデータ化の話。これもフィルム・銀塩カメラの時代からのお話。昔カメラをちょこちょこやってた頃はフィルムとデジタル両方持っていて、フィルムは自分で小さい暗室みたいなのやって現像したりしたのが凄い懐かしくなってしまった。

デジタルカメラでは撮像素子(イメージセンサー)がフィルムの役割をする。光を電荷に変換する光電効果で実現しているらしい。すごい。アインシュタインすごい。

iPhone Xsで使用されているイメージセンサーはSony Exmor IMX333というもの裏面照射式イメージセンサーになっているらしい。

勘違いされやすいカメラの知識(画素数=画質の良さみたいなやつ)とかシャッタースピード、F値のわかりやすく詳しい説明が入っていて、この資料普通にカメラ界隈に出ても違和感がなさそうで凄い。だいたい「F値 カメラ 意味」とかで検索すると初心者には難しかったり、たまに正しくない説明をしてるところとか普通にバチバチ出てくるので……。

冷静に考えて確かにスマホのカメラってF値を変動できる機能があるわけではなくて異なるF値のレンズをつけて、ポートレートモードではそれぞれの写真を合成していい感じに背景がぼやけてるポートレート写真が撮れるようになってるんだよな。すごい。ここらへんの技術がちょっと知りたい。

iOSでカメラ取得して、プレビューを映して写真を取る実装の簡単な流れが紹介されていたけど、流れ(デバイス取ってきて、セッションとって……)はAndroidと変わらない感じだった。コードのめんどくささもAndroidで言うところのCameraXくらいには簡単そう。
更に加えてiOSはデバイスが決まってるのでAndroidでありがちな「カメラ取得してプレビュー出したり撮影したら一部のデバイスだけで天地逆転した」みたいなことがなさそうでいいなとは思った。

シャッタースピードとかISO感度をソースコードから簡単に設定できそうな感じだった。もしかしてアプリさえ作っちゃえばバルブ撮影とかも可能なのかなという印象。柔軟性〜〜〜。

y.imajoさんの「自作して理解するリアクティブプログラミングフレームワーク」

iOS固有というよりはReactive Extensionを完全に理解するためのセッションっぽかったので選択。

Combine Framework、Reactiveの概念をSwiftのネイティブに(RxSwiftとかのライブラリではなく)導入するものらしい。WWDCで発表があったとのこと。

justからHot変換までを車輪の再発明としてやっていくと理解できる。

ライブコーディングではなくて予め用意してある動画を流しつつ、TODOをリアルタイムで潰していっていてすごくわかりやすいセッション構成になっていて感動。たしかにライブコーディングは当日吹っ飛んだりしてアクシデントになったりもするのですごく良い……。

RxSwift本家のテストをひっぱってきて、自作の車輪の再発明の方でそのテストを通すという手法めちゃくちゃ良いと思った。自分も真似したい。
既にある有名ライブラリの再発明をして実装とか仕組みを理解するというのはたまにやっていたけど、テストに困っていたのですごく為になる。

実際に実装しているところの動画のN倍速を流しながら解説→次にやることをスライドで解説→また動画……という形ですごくわかりやすかった。どうやら自作のMacアプリでスライド上にツイートを流していて面白いなという感じ。

まとめ

まさに”デベロッパーのお祭り”感が強くて本当に良かった。自分は本業としてはAndroidアプリ開発者でiOSに関する深い知識はなくて「まぁSwift読めて、読んだらある程度こういうことやっているんだなというのがわかる」程度の立場で参加したけどそれでも楽しめるセッション、そして更にその僕のiOSに関する知識を深めることのできるセッションが多くて大変有意義な時間を過ごすことができた。

今度の技術書典では深くは潜らないもののSwiftUIを使って見る試みをする部分を書いたりするので、それらが落ち着いたら本格的にiOSアプリ開発を個人でやってみようという気持ちになれてすごくテンションが高まった。(技術書典でSwiftUIを扱うからmac miniを買ったので使いましょう)。

スタッフの皆さんもありがとうございました!誰がスタッフをやっているかなんて知らずに行って知ってる顔ぶれに会えたりしてよかったです!最後の退場のハイタッチも良い雰囲気だなーと思った。

LTが結構いい感じのハードルっぽかったので技術書典にむけて現在書いているものが書き上がって、更に煮詰めることができたらそういう発表(Androidエンジニアが喋るiOSとAndroidのマルチプラットフォームアプリ開発的なやつ)もチャレンジしたいなーと思えた。頑張っていきましょう。

Pocket
LINEで送る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です