イベントレポート iOS minne

try! Swift Tokyo 2019レポート

イベントレポート iOS minne

弊社では、外出時でも万が一の場合の対応ができるような業務に支障がない体制が取れるなどの適切な工程を踏めば、業務に関係ある技術イベントにチケット代の補助込で業務として参加できます。
3/21-23 に開催されたtry! Swift Tokyo 2019にも、業務としてハンドメイドマーケット minneのiOSアプリエンジニア全員で参加してきました。
そこで、参加した各パートナーが印象に残ったトークセッション・ワークショップ・イベントの雰囲気について紹介していきたいと思います。

try Prototype!

try Prototype!

どうも!こじこじです。私は、@menneniaさんによるトークセッションを紹介していきたいと思います。

このトークセッションは、開発に対するマインドセットに関してオーディエンスに質問を投げかけ、考えてもらうという珍しい形式のトークセッションでした。 開発のモチベーションや普段意識せずに考えていることに気がつくことのできる良い機会となりました。

@menneniaさんによる補足と共に各質問を以下で紹介していきますので、皆さんもこの機会に普段の開発や自分自身について考えてみてはいかがでしょうか。


Q1. なぜデベロッパーをしていますか?

この問いに正解、間違いはありません。
この回答が自分自身のモチベーションの根幹にあり、それを把握するために考えてもらいました。

これを知ることで明確なアクションに移せるはずです。

Q2. 誰のためにコードを書いていますか?

私たちの仕事は結局何であるのか?ということに繋がります。

私たちの仕事は、主に自分自身、ユーザ、会社によって構成されていて、この交差点もあります。
このどの部分のためにコードを書いているかは人によって異なり、理想的にはバランスの取れている全ての交差点に対してです。

しかし、状況によっても変わってくるものでもあります。
これを知ることでもまた、自分のモチベーションがどこにあるのかがわかります。

強調したいことは、全てに対してYesと言うということは、全てに対してNoと言っているのと同じということです。
当たり前ではありますが、一度立ち止まって考え、自分のモチベーションを意識することで、自分の時間、成果を考えられるようになると思います。

Q3. 技術環境が変わった場合にどう対応しますか?

自分が選んだものではない(状況によって仕方がない)ときに、どれだけ回復力を高くいられるでしょうか。
この時に大事なことは、知らないことでも対応できるように、学び方を学ぶということです。

Q4. コードを書くとき、どのくらいの期間使われることを想定していますか?

私たちは、自然にセキュアで堅牢で、壊れないコードを書くということを考えていると思います。

では、コードの寿命はどのくらいでしょうか?
どのくらい堅牢であればよいでしょうか?
100%対応する必要がありますでしょうか?

ここで大事なことは、技術スタック、状況はすぐに変わるので、コードに対して重要視しすぎない、方法にこだわりすぎないことです。

Q5. リリースの阻害要因はなんですか?

恐怖心であると思っています。

自分が書いたコードにまだ改善の余地が残っているのではないかと考えてしまったりして、チームへの共有が遅れてしまうがあるかもしれませんが、コードはチームに共有するもので、チーム全体のスキルに依存することが重要です。

他には、例えば検証が十分でないこともあるかもしれません。

心配することは良いことではありますが、必要以上にすることは進捗を遅くしてしまいます。
恐怖心が完全になくなることは絶対にないので、進捗を早くするということが重要です。

Q6. どれくらいの頻度でテストしていますか?

テストは良いやり方です。
コミット、マージの度にテストするのも良いですが、人に確認してもらうのも良いことです。
この時大事なことは、開発者だけでなくチームに見てもらうことが大事です。

あなたは誰のためにコードを書いていますか?

これらのテストをできるだけ高い頻度で早い段階で行うと良いでしょう。


いかがでしたでしょうか。
改めて問われると、日々当たり前にやっていることがパッと出てこないことに驚きました。

そういったものを言語化して自分自身について今一度知ることで、今後の時間の使い方を見つめなおすことができたり、あるいは、視野が狭まってしまっている場合にはそれが広がって今まで気がつかなかった課題を認知できたりし、良い成果に繋がりそうと思いました。

他の参加者の方がどういう答えをしているかが気になってSNSを眺めてみたのですが、たくさんの方がツイートされていました。特にモチベーションに関わる質問に関しては人によって回答が異なっていて面白かったです。

こういった、考え方の異なる人間同士が一つのチームを組んで開発をしているということも忘れずに、そして、たまには立ち止まって自分自身を見つめなおしてみながら、よりよいプロダクトを開発していきたいと思わせてもらえる素敵なトークセッションでした。

サーバサイドSwift

こんにちは!ジョシュです!今回、個人的に目立ったのが、サーバサイドSwiftです。

まず、サーバサイドSwiftは何かと言うと、WEBアプリケーションをSwiftのバックエンドで作るということです。SwiftはAppleのOSだけではなく、Linuxでも動くので、サーバサイドのアプリケーションでも使えます。

AppleのTom Doronによる「Server Side Swift Update」という発表では、サーバサイドSwiftの以下のメリットなどについて説明し、自信満々で、「Server Side Swift is ready for production」(「サーバサイドSwiftはもやは通常業務で使える」)と言いました。

  1. 強い型制約
  2. ガベージコレクション(GC)を使わないので、メモリーの使用率が低い
  3. 速い

また、サーバサイドSwiftが実際に採用されている事例としては、Apple、IBM、Amazonがあるそうです。

今後のサーバサイドSwiftを推進するうえで、Swift Server Work Group (SSWG)という組織が存在し、Appleや主要なフレームワークを作っている会社の担当が定期的に会議を開催したり、ネット上でやりとりしたりして、取り組むべき課題や目標について話します。

そこで、SSWGはSwiftの正式なDockerイメージだったり、protobufferのSwift実装だったり、Swiftのデータベースドライバーだったり、今まで様々なものに取り組んできました。今後はパフォーマンス計測やサーバ周りのツールなど充実させていくそうです。気になる方は、やりとりが公開されているので、SSWGのフォーラム投稿をご覧ください。

サーバサイドSwiftは、RailsやLaravelのようなフレームワークが存在しており、すべてがオープンソースです。ビッグ3としては、以下があります。

  1. Vapor
  2. Kitura
  3. Perfect

Kituraの開発を担当しているIBMのIan PartridgeとDavid Okunがtry! Swiftに参加しており、発表とワークショップを開催してくれました。発表は「Swiftでソーシャルネットワークをつくろう」という内容で、絵文字の簡単なSNSサービスをKitura + Swiftでどんな感じで作ることができるのかを説明しました。

a social network in Swift

私は、サーバサイドSwiftを社内ツールやバックエンドの勉強で使うかを検討しているので、発表のあとでその2人に質問しました。Kituraはどちらかというと、Sinitraに近いらしく、また、OAuthや様々なデータベースの対応をしているので、使える用途が多そうだと感じました。Kituraに特に向いているデータベースがあるかと聞いたら、「型制約があるので、PostgreSQLが特にオススメ」とのことでした。

Kitura本

翌日、同じ2人が開催した、「クラウドネイティブなSwiftバックエンドを構築しよう」というワークショップに参加しました。

ワークショップでは、簡易なテンプレートから始まり、TODOリストのバックエンドを作って、データベースによる永続化もKitura + Swiftで実装しました。実装したあと、Linux版のバイナリーをビルドするためのDockerイメージを活用し、Linux用のバイナリーを用意しました。

バイナリーのビルドが終わったら、PostgreSQLデータベースを別のDockerイメージに入れ、HelmKubernetesを起動し、時間ぎりぎりでしたが、アプリケーション本体のpodとデータベースのpodをローカル環境で起動するところまででき、満足しました。

サーバサイドSwiftは新しいがゆえに、また未熟なところがあると感じましたが、今回のtry! Swiftで社内の開発ツールの開発には十分に対応できると確信しました。


try! extending a hand

こんにちは!ウニョンです。 今年のtry! Swift最後のセッションは@hellomayukoさんの次へつなごうでした。 タイトルだけ見ると、どこからどこへ?と疑問に思ったり、次のSwiftのバージョンについての話かな?と思ったりする方もいらっしゃると思いますが、iOSエンジニアがコミュニティなどコード以外の方法でどのようにアウトプットしていく必要があるのかということについてのセッションでした。

@hellomayukoさんはシリコンバレーのソフトウェアエンジニアの生活のブログを書こうと思いYouTubeをはじめました。自分も1ヶ月前から日本で働いているiOSエンジニアはどんな生活をしているのかを記録用に残したいと思い、YouTubeに動画をアップロードしています。

今まで自分のチャンネルでは週末の生活はもちろん、minneチーム内のホワイトデーイベントなど、ペパボの社内雰囲気が伝わるような動画もアップロードしています。

try! SwiftをYouTubeで検索してみたところ発表動画しかなく、どんな感じのカンファレンスなのかが分かったり、カンファレンス自体の雰囲気を感じられる動画はなかったので今回撮影しました。

Swiftを使っているという1つの共通点だけで、参加者の皆さんとこんなに交流を深めることができて楽しめるのか!ということや、会場の雰囲気が伝わるような動画が出来上がったと思います。

1日目の動画では、会場の雰囲気、ブース紹介とノーベルティーを紹介しています。

2日目の動画では、1日目に見ることのできなかったスポンサブースと、本当に楽しかったアフターパーティの様子を紹介しています。

try! Swiftを文字だけではなく動画で感じたいと思う方はぜひ下の動画をご覧ください!

try! Swift Tokyo 2019 DAY 1

try! Swift Tokyo 2019 DAY 2