地球の裏側アルゼンチンのiOS技術カンファレンス Swiftable 2023 参加レポート (前夜祭 ~ DAY 1)

2023.12.01

はじめに

多くのクラスメソッドの社員さんは、アメリカ・ラスベガスのAWS re:Invent 2023に参加されていますが、一人だけアメリカ大陸を南下しているリルオッサです。

この度、アルゼンチンのブエノスアイレスで開催されるiOS技術カンファレンス Swiftable 2023に提出したプロポーザルが採択されたのでスピーカーとして現地にやってきました。

アルゼンチンで開催と言っても、スピーカーや参加者の方の国籍は多種多様でスペイン、ドイツ、オランダ、ウクライナ、アメリカ、メキシコ、ウルグアイ、ブラジル、ペルー等といった国際的なカンファレンスになっています。

自分自身も初めての国際カンファレンス登壇、初めての南アメリカ、アルゼンチンなので色々とドキドキしています。

言語について

アルゼンチンの公用語は、スペイン語ですが、オリジナルのスペイン語とはやや違うらしくスペイン語喋る方でも理解に苦戦することがあるとのことでした。

また、英語は通じません。今のところ、ホテルの方以外で英語通じた人が現地人でいません。何を喋りかけてもスペイン語で返答されます。

スピーカーディナー

カンファレンスの前日には、カンファレンスで登壇する方限定のディナーが用意されていました。

伝えられた場所に着くとお店っぽいものがどこにも見当たらず、、すごい周辺を散策しました。

主催者に問い合わせしたら、店名の出ていないプライベートレストランらしく中に案内してくれました。

2時間くらいは立食パーティで、その中でアルゼンチンはワインで有名らしく、

  • ナチュラルワイン
  • オレンジワイン
  • 白ワイン
  • 赤ワイン

エンジニア兼ソムリエのような方が様々なワインについての知識を共有してくれながら、実際に飲んでみるみたいな時間もありました。

日本からアルゼンチンまで到着するのに30時間かかった話を武器に色んな方に積極的に話しかけました。

正直、これだけでお腹いっぱいだったのですが、テーブル席に移動になり、次は座って食事をしました。英語堪能な方同士の会話は全く理解できないので、雰囲気だけはしっかり楽しみました。

最後にお土産として、今回のイベント特別のワインを頂きました。今回リュック一つで来たのでどうやって持って帰るか考え中です。

Swiftable 2023 Day1

Breakfast

いよいよ、開催です。このカンファレンスでは、朝食や昼食が用意されており、参加者は無料で食べることが出来ます。

朝の9:30ですが、沢山の人が集まっています。

スポンサーブース

RevenueCatさんのノベルティが全部可愛くて、全部いただきました。

Codemagicさんのブースでは、アンケートに答えるだけで可愛いTシャツがいただけるということでしっかりゲットしておきました。

トーク

Swiftable 2023では、一つのトラックしか無いのでどのトークを見ればいい等悩む必要がないのが良いですね。私はDay 1の最後に登壇します。

いよいよ、開幕です!

Open Source - You Can Do It

最初のトークは、RevenueCatのエンジニアでfastlaneのリードコントリビュータの@joshdholtzさんです。

英語不慣れな私でも6~7割ぐらいは理解できたとても面白くてわかりやすいセッションでした。

実はiOSエンジニアの皆さんは実は何かしらのオープンソースコミュニティにすでに参加しているとのことでした。例えば、SwiftやCocoaPodsもオープンソースです。オープンソースに貢献するには色んな方法があり、その方法をトークを通して紹介してくれました。

貢献の仕方には、

  • Userとして
  • コントリビューターとして

色々な目線の貢献方法があり、Issueを挙げるだけでも立派な貢献で、議論に参加することも貢献に繋がるとのこと。プルリクして実際にマージされることだけが貢献に繋がると思っていたのでとても刺激的で学びのあるトークでした。

Joshさんが架空の人間のGitHubアカウントを作成して、その人が実際に3つのOSSに貢献していくまでをプレゼンを通して共有してくれました。

小さな改善でも立派な貢献とのことです。

どんなプルリクエストを出せばいいか分からない時は、過去のマージされたプルリクエストを参考にすると良いそうです。

コントリビュートしている人にリスペクトをするのは忘れないようにしたいですね。

Build Health and Velocity Score: How Pinterest tracks the state of builds

Pinterestのエンジニアの@mnakamurakareさんのトークです。

Pinterestでは、100を超えるターゲットがあり、そんな中でビルドの健康状態を把握する為には各ターゲットのビルドタイムやテスト経過時間やCI Preコミットビルドタイムなど色々な指標を見なければならず、とてもアプリ管理が難しい状態だったとのことです。そこで独自でビルドスコアという指標を作成して、その指標を見ることでビルドの健康状態を容易に確認できるようになったトークでした。

やはりM1 Macだとそれだけでビルド時間が短縮されて、トータル的なコスト削減に繋がるらしい。

~atomic~ coding habits

ウルグアイのエンジニア @MChirino89さんのトークです。

ジェームズ・クリアー式 複利で伸びる1つの習慣の書籍で紹介されているアトミックハビットをコーディングにも起こし込もうというトークでした。

毎日やっているような習慣は自動化しましょう、AIでできるところはAIにやってもらいましょう。コードレビューの時には、議論も同時にそこで行ったり、感謝を伝えることのできる良い場所とのことでした。ついWebブラウザで他の関係ないページを見てしまう習慣がある人は、ブラウザブロッカーなども活用するのが良いとのこと。

実際にフィードバックを行い毎日行っている習慣が正しいのかは悪いのかしっかり判断して軌道修正していくと良さそうです。

The Joy and Pain of Swift Packages

ブラジルのエンジニア @ptrpavlikさんのトークです。実際にCocoaPodsをSPMに移行する中で感じたメリットとデメリットについて共有してくれました。

SPMの良いところを沢山教えてくれました。

Tiny improvements = better user experience = more users

元航空会社パイロットという面白い経歴の@coder_pilotさんのトークです。

小さな改善でアプリはとても良くなるというテーマの内容で、UIデザインは難しくなく、デザインシステムのロジカルのルールに従えば容易に改善できるとのことでした。彼女がエンジニアになる際に初めて作った本人曰くなんとも言えないデザインのアプリをロジカルのルールに従い改善していく流れをスライドを通して紹介してくれました。

  • アクセントカラーはひとつに絞り色を多用しない
  • Appleから提供されるFontを活用して、Dynamic typeに適用
  • Alignmentを揃える
  • Spacingもグループごとに同一のスペースを適用して統一感を出す

最後にはとてもかっこいいデザインのアプリになっていました。

From Challenge to Joy: My Journey Developing Tuist for Scalable Xcode Projects

Xcodeプロジェクト管理ツールのTuistを開発しているドイツの@pepicrftさんのトークです。

実際に開発しているTuistで得た知見をもとにどうやってコンフリクトを解決やXcodeプロジェクトの管理についての共有されていました。こちらのトークはまだあまり理解出来ていないところも多いので動画がアップされたら再度復習したいと思っています。

525600 minutes

アルゼンチンのエンジニア Danielaさんのトークです。

エンジニアキャリアについてのトークでした。

自分のなりたい姿から、現在の状況についてしっかり考えることが必要。今やっているポジションがなりたい姿になる為の何になるのか、常に考えて行動しましよう。自分が何が好きで何が出来るのかを見える化するのは大事とのことでした。

From learning to writing an opensource tool

オランダ在住のウクライナ出身のエンジニア @DKalachniukさんのトークです。(Dimaさんの登壇写真を撮れていませんでした。ごめんなさい)

プログラミングを学習する方法は色々ありますが、ハンズオンをオススメされていました。最初は調べて、書いて、調べて、書いてを繰り返して自作したオープンソースツールでしたが、ある日一夜で40を超えるスターが付いたとのことでした。

ある日、機能追加の要望も来るようになり、色んな人からのリアクションがあることで開発(学ぶ)ことのモチベーションに繋がり、継続することができるようになったとのことです。個人的にもハンズオンで学ぶ方法が好きです。

The Widget Revolution

いよいよ、私の登壇です。今回は、iOS 17から無限に広がったウィジェット機能を探求するというテーマで話してきました。

※埋め込み動画が多いのですが、PDF化により動画の再生は出来ません

詳細の登壇内容については別途記事化できればと思っています。

今回登壇するに当たってサンプルアプリを作成して、アプリストアリリースしたので良かったら触ってみてください。

App store

GifHubにコードもあげているので皆様のプルリクエストをお待ちしております。

GitHub

そして、何故かQ&Aセッションで投票率が多いとの理由で踊るハメになりました。みんなが楽しめたならよしとしましょう。

おわりに

まだ残り1日あるので、この国際的なカンファレンスをしっかり楽しみたいと思います!