みんからきりまで

きりみんです。

性格だと思ってた不安症状が心療内科で薬を貰ったら大幅に改善してから1年が経ちました

オオアリクイみたいなタイトルになってしまった。

今まであまり公言していなかったのですが、ちょうど1年ほど前から心療内科で薬を貰うようになって、生活が大きく変わるという体験をしたので、同じような症状で悩んでいる人のためにも、そのへんの話を書きたいと思います。

注意事項

これはあくまで個人的な体験談であり、通院や投薬の効果を保証したりするものではありません。
薬の効果にはかなり個人差や相性があり、副作用もあるため、必ずしも薬を貰う事で症状が改善するというわけでない無いようですので、「そういうケースもあるのだ」という一例としてお読みください。

性格だと思っていた症状

ぼくは苦手な事がたくさんあって、とにかく怖がりだったり自意識過剰だったりする。
分かりやすいものだと、人に何か言われたり起こられたりすると過剰にショックを受けてしまうというのがある。
特に上司や先生など目上の人の事をとても怖く思ってしまう傾向があり、怒られたり否定的な事を言われるとすぐに頭が真っ白になってしまったりする。
また、特に直接なにか叱られたりしたわけではなくても、同じ上司の元でしばらく働いていると徐々に「本当は自分はよく思われていないのではないか」「今に呼び出されて何か叱られるのではないか」という不安な気持ちが湧いてきてしまい、目を合わせられなくなったり自分から声をかけるのにとても気力が必要になったりしてしまう。

これは仕事相手や目上の相手に限った話ではなく、普通の友人や親しい相手でも長く付き合っていると徐々に「本当は嫌われているのではないか」「何か悪い事を言ってしまったのではないか」という不安が襲ってくる。
そして自分から自然に距離を置いてしまったり、関係を絶ってしまったりする事を人生で幾度となく繰り返してきた。

いつからこのような症状があったのかは定かではないが、物心ついた幼稚園の頃にはもうかなり自意識過剰で人にどう思われるかや恥ずかしくないかなどばかり気にしてしまう傾向があったので、ほとんど生まれつきに近いのだと思う。

他には主に以下のような症状がある

・電話に出るのが怖い
・インターホンに出るのも怖い
・メールボックスを開いてメールを確認するのが怖い
・郵便受けや手紙を開けるのにも勇気がいる
・他人に見られている状態で字や絵を書くことが出来ない(未完成のものを他人に見られたくない)
・面接などでホワイトボードに何かを書かされたりその場でコードを書かされたりすると頭が真っ白になる
・会社や学校など人がいる場所に長時間いると異常に体力を消耗する
・たとえ楽しかった外出でも後になって何度も思い出して不安な気持ちになったりしてしまう
・特に理由がなくても突発的に不安な気持ちが襲ってきて落ち着かない事がよくある

また、大きな特徴として、「理屈ではそれが馬鹿馬鹿しい考えだと理解している」というのがある。頭では郵便受けに恐ろしいものが入っている事も上司に内心憎まれているなんて事も常識的にありえないし、あり得たとしてもそんな事を起こる前から気にしていても全く無駄であることは分かっているのだ。
しかし、そのような理屈では感情をコントロール出来ないという症状のため、症状を打ち明けて「そんな事考えても意味なくない?」などと言われてしまうとかなり傷ついてしまう。

このような症状は生まれつきの性格だと思っていたし、10代の頃は長らく引きこもりをやっていたので、そのせいで社会慣れしていないのが原因だろうとも思っていた。
実際、20代になって社会復帰してからは10代の頃よりは症状が軽くなり、ある程度まともな生活が送れるようになっていた。

症状の悪化と受診

しかし、完全に改善することはなかったし、数年前からまた徐々に症状が悪化していき、1,2年ほど前、仕事や私生活などで色々な事があり悩んでいた頃は、かなり末期的な症状になっていて、郵便受けを開くだけで動悸がして避けてしまったり、事務的な内容のメールを開いて確認するのが怖くて一日中勇気が出ずに部屋をウロウロして他の事も何も手が付かないというような状態になってしまった。

以前から「もしかしたら病院へ行けば改善するかもしれない」とは思いつつも、それにはものすごく気力が必要だし、特に改善しない可能性もあると考えるとなかなか足が伸びなかったのだが、あまりにも症状が悪化し社会人としての生活に支障が出てしまっていたので、悩んだ結果、最寄りの心療内科に行ってみる事にした。

心療内科ではカウンセリング的な事をされるのかと思ったが、実際には心療内科とは別にそういう場所ではないらしく、内科で風邪薬を貰うのと同じようにざっくりと症状を説明したら薬を貰った。

ちなみに受診前に自己診断で予想していた病名は「社会不安障害 or 強迫性障害」だったが、実際の診断もだいたいそんな感じだった。

最初に処方された薬は「選択的セロトニン再取り込み阻害薬 (SSRI) 」という種類の薬で、これを2週間ほど飲んだのだが、残念ながら効果は実感出来なかった。
次に「抗不安薬」という種類のもっと即効性のあるタイプの薬を追加で貰ったら、これがはっきりと分かるほど効果があった。

抗不安薬による変化

抗不安薬の効果は初めて飲んだ翌日からはっきりと感じる事が出来た。
その頃はちょうど新しい職場に入ったばかりで、緊張しているので毎日すごくオドオドしながらあまり他の人と目を合わせないように静かに仕事をしていた。特にコードレビューの時などは毎回なにを指摘されるのかと心臓がはち切れそうなほど不安だった。
しかし、その日はそういう感情がほとんど湧いてこず、あまり会話したことがなかった上司と普通に雑談をして、技術の話などで盛り上がる事が出来た。

また、特に印象深かったのが、2年ほど通っててほぼ担当の人と会話する事がなく毎回寝たふりをしていた美容室で、薬を飲み始めた直後に行った日は初めて普通に雑談で盛り上がる事が出来たのだ。こんなにはっきりと変わるものなのかと驚いた。

それからも薬を飲み続けた結果、多くの症状は大幅に改善され、メールを見るのを怖がったり他人に嫌われているのではないかとむやみに考える事はほとんど無くなった。
結果、日々の生活は本当に楽になり、積極的に新しい事に挑戦したりあまり人の目を気にせず素を出していけるようになった。

正直「ふつうの人は生きるのがこんなに楽だったのか」と思ったし、「今までの人生の苦しみはなんだったんだ...」とも思った。
もっとはやく受診していたら過去の人間関係にまつわる色々な失敗を回避出来たかもしれない。

その後

薬を飲むようになってから人に会う度に「雰囲気変わったね」「めっちゃ明るくなったね」と言われるようになった。
一番症状がキツかった頃とは喋ってる感じとかが全然違うらしい。

薬を飲み始めてからちょうど一年くらいになります。
今でも症状は抑えられていて、昔よりもとても生きやすい生活を送っています。
ただ、感覚値ですが徐々に効き目が落ちているかなという気がしないでもなく、インターネット先生によると抗不安薬というのは徐々に耐性が付いてしまうし、投薬によって根本的な治療にはならないようなので、いつかは薬が全然効かなくなってしまうかもしれないし、一生飲み続ける必要があるかもしれない。

うつ病などの場合は、抗不安薬を投与している間に生活リズムを整えたり社会的な地位を安定させる事によりうつ病が改善するのを待つというフローのようだけれど、自分の症状はほとんど生まれつきだし、これだけ改善していてもたまに薬を飲み忘れるとすぐに症状が戻ってくるので、多分完治することはないのではという気がしている。

しかし、たとえ薬を一生飲み続けるとしても、一生不安症状に苦しめられるよりは遥かにマシだと思っている。
そんな感じです。

Androidアプリ設計パターン入門読んだ。これからAndroid開発を始める人はこの本があって羨ましい

遅ればせながらAndroidアプリ設計パターン入門を読み終わりました。
この本はPEAKSという技術書クラウドファンディングサービスのプロジェクトとして制作された本で、ぼくは支援を行っていたのでもっと早いタイミングで読むことが出来たのですが、DroidKaigiやらで余裕がなく、結局今になってしまいました。

Android アプリ設計パターン入門

Android アプリ設計パターン入門

  • 著者:日高 正博,小西裕介,藤原聖,吉岡 毅,今井 智章,
  • 製本版,電子版
  • PEAKSで購入する

どんな本だったか

タイトルの通り、Androidでの設計パターンについて書かれた本です。
MVP、MVVM、Flux、Android Architecture Components、React Nativeハイブリットと、昨今のAndroid界隈で飛び交う設計パターンの考え方や実装例についてそれぞれ解説しています。
また、4章、5章、7章では大規模アプリやOSSなど実際の開発現場での設計に関する課題や対応方法についての文章を読むことが出来ます。

どんな人にオススメか

この本はプログラミングの入門書ではなく、かといってAndroid開発の入門書というわけでもありません。
しかし、タイトル通りこの本は確かに入門という名に相応しい内容で、それは正に「Androidアプリ設計パターン入門」だと思います。
最近のAndroid開発現場ではこの本で紹介されているような何かしらの設計パターンを採用している事がほとんどです。
しかし、Androidアプリ開発の入門書を読んで勉強しただけでは、とりあえずAPIからデータを取得したり画面にリストを表示させるようなアプリを実装することは出来るようになっても、なかなかそこからもう一歩、チーム開発で行われるしっかりとクラスの責務分けがパターン化されているような実装はイメージしにくいのではないでしょうか。
この本はそんなAndroid開発を勉強中の学生や、趣味で1人でAndroidアプリを作れるようにはなったけれど、設計についてはあまりイメージが出来ないというような人が現場で必要になる知識や考え方を身につけるのに丁度よい内容だと思いました。

また、サーバーサイドやWebフロントエンドなど別の分野の開発をメインで行ってきた人が、モバイルアプリ開発でどういう事を考えなければいけないのか、どういう設計が主流なのかなどをキャッチアップするのにも丁度よいと思います。

個人的にはArchitecture Componentsをなかなかキャッチアップ出来ていなかったので、その辺りの解説が有難かったです。
そういう最近の流行りをキャッチアップしたいという方にも良いのではないでしょうか。

どんどん設計の考え方がどんどん更新されていく昨今の開発現場、こういう内容の本は本当に求められていると思うので、ぜひiOS設計パターン入門やReact-Native設計パターン入門という本も読みたいなぁと思いました。

Android アプリ設計パターン入門

Android アプリ設計パターン入門

  • 著者:日高 正博,小西裕介,藤原聖,吉岡 毅,今井 智章,
  • 製本版,電子版
  • PEAKSで購入する

なお、このエントリのリンクからご購入頂くとぼくに紹介料が入るようになっているので何卒。

DroidKaigi2018で「How to improve your MVP architecture and tests」という題で登壇してきました。感想編

こんにちは。きりみんさんです。
先日、DroidKaigi2018というカンファレンスで登壇をしました。

タイトルは「How to improve your MVP architecture and tests」で、Mode-View-Presenterパターンを利用した時の設計アンチパターンとその改善方法、テストの書き方や知見などについて話ました。

こちらがそのスライドになります。
speakerdeck.com

内容の補足などはまた別エントリーで書きたいなと思いますが、今日はとりあえず熱が覚めないうちに当日の気持ちを書きなぐりたいと思います。

初めてカンファレンスで登壇した結果

今までLTで5分や10分などの発表はやっていましたが、本格的なカンファレンスでの登壇というのは初めてでした。

スライドも前日ギリギリまで何度も修正していて、当日の早朝にようやく最終リハーサル練習をやるという感じでした。

本番はしつこく宣伝していた効果もあってか、立ち見もいっぱいで入れない方がいるほどの大盛況だったようです。

一方ぼくは直前のオープニングセッションで一番まえの席に座ってしまったため、エレベーター渋滞に巻き込まれてしまいギリギリに到着するというやらかし。

セッション本番では朝イチでみんなテンション低めだろうなと予想したので、緊張してグダグダにならないように、出来るだけテンションを上げて楽しく盛り上げてやろうと若干ハイになって明るく振る舞いました。

これはKotlinConfの時のしらじさんのセッションでの勇姿がとても印象に残っていたからで、とても参考にさせて頂いたし、おかげであまり緊張せずに話すことが出来ました。

セッションは時間どおりで無事終わり、セッション後にはたくさんの人に内容について質問して頂き、楽しくお話できました。

DroidKaigiは最高の大規模オフ会だった

自分の登壇が早々に終わったので、残りのDrodKaigiは心も軽くたくさんの面白いセッションを周ったり、たくさんの人とお話することができました。

特に今までTwitterでしか絡んだ事が無かった方や、完全に初めましての方、そして以前いろいろな現場で一緒にお仕事をしたことがある方など思いがけずとてもたくさんの方に話しかけてもらい、最高の時間を過ごすことが出来ました。

カンファレンスでは以前作った自分のアイコンがプリントされたTシャツを着て行ったのですが、そのおかげで本当にいろんな人に「あ、きりみんさんじゃないですか!」と気付いて声をかけてもらって、本当に嬉しかったです。
声をかけてくれた皆さん、本当にありがとうございました。

感じたこと

登壇をすると友達がたくさん増える!
登壇が決まってからの数ヶ月間はずっとスライドづくりの事が気になって他の勉強や趣味が全然手に付かなかったのですが、それでも本当にやってよかったと思います。

そして、たくさんの知見あふれるセッションを聞き、Androidエンジニアの仲間たちとプログラミングについて熱く語り合い、刺激をもらい、とにかくもっとたくさんコードが書きたくなりました。
日本のAndroidコミュニティは本当に暖かくレベルが高く勢いがあり、本当に素晴らしいと思いました。

Androidサイコー!!!!!!!!

Live2DとFaceRigで今流行のアレになる

こんにちは、日々可愛くなる鍛錬を怠らない幼女、きりみんです。

最近アレ流行ってますよね。バーチャルなんとか。
ぼくも大好きなので、ついつい触発されて似たような事がやってみたくなりました。
とはいえぼくは3Dモデリングの素養は全くないので、Live2Dという二次元のイラストにアニメーションを付けられるソフトと、FaceRigというWebカメラで顔面をトラッキングしてキャラクターの動きを同期させられるソフトを利用して、それっぽいことを試してみました。

Live2D
Steam:FaceRig
FaceRig Live2D Module on Steam

元のイラストはこんな感じです。
いつものアイコンキャラを描いたつもりです。

https://i.gyazo.com/5181606344e2f69a3af0595a3003cd5d.png

ぼくは普段イラストにSAI2を使用しているのですが、今回はLive2D用なので線画、塗りの時点でパーツごとにレイヤーを分けて分離しやすいようにしました。

https://i.gyazo.com/f495a30f6110688479f5c8478f5e7553.png

SAIからpsdファイルにExportし、Live2Dに読み込むと、以下のようにそのままレイヤーの情報が残っていて便利でした。

gyazo.com

あとはLive2Dのチュートリアルに従って動作を設定していきます。
このチュートリアルがとても分かりやすくて、Live2D自体も簡単なので特に苦戦せずに作業が出来ました。

1.イラストの加工 | Live2D Manuals & Tutorials

長いですが作業の様子を録画していたので興味のある方は適当に2倍速とかでどうぞ。

www.youtube.com

FaceRigへのモデルの読み込みはこちらを参考にさせてもらいました。

FaceRigでLive2Dアバターを動かしてみる - Qiita
Cubism Editor 3でのFaceRigモデル作成注意点 — Live2D コミュニティ

そして出来たのがこちらになります。
塗りの時点で手を抜いたのが致命的な被害をもたらしていて悲しい。

https://i.gyazo.com/73513464a48338a141e520d771340a25.gif

喋らせてみました。

以上になります。
DroidKaigi直前に何をやってるんでしょうね。。。

DroidKaigi2018で登壇します

こんにちは。

2/8に開催されるDroidKaigi2018の1日目、11:20よりRoom1で「How to improve your MVP architecture and tests」というテーマで登壇します。

タイムテーブル | DroidKaigi 2018

内容は今のところざっくり以下のようになっています。

・自己紹介
・paymoの紹介
 ・Android版paymoでのクラス設計
・MVPアンチパターンと改善案
 ・MVP概要
 ・MVP採用プロジェクトアンチパターン
  ・サンプルコード解説
 ・改善案
  ・ViewとPresenterを分離する
   ・サンプルコード解説
  ・Presenterにテストを書く
   ・何故Presenterにテストを書くか
   ・Presenterへのテストの書き方
   ・Mockitoについて
   ・サンプルコード解説
・実際にプロダクトでPresenterにテストを書き始めて感じた難点
・テストコードをリファクタする
 ・サンプルコード解説
・Presenterの処理をドメインモデルに移譲する
 ・サンプルコード解説
・まとめ

カテゴリでは中・上級者となっていますが、MVVMなどでバリバリテストを書いてますというレベルの人にはあまり刺さらないかもしれません。
どちらかと言うと、CleanArchitectureっぽい設計にはしてみたけどテストは書けていなかったり、具体的にどの程度カッチリ型に嵌めどういうコードに落とし込めば効果的なのかイメージがなかなか掴めない方などが対象という感じです。(Twitterで行ったアンケートの結果を反映させています)

事前にスライドと解説に使用するサンプルプロジェクトを公開予定です。
サンプルコードは全てKotlinで書かれていていますが、語られる考え方自体はJavaiOS開発などでも通用する内容だと思っています。

ぜひ聞きに来てください。