#iosdc 終わったあと、最高のイベント過ぎて、エモくなって少し泣いた振り返り

はじめに

おばんです、とうとうiOSDCが終わってしまいました、明日は勤労の田中です。

このエントリーはiOSDC 2018を振り返ったエモ散らかしです。嬉しかったこととか、来年に向けた抱負などを書いていきます。

本を評価してもらえた

エモから生まれたエモ太郎。

最近尊敬してやまない、ベストトーク2位を取った @orga_chem さんのスライドの中でも引用してもらっていて、またしてもエモ。

speakerdeck.com

@akio0911 さんの手ほどきでウテナピングドラムの理解が進んだ

ちなみにこのツイートにぶら下がったメンションにすごく話が続いています。 いろんなメタファーとか、話のつなぎを聞いたので見直したくなった。 映画版を見たらまた語りたい。

デザインを依頼してスライドのクオリティを上げられた

tanakalivesinsendai.hatenablog.com

楽しい仕事になったようでよかった!あとお仕事ゲットにもつながったようなので、こちらとしても嬉しい。

昨年のトークが引用された

嬉しいけど、こじれそうな暗黙的な文脈もあるので、やりすぎると老害になりそうだとも思った。少し静かに生きようと思った、うそだけど。

書いたブログが引用された

こないだなかなかに苦労して実装して、まとめた機能について、スライドの中で取り上げてもらえたのめっちゃ嬉しかった!これまで引用してもらえたのはあまりなかったので嬉しい!

inside.pixiv.blog

speakerdeck.com

iOSアプリ設計パターン雑談」ができた

アンカンファレンスの使い方を心得た感じあった。

togetter.com

会社で作ったノベルティとTシャツのウケがよかった

転職早々、ピクシブのスポンサー作業担当に任命されたので、社の人と連携して頑張って作った。そうしたらすごくウケがよかったのでホッとしている...。

こんなトラブルもあったけど、堪忍やで!!!

その他良かったことざっくり

来年に向けて

ベストトーク3位以内に入る

昨年はベストトークの枠が広かったのでなんとか入り込めたのですが、今年は狭まったのもあり入れず...。 個人的に手応えはなかなかにあったのだけれど、ベストトーカーの顔ぶれを見ると、技術的にも取り組む課題的にも全然足りないなと思った。

前夜祭を少しは盛り上げることができたと思ったので、自分がやるべきことはできたと思うし、順位が大切なわけではないけど、もっと評価されて価値のあるトークにしたい。後から何度も見直される価値のある資料を残したい。YATTEIKI💪

さいごに

「人を巻き込み活性化する、iOSDCコミュニティの一員です。」というアナウンスがエモすぎた。完全に同意。

iOSDCはやさしい世界すぎる。リアクションがちゃんとあって、良い感想を伝えてくれる。

こんな振り返りを帰り道でしていたら、空は晴れてたけど少し雨が降った。

iOSDC 2018 Interactive Round Table テスト相談会に参加してきました #iosdc

はじめに

おばんです、クックパッドのブースに展示されていたゲームが面白過ぎてランキング入りを果たした田中です。明日はもっと上のランクインを狙う。

iOSDC 2018の1日目の午後には Interactive Round Table という、あるテーマに集まって議論するコーナーがありました。 「テスト」というテーマで興味があったので参加しました。

togetter

togetter.com

Round1

UIテストの話

  • UIテストを書いている人は何人いますか?
    • 7人中3人
  • UIテストはないけど、単体テストを書いている人は何人いますか?
    • 7人中4人
  • すでに全員自動テストを取り入れていてすごい、iOS界隈でもテストの機運高まってそう
  • id振るのがめんどい問題
  • fuzzing test
    • id以外のユニークなものをみつけてテストする手法
  • E2Eテストの正しさをどう確認するか
    • functional E2E test
  • テスト戦略
    • なぜテストを入れたい?
    • どこからテストを入れる?
    • ↑に応じてなにをやっていくべきかが変わる

どこにUIテストを入れている?

誰がUIテストを書いている?

Round2

Mamorio@hatakenokakashi さんからの質問

  • CoreLocationやCoreBluetoothなどのフレームワークは境界地あたりだと電波状況や位置情報に応じて状態がフラつくことがある
  • 手動デバッグを行なっているが、とてもコストが高いので、どうやってテストをするのが良いか?
  • どうやってテストで解決すればよいか?
  • これはテストというより設計で解決すべき問題かも
  • 位置情報や電波状況のメンタルモデルをモデル化すれば、入力に応じた状態変化をテストできるので、自動化できる

自動テストをどうやってメンバーに書いてもらうか

コードをクリーンに保てていないと、離職リスクにつながる

こういうことは結構ありそうだと思った。プロダクトに対する愛でカバーできる面があったりもするけど、度が過ぎたりあまりに長い期間だと心が疲弊するので、マネージャーに当たる人にはこういう面もサポートしてほしいかもと個人的に思いました。

さいごに

テスト相談会はRound3までありましたが、僕はRound2までの参加だったので、ここまでをまとめました。

テストに向かっている人たちで、どうすべきか、うちではこうやってるよ、みたいな話をワイワイするのはとても楽しかったです。

カンファレンスのスライドに使うロゴデザインをデザイナーに頼んだ話 #iosdc

はじめに

こんぬづは、カンファレンスに参加すると地方の友人と会って最近の近況を聞いたり、情報交換が出来て楽しい田中です。

昨日iOSDC 2018の登壇を終えて、今はゆっくりカンファレンスを楽しんでいるところですが、休憩時間を活用してカンファレンスのスライドに使うロゴデザインをデザイナーに頼んでみた話を書いてみようと思います。

登壇した話はこちら。

tanakalivesinsendai.hatenablog.com

作ってもらったロゴがこちら。

f:id:ktanaka117:20180831170801p:plain

これに使っている右下のロゴを、友人の優秀なデザイナー、 @noa_design51 に作ってもらいました。

なぜ頼んだか

今回はiOSDC参加も3年目で、好きなアニメ作品であるシュタインズ・ゲートをもじったタイトルにしていたため、気合の入ったスライドが欲しいと思いました。

そういえばシュタゲのサブタイトルのロゴかっこよかったなーという着想はあったのですが、自分ではデザインができないため、友人を頼ってそれっぽいのを作ってもらうことに。

f:id:ktanaka117:20180831170836p:plain
クソコラは無料

f:id:ktanaka117:20180831170846p:plain

感想

こんな良いことがありました。

  • お金を払ってロゴを作ってもらったのでスライド作りに気合が入った
  • 鳳凰院凶真になれた
  • 前夜祭を盛り上げることができた

これまでデザインを人に頼んだりしたことはなかったですが、デザイナーさんの腕が入ると何倍も見違えるので、お金は払うべきところには払うべきという良い体験ができました。 のあ氏ありがとう!!!

iOSDC 2018で狂気のマッドサイエンティストとして登壇してきました。 #iosdc

はじめに

おばんです、シュタインズゲート・ゼロはとりあえず8話まで見てほしい田中です。

先日別のエントリーでも紹介したように、とうとうiOSDC 2018本番を迎えました。 無事発表も終わったので、資料とかtogetterとか発表の補足とかを書いていきます。

tanakalivesinsendai.hatenablog.com

togetter

ヘルシェイク矢野のこと考えてた。

togetter.com

資料

togetterと合わせて読むとより面白いと思います。

補足

しゃべりで補った部分や、誤解を招いた可能性のある部分を補足します。

白衣はこの日のために?

イケてないコードは「イケてない」と言う

これは愚痴を言い合うというわけではありません。 あくまで良くないと思っている部分に対する共感をメンバーと行って感情を整理して、どれくらいヤバそうなのか、気に入っていない(なんらかのリスクがあるかもしれない)ことを共有しあうことが目的です。 あくまで建設的に、今ある状況をどういう優先順位で良くしていくかという話です。

リファクタリングに対して思ったこと

ここ数ヶ月自分で取り組んでみて、周りの尊敬するエンジニアにも相談してわかりましたが、リファクタリングの領域に銀の弾丸は無い。 ゆえにこの領域には価値があると思いました。 
似たような状況は開発現場には多く存在するはずで、そこでどう判断するか、
どう動けるかはまさにそのエンジニアの腕前にかかっている部分になるので、非常にやりがいがあることだと考えています。

(なんか良いこと言う)

スライド作りを忘れていてそのままになりましたが、現場ではこんなことを喋りました。

どんな良いことを言おうかと思って、さっき電車の中で考えてきました!!!

溜まった負債を改善するためのリファクタリングは長く険しい道のりですが
プロダクト開発においては、避けて通れないものだと思いました。

地味で厳しい判断の積み重ねですが、だからこそ過去と現在を未来につなげていくリファクタリングには価値があります。
これまでの経緯を受け止めて、開発を続けていける立場は誇れることです。

さいごに

前夜祭登壇も3年目となると、なんとなく求められているものがあることに気付きました。 主に「笑い」と「共感」それに、脈々と受け継がれてブレのない、エンジニアリングにまつわる問題に関する話。 なんとか今年もうまくいってよかったです。

宣伝

初・軽井沢!iOS設計本の執筆合宿を振り返ってたらEmoになった

はじめに

おばんです、気付いたら8月の土日は全部本を書いてた田中です。平成最後の夏なんて無かったんや!!!

さて、先日『iOSアプリ設計パターン入門』の執筆合宿と称して、軽井沢に行ってきたのでその旅のまとめをします。

peaks.cc

合宿の目的

  • 進捗を出す
  • MPを回復させる
  • 特別コンテンツの作成
  • 進捗を出す

あったことを時系列順にまとめてみた

togetterにもまとめたのでざっくりはこちらでどうぞ。

togetter.com

Twitterに載ってる情報はこれでだいたい全てなので、ここから先はTwitterに載ってないこととか、特に面白かったこととかまとめていきます。

東京の駅は難しい

いつもこれ思う。幸い全員時間通り集合できたけど、一人だけ遅刻してバイバイとか 面白いことも 起こり得たので、日々のソフトウェア開発の設計でも気を引き締めていきたい。

初・軽井沢

はい。

郊外にいると元気になる

郊外によくあるショッピングモールとか、でっかいスーパーに行くと地元っぽさを感じて無性に元気になる。ジャスコ大好き丸。

人生相談的サムシング

夕飯の買い出しの帰りにタクシーを呼ぼうとしたところ、タクシーが来るのを待っていると歩くのとそんなに変わらないということで、@orga_chemさんと@takasek先生と歩いて宿に帰ることに。最近の開発ではどういうことをやっていて...とか、その中で最近悩んでいることは...、とか話すエモ・ウォークでした。

スーパーすごいお二人と話をしていて、最近の自分のやってることは不安はあれど間違ったことはしてなさそうだ、無自覚な部分が大きかったけどどうやらだいぶ良い環境で仕事できてるっぽいぞ、ということに気付けて良かったです。 思考の過程を話して、それに同意をもらったり、プラスアルファをもらえたり。とても贅沢な時間でした。

AppCode相談会

最近脱Xcodeのために、AppCodeを使い始めました。社内では僕一人しか使っていなくて、様々な謎があったのですが、@orga_chemさんに便利な機能やAppCodeの文化についてざっくり聞けて捗りました。

@hkato193さんは尊い

今回の本の編集をしてくださる加藤さんは、執筆に関する困りごとの相談に乗ってくれるだけでなく、合宿中たくさんの気配りをしてくれました。執筆陣が「勝手知ったる」仲なうえ、エンジニアトークが始まるとわき目もふらなくなってしまう中で、布団を敷いてくれて、いた、り...。ありがとうございます!!!

論文を読むのが楽しい

大学時代の勉強は全然興味がなくて論文なんて「テストに必要だから読んでた」くらいだったけれど、興味ある分野で必要に迫られて読んでみると、こんなに整理された情報がまとまってるものもそうそう無いでしょ!と思ってとても楽しい。 自分が生まれる前のアーキテクチャの話を学んでるのすごいなっていう。80, 90年代のSmalltalk???まだ生まれてないんですけど!!!

そばを食べようとするも、箸を忘れた@takasek先生

開けた後で「どうやって食べよう...」「ストローならあるけど...」「やばい、ストロー折れる、弱い...」って話してたら近くに座ってた優しい人にスプーンを恵んでもらうという、旅らしいエピソードが最高に面白かった。

エモ

なんかちょっと良いことを言ってシメようとすると、個人的に感慨深いなと思うのは、自分のエンジニア人生の中でお世話になった尊敬する人々とこうして本を書くことになっていることです。

@marty_suzukiさんとは僕が学生時代でiOSを始めたばかりで本当になにも知らない頃からの付き合いでした。特定の人と長い付き合いを持つのはこれまで多くなかったけれど、それが今でも繋がって一緒に本を書いている。

@susieyさんとは僕が就職する前、Wantedlyインターンをしていた頃からお世話になっていました。仙台にいた学生の頃、Qiitaにイケイケな記事を上げまくっていた天上人と本を書いている。すごい。

@loveeさんとはイベントで知り合って、AKIBA.swiftという勉強会コミュニティを一緒に運営していました。一緒に運営をやっていた時からそのマルチスキル度合いには敵わないなぁと思っていた相手ですが、またこうやって関われて嬉しいです。

@d_dateさんとは知り合ってここ2年くらい一緒にいろいろなことをしてきたけど、まあとにかく技術で勝てないし、フットワークでも勝てないし、なんとか百合では勝ってるけどとにかくすごくて、よく相談にも乗ってくれるのでお世話になっている。楽しい人と本を書けるのは大事ですよね。:honkaite:

@takasek先生は広く深い知識で、かつわかりやすく話をしてくれるので僕が設計を学び始めた時からよく相談に乗ってもらっていました。話をしていると、自分の論理的でない痛いところをついてもらえるのであとでggって調べることが多いですが、それが今回の本描きでもよく効いて助かっています。

@orga_chemさんとはこの中では一番付き合いは短いですが、iOS Test Nightに行きだして、テストに関心を持ち始めた頃に知り合って以来、とても参考にさせてもらっています。d_date氏とは「人生何周目かわからない人」と言ってますが、仕事でもない場面でそんな人にアドバイスもらえるのはとても貴重。

さいごに

ここ数年でエンジニア人生のステージを何段か登ってきたように思うけれど、うまく縁がつながって、尊敬する人々と本を書くという一大プロジェクトに関われてるのはすごく良い人生だなと思います。本を書けること自体も嬉しいですが、こういう縁を持てていることが尊さの極み。 良いことをやっていくと、良いことに繋がる。今後も色々YATTEIKIだなー。

iOSDC 2018で「設計時空のリファクタリング〜複数アーキテクチャを抱えたアプリのリファクタリング事例〜」というタイトルで登壇します。 #iosdc

はじめに

こんぬづは、アニメ『シュタインズゲート・ゼロ』では、劇場版のアンサー的な作りとなった8話で涙腺崩壊した田中です。

さて、一昨年、昨年に引き続き今年もiOSエンジニアのための国内カンファレンスである、iOSDC登壇させていただくことになったので、トークの宣伝をします。 これが世界の選択か...。

iOSDCってなに?って方は↓をご覧ください。

dev.classmethod.jp

トーク概要

これよりオペレーションスクルドの概要を説明する。

長く続くアプリ開発において、複数のアーキテクチャが積層のように負債となってしまうことは、割と多くの現場で起きているのではないでしょうか。
より良い開発をしていくためには負債の返済という、痛みを伴う対応を迫られるときがいつかきます。
このトークでは自分が直近で直面した負債の返済について話をします。
どう返済していったのか、チームとどうやって足並みをそろえたのか、様々な反省をお伝えします。

設計時空のリファクタリング〜複数アーキテクチャを抱えたアプリのリファクタリング事例〜 by ダンボー田中 | プロポーザル | iOSDC Japan 2018 - fortee.jp

最近関わりのあるプロジェクトでのリファクタリングの話をします。 このプロジェクト以前でも、時間の経過とともに部分的にアーキテクチャが書き換えられたものであったり、入り乱れたものをいくつか目にしてきました。 古い地層のコードは、負債となることがままあります。これを改善するためにどんなことを実践しているか喋ります。

またアーキテクチャに限らず、負債となるコードにはさまざまなパターンが存在します。 それぞれにどう対応したのか、ありがちなパターンに絞って紹介しようと思います。 staticおじさんを許すな。

このトークがみなさんのより良き開発ライフにつながればと思います。エル・プサイ・コングルゥ

AppCodeにissueを投げてみた

はじめに

おばんです、とうとうAmazonリズと青い鳥の公式設定資料集を買ってしまった田中です。

先日セールをやっていたので、AppCodeを本格的に使い始めています。 AppCodeはIntelliJなどで有名なJetBrains社製のIDEです。

www.jetbrains.com

いい加減Xcodeに対する不満を唱え続けるくらいなら、新しい選択肢を模索しようと使い始めました。 今のところXcodeと違うデザインに目を慣らしたり、使い慣れたキーマップを設定すれば、機能は豊富で非常にパワフルだと感じています。

そんな中一個だけ、XCTestでContextを記述するためのXCTContextを利用したときにfatalErrorで落ちるという問題にぶち当たってしまったので、issue trackerにissueを立ててみました。

AppCode上でXCTContextを使うとfatalErrorになる問題

現象が自分の環境のみで起きていることかもしれなかったので、AppCodeを以前から使っている @orga_chem さんに相談したところ、issue tracker上で"XCTContext"で検索をかけても類似するものが見つからないという結論に達して、issueを立てることにしました。

↓が投げたissue。

https://youtrack.jetbrains.com/issue/OC-17586

まだ解決には至っていませんが、とりあえず「"Affected vertions" (影響のあるバージョン)をつけ間違えてるぞ」ってJetBrainsの人に修正されたので、見てはもらえていそう👀

続報に乞うご期待。