技術書典7にサークル「鳥のささみ」として出展しました。

技術書典7お疲れ様でした!直前のポストでも告知していたように、サークル「鳥のささみ」としてサークル出展を行ってきました。

このポストでは今回のサークル出展での反省点と次回以降出展を考えている方のための知見を吐き出しておこうと思います。

売り上げ

今回、頒布分を全部で42部を会場へ持ち込みましたが終了15分前(16時45分)に42部すべて売り切ることができました。

売れ残ってしまった場合、pixiv BOOTHさんで出品してレターパックなどで発送を考えていたのでそれがなくなっただけでだいぶ楽になりました。

最終的な被サークルチェック数は100でした。

単純に被サークルチェック数から考えるともう少し売れてもいいかなとは思いましたが、それも難しかったと思う(後述します)ので次回の改善点です。

現金とかんたん後払いの2種類の決済手段を用意していましたが、かんたん後払いは最終的に18件、残りはすべて現金決済でした。

かかった費用

サークル参加費:7,000円
印刷代:51,741円

これはもう見て明らかなのですが、実は今回印刷代が販売価格を上回っていました。
とはいえ1,500円で頒布するようなものでもないので本当は500円で販売したいものの1,000円にて頒布させていただきました。

印刷代だけみても売上が42部で42,000円で印刷代が51,741円だったので単純に1万弱円赤字でした。

加えてサークルテーブルで使っていたポスター立てなどはありますが、次回以降使い回せるので今回費用としては計上していません。

印刷代

印刷はキンコーズさんを使わせていただいてくるみ製本(無線綴じ製本)を行いました。

明らかにこれが今回のユースケースとはマッチしていなくて、キンコーズの方にも「もし時間が許すのであれば今から印刷所のほうが良いと思います」と言われました(時間は許してくれませんでした)。

表紙厚紙カラー印刷、50P、45部の発注で1部辺り1,150円の印刷代でした。

主な要因としてはリサーチ不足とスケジュール管理のミスです。最後の三連休最終日の16日に締め切りを設けました。
最初は日光企画さんを利用させていただく予定だったのですが、結局手軽さなどでキンコーズさんにて印刷をしました(手軽さのトレードオフがここまでデカイとは思っていませんでしたが……)。

次回はもっと余裕を持ったスケジュールにしてしっかり印刷所入稿で参加したいと思います。

一般的には半分売り上げてトントンになるくらいの価格設定が良いと言われていますが、価格設定は好みだと思います。

参加して初めてわかったこと

通りすがりの方へのアピール

サークルチェックをして頂いてた方はすっと来て見本誌パラ見(もしくは見ずに)買われていったのですが、そうでない方への訴求が難しいと感じました。

特に今回は企業からの出展ではないのにも関わらず特定の1トピックにフォーカスを当てた本ではなくて合同誌にしたので尚更難しく感じました。

個人個人の合同誌だとインパクトにかけて訴求力が下がりかつ通りすがりの方からしたら「なんだかよくわからない」という感想になってしまってコンバージョン率が悪くなってしまっていたと思います。

次回は複数人で1サークル出展するとしても1人1冊(1題材1冊)にしたほうが良いなと思いました。

合同誌というポイント

企業ではなく個人数人をあつめて合同誌にして1冊で出すというポイントも弱かったかなと思います。

結構見本誌を読んでいただけていたのですが、そこから購入につながるケースが少なく中身のインパクトが合同誌になっている影響ですべてで弱かったのかなという感想です。今回は物理本で50P、4人なので1人辺り平均して10Pちょっと。「合同誌の中の○○に興味がある」みたいな方だと「うーん気になってるトピックが10Pくらいしかないのに1,000円はなあ」みたいな気持ちになるのも頷けるな……みたいな感じです。(1つ1つのトピックはすごく面白くて読み応えはあるのですが)

まとめ

  • しっかり下調べして頒布価格より印刷代が上回ることがないようにしよう
  • 個人の合同誌はポイントとして弱い
  • でも本を作る良い経験ができるので技術書典は良いイベント
  • 次に向けて地道に書いていきます

さいごに

今回の技術書典で頒布した本の電子版をpixiv BOOTHさんにて販売しております。こちらはページカットしていない68ページのフル版をPDFとePubにて販売しております。

もし会場に来られなかった、買いそびれた方でご興味のある方はぜひお買い上げいただけると嬉しいです!

【電子版】鳥のささみ合同誌 Vol.1 – Android, Kotlin, Java に寄り添う – | 鳥のささみ
https://booth.pm/ja/items/1566359

技術書典7にサークル「鳥のささみ」として参加します

こんにちは!やぎにいです。今回は私が主催する技術書執筆サークル「鳥のささみ」が9月22日(日)に開催される技術書典7へ参加させていただくので宣伝記事です!

技術書典7

https://techbookfest.org/event/tbf07

鳥のささみはAndroid, Kotlin, Java周りの知見やTipsなどをまとめた本を執筆する技術書執筆サークルです。メンバーは私を含めて4名います。

今回、鳥のささみは い09C にて頒布させていただきます!
https://techbookfest.org/event/tbf07/circle/5686371737927680

頒布情報

今回頒布するのは1冊です。

タイトル「鳥のささみ合同誌 Vol.1 – Android, Kotlin, Java に寄り添う –」という本を頒布させていただきます。

物理本+電子版での販売となります。

内容

私はマルチプラットフォームアプリケーション開発の夢をみるか?

筆者は普段Androidアプリ開発をしており、iOS開発もやってみたいとおもいました。しかし、立ちはだかるのはStoryboardの壁……。すべてを自分のホームグラウンドでアプリ開発をしたいと夢見ました。

そこで、Kotlin Multiplatform ProjectとJetpack ComposeとSwiftUIの3つを使って、Androidアプリエンジニア(私)が夢見るマルチプラットフォームアプリ開発を語り、実際に3つを組み合わせて簡単なアプリを作る内容です。

Firebase Android SDKを使いこなす上で知っておきたいThe Tasks APIのこと

Firebase Android SDKを使っているとしばしば登場するaddOnSuccessListener、addOnFailureListener。使用する際はほとんど意識しませんが、非同期処理の実態が丁寧にラップされています。
その正体について、深く理解していきます。

基礎から始めるディジタル署名

本章はディジタル署名の基礎知識についてまとめます。

ディジタル署名は現代のインターネット通信に必要不可欠な技術であり、また昨今話題のブロックチェーン技術でもコアとして使われる技術であります。

ここではディジタル署名の簡易な実装をしながら、その考え方・ディジタル署名を支える数学について学びます。

Deep dive into ConstraintHelper

みなさん、ConstraintLayoutは使っていますか?
ConstraintLayoutは複雑なレイアウトをネストを深くせずに組むことができる上、パフォーマンスの向上にもつながるため幅広く使われるようになって来たのではないかと思います。

そのConstraintLayoutですが、2016年の登場からすでに3年が経ちバージョンも2.0になるにあたりさまざまな便利な機能が実装されてきました。追加された機能の中でもGroupやBarrierなどのHelperと呼ばれる機能は、ConstraintLayout単体では実現が難しかった動きを簡単に実装できるようにしてくれています。

しかし、この便利なConstraintHelperですが、2019年8月30日現在ドキュメントが公開されておらずソースコードを追う必要があり、あまり活用されていません。

そこで本章ではこれらのHelperを実現するConstraintHelperの実装を参考に自分で独自のHelperを実装することで、みなさんがより楽にレイアウトを組む助けになれば幸いです。

お値段

お値段は1部500円 1,000円(印刷費用が思ったより嵩んでしまったので価格を改定しております)、電子版を付属してお付けします(ダウンロードURLとパスワードを冊子内に掲載)

支払い方法

今回は現金と技術書典公式の「かんたん後払いシステム 」を使用した2種類のお支払い方法からお選びいただけます。

お釣りの用意はありますが、潤沢ではないのでかんたん後払いをご使用いただくことをオススメします。アプリをいれるだけですが、初回登録時にSMS認証が必要なので会場に訪れる前に行っておくことをおすすめします!https://blog.techbookfest.org/2019/09/18/payment/

当日技術書典7にお越しの際はぜひ「い09C」にお立ち寄りください!どうぞよろしくお願いいたします!

iOSDC JAPAN 2019 Day2 参加してきた

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のマルチプラットフォームアプリ開発的なやつ)もチャレンジしたいなーと思えた。頑張っていきましょう。

iOSDC JAPAN 2019 Day1 参加してきた

1日目(実質2日目)の参加記です。

オープニング

オープニング前にかかってたミュージックがよかった。朝だけど強制的にヴァイブスがアゲアゲ。会場ついたらオレンジジュースとかドーナツが配布されてて朝ごはん提供いいなーって感じ(ダイエット中なのでミネラルウォーターだけもらいました)

iOSDCは初参加で、今まではTwitter経由でいろいろな情報しか見ていなかったので、緒方恵美さんと三石琴乃さんのオープニングムービーだったりスポンサー紹介ムービーを生で見れてアニメ・声優オタクとしてはめちゃくちゃ感動してしまった。自社の名前を読み上げを聞きたい。

繰り返し「コミュニケーションの場」というところが強調されたり、企画自体もそういうところにフォーカスがあたっている形になっていて凄いいいな〜と思った。僕もこうやってブログ書いたりフィードバックしてコミュニティに対してアプローチしていくぞという気持ち。

しもとりさんの「色の難しい話に負けない体づくり60分 」

この時間帯のセッション、いくつか聞きたいのがあったけども色のセンスが絶望的(自覚して4年目)なので聞きに来た。
自分でアプリを作るときとかにもmaterial.ioのカラーツール使ってメイン色、差し色を決定してるけどメイン色のチョイスからして絶望的で泣いちゃっていたので天のセッションという感じ。

セッションの進め方がしっかりしていて、セッションの最初の方に登場していて全然わからなかったやつが後々再登場してそのときはわかる!みたいな構成でめちゃくちゃ聞いていて理解が進んだ。

錐体細胞の話とかは大学とかの講義で聞いた記憶はあって(もう頭から抜けているが)そういう話がこういうところにつながってくるのか〜という感想。

”色”と一文字で表現してもそもそも光の三原色だと表現できない色とか、人間の色に対する反応とか、色覚異常とか、健常だとしても人によって若干の色の見え方の違いが発生するとか考えることがめちゃくちゃ多いなという感じ。色を自在に操れるデザイナーさんすごい。

僕も人間に優しい色選択、UIデザインができるようになるぞ。

僕もダークモード派なので最近のダークモードに押し進んでいくAndroid/iOSの動きは嬉しい(実装するのはあんまりうれしくない)。

shizさんの「Swiftクリーンコードアドベンチャー ~日々の苦悩を乗り越え、確かな選択をするために~ 」

機会的にはSwiftのコードを読むことが多いのでコードの世界を探索する際の足がかりを得られればと思って聞くことに。

Protocolね、はいはいJavaでいうところのInterfaceみたいなやつでしょみたいな認識で聞きに行けてよかった。

現状の問題の抽出を行うときに具体的な部分での抽出をするのではなくて、ジェネリックな形で抽出するという観点は本当にそうだと思った。セッション全体としてそのままAndroid/Kotlin(Java)に言えるようなセッションでとても為になる。具体的なSwiftのコードがバババっと出てくると理解速度が落ちてしまったけど後でスライドもう一度見て再キャッチアップしたい。

読みやすさ、クリーンさというのはそもそもどういうことなのだろう……みたいなことをセッション中にずっと頭でぐるぐる考えてしまった。確かに共通化できるところはバシバシGenericsで汎用型にすればコードの記述量とかDRY的にすごくよくみえるけど、実際それをコードリーディングするときに読みやすいかと言われると……みたいな感じ。

日向強さんの「BLEでiOS/Android間でそこそこ大きなサイズのデータ通信を実現する (L2CAPもあるよ) 」

単純に手法にめちゃくちゃ興味があって選択。簡単にOSをまたいでデータをやり取り(モバイルデータ使わずに)したいなと思うことはままあるけどどうやって実装するかまでは考えたことがなかった。

L2CAP、存在を知ってたけどAndroidは10(Q)からしか使えないのが衝撃。そういうのってAndroidのほうが早いイメージあったけどデバイスごとに云々みたいな影響なのかな……。

サンプルのコードがiOSとAndroidを比較して出してくれたり、実装の流れもそれぞれのOSで説明してくれていてまさに僕みたいな人だとすごくわかりやすいセッションになっていた。AndroidのL2CAPのSocketはそのままJavaのSocket感がすごかった。

往々にしてこういう低レイヤーに近い部分の技術はドキュメントが宛にならなくて罠がめちゃくちゃあるんだよな……ってのを再実感させられた。そういう点でこのセッションはBLE使うのであればかなりそういう罠に落ちるのを防げるのでめちゃくちゃ良いセッションだと感じた。

このセッションだけじゃなくてiOSDCの数セッション聞いてて思ったのがAppleの公式ドキュメントって詳細書いてなかったり「No overview available.」が多すぎない?iOSアプリ開発者ってすごいんだな……。

satoshi0212さんの「クロマキー合成を使い透過動画をAR空間に表示する 」

純粋にオタク心がくすぐられて選択。1年くらい前からAR空間になにかしらを表示するっていうのが興味としてあって、3Dオブジェクトだったり……みたいなのをやったりしたのでそれの延長の興味。

リアルタイムでクロマキー合成の加工をやる形だったのでパフォーマンス的にどうなんだろうと思ってたけど全然問題ない形のデモをされていてびっくり。

AR空間にとりあえず動画を表示するだけならそこまで深い知識がなくともシュッと実装できそうなイメージ。裏側から見るとちゃんと裏側になるように出せるプロパティがあるらしく、それを使って面白いことできそうだなーと思ったりした。

WebRTC経由で映像をクロマキー合成しつつAR空間にほぼリアルタイムで出すデモをやっていてアツかった!未来館めっちゃある!!!!satoshi0212さんも仰ってたけどリモート会議で相手の人をAR空間に出すとかっていうそういうの絶対来るでしょ……最高。みたいな気持ちでいっぱい。電脳コイルだったりそういうのが好きで育ってきたので早くそういう未来を作っていきたい。

純粋に動画だけでなく、普通にAR空間にバチバチにViewを表示したりしていて未来はこういう形で広告とかが見れるのかなあみたいな気持ちになった。

まさにここらへんを想像して1人でそわそわしてたけど最後にセッションでもまさにこれが紹介されててゾワッとした。やっぱこういう世界好きなんですよね……。

LT

Aでずっと聞いてた。1番面白かったのはSwiftでファミコンエミュレータを作る話。僕もKotlinでファミコンエミュレータのHello, Worldまでやったことがあるのでめっちゃ面白かった。確かにSwitfは固定長整数型あるのでByte処理がすごく楽だな~ってのをサンプルコード見ながら思った。結構マスクして……みたいな処理を書きまくった記憶がある。またKotlinで1からやりたいなって気持ちになった。

まとめ

今日もめっちゃよかった。完全に自分の興味ドリブンでセッションを選択できて知識の海に浸れて気持ちよかった……。

DroidKaigiとかだとやっぱり結構興味よりも「いや、これちょうど今の実務で……」みたいな考えになって聞きに行くみたいなのはどうしても発生しちゃって動画公開を待つ……!みたいなのが多かったのですごく新鮮。

明日も楽しむぞ!

iOSDC JAPAN 2019 Day0 前夜祭に参加してきた

Androidアプリ開発を生業にしている僕が、iOSDCに参加してきました。Day0編。

オープニング前

  • 初めての早稲田大学
  • 西早稲田駅からどういけばいいのか1ミリもわからず迷子になった。
  • 無事ついた
  • 前夜祭でそんなに人がいないからなのかチェックインがスムーズで体験がよかった
  • もらえるバッグがめっちゃいい感じ(手持ちも肩掛けもできる)
  • セッション部屋入るか〜って思ったらアルコールの配給があった(助かる)

FromAtomさんの「スクリーン配信機能の実装が大変だったので知見をお伝えします」

Vのオタクとかやってたり自分も美少女になりたい〜〜〜って思ってるとよくMirrativとかそういうアプリ入れているとiOSの画面キャプチャボタンをForceTouchするとなんか簡単に配信できて感動していたのでどういう実装をするとこんなに簡単になるのかが興味があった。

実際セッションを聞いた限りだと、実装に関してはすごく簡単にできそう(ハマりどころはめちゃくちゃ多そう……)でiOSしゅごいな〜〜〜ってなった。AndroidだとそもそもOSでスクリーンレコードをする機能みたいなのが基本的にはなくて(HuaweiだったかはカスタムされているROMでその機能が入っていたりする)録画すらめんどくさいので本当に羨ましいと思った。

僕も恩恵にのっかって美少女Vの者になりたい。

ようせいさんの「GoogleSpeechToTextを活用して音声を動画にした話 」

Radiotalkさんのアプリは日常から使っていて、テロップ動画を作る話だった。自分もGoogleのSpeech-To-Textを使ったことがあるんだけど結構すごい精度に感動したのを覚えてる。

音声のラジオを文字起こししてテロップ動画にするっていうアイデア自体が凄いいいと思っていて、Twitterとかを見てるときって音を出せない状況とかのことが多くてそういうときに文字起こしされてる動画ってかなり重宝してたりして凄いいいアプローチだな〜〜〜って思った。

GoogleのSpeech-To-Textを使ってテロップ動画にするっていう本質の部分は結構登場してくるクラスが多くてめちゃくちゃ大変そうな感じだった。Androidでも動画とか音声を扱って編集するっての簡単じゃないのでめっちゃわかる……。

本質的な話の部分もそうだったんだけど、テロップ動画編集画面のUI/UXがすっごく良さそうだった。そのUIと相まってSpeech-To-Textで文字起こしされた文字が既に入っていて修正するとか少しの操作だけで動画が完成するっていう手軽さに驚いてしまった。インスタのストーリーズとかもそうだけど、現代だととにかくユーザーのコストを減らしてアウトプットまで持っていけるかみたいなのはめっちゃ大事だな〜〜〜〜って思った。複雑だったり、面倒くさいとユーザーはすぐに離脱する。僕も大体めんどくせって思ったらその瞬間にアプリキルするし。

技術的な話も面白かったけどそういう意味でUXな部分でめちゃくちゃ感激するセッションだった。

Android版はまだ開発中らしいので完成したらめっちゃ触りたい。

まとめ

たのしかった。
表面のうっすらとした知識とかコードを読むことはできるけどプライベートでiOSアプリの開発をしてるわけでもないのでこういう場所に来るとすべてが新しい知識で凄い新鮮で楽しい。Day1もたのしみ。(Day1のオープニングを待ちながら書き上げました)

技術書典7にサークル参加します

やぎにいです。今回技術書典7に初めてサークル参加するのでそれについて書かせてください。

サークル名は「鳥のささみ」場所は「い09C」です。
https://techbookfest.org/event/tbf07/circle/5686371737927680

サークルページのジャンル詳細にあるとおり、Android/Kotlin/Javaあたりの知見、Tipsなどを数人で書いて1冊出す予定です。

執筆者は現在4人を予定していて、各々1,2トピックを書いて合同誌になる予定です。(進捗がんばります)

4人とも現状最前線でAndroidアプリ開発をしているのできっと良いものが書き上がるのではないかと思っています。

まだ全員分が揃っていないので、自分自身が書こうとしているトピックを紹介しておきます。

1. Kotlin MPP+SwiftUI+Jetpack ComposeでAndroidアプリ開発者がマルチプラットフォームアプリ開発のユートピアを夢見た話(執筆中)

Kotlin MPPを使ってiOS, Androidアプリのロジック部をKotlin Nativeで書く話を聞いてだいぶ時間が立ちましたが、今年のWWDC、Google I/OでそれぞれSwiftUI, Jetpack ComposeとStoryboardやLayout XMLではなくてSwift, KotlinでUIを組むようなものが紹介されました。

自分はAndroidアプリ開発者をやっていて、iOSアプリを見るときにStoryboardを見るのがすごく難しくて何度もXMLでConstraintLayoutとかで書きたい……と思うことがありました。

ここでSwiftUIが登場してきたので、SwiftからUIを組むのであればだいぶハードルが下がるなと思いXcodeのBeta版で触ってみたところ非常に感触が良かったです。

すべてをSwift, Kotlinにおさめてマルチプラットフォームアプリ開発を夢見たので実際に僕が考える「マルチプラットフォームアプリ開発について」から実際にKotlin MPP+SwiftUI+Jetpack Composeを使ってHello, Worldするところまで(余裕があればもっと踏み込みます)を書いていきます。

前半はちょっとポエム要素が強めで、後半は実際にソースコード等を紹介しながら実際に動かしていく流れになる予定です。

2. Go言語を使ってAndroid端末のlocalhostで動くAPIサーバーを作ってサクッとデバッグする話

これは実際に自分が仕事で行っていた話をまとめる予定です。マルチプラットフォーム話を書いて余裕があったら書く予定です。

受託などの案件をやっていると、APIの定義はあるもののStaging環境に全然デプロイされない(並行してAPI側も開発しているなど)状況が続いてアプリ開発のスピードが落ちてしまうことがあります。

もちろんここでいい感じの開発現場であればサーバー側のコードを引っ張ってきてDockerでどっかーんして自分で手を加えることもできるとは思いますが、手元にあるのはAPIの要件定義書のみ……!

そこで僕はGo言語を使ってAndroidのlocalhostで動くAPIサーバーを作って、アプリからlocalhostを参照して、静的なjsonを受け取って動作の確認を行って実際にAPIがデプロイされるまでつなぐということをしていました。

この話をちょろっとすると結構面白くてウケがいい(実用性はおいといて)のでせっかくなので本にしてみようと思っています。

僕は以上2件(進捗によっては1件)を執筆しようと思っています。

ぜひ当日は「い09C」にお越しください!
開催日直前にまた支払い方法や値段などを紹介できればと思います。

また、励みになるので興味のある方はぜひチェックリストに追加してください!
https://techbookfest.org/event/tbf07/circle/5686371737927680

よろしくおねがいします!(執筆頑張ります!)

あたらしくなりまして

生まれて初めてブログを開設したときはさくらのレンタルサーバーに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にサークル参加するのでそっちの執筆をしますが、参加記や参加する前にサークルの紹介なども書きたいですね。

fun yagi2() {
  println("はろー new やぎ小屋")
}