【Swift】iOSDC 2019 day1に参加しました!

こんにちは、そのはです。

先日、iOSアプリ開発に関するカンファレンスであるiOSDC2019に参加しました。

今回はカンファレンス初参戦の感想を簡単に述べていきたいと思います。

はじめに

iOSDCとは?

公式サイトの文言を引用すると、

iOSDC JapanはiOS関連技術をコアのテーマとした技術者のためのカンファレンスです。

ということで、iOSアプリエンジニアのための技術共有の祭典です。

早稲田大学西早稲田キャンパスの一棟を貸し切っての開催で、規模としては1000名以上が参加するかたちになっています。
iOS開発によく用いられるSwift言語や開発ツールであるXcode、周辺環境や「こんなアプリ作ってみた!」など、取り上げられる話題は多岐に渡ります。
60分・30分単位のプレゼンテーションを行うレギュラートーク、5分単位のプレゼンテーションを行うライトニングトーク、企業ブースの展示、などを複数のスペースで並行して行い、参加者はそれらを自由に見て回るという形式になっていました。

チケットは一般入場で8000円と安くはありませんが、なんと早稲田生は無料入場できるそうですね。なんというアドバンテージなんだ…、興味のある方にとっては万々歳ですね!

なぜ参加したの?

じつは最近Swiftの勉強を始めました。
触り始めて2ヶ月(週1程度なので超スターター)で、ようやく簡単なToDoアプリを作れるようになったレベル感です。

カンファレンス参加には全然手が届かないと思っていましたが、先輩社員から「せっかくだから参加しておいでよ!」と後押しされ参加することとなりました。

ということで、

  • 強いアプリエンジニアはどんなことを考えているんだろう?
  • アプリ開発におけるトレンドってなんだろう?
  • 技術カンファレンスってどんな感じなんだろう?
  • 単純に技術面の勉強になったらいいな

という観点で発表を聞いて回ることにしました。

感想

聞いてみた発表の簡単な要約と感想をまとめていきます。

(とは言っても、ほとんど話に置いていかれたんですけどね…^^;)

ライブラリのインポートとリンクの仕組み完全解説

ライブラリのインポートで出てくるエラーを解決するためには低レイヤーの理解も必要だからなかなか大変。でもいろいろと実験してみると、実はエラーのパターン分けは単純で、

フレームワーク or ライブラリ
×
モジュール有 or モジュール無
×
ダイナミック or スタティック
×
Swift or Objective-C or C
×
プラットフォーム、アーキテクチャ

という構図を理解できれば簡単に紐解ける、というお話でした。

岸川さんという有名な方の登壇ということでお話を聞かせていただきましたが、完全に置いていかれました←
そもそもライブラリのインポートをまともにやったことが無い人が聞くべき発表じゃないんだよなあ。でもライブラリのインポートの体系のアウトラインが分かった気がしたので、もし今後詰まることがあったら活かせると思います。
Swiftに限らず低レイヤーまで踏み込んでいくと学習コストが高くついてしまうので、当面の問題は迂回して解決する、みたいなことはあると思いますが、実はそこが本当は面白いのではないかと思わされる発表でした。

Swiftクリーンコードアドベンチャー

クリーンコードの三大原則とは「分かりやすい」「安全である」「変更に強い」。これを念頭に置き、メソッドをジェネリック化していくことがクリーンコードを書いていくことに繋がる、それにはプロトコルを活用せよ!というお話でした。

Swiftに限らず汎用的な哲学に関する発表を期待していましたが、どうやら今回の焦点は特に「変更に強い」という部分で、型に縛られない記述をすることで共通処理を統合できて綺麗に見えるね、という文脈だったようです。ごめんなさい、ジェネリクスもよく分かっていないので完全に置いていかれてしまいました…。
思想として、まずは個々の問題を解決する(≒動くものを作る?)、そこから共通化できる部分を探し出し冗長な記述にならないように変更していく、ということが重要なのかなと理解しました。また、「クリーンコードは道場」というコメントにも共感を覚えましたので、郷に入って郷に従いたいと思います。

Swift Playgrounds でタートルグラフィックスしよう!🐢

LOGO言語から着想を得て、SwiftPlaygroundsでタートルグラフィックスできる教育アプリを個人開発したら、海外の高校からエンジニア教育のカリキュラムに組み込みたいと連絡が来た!というお話でした。
開発アプリのリポジトリはこちら

私はタートルグラフィックスという言葉は知りませんでしたが、小学生がブロックプログラミングでタートルグラフィックスを行い競い合う、みたいな動画を観たことがあったので、発表が始まってからは「ああ、あれのことか!」とピンときました。質疑応答でも挙がっていましたが、タートルグラフィックスとブロックプログラミングとの親和性は高いと思うので、ぜひそちらも対応していただければと願っています!
私も教育に興味があるので、SwiftPlaygroundsで動く教材を開発することに興味をそそられる発表でした。

サービスにおけるデザインシステムの構築

デザインシステムとは「デザインの原則」「デザインの共通言語」を規定するシステム。巷にも市販のデザインシステムが転がっているが、そのまま用いると無機質なものになりがちなので、会社のブランディング、ユーザーストーリー、チームの価値観を明確にしそれを盛り込むことでよりエモーショナルにしていくのがよい。
さらに、エンジニアとデザイナーとが「デザインのコミュニケーション」を行えるようにする必要がある。#FFFFFFではなくwhiteで統一する、その色の持つ意味をパラメータとして付与する。あるいは色に限らずインタラクション・ライティングなどすべての”意味”を考え具体化していこう!というお話でした。

デザインに関する知識はあまりありませんが、絵を書いたりすることは好きだったので、もともとアプリケーション開発ではフロントエンドの中でもデザインに近い部分に興味がありました。
この発表ではデザインに関する哲学と、サービスとしてアプリをリリース・運用する上でデザインをどう言語化し共有化していくかということが語られていて興味深かったです。割りと抽象的な内容が多かったので直接活かすことは叶わなそうですが、デザインを考える上での刺激にはなったかなと思いました。

Lightning Talks

私の勤務先でも社内LTというものが開催されますが、そちらとは雰囲気が大分異なっていたので驚きました。
社内では比較的ゆるい雰囲気でTipsをメインに発表していくというスタンスですが、今回のLTは時間が厳格に決められた上で飲酒が可能な空間でいかに盛り上げるかみたいな雰囲気で、Tipsに限らず実際のサービス提供の中で遭遇した出来事や個人的な哲学の共有など話題にも多様性がありました。
今回のようなLTの雰囲気が好きだと感じたので、もし社内で登壇する際はその雰囲気を踏襲したいなと思いました。

後日YouTubeの方に当日の発表がアップロードされるようなので、気になる方はぜひご覧ください!

まとめ

今回は初参戦したiOSDCの感想をつらつらと書いていきました。

カンファレンスというものの味を知ったので、今後はもっと積極的に参加していくかもしれません。

学生の皆さんなら無料で参加できる勉強会なんかもあったりするようなので、一度参加してみてはいかがでしょうか!

それでは。