Payは使い倒してるし、現金を下ろすためにATMはここ数ヶ月行ったことない感じ。Payの仕組み周りも聞ける(merpayのiD決済)めちゃくちゃ貴重なセッションだと思う。資金決済法周り、わかる。ハードルも高いしキャッシュアウトで口座振込(現金引き出し)ができない企業・サービス(資金移動業)が多いのも仕方ないよね......って気分になる。AML観点とか犯収法とかの観点でしかたないししかたないんだけどスマートになってほしいなあという気持ちはある。KYCも郵便によるKYCが現状ほとんどで、やっぱり受け取りコストが高いのわかる〜〜って感じ。銀行系の仮想通貨交換業の企業は自社グループの銀行口座の接続でKYC完了ってのも凄い楽だけど、例えば楽天ウォレットだと楽天銀行の講座がないとみたいな形になって辛い。メルペイとかはeKYCを導入していて最初のKYCの動線がすごく良かった記憶がある。Pay便利でセキュアらしい。Payへのカード登録フローとかで生のカード番号がDPANトークンになっているっぽい。決済のフローもDPANからFPANにはトークンプロバイダーが初めて行うので実際のカード番号データのやり取りがなくセキュアということだった。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使ってるとアプリ開発者からするとちょっと頑張ればあの画面偽造できそうな気がしてならないんだけどどうなんだろう。実際店舗の人って音が鳴るかと金額を入れてるところしか見てなくない?っていう気持ち。既存アプリに決済機能を導入する話。PayであればLINEアプリにPay機能を搭載する、メルペイならメルカリアプリにメルペイ機能を搭載していく話。メルカリは1機能ごとにフレームワークが分かれていた(Androidでいうところもモジュールっぽい)のでスムーズに開発ができたとのこと。基本的に各種動作確認には実機が必要らしい。PayのプロビジョニングもFelicaを搭載した実機端末できしかできない。メルペイではDIでカメラモジュールのスタブ化などを行って、デバッグ時はなにかQRをスキャンしたことにするみたいなStubを作って実機じゃなくてもスムーズな開発が行えるようにしたとのこと。いえば昨日もカメラ使う系のセッションで「実機必須」って話があったけどiOSシミュレーターだとカメラ周りが大変なんだろうか。Androidのエミュレータは無駄にカメラ周りが凝っている......。セッションを聞いてやっぱりモバイル決済系のサービスは参入ハードルがめちゃくちゃ高いなっていう気持ちになった。法律周りもそうだし、結構複雑な形(ビジネス的にも開発的にも)になってるな......っていう感想。なってくると力のある大手だったり、既に金融業界に進出しているIT企業もしくは銀行系のPayが増えてくるのも凄いわかるな〜〜〜。iPhoneX)のカメラで撮っているのでiOSxカメラのセッションを選択してみた。あとAndroidではカメラのAPIがCameraAPI→Camera2API→CameraXAPIという変遷をしていて非常に辛い(CameraXで内部でCamera2の辛さを吸収してくれているのでかなり良くなった)のでiOSでカメラを扱う技術に関して興味があったので。カメラの歴史や仕組み、原理から紐解いていてすごい。カメラ・オブスクラのお話から。色収差、ふんわりとした知識しかなかったけど講義か?!ってレベルで丁寧なお話ですごいわかりやすくて良い。SYSTEMは2016年4月にAppleが取った特許がある。(今のiPhoneにその技術が使われているかは不明とのこと)写真のデータ化の話。これもフィルム・銀塩カメラの時代からのお話。昔カメラをちょこちょこやってた頃はフィルムとデジタル両方持っていて、フィルムは自分で小さい暗室みたいなのやって現像したりしたのが凄い懐かしくなってしまった。デジタルカメラでは撮像素子(イメージセンサー)がフィルムの役割をする。光を電荷に変換する光電効果で実現しているらしい。アインシュタインすごい。IMX333というもの裏面照射式イメージセンサーになっているらしい。勘違いされやすいカメラの知識(画素数=画質の良さみたいなやつ)とかシャッタースピード、F値のわかりやすく詳しい説明が入っていて、この資料普通にカメラ界隈に出ても違和感がなさそうで凄い。意味」とかで検索すると初心者には難しかったり、たまに正しくない説明をしてるところとか普通にバチバチ出てくるので......。冷静に考えて確かにスマホのカメラってF値を変動できる機能があるわけではなくて異なるF値のレンズをつけて、ポートレートモードではそれぞれの写真を合成していい感じに背景がぼやけてるポートレート写真が撮れるようになってるんだよな。ここらへんの技術がちょっと知りたい。iOSでカメラ取得して、プレビューを映して写真を取る実装の簡単な流れが紹介されていたけど、流れ(デバイス取ってきて、セッションとって......)はAndroidと変わらない感じだった。コードのめんどくささもAndroidで言うところのCameraXくらいには簡単そう。加えてiOSはデバイスが決まってるのでAndroidでありがちな「カメラ取得してプレビュー出したり撮影したら一部のデバイスだけで天地逆転した」みたいなことがなさそうでいいなとは思った。シャッタースピードとかISO感度をソースコードから簡単に設定できそうな感じだった。してアプリさえ作っちゃえばバルブ撮影とかも可能なのかなという印象。Extensionを完全に理解するためのセッションっぽかったので選択。Framework、Reactiveの概念をSwiftのネイティブに(RxSwiftとかのライブラリではなく)導入するものらしい。WWDCで発表があったとのこと。justからHot変換までを車輪の再発明としてやっていくと理解できる。ライブコーディングではなくて予め用意してある動画を流しつつ、TODOをリアルタイムで潰していっていてすごくわかりやすいセッション構成になっていて感動。たしかにライブコーディングは当日吹っ飛んだりしてアクシデントになったりもするのですごく良い......。RxSwift本家のテストをひっぱってきて、自作の車輪の再発明の方でそのテストを通すという手法めちゃくちゃ良いと思った。ある有名ライブラリの再発明をして実装とか仕組みを理解するというのはたまにやっていたけど、テストに困っていたのですごく為になる。実際に実装しているところの動画のN倍速を流しながら解説→次にやることをスライドで解説→また動画......という形ですごくわかりやすかった。自作のMacアプリでスライド上にツイートを流していて面白いなという感じ。まとめまさに”デベロッパーのお祭り”感が強くて本当に良かった。自分は本業としてはAndroidアプリ開発者でiOSに関する深い知識はなくて「まぁSwift読めて、読んだらある程度こういうことやっているんだなというのがわかる」程度の立場で参加したけどそれでも楽しめるセッション、そして更にその僕のiOSに関する知識を深めることのできるセッションが多くて大変有意義な時間を過ごすことができた。今度の技術書典では深くは潜らないもののSwiftUIを使って見る試みをする部分を書いたりするので、それらが落ち着いたら本格的にiOSアプリ開発を個人でやってみようという気持ちになれてすごくテンションが高まった。miniを買ったので使いましょう)。スタッフの皆さんもありがとうございました!誰がスタッフをやっているかなんて知らずに行って知ってる顔ぶれに会えたりしてよかったです!最後の退場のハイタッチも良い雰囲気だなーと思った。LTが結構いい感じのハードルっぽかったので技術書典にむけて現在書いているものが書き上がって、更に煮詰めることができたらそういう発表(Androidエンジニアが喋るiOSとAndroidのマルチプラットフォームアプリ開発的なやつ)もチャレンジしたいなーと思えた。頑張っていきましょう。yagi2コメントをする1日目(実質2日目)の参加記です。オープニングオープニング前にかかってたミュージックがよかった。朝だけど強制的にヴァイブスがアゲアゲ。会場ついたらオレンジジュースとかドーナツが配布されてて朝ごはん提供いいなーって感じ(ダイエット中なのでミネラルウォーターだけもらいました)iOSDCは初参加で、今まではTwitter経由でいろいろな情報しか見ていなかったので、緒方恵美さんと三石琴乃さんのオープニングムービーだったりスポンサー紹介ムービーを生で見れてアニメ・声優オタクとしてはめちゃくちゃ感動してしまった。自社の名前を読み上げを聞きたい。繰り返し「コミュニケーションの場」というところが強調されたり、企画自体もそういうところにフォーカスがあたっている形になっていて凄いいいな〜と思った。僕もこうやってブログ書いたりフィードバックしてコミュニティに対してアプローチしていくぞという気持ち。」この時間帯のセッション、いくつか聞きたいのがあったけども色のセンスが絶望的(自覚して4年目)なので聞きに来た。自分でアプリを作るときとかにもmaterial.ioのカラーツール使ってメイン色、差し色を決定してるけどメイン色のチョイスからして絶望的で泣いちゃっていたので天のセッションという感じ。セッションの進め方がしっかりしていて、セッションの最初の方に登場していて全然わからなかったやつが後々再登場してそのときはわかる!みたいな構成でめちゃくちゃ聞いていて理解が進んだ。錐体細胞の話とかは大学とかの講義で聞いた記憶はあって(もう頭から抜けているが)そういう話がこういうところにつながってくるのか〜という感想。”色”と一文字で表現してもそもそも光の三原色だと表現できない色とか、人間の色に対する反応とか、色覚異常とか、健常だとしても人によって若干の色の見え方の違いが発生するとか考えることがめちゃくちゃ多いなという感じ。色を自在に操れるデザイナーさんすごい。僕も人間に優しい色選択、UIデザインができるようになるぞ。僕もダークモード派なので最近のダークモードに押し進んでいくAndroid/iOSの動きは嬉しい(実装するのはあんまりうれしくない)。機会的にはSwiftのコードを読むことが多いのでコードの世界を探索する際の足がかりを得られればと思って聞くことに。Protocolね、はいはいJavaでいうところのInterfaceみたいなやつでしょみたいな認識で聞きに行けてよかった。現状の問題の抽出を行うときに具体的な部分での抽出をするのではなくて、ジェネリックな形で抽出するという観点は本当にそうだと思った。セッション全体としてそのままAndroid/Kotlin(Java)に言えるようなセッションでとても為になる。具体的なSwiftのコードがバババっと出てくると理解速度が落ちてしまったけど後でスライドもう一度見て再キャッチアップしたい。読みやすさ、クリーンさというのはそもそもどういうことなのだろう......みたいなことをセッション中にずっと頭でぐるぐる考えてしまった。確かに共通化できるところはバシバシGenericsで汎用型にすればコードの記述量とかDRY的にすごくよくみえるけど、実際それをコードリーディングするときに読みやすいかと言われると......みたいな感じ。単純に手法にめちゃくちゃ興味があって選択。簡単にOSをまたいでデータをやり取り(モバイルデータ使わずに)したいなと思うことはままあるけどどうやって実装するかまでは考えたことがなかった。L2CAP、存在を知ってたけどAndroidは10(Q)からしか使えないのが衝撃。いうのってAndroidのほうが早いイメージあったけどデバイスごとに云々みたいな影響なのかな......。サンプルのコードがiOSとAndroidを比較して出してくれたり、実装の流れもそれぞれのOSで説明してくれていてまさに僕みたいな人だとすごくわかりやすいセッションになっていた。AndroidのL2CAPのSocketはそのままJavaのSocket感がすごかった。してこういう低レイヤーに近い部分の技術はドキュメントが宛にならなくて罠がめちゃくちゃあるんだよな......ってのを再実感させられた。いう点でこのセッションはBLE使うのであればかなりそういう罠に落ちるのを防げるのでめちゃくちゃ良いセッションだと感じた。available.」が多すぎない?iOSアプリ開発者ってすごいんだな......。純粋にオタク心がくすぐられて選択。1年くらい前からAR空間になにかしらを表示するっていうのが興味としてあって、3Dオブジェクトだったり......みたいなのをやったりしたのでそれの延長の興味。リアルタイムでクロマキー合成の加工をやる形だったのでパフォーマンス的にどうなんだろうと思ってたけど全然問題ない形のデモをされていてびっくり。AR空間にとりあえず動画を表示するだけならそこまで深い知識がなくともシュッと実装できそうなイメージ。裏側から見るとちゃんと裏側になるように出せるプロパティがあるらしく、それを使って面白いことできそうだなーと思ったりした。WebRTC経由で映像をクロマキー合成しつつAR空間にほぼリアルタイムで出すデモをやっていてアツかった!未来館めっちゃある!!!!satoshi0212さんも仰ってたけどリモート会議で相手の人をAR空間に出すとかっていうそういうの絶対来るでしょ......最高。みたいな気持ちでいっぱい。電脳コイルだったりそういうのが好きで育ってきたので早くそういう未来を作っていきたい。2019まさにここらへんを想像して1人でそわそわしてたけど最後にセッションでもまさにこれが紹介されててゾワッとした。いう世界好きなんですよね......。LTAでずっと聞いてた。1番面白かったのはSwiftでファミコンエミュレータを作る話。Worldまでやったことがあるのでめっちゃ面白かった。確かにSwitfは固定長整数型あるのでByte処理がすごく楽だな~ってのをサンプルコード見ながら思った。マスクして......みたいな処理を書きまくった記憶がある。Kotlinで1からやりたいなって気持ちになった。まとめ今日もめっちゃよかった。完全に自分の興味ドリブンでセッションを選択できて知識の海に浸れて気持ちよかった......。DroidKaigiとかだとやっぱり結構興味よりも「いや、これちょうど今の実務で......」みたいな考えになって聞きに行くみたいなのはどうしても発生しちゃって動画公開を待つ......!みたいなのが多かったのですごく新鮮。yagi2コメントをするAndroidアプリ開発を生業にしている僕が、iOSDCに参加してきました。いけばいいのか1ミリもわからず迷子になった。2019前夜祭でそんなに人がいないからなのかチェックインがスムーズで体験がよかったもらえるバッグがめっちゃいい感じ(手持ちも肩掛けもできる)セッション部屋入るか〜って思ったらアルコールの配給があった(助かる)FromAtomさんの「スクリーン配信機能の実装が大変だったので知見をお伝えします」Vのオタクとかやってたり自分も美少女になりたい〜〜〜って思ってるとよくMirrativとかそういうアプリ入れているとiOSの画面キャプチャボタンをForceTouchするとなんか簡単に配信できて感動していたのでどういう実装をするとこんなに簡単になるのかが興味があった。実際セッションを聞いた限りだと、実装に関してはすごく簡単にできそう(ハマりどころはめちゃくちゃ多そう......)でiOSしゅごいな〜〜〜ってなった。AndroidだとそもそもOSでスクリーンレコードをする機能みたいなのが基本的にはなくて(HuaweiだったかはカスタムされているROMでその機能が入っていたりする)録画すらめんどくさいので本当に羨ましいと思った。僕も恩恵にのっかって美少女Vの者になりたい。」Radiotalkさんのアプリは日常から使っていて、テロップ動画を作る話だった。自分もGoogleのSpeech-To-Textを使ったことがあるんだけど結構すごい精度に感動したのを覚えてる。音声のラジオを文字起こししてテロップ動画にするっていうアイデア自体が凄いいいと思っていて、Twitterとかを見てるときって音を出せない状況とかのことが多くてそういうときに文字起こしされてる動画ってかなり重宝してたりして凄いいいアプローチだな〜〜〜って思った。GoogleのSpeech-To-Textを使ってテロップ動画にするっていう本質の部分は結構登場してくるクラスが多くてめちゃくちゃ大変そうな感じだった。Androidでも動画とか音声を扱って編集するっての簡単じゃないのでめっちゃわかる......。本質的な話の部分もそうだったんだけど、テロップ動画編集画面のUI/UXがすっごく良さそうだった。そのUIと相まってSpeech-To-Textで文字起こしされた文字が既に入っていて修正するとか少しの操作だけで動画が完成するっていう手軽さに驚いてしまった。インスタのストーリーズとかもそうだけど、現代だととにかくユーザーのコストを減らしてアウトプットまで持っていけるかみたいなのはめっちゃ大事だな〜〜〜〜って思った。複雑だったり、面倒くさいとユーザーはすぐに離脱する。僕も大体めんどくせって思ったらその瞬間にアプリキルするし。技術的な話も面白かったけどそういう意味でUXな部分でめちゃくちゃ感激するセッションだった。Android版はまだ開発中らしいので完成したらめっちゃ触りたい。表面のうっすらとした知識とかコードを読むことはできるけどプライベートでiOSアプリの開発をしてるわけでもないのでこういう場所に来るとすべてが新しい知識で凄い新鮮で楽しい。yagi2コメントをするやぎにいです。今回技術書典7に初めてサークル参加するのでそれについて書かせてください。サークル名は「鳥のささみ」場所は「い09C」です。https://techbookfest.org/event/tbf07/circle/5686371737927680サークルページのジャンル詳細にあるとおり、Android/Kotlin/Javaあたりの知見、Tipsなどを数人で書いて1冊出す予定です。執筆者は現在4人を予定していて、各々1,2トピックを書いて合同誌になる予定です。(進捗がんばります)4人とも現状最前線でAndroidアプリ開発をしているのできっと良いものが書き上がるのではないかと思っています。全員分が揃っていないので、自分自身が書こうとしているトピックを紹介しておきます。KotlinでUIを組むようなものが紹介されました。自分はAndroidアプリ開発者をやっていて、iOSアプリを見るときにStoryboardを見るのがすごく難しくて何度もXMLでConstraintLayoutとかで書きたい......と思うことがありました。ここでSwiftUIが登場してきたので、SwiftからUIを組むのであればだいぶハードルが下がるなと思いXcodeのBeta版で触ってみたところ非常に感触が良かったです。Worldするところまで(余裕があればもっと踏み込みます)を書いていきます。前半はちょっとポエム要素が強めで、後半は実際にソースコード等を紹介しながら実際に動かしていく流れになる予定です。Go言語を使ってAndroid端末のlocalhostで動くAPIサーバーを作ってサクッとデバッグする話これは実際に自分が仕事で行っていた話をまとめる予定です。マルチプラットフォーム話を書いて余裕があったら書く予定です。受託などの案件をやっていると、APIの定義はあるもののStaging環境に全然デプロイされない(並行してAPI側も開発しているなど)状況が続いてアプリ開発のスピードが落ちてしまうことがあります。ここでいい感じの開発現場であればサーバー側のコードを引っ張ってきてDockerでどっかーんして自分で手を加えることもできるとは思いますが、手元にあるのはAPIの要件定義書のみ......!そこで僕はGo言語を使ってAndroidのlocalhostで動くAPIサーバーを作って、アプリからlocalhostを参照して、静的なjsonを受け取って動作の確認を行って実際にAPIがデプロイされるまでつなぐということをしていました。この話をちょろっとすると結構面白くてウケがいい(実用性はおいといて)のでせっかくなので本にしてみようと思っています。僕は以上2件(進捗によっては1件)を執筆しようと思っています。当日は「い09C」にお越しください!開催日直前にまた支払い方法や値段などを紹介できればと思います。yagi2コメントをする生まれて初めてブログを開設したときはさくらのレンタルサーバーにWordPressを構築して数年間運用していたのを思い出しました。その後、ちょっと踏ん張ってMiddleman+AWS+CircleCIでブログの環境を構築してMarkdownファイルを書いてGitHubにPushすればCircleCIが動いてビルドして静的なHTMLファイルがS3にアップロードされて、CloudFrontにのっかって皆様の手元にHTTPSでお届けする環境を運用していました。それ以来となるWordPressに戻ってくることとなりました。いうのを箇条書しちゃうと。自分にはメンテナンスをするコストがでかすぎたすべてWeb上で完結したかったChromebookを買ったのでローカルでMiddlemanを動かしてプレビューしたりするのが大変になったという3点が理由です。自分が今まで使っていたMiddlemanもバージョンが古かったり、メンテするにもRubyやSlimなどの知識が薄くそこまでやるモチベーションがなかったのが大きいです。Chromebookを最近買ったのでWeb上でブログポストをかけるというのがすごく大きく移行に踏み切りました。Markdownで書けるのはすごい良かったし、WordPressのエディターが数年見ないうちに死ぬほど使いづらくなっているのでここはプラグインとかでよしなにしたいです。今まで書いていたブログポストを本当は自力でこっちのブログに移そうかと思ったのですが1記事目で心折れました。https://archive-blog.yagi2.devというドメインに移して残しておくことにしました。本当はホスト名を変えるのは良くないのですが、まぁ1からやるか......みたいな気持ちが強かったので思い切ってしまいました。いうわけで、新生やぎ小屋よろしくおねがいします。これですごく書きやすくなったのでちゃんとポストしていきたい気持ちです。技術書典7にサークル参加するのでそっちの執筆をしますが、参加記や参加する前にサークルの紹介なども書きたいですね。技術書典7にサークル「鳥のささみ」として出展しました。