シニアiOSエンジニア,ノ・スジン_노수진 Details
モバイルチームとアプリの規模が拡大しても、
ユーザーと開発者のエクスペリエンスを安定的に
維持できる「アーキテクチャの構築方法」


エンジニアの技術力は、
開発過程で発生するボトルネックを
どれだけうまく処理するかによって差が出ます。
サーバの場合は、多くのユーザーがサーバーに
集中するとボトルネックが発生しますが、
モバイルの場合は、1つのプログラムに
多数のエンジニアのコードが集中する時に
ボトルネック現象が発生します。
Grabモバイル開発チームは、
スケーラブルなアーキテクチャのおかげで
100人以上のiOSエンジニアがモビリティ、
フード、ペイメント、CXなどの
大きなテックファミリーに分かれています。
各チームは、他のチームが作る機能を活用して
消費者に安定したサービスを提供し、
エンジニアの生産性も高めることができました。

講座情報
本数:23本の映像
難易度:中級
無期限視聴

使用プログラム
- Xcode 13
- Swift
- Swift Package
- Combine
- RIBs
- XCTest
※詳細はページ内下段の使用プログラムについての案内をご確認ください。

動画情報
オンラインVOD
オーディオ:韓国語
字幕:日本語
8か国1億8,000万ユーザーを保有する
東南アジア最大のスーパーアプリGrabは
どのように100人を超えるiOSエンジニアが
ボトルネックなしで月に何十もの新機能を
毎週リリースすることができるだろうか?
その答えは、
スケーラブルなアーキテクチャにあります。

スケーラブルなアーキテクチャの設計に必須の
3つの概念&インフラまでお教えします!

受講対象
もし下記に該当しているなら、
スケーラブルなアーキテクチャの導入を
是非ご検討ください!

アプリやチームの規模が大きくなり、ビルド時間が増えたり、コードが頻繁にクラッシュしたりして生産性が低下している。

バグの発生頻度が増え、デバッグにかかる時間が増加した。

テスト自動化(単体テスト、UIテスト)を導入したいが、何から始めるべきかわからない。

ユーザーがアプリを最初に起動するのにかかる時間が増加し、アプリの安全性が低下している。
講座内容
下記のような内容を
学べます。

コードレベルの
アーキテクチャ
• オブジェクトを組み立てて使用する方法
• 言語、フレームワークの種類を超えてアーキテクチャをうまく設計する方法

モジュールレベルの
アーキテクチャ
• アプリケーションアーキテクチャのスケーラビリティに欠かせないタスク
• 開発速度の向上、メンテナンスとテストが簡単になる
• 疎結合のための依存性注入の概念とパターン

テスト自動化
• バグを減らして開発者エクスペリエンスを増やす方法
• テストの種類と戦略的な活用方法

スケーラブルなインフラ
• フィーチャーフラグ
• 品質モニタリング
• 開発チームのためのベストプラクティス
【PROJECT】スーパーアプリを作ってみる
スケーラビリティの高いアーキテクチャを設計するために必要なコンポジション、モジュール化、テストなどの過程を、
実際のスーパーアプリのミニプロジェクトを実行しながら段階的に実習してみましょう!

- SwiftベースのiOSアプリで、アプリ内に各種サービス(タクシーやスーパーなど)があり、独自の決済プラットフォーム(ペイ)があります。
- 各サービスはモジュール化されており、各パートのエンジニアは互いに影響を与えず、ソースコード依存性がないため並列に開発することができます。
- 支払いやユーザープロファイルなど、他のモジュールでも使用する必要がある共通の機能は、インターフェースを介して他のモジュールに提供されます。そのため、機能が多くなり複雑になっても、他のモジュールやエンジニアには影響を及ぼしません。
STEP 1. 複雑なビューとフローを作る
- コンポジションアーキテクチャを用いて複雑なインタラクションのビューを小さく分解してから、組み立ててみます。
- ビジネスロジックがアプリの動作をリードするRIBsアーキテクチャのメリットを活かし、複雑なフローも再利用できるように開発してみます。

STEP 2. リファクタリング & モジュールの設計ミスを修正する
- ステップ1で作成したコードは、オブジェクト同士が密結合になっています。
- スケーラビリティを高めるために、新しいコードを追加してモジュール化し、組み立てるリファクタリングを進めます。
- モジュールを提供する際に考慮すべき点を学び、モジュールの設計ミスを修正しながらコードの再利用性とOCP(オープン・クローズドの原則)について説明します。

STEP 3.4つの方法でテストする
- ステップ2でモジュール化したコードに対し、Unit Test(単体テスト)、Snapshot Test(スナップショットテスト)、UI Test(UIテスト)、Integration Test(統合テスト)の4つのテストを適用してみます。
- 各テストの特徴を学び、どの状況でどのテストを適用すれば良いかを比べてみます。

Naver Webtoon、Grab、Amazonの開発者が認めた
ノ・スジンから学ぶモバイルアーキテクチャ
ノ・スジン
シニアiOSエンジニア
こんにちは、ノ・スジンです。
LINEやGrab、Naver Webtoonなどを経て
スーパーアプリ開発に参加した
私の経験を活かして
この講座を制作することになりました。
今回の講座を通じて
私とミニプロジェクトを進めることで、
スーパーアプリ機能の実装やリファクタリング、
自動化テストまでの
全過程を経験することができます。
100人のiOSエンジニアが同時に開発しながらも
迅速なメンテナンスが可能な環境を
構築する方法をお伝えします。


ノ・スジン
現) Momenti, Senior iOS Engineer
【履歴】
2020 ~ 2021
Grab / Senior iOS Engineer, Engineering Owner
GrabPay Wallet チャージフレームワーク2.0開発プロジェクトにおいてiOSパートをリード
ミステリープライズ機能開発プロジェクトにおいて、初めてFlutterを導入してプロジェクトをリード
個人間(P2P)の送金機能をモジュール化
2018 ~ 2020
Naver Webtoon / iOS Developer
新規コンテンツの課金モデル「あなただけ無料」プランの開発をリード、新規ユーザー向けの作品おススメ機能、ユニーバサルアプリへの移行、バナー広告の統合・改善
Naver Labs / iOS Developer
AWAY車両向けインフォテインメントアプリ、保護者向けアプリ「AKI」の開発
2015
LINE / Android Developer
LINE Lite Androidアプリ開発
[講演]
2020 ~ 現在 DevChat.tv iPhreaks / Panelist
2019 SwiftFest Boston / Speaker
2019 try! Swift NYC / Speaker
2019 NAVER Tech Concert: Mobile / Speaker
(자동 구성) 가격이 인상됩니다.
カリキュラム
カリキュラム内容の
ご紹介
インタビュー
シニアiOSエンジニアの
ノ・スジンが
お話したいこと

1人でのアプリ開発からiOSアプリエンジニアだけで100人を超えるスーパーアプリ開発まで経験したiOSエンジニア
アプリ開発を始めたときは、個人プロジェクトとしてセキュリティカードウィジェットアプリを開発しました。そのアプリがAppStoreで金融1位、全体2位にランクされ、2015~2017年の「今年を輝かせたアプリ」にも選ばれました。その後、LINE、Naver Webtoonを経て韓国で規模のあるアプリケーションサービスを開発しました。サービスの規模が大きくなることによって発生する問題を、より複雑で規模のある海外のアプリケーションサービスはどのように解決するのかが気になってGrabに入社しました。様々な規模のチームで開発をしてみると、大きいチームとサービスではアーキテクチャも規模に応じて変わらなければならないということを実感しました。
東南アジアのスーパーアプリGrabで、チームで初めてFlutterを導入してミステリープライズ新規機能の開発をリード
東南アジア版ウーバーと言われるGrabでiOS開発を行い、様々なプロジェクトをリードしました。その中でチームで初めてFlutterを導入し、ミステリープライズ機能開発プロジェクトをリードしました。その際、アーキテクチャの最も基本となるコンポジションについて深く理解していたおかげで、新しい言語とアーキテクチャを素早く理解し、プロジェクトに適用することができました。
GrabPayウォレットのチャージフレームワーク2.0開発プロジェクトのiOSパートをリード
ユーザーがより簡単かつ迅速にウォレットをチャージできるようにUI/UXを一新し、東南アジアの複数の国・銀行・チャージ方式をスケーラブルに対応するためのフレームワーク開発プロジェクトでiOSパートをリードしました。事業面の重要度が高く、技術的にも難易度が高く、それにプロジェクトの途中に合流したので時間にも余裕がありませんでした。
この時、チームメンバーと開発する方法を統一させるためにアーキテクチャ設計から見直し、結果的に開発速度を上げて期限内に開発を完了しました。リリースした後はユーザーの平均チャージ金額が上がり、また転換率も記録的に高まって(95%以上)、会社の手数料を節約するという成果をあげました。
本講座はどのような方々に
最も役に立つ内容でしょうか?
実務でのiOS開発経験が2年以上のシニアエンジニア、1つ以上のアーキテクチャを使ってアプリを開発した経験がある方だと思います。実習はiOSアプリを基盤としていますが、Swift文法についての知識を持っていれば、学習する理論の内容は他のプラットフォームモバイルアプリ(AndroidやFlutterなど)にも適用できます。
使用プログラムについて
ご案内します。
当講座は、以下のツールを使用します。
[メインツール]
- Xcode 13
- Swift
- Swift Package(ファーストパーティ依存性管理ツール)
- Combine(ファーストパーティの非同期+イベントドリブンフレームワーク)
- RIBs(Uberで開発したアーキテクチャフレームワーク)
- XCTest(テストフレームワーク)

【受講前にご確認ください】
※本講座で進行するすべて実習はiOSアプリに基づいており、Macで進められます。windowsユーザーは学習上の困難がある可能性があります。
【受講に必要な予備知識について】
[必須] Swift初心者以上+プロトコルについての概念理解と活用経験
[推奨] 1つ以上のiOSアーキテクチャ(MVC、MVVM、ReSwift、VIPER、RIBsなど)を使用してアプリを開発した経験がある場合は、さらに多くのインサイトを手に入れることができます。
※本講座では、Swiftの基礎知識については解説していません。
おすすめの講座
この講座を見た方は
こちらもチェック!
ご注意事項
*本ページ上の情報は弊社の都合により事前の告知なく変更、終了することがございます。予めご了承ください。
*講座の返金規定はColosoの返金ポリシーに準じます。▶ 返金ポリシーはこちら
* 受講、例題使用範囲などの知的財産権、機器台数制限に関する情報はFAQ
欄でご確認ください。