LIFULL Creators Blog

LIFULL Creators Blogとは、株式会社LIFULLの社員が記事を共有するブログです。自分の役立つ経験や知識を広めることで世界をもっとFULLにしていきます。

第1回Swift勉強会@ネクストを開催しました!

こんにちは。新卒で今年からiOS開発グループに配属された石田です。

はじめに

 私はiPhoneアプリ開発経験がなく、これからObjective-Cを勉強していこうと思っていた矢先に、WWDC2014にて新言語Swiftの発表がありました。そんな新卒の視点から、先日弊社で開催されたSwift勉強会の模様をお伝えします。

開催までのいきさつ

 Swiftの発表にはiOS開発グループの先輩も驚いたようですが、さすがエンジニア。いち早くSwiftを習得しようと、まだ情報が少ない中、開催予定の勉強会に参加しようと盛り上がっていました。さまざまな勉強会の情報を見ていくうちに、「自分たちで勉強会を開催してLTも行えばより勉強になるのでは?」、という話になり開催が決定しました。発表された直後でホットな話題ということもあり、「やるなら早いほうがいいよね」ということで発表から1週間後の6月11日にSwift勉強会を行うことになりました。

開催概要

 第1回Swift勉強会@ネクスト
 イベント告知:http://connpass.com/event/6780/

  • 18:30 - 19:00 受付
  • 19:00 - 19:10 はじめに
  • 19:10 - 20:00 LT
  • 20:00 - 21:30 情報交換会

LT1本目 「複数人でSwift開発をするときに気を付けるべきと"個人的に"思ったこと」(ネクスト枠 藤原さん)

 iOSでの開発の経験が浅い人向けに、複数人でSwift開発するときに気を付けるべきことをまとめたLTでした。発表者の藤原さんは、PHP等を用いた開発を長年やってきた経験をもとに、Swift開発で楽になりそうなところ、それゆえにプロジェクトで開発するときに困りそうなことを述べてくれました。classとstruct、varとletの使い分け、依存関係の分かりやすいクラス設計など、これから意識していく必要性を強く感じました。

LT2本目 TitaniumユーザーがSwiftを触ってみたら(外部枠 宮下さん)

 Titaniumという、JavaScriptでiPhoneアプリやAndroidアプリが作れてしまう開発環境があるそうです。私はこのLTで初めて知りました。かつてはiPhoneアプリを作るならObjective-C, AndroidアプリならJavaと選択肢が限られていたのですが、TitaniumやSwiftといった別の選択肢が出てきており、開発環境の幅が広がってきているようです。これらの代替ツールの利点と欠点を分かりやすく発表していただきました。お忙しい中、本当にありがとうございました。

LT3本目  Optionalの使い方(ネクスト枠 成田さん)

 Swiftで追加されたOptionalという機能についての技術的なLTでした。"Optionals are an example of the fact that Swift is a a type safe language"(訳:OptionalはSwiftが型安全な言語である事実の一例だ)という公式ドキュメントの文から始まりました。 Swiftでは通常の型にnilは入れられないのですが、Optionalを指定するとnilの代入が可能になるというものです。デフォルトでは型は厳格に設計されており、宣言の際に「?」をつけるとOptionalに、「!」をOptional型に付けると解除されるようで、この表現は直感的で分かりやすいと思いました。イメージでいうと、「nil入れてもいいの?」「nil入れちゃダメ!」という感じです。

LT4本目 Genericsについて(ネクスト枠 小屋敷さん)

 ジェネリクスの機能についてのLTでした。関数やクラスで用いる引数や返り値は、あらかじめ型指定する必要があります。しかしジェネリクスを用いて型を指定することで、型だけ違って処理の内容が同じものを作ることができる、というものです。私はC++を使っていたのですがそのときにコードに、CArray型にインスタンスをいれるときの宣言に、<>で型指定しないといけないけどなんのことだろうと思って使っていました。とても勉強になりました。

LT5本目 Swiftにおけるオブジェクト指向(飛び入り枠 ネクスト寒川さん)

 このLTは勉強会運営側も予定していなかったのですが、Androidチームの先輩が急遽プレゼン資料を用意して参加してくれました。Swiftを使って新入社員にオブジェクト指向を教えるためには、というテーマでスタートしたLTですが、途中からSwift→Sushift→寿司ft、という流れで、今回皆さんに衝撃をもたらしたマルチバイト文字を使った変数を利用し、寿司の絵文字でオブジェクト指向の継承を説明するというネタに走ったLTでした。親クラスをごはん、子クラスを寿司の絵文字で説明され、シュールな見た目に会場は笑いに包まれました。裏話ですが、継承関係にある絵文字を探すのに、発表者の寒川さんはとても苦労されたようです。

LT全体として

 バックグラウンドが異なる技術者がそれぞれSwiftを触った意見を聞くことができ、興味深かったです。言語的には読みやすい、いままで使ってきた何かしらの言語に似ているといった意見が多かったと思います。また開発環境的には、まだ改善すべき点がある、区別し辛い点があるといった意見が見受けられました。また終了後にご回答いただいたアンケートでは、新しく導入された概念がよく分かった、他の技術者がどういう観点でSwiftを捉えているのか見られてよかった、という感想をいただきました。 なお今回のLTで使用した資料の一部は、発表者の方が提供してくださいましたので、記事の下のリンクから閲覧することができます。ぜひご覧ください。

情報交換会

 情報交換会では、ピザやお酒を交えて自由に情報交換を行いました。寿司ftの裏側やSwiftの技術的な話、業界の話などで盛り上がりました。

最後に

 今回の勉強会にお越しいただいた皆様、LTをしていただいた皆様、本当にありがとうございました。まだまだ情報量が少なく開発事例も限られていますが、Swiftの情報を発信していくために、第二回Swift勉強会も企画しています。今回お越しいただいた方も、残念ながら来られなかった方も是非お待ちしております。次は私もLTをさせていただく予定ですので、よろしくお願いします。

複数人でSwift開発をするときに気を付けるべきと"個人的に"思ったこと
http://www.slideshare.net/fujipara/swift-35749636

TitaniumユーザーがSwiftを触ってみたら
http://www.slideshare.net/ryugoo/titanium-swift

Optionalの使い方
http://www.slideshare.net/motokinarita7/optional-35774931

Genericsについて
http://qiita.com/mo_to_44/items/f9b2678d22ad06599308