2021年すべてのアウトプットを振り返る

2021年も残りわずかになりました。

普段はあまりやらないのですが、ふと思い立ったので今年1年間で公開した記事やソースコードなどのアウトプットを「すべて」振り返ってみたいと思います。

なお、仕事によるアウトプットはモノによって公開できたりできなかったり微妙だったりするものが含まれるため一括してここでは書かないことにします。

記事

Zenn

まずは Zenn に公開した本の紹介です。

「内側」から理解する Flutter 入門

昨年のアドベントカレンダーのネタ探しのために公式ドキュメントの「Inside Flutter」とフレームワークのソースコードを熟読して依頼、この1年間は Flutter の内部実装について考える機会の多い1年でした。

この本では、そんな Flutter の内部実装、特に Element についてソースコードとともに深掘りして得られた知見を10のチャプターでまとめた内容になっています。

公開から約2, 3ヶ月で 100 回以上購入いただき、なかなか嬉しいお言葉もいただけ、この1年間を振り返ってとても大きなアウトプットのひとつだったのではないかと思います。


以下は同じく Zenn に投稿した記事です。

【Flutter】最小限のコードで理解する「宣言的な画面遷移」と Navigator 2.0

ちょうど昨年の今ごろ話題になった Navigator 2.0 を、モバイルアプリ向けの最小限のコードで説明しようとした記事です。

その頃公開されていた Navigator 2.0 の記事は、WebのURLによる遷移もカバーするための記述も含めたサンプルコードが多く理解がむずかしかったため、「とりあえずモバイルではあまりいらんだろう」と思った部分をごっそり削ぎ落としたサンプルコードで、「宣言的な画面遷移」のアイデアをざっくり理解することを目的に書いた記事です。

なお、1年経った今も通じることが書かれているかは未検証です。(すみません)

Flutter パッケージを開発し、公開し、そして Reddit で 100 Upvote された話

「パッケージ」の項目に詳しくは書いていますが、このころ初めての Flutter パッケージである「crop_your_image」をリリースしました。

この記事は、その開発から公開、そして宣伝までの記録をまとめた内容になっています。Flutter コミュニティには Slack や Discord などさまざまな場がありますが、 Reddit が一番反応がよかったです、という内容です。

【Flutter】120+ LIKES のパッケージを開発するために実践したこと

上記の「crop_your_image」はその後 pub.dev の LIKES が 120 を超えるなかなか良い感じの反応をいただけました。(ちなみに 2021/12/15 現在は 163 LIKES!)

この記事では、そんな多くの人に使ってもらえるパッケージにするための「Flutter らしい」Widget の設計を解説した記事です。

また、宣伝方法や「同じパッケージ他の人も作ってるじゃん」な場合のモチベーションの高め方を書いています。

【Dart】call() メソッドを効果的に使う

これは Dart のプログラミングにおけるちょっとした小ネタ的な内容です。

コールバックなどの関数が nullable な場合、null チェックした上で呼び出すのではなく、関数を呼び出すための call() メソッドを利用すれば少し簡潔に書けるよ、という内容です。

【Flutter】Provider + StatefulWidget というパターンの考察

「内側から理解する Flutter 入門」を書いて以降、Flutter の状態管理について、一般的に記事で議論されている内容とは別の角度から考えることが多くなりました。

具体的には「StatefulWidget ってもっと効果的な使い方があるんじゃないか?」というものです。

この記事では、その考えをまとまった範囲で文書化し、さらにその考えを実践するために試験的に作成したパッケージである「acceptable」を軽く紹介する記事になっています。


以上です。そこまでたくさん書いた感じではないですが、「有料の本を書いていい感じに売れた」というのがなかなか良い経験だったと思います。

引き続き、Zenn には Flutter に関する少し重めな記事を意識して投稿していこうと思いますので、来年も読んでいただけたら嬉しいです。

Qiita

「Flutter 完全に理解した」状態を抜けた時に書いた記事たち

先ほど書いた通り、1年前の今ごろは Flutter の理解をさらに深める(アドベントカレンダーのネタを探す)べく公式ドキュメントを意識してたくさん読むようにしたことで、それまでいかに Flutter を雰囲気で書いていたかを実感しました。

この記事は、そんな体験をしながら書いたいろいろな記事をまとめたものです。昨年の今ごろ Zenn に投稿した記事が中心になっています。

Flutter で仕事したい人のための Widget 入門

このころから、「Qiita には気軽に読める記事を、Zenn には腰を据えて読む記事を」という方針をざっくりと考え始めました。

この記事は、その方針に従って Widget に関する入門的な説明を、Flutter の内部実装を意識して自分の言葉でまとめた内容となっています。

【Flutter】build() でやってはいけない 3 つのこと

Twitter や技術記事を見ていると、build() の呼ばれ方やそこでやるべきではないことなどを理解せずに Flutter アプリを開発した結果、「なんか Flutter で作ったアプリって重くない?」という意見が多いように感じていました。

そこで、公式ドキュメントを読んだり Flutter の内部実装を理解することで見えてくる「build() でやってはいけないこと」を 3 つほど挙げてみた記事になります。

【Flutter】 無駄なリビルドを防ぐたった1つの方法

Flutter のパフォーマンスを改善するためには、 build() の呼ばれ方を理解する他にも build() が呼ばれた結果 UI 全体がどのように変化するのかを理解することが大切です。

この記事では、リビルドが呼ばれたらどこに影響がいくのか、またその影響を最小限に抑えるにはどのような工夫ができるのかを説明した記事です。

Flutter で仕事したい人のための Widget ツリー入門

Flutter を理解するには、Widget が UI 全体としてどのように扱われるかを知ることが大事になります。

この記事では、よく UI の構築で使われる「Widget ツリー」というイメージが実際にはどのように構築されていくのかを具体例を元に説明しています。

さらに、記事の最後では「Widget ツリー」が実際のフレームワークの挙動を表したものではなく単なる「イメージ」であること、実際は Element がその役割を担っていることに軽く触れています。

【Flutter】画像切り抜きパッケージ crop_your_image を作っています

crop_your_image の紹介記事です。これは公開直後のまだほとんど機能がそろっていない状態の、「とりあえず Flutter パッケージというものを作って公開してみました」という記事になります。

その後の顛末は Zenn の方で書いた通りです。

【新人プログラマ応援】公式ドキュメントも読もう

Qiita の「新人プログラマ応援」企画の記事として投稿した内容です。

ちょうどそのころ Flutter の公式ドキュメントを読み込むことで新しい視野が広がった経験から、技術記事だけではなく公式ドキュメントを読むことも有用であることを説明した記事になります。

この記事は Qiita の Ruby 記事で有名な @jnchito さんに気に入ってもらえたらしく、 @jnchito さんが執筆している「プロを目指す人のためのRuby入門 第2版」で参考記事としてとりあげていただいたり、Zenn で公開している「Rubyの公式リファレンスが読めるようになる本」でも引用していただいたりしました。(ありがとうございます!)

【Flutter】カウンターアプリに書かれたコメントを解説する

よくみたら flutter create で生成したいわゆる「カウンターアプリ」のコードって、Flutter の仕組みを理解するための有用な情報がコメントとして書かれてるじゃん、と思って書いた解説記事です。

大量の情報を効率的にインプットするためのFlutter概要

Flutter アドベントカレンダー1日目の記事として、これから投稿される大量の Flutter 関連の記事を読む助けになることを目指して書いた、Flutter という技術を俯瞰する記事です。

よく技術記事として投稿される内容を意識しながら、それがどのような背景や事情で投稿されていて、どのような点に着目して読むとより効率的・効果的にインプットできるかを解説した記事です。


Qiita は以上です。

Qiita の方はあまり Flutter に絞らずいろいろな内容を書けばいいかな、と思ってはいたのですが、結果的にほぼ Flutter 一色になってしまいました。というかこの1年間 Flutter 以外のことほぼやってないな。

登壇

FlutterKaigi

TODO: 書く

Flutter meetup Tokyo / Osaka

TODO: 書く

その他

TODO: 書く

OSS

crop_your_image

TODO: 書く

draw_your_image

TODO: 書く

inspectable

TODO: 書く

acceptable

TODO: 書く

まとめ

TODO: 書く

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中