コードレビューはアプリやコードの品質向上とチームの成長に不可欠なプロセスです。
しかし、効果的なコードレビューを行うのは簡単ではありません。
コードレビューのやり方や観点については様々なところで紹介されていますが、やり方を知っているだけではPull Requestの差分から適切な指摘事項を見つけ出すことはできません。
このトークでは、より良いコードレビューを行うための実践的な方法について詳しくお話しします。
これにより、今まで何となくApproveしていたコードレビューにおいて、自信を持ってコメントやApproveできるようになる手助けになれば幸いです。
トピック:
Embark on a journey through more than 30 errors I really encountered during Flutter app development and release. This session offers an in-depth look at the troubleshooting process from an iOS engineer’s perspective. Learn how to diagnose and fix issues efficiently, avoid common mistakes, and improve your app release workflow. This talk is designed to equip iOS developers with the knowledge and confidence to tackle Flutter development head-on.
2年前、弊社アプリはSQLiteからFirestoreへデータ基盤の移行プロジェクトを行いました。
Firestore自体は当時のユースケースとしてはベストな選択でしたが、ここ最近求められる新機能や施策の実現に対してFirestoreではコスト面や横断したデータの活用などの観点から実現が難しいと判断することが増え、今回アプリ・サーバーサイドと合わせデータ基盤を大きく作り変える決断をしました。
そうして始まった大規模な移行プロジェクトですが、今回は「グロースなどの開発を並行しながらデータ基盤を移行してほしい」というオーダーもあったため、iOSチームとして通常の施策実装と並行して安全にデータ基盤を差し替えていく仕組みを考え実践しました。
今回のトークでは安心・安全にデータ基盤を移行するためにアプリ開発チームとして工夫したこととその実践内容について、
以下の内容を踏まえつつお話していきます
これまで、データが非同期かつ継続的に流れてくる処理や、いつ発生するか分からないイベントを受け取る処理には、クロージャや Delegate、オブザーバーなどが用いられてきました。また、Apple プラットフォームでは Combine、サードパーティの OSS では RxSwift などといった外部のフレームワークも使用されてきました。
これらのほとんどは、Swift 5.5 で追加された AsyncSequence を使用する方法へと移行できます。実際、Apple が提供するフレームワークでも、従来 Delegate が用いられてきたような非同期にイベントを伝える API について、最近新規に追加されたものは AsyncSequence を採用しています。他のデザインパターンから AsyncSequence に移行することで、Swift Concurrency が持つアクター分離などのさまざまなメリットを享受できます。一方で、非同期なシーケンスならではのメモリリークにも注意が必要です。
このトークでは AsyncSequence の基礎、他のデザインパターンからの移行方法、移行するメリット、注意点まで、UIKit・SwiftUI を用いたアプリの例を使いながら詳しく紹介します。
Delegate、今までありがとう。これからは AsyncSequence でやっていくよ。
このセッションでは、実務の中で経験したSwiftUIを用いたショート動画タイムラインの実装と課題解決について解説します!
プロジェクトの初期設計から実装、そして直面した課題とその解決方法まで、実際の開発経験を元にした具体的なストーリーを共有します。
このセッションは、SwiftUIの基礎を理解しているiOS開発者を対象としています。
特に、動画コンテンツを扱うアプリケーションを開発しようと考えている開発者にとって有益です!
参加者は、SwiftUIを用いたショート動画レイアウトの実装方法やAVPlayerを使った再生、キャッシュの仕組みなどを学び、複雑なUIの実現とパフォーマンスの最適化についての具体的な知識を得ることができます。開発中に直面するであろう課題を予測し、それに対する解決策を事前に知ることで、実際の開発において役立つ実践的なノウハウを身につけることができます。
「数学を利用した実装って難しいんでしょ?」
「数学苦手だったし思い出しかないし正直ナニモワカラナイ...」
「ぶっちゃけUI実装の中で数学っぽい要素ってある?」
ちょっと待って下さい!日頃の業務や個人開発の中で取り組んでいるUI実装においても、より自然な表現や触り心地等を実現するための調整対応や、SceneKit・ARKitを活用した比較的簡単な実装を利用する場合、アニメーションやベジェ曲線を利用する場合等、実は何気ない形であっても触れ合う機会は多いと思います。
本発表では、比較的皆様にとっても馴染みがある様な、具体的なUI実装例・AnimationやInteractionを伴う表現等に含まれている数学的な要素の紹介から、それらの要素が実装や表現の中において、どの様な点で影響を与えるかに加えて、実装観点から見たTipsをご紹介します。
学校教育でも触れてきた数学的なエッセンスが、どの様な形で具体的な実現イメージに変化する(すなわち抽象から具体への変化する)過程と解説が、今後の参考になれば嬉しく思います。
SwiftUIは革命的なUIフレームワークであり、宣言的なUI構築を可能にします。UIKitを使っているアプリでこれからSwiftUIへの移行を考えているアプリ開発者は多いと思います。
私は現在、日本最大のフリマアプリ「メルカリ」を通じて全国のお店で利用できるスマホ決済サービス「メルペイ」で、既存画面のUIKitからSwiftUIへの移行プロジェクトをリードしています。このプロジェクトでは、数百画面に及ぶUIKitベースの画面をSwiftUIに移行しています。
この講演では、数百画面のUIKitベースの画面をSwiftUIに移行するプロジェクトのベストプラクティスを共有します。
この講演は、以下の方々に特におすすめです。
・既存のUIKitベースのアプリをSwiftUIへ移行していきたい方。
・宣言的UIフレームワークの有効性を信じていて、社内でSwiftUIへの移行プロジェクトを立ち上げたい方。
・Mobileアプリ開発の大規模なリファクタリングプロジェクトをリードするためのノウハウを知りたい方。
UIKitからSwiftUIへの移行は、多くのiOSエンジニアにとって興味深いトピックの一つだと思います。
私のプレゼンテーションが、より多くのiOSエンジニアのイノベーションを後押しすることを願っています。
一緒にSwiftUIの活用を進めていきましょう。
In this 40-minute session, we will delve into the expansive world of SwiftUI, checking its almost all the key components like categories, classes, structures, and functions in Apple Developer Documentation. Engineers are busy and often research only the articles they need to solve the problems they encounter at the time. But this session is designed for the busy engineer like you. Just watching this 40 minutes session, you can grasp overview of SwiftUI.
【概要】
iOS アプリケーション開発におけるビルド時間の短縮は、開発効率を大幅に向上させる重要な要素です。本セッションでは、Clean Architecture と Swift Package Manager (SwiftPM) を組み合わせたマルチモジュール構成による実践的なアプローチを紹介し、具体的な実装例を通してビルド時間を短縮する方法を解説します。
【対象者】
・ ビルド時間に課題を感じている方
・ アーキテクチャの選定に悩んでいる方
・ Clean Architecture や SwiftPM によるマルチモジュール構成に興味がある方
【トーク内容】
・ Clean Architecture x SwiftPM のマルチモジュール構成がもたらすメリット
・ MVVM からのリアーキテクチャを通した具体的な実装方法
・ 実装する上での課題とその解決策の紹介
コードレビューの場面で「定量的なレビューが難しい」「レビューアーの育成が停滞している」と感じたことはありませんか?これらは多くのチームが直面する共通の課題です。
本セッションでは、レビューガイドラインを活用した定量的なコードレビュー手法を紹介し、チームの技術力向上を目指します。実際に以下の7つの観点について具体的に説明します。
これらの観点をSwiftデザインパターンの具体例を交えて解説し、定量的なコードレビュー手法を学びます。例えば、設計では責務原則、命名ではモデリングのベストプラクティスを紹介します。
さらに、レビューコメントから技術力を可視化するKPI戦術も紹介します。この手法でチームメンバーの弱点を明確にし、育成やオンボーディングの指標として活用できます。どのようなメトリクスを収集し、分析するかを詳しく説明します。
また、PR-AgentやCodeRabbitを活用したAIコードレビューの手法や、効率化するプロンプトも紹介します。属人的なコードレビュー前にAIを用いることで手戻りを削減し、生産性を向上させる方法を具体的に紹介します。
このセッションに参加することで、効果的なコードレビュー戦術を学び、チームの技術力向上に役立つ実践的な手法を得ることができるでしょう。
Swiftにおけるクロスプラットフォーム対応はこの1年で目覚ましい発展を遂げたトピックです。その中でも、Windows環境で動かすSwift、つまりSwift on Windowsは非常に大きな変化を迎えました。
iOS、iPadOS、macOS向けに開発したアプリケーションやフレームワークをWindowsでも動かせるようにすることは、非常に価値のある取り組みです。
しかし、Swift on Windowsに挑戦するためにはどのように取り組めば良いのかご存知でしょうか?
本トークでは、Swift on Windowsでの開発を始めるためのセットアップ方法、ライブラリの選定や自らによるWindows対応、クロスプラットフォームの設計、デバッグのコツなどを詳しく話します。
具体例として、スタンドアロンのWindowsアプリの開発方法や、Open Broadcaster Software(OBS)のプラグイン開発を例に上げて、実践的な開発方法を解説します。
このトークを通じて、Swift on Windowsを活用して世界のデスクトップOSシェアの7割を超えるWindows向けにプロダクトを提供する新たな選択肢を紹介します。また、自信を持ってクロスプラットフォーム対応のSwiftコードを書くための考え方も提供します。
技術者とマネージャーの間に存在する終わりなき争い。エンジニアとビジネス側の間で発生する認識の相違。これらはしばしばプロジェクトの進行を阻む大きな障害となります。
ビジネスサイドやマネージャーは主に顧客満足を中心にものを見ています。一方で、開発者は自分が作っている製品・プログラムを中心にものを見ている場合が多く、場合によっては認識の齟齬が発生します。
例えば、顧客の要望が適切に管理されていない場合、あたかもわがままな変更要求に付き合わされているとエンジニアには思えてしまうことがあります。
一方で、コードのリファクタリング、自動テストの導入、新技術の導入など、ビジネスサイドや顧客にしっかりと意義が伝わっていない技術的な変更は、単にお金や時間を無駄に消費するだけと捉えられることも少なくありません。
本セッションでは、