ナカザンドットネット

Android Developer's memo

2021年を振り返る

ハッピーニューイヤー。2022年もよろしくお願いします。

2021年を振り返ってみましょう。

引き続きやっていること

技術書典Web開発とCodeZine連載は引き続き取り組んでいます。2021年は技術書典11がオフライン・オンライン同時開催という暴挙に出たのがあって、なかなか精神的に追い詰められる初夏を過ごしていました。CodeZineは2020年末に始まったReactライブラリ連載を細々と続けています。

どちらも2022年も続けていきます。

techbookfest.org

codezine.jp

変わったこと

5月末で10年間お世話になったウォーターセルを辞めて、OneMile Partnersに転職しました。ちなみに事業展開の都合で、11月には持ち株会社として新たに作られた株式会社モニクルに転籍しました。日本人のお金のリテラシーを底上げできるように頑張るのでよろしくね。

blog.nkzn.net

新しく始めたこと

ウマ娘プリティーダービーにハマりました。そしてそれをきっかけにして、本物の競馬にもハマりました。

予想はからっきしなので、もともと日本Androidの会で10年ほど前から親交があった予想屋マスターさんの力を借りながら、馬券購入を楽しんでいます。

3〜5歳馬あたりの上位馬たちの名前は段々と見覚えがあるものになってきて、重賞レースを見るのが楽しみになってきました。住んでいる場所が新潟競馬場まで車で30分くらいのところなので、開催期間中は気軽に見に行けるのも嬉しいところです。コロナ前は子供向けのプリキュアショーなども行われていたので、またその頃に戻ってくれると子供たちも連れていきやすくなりますね。

ウマ娘の元ネタの競走馬たちの子や孫が活躍する様子も見られ、オタクとしても満足感が高いです。5月に新潟県胎内市へ家族旅行に行った際、乗馬目的で松原ステーブルズさんにお邪魔したのですが、アグネスデジタルやマンハッタンカフェの子がいて地味に感動しました。夏にはキングヘイローの子も(色々あったようですが)仲間入りしたそうです。また行きたいですね。

matsubarastables.webnode.jp

2022年やりたいこと

せっかくハマったので、2022年は競馬に関するサービスやアプリを何か出せたらいいなあと思っています。

あとは、証券外務員二種を取ってみたいなあ。プロメトリックで毎週試験が受けられるので、適度に勉強したらチャレンジしようと思います。

🍺 こしひかり越後ビール 🍺

Beer Advent Calendar 2021の5日目です。昨日はかんざむさんのバドワイザー メッシ缶でした。そういえばバドワイザーはなんだかんだで飲んだことないな……

adventar.org

今年は新潟らしいエチゴビールを飲むぞ

さて、今年はエチゴビールを飲もうと思います。日本第一号の地ビール醸造所であるエチゴビールについては2015年のアドベントカレンダーでお話ししたので、よろしければこちらもご覧ください。

blog.nkzn.net

新潟といえば米ですよね。エチゴビールにも、新潟らしさを出そうとしたのか、新潟米仕立てのビールがあります。それが、 こしひかり越後ビール です。

f:id:Nkzn:20211204233858j:plain
田植えのイラストに郷土愛を感じるこしひかり越後ビール

見た目には素直なピルスナーですが、原材料にはしっかりと「米」が明記されています。

f:id:Nkzn:20211204233959j:plain
原材料にはしっかりと米が明記されています

ただのスッキリ系かと思いきやどこかフルーティ

実はお米をビールに入れるというのは、喉越しのいいスッキリしたビールに仕上げる際には時々ある手法なようで、そこまで独自性があることではないようです。

となるとスッキリ系かなと思って飲んでみるのですが、これがどこかほっとするフルーティな味わいもあるのです。ある意味淡麗辛口の日本酒と近いかもしれません。

新潟こしひかりから生まれた、ほっとする味わいのこしひかり越後ビール、皆様もいかがでしょうか。

iOS版YouTubeアプリのOSSライセンスページが魔窟

気分転換で下調べも何もせずに雑に書いた記事です。個別のライブラリについては間違ったことを言っている部分が多いと思うので、参考にしないでください。


こんなツイートを見かけました。

Yogaといえば、FacebookMeta社が作ったAndroid / iOS向けのレイアウトエンジンです。

yogalayout.com

React Nativeのレイアウトエンジンでもありますが、まあ今回はReact Nativeの話はしません。YogaはAndroid向けのLithoやiOS向けのComponentKitといった形でも提供されており、ネイティブアプリのUI実装にも活用されている技術なので、YouTubeアプリで使われていることに大きな驚きはないのです。

……が、やはりGoogleで採用されるには珍しいライブラリであることも事実なので、これはもっと怪しいライブラリが隠れているな?という直感が働きました。結論からいうと実際にやばかったので、目についたライブラリを並べて行こうと思います。

Closure Library

まずはGoogle謹製JavaScriptフレームワークとして古株の Closure Library さん。

developers.google.com

……おかしい……初手からおかしい……お前はネイティブアプリではないのか……?

J2ObjC

続きまして、「AndroidとiOSの両方から使えるライブラリを作りたい」という夢を持ったことがある人なら誰もが知っている J2ObjC です。

developers.google.com

Java言語で書かれたコードをObjective-C言語に変換するやつです。いわゆるトランスパイルツールですね。

JavaScriptライブラリが出てきたあとだと、最終的にObjective-Cになる分だけまだ普通のツールに思えてきました。

JavaScriptCore

お次はSafari / WebKitのJavaScriptエンジンである JavaScriptCore です。

developer.apple.com

まあClosure Libraryがあるんだから、JavaScriptを動かせる何かが出てくるのはなんとなくわかってた。

iOS的にはほぼ標準ライブラリみたいなもんなんだから、特筆する必要はなかったと思うんだけど、なんで書いたんだろうなあ……

jquery2

JavaScriptライブラリ第2の刺客。言わずと知れた jQuery さんです。

jquery.com

今の最新はv3系だったと思うんですけど、わざわざ2って書いてあるのでv2なんですかね……

どこで使ってるんだろ……

LLVM

次はコンパイラ基盤の LLVM さん。

llvm.org

まあXcodeでビルドするときに使っているので、特に違和感はないのですが、他の異常さを際立たせるためにあえて置いておきます。

quickjs

さあ、今度は軽量JavaScriptエンジンの QuickJS だ!!!

bellard.org

JavaScriptエンジン2つ目いただきました〜〜〜〜〜〜〜〜〜!!!!!!!!!!!

なんで????????????????????

ES2020の仕様をほぼ網羅しつつも、ファイルサイズが小さく起動も高速という特長があるエンジンということで、そういうのが求められる場所に配置されたものと思われます。

V8

若き王者が帰ってきたッ

どこへ行っていたンだッ チャンピオンッッ

俺達は君を待っていたッッッ V8 の登場だ――――――――ッ

v8.dev

JavaScriptエンジン3つ目で〜〜〜す!!!いえ〜〜〜〜〜〜〜〜〜〜〜〜い!!!!!!!!!

いやあ……どこに使ってるんだろ……まじでわからん……JavaScriptCoreとQuickJSがあったら大体のパターンいけるやろ……ええ……?

まとめ

YouTubeアプリってガチガチのObjC/Swift製ネイティブアプリだと思ってたんですけど、JavaScriptエンジンを3つも積んでてjQueryやClosure Libraryまで登場するとなると、それなりのハイブリッドアプリなのかなあと認識を改めた次第であります。

j2ObjCは5年前にちょっと調べたことがあったので、今でも元気にしているのが見れてちょっと嬉しかったです。

おまけ:妄言

というかアレなんですよね、React Nativeも「Yoga + JavaScriptCore」がレンダリングエンジン+言語エンジンの構成なのを考えると、YouTubeアプリの中に「JavaScriptにビジネスロジックを書いてネイティブUIをレンダリングする」仕組みが作れそうな気がするんですよね。もしかしてどこかの画面はそういうフレームワークになっているのかなあ……

Aroundアップデート:September 2021 Editionまとめ

会社の開発チームで常時接続に使っているAroundの月次?アップデートが来ていたので、リリースノートを流し読みします。

new.around.co

iOSアプリがビデオ通話に対応

June 2021でリリースされたAndroid/iOSアプリでしたが、デスクトップアプリと同じルームへの参加はできるものの、ビデオ機能が開放されていませんでした。

今回のアップデートで、ひとまずiOSアプリでビデオ機能を利用できるようになります。移植が単純ではなさそうなフェイストラッキング機能もちゃんと実装してくれたようで、頭が下がります。

f:id:Nkzn:20210906104400p:plain
iPad版Aroundでカメラを有効にしてみた

Android版はcoming soonです(察し)。

画面共有のパフォーマンス改善

「めっちゃファンが回ってたし重かったのでフルスクラッチで書き直したやで」とのこと。わいわい。

画面共有中に配信者の画面内のAroundを「消さない」オプション

CPUリソース節約のためのもう一つのアプローチとして、画面共有中に配信者の画面内のAroundを 消さない オプションが追加されました。

f:id:Nkzn:20210906105053p:plain
配信者のaroundを消さないオプション

ぱっと見だとなんのことか分からない修正なので、例を挙げます。

実は今まで、配信者が画面共有している画面内にAroundのUIがあっても、視聴者には見えなくなっていました。

配信者 視聴者
f:id:Nkzn:20210906110819p:plain:w320 f:id:Nkzn:20210906110551p:plain:w320

ここで、今回追加されたオプションをオンにします。

f:id:Nkzn:20210906110956p:plain

すると、視聴者側にもAroundのUIが見えるようになります。

配信者 視聴者
f:id:Nkzn:20210906110819p:plain:w320 f:id:Nkzn:20210906110819p:plain:w320

標準の動作では、AroundのUIを配信対象から外すためにCPUリソースを消費していたようで、今回のオプションはその挙動をオフにする(=配信者の画面に見えているままの見た目で配信する)ことで、CPUリソースの節約を図る新機能ということになります。

今後の改善点

1.0以降、リソース節約と安定性、複数プラットフォーム展開にフォーカスして頑張っているそうです。短期的にはパフォーマンスや質の改善を中心に改善していくとのこと。嬉しい。

新規機能としては、ミーティングの録画機能を年内にリリースしたいとのことです。楽しみですね。

AroundのJune 2021 Editionが神アプデっぽい

TL;DR

Aroundチームは顧客の気持ちがわかっていて最高大好き

Aroundのアップデートが来ました

最近、会社のdevチームで、常時接続のコミュニケーションツールとしてAroundを利用しています。

around.co

Aroundはさまざまな工夫により、ZoomやMeetに比べると精神的なストレスが少ない作りになっており、常時接続してもストレスになりづらくなっています。次の記事が詳しいです。

japan.cnet.com

さて、そんなAroundですが、6/12に大きめのアップデートが来ました。

new.around.co

ざっくり眺めただけでも神アプデっぽさが出てたので、簡単に紹介します。

概要

  • モバイルアプリが出ました
  • Linuxアプリ(Beta)が出ました
  • Handoff機能の追加
    • ミーティングを始めたときのデバイスとは別のデバイスでシームレスにミーティングを継続できる
    • ある時間まではPCでミーティングして、その後営業のために離席して車で移動を始めたりしても、スマホでミーティングを継続できるということ
    • モバイルアプリが出てきたタイミングならではという感じの新機能で嬉しいですね
  • Voice Channels(音声のみの部屋)が作れるようになりました
  • Minimal Modeを使うとサムネイルのサイズを最小化して、できるだけ画面を隠さないようにできます
  • メニューがネイティブ実装になりました
  • フィルターをTouch Barで選択できるようになったよ(Macのみ)
  • Face Mask Modeをオンにすると、マスクをつけているときのくぐもった声がクリアに補正されるよ
    • 謎の技術じゃん
  • Add your team to multiple Rooms(まとめて招待)
    • 自分が入っているルーム一覧から任意の複数のルームを選んで、招待リンクを作成できます

動作するプラットフォームにAndroid、iOS、Linuxが追加されるというビッグニュースに加え、ミーティングに参加したままプラットフォーム間の切り替えができるHandoff機能が同時にリリースされたことで、より「常にAroundと繋がっている」が実現しやすくなりました。PCから離席してキッチンにコーヒーを淹れに行く間も、スマホで雑談の続きを聞き続けることができそうです。

今後追加される機能

  • Vertical floating mode(顔が縦に並ぶよ!)
    • ちょっと欲しかったやつ
  • Annotations(共有スクリーンにお絵描きできるよ!)
    • 完全に!!!!!!!!欲しいやつ!!!!!!!!!

Annotationsは早く来て欲しいですね。Slackの画面共有では画面上にマーカーが引けてめちゃくちゃ便利なのですが、おそらくそれに近いものになると思われます。仕事でモブプログラミングをしながら「ここ!ここです!ちくしょう、マーカーが引きたい!!!」みたいになってた*1ので、的確にペインポイントを押さえにきている印象です。

まとめ

Aroundチームは顧客のペインポイントをよく理解してる……しゅき……

*1: https://pop.com/home の利用を検討していました

OneMile Partnersに入社しました

2021年11月11日追記:株式会社モニクルに転籍しました。

monicle.co.jp

OneMile Partnersの親会社にあたる持ち株会社です。エンジニアリングやデザイン等、クリエイティブ系の部門はこちらに転籍となりました。

この記事を読んで筆者の仕事に興味を持ってくださった方は、モニクルの名前で検索してみてください。よろしくお願いします。We are hiring!

open.talentio.com


はい、というわけでですね、昨日の退職エントリに引き続きまして、入社エントリです。

といってもまだオンボーディングも終わっていない段階なので、業務内容について書くことは特にありません。簡単に会社紹介をしますね。

OneMile Partnersとmoneiro

この度、OneMile Partners(ワンマイルパートナーズ)という会社で働くことになりました。

onemile.co.jp

moneiro(マネイロ)というサービスを運営している会社です。

moneiro.jp

このmoneiroは「資産のセレクトショップ」という謳い文句で、働く世代の資産運用を手助けするサービスです。お金のプロがニーズに合わせて株式や保険などの金融商品をいい感じに組み合わせられるよう、相談に乗ってくれます。

難しいと思われがちな資産運用の敷居を可能な限り下げるためにかなり努力しているようで、グッドパッチさんの力を借りてガッツリとディスカッションをしながら、わかりやすい見せ方や導線について議論したそうです。

goodpatch.com

(ちょうど昨日リリースされた記事↑があるから出しとけって言われました)

なぜ入社したのか

「給料がよくなるから」というのはITエンジニアの転職においては珍しくもない理由なので、ここでは特に掘り下げません。

話だけでもということで事業説明を聞いてみると、「手に入るお金は増えてきたけど、このお金をどう運用したら家族を幸せにできるかわからなくて悩んでいる一家の大黒柱の30代」は、メインターゲットのひとつらしいことがわかりました。つまり私です。

日本人はお金に関するリテラシーが低い、という話はよく耳にしますし、自分もある程度お金の勉強をする中で「これはもっと早く知りたかったなあ」ということはたくさんありました。moneiroでお金のプロに相談することで、リテラシーの不足をある程度補えるようになるのであれば、これはかなり社会にとって良い影響があるはずです。

前職で農業生産者さんを相手にしていたときや、Androidの初心者本を書いているときにも意識していたのですが、私はリテラシーが不足している層に補助輪のように寄り添うサービスで社会貢献をするのが割と好きなようで、moneiroが良い感じに琴線に触れたのでした。

とはいえやはり、何より自分がターゲットユーザーであるというのは、事業を自分ごととして感じられる点で何より良いことだと思います。今までは本業と副業と子育ての合間の、あるかないかよくわからない余暇を使って家庭の資産運用について勉強していたわけですが、今後は仕事をしていれば事業のドメイン知識として資産運用を学ぶことができます。お得です。

というわけで、事業がなかなか好みなのでした。他にも、居住地を変えずに新潟からフルリモートしてよいことや、あれこれと(給与以外にも)良い条件が重なったことから、転職を決めています。

まとめ

というわけで、在宅勤務の会社から在宅勤務の会社に移るので、労働環境が何も代わり映えしない気がしますが、今日からワンマイルのなかざんとしてやっていきます。皆様よろしくお願いします。

2629日ぶりにナカザンドットネットがnkzn.netになりました

このブログは「ナカザンドットネット」という名前ですが、これまではnkzn.infoというドメインでした。

 

実は、7年前まではnkzn.netだったのです。

 

blog.nkzn.net

 

> どうも、nkzn.netの更新を忘れてて転売屋に取られた人です。

 

痛ましい事件でした……

 

かえってきたぞ!

 

このたび、nkzn.netを買い戻しました!

 

twitter.com

 

5月中はサボってしまったので、転職を機にブログのドメインをnkzn.netに戻しました。実に2629日(+α)ぶりです。この7年間で記事をたくさんシェアしてもらったので、nkzn.infoからも引き続き転送設定をしてあります。

 

これでようやく「どうしてナカザンドットネットなのにnkzn.netじゃないんですか?」と煽られなくて済む!やったぞ!

 

引き続き、ナカザンドットネットをよろしくおねがいします。

 

余談

 

https://www.nkzn.net にポートフォリオを置きました。よろしければご覧下さい。