Skip to content

Coloso. | コロソ.

노수진_ シニアiOSエンジニア ノ・スジン カリキュラム紹介

スケーラビリティの高いアプリケーションアーキテクチャの構築

シニアiOSエンジニア ノ・スジン
  • モバイルアプリケーションアーキテクチャ
  • スケーラビリティ
  • モジュール化
  • テスト自動化
  • 講座の紹介
    LINE、Grab、Naverなど、スーパーアプリの開発プロジェクトをリードしたiOSエンジニアからスケーラブルなアプリケーションアーキテクチャの構築方法を学ぶことができます。
  • 無期限視聴
    一回の購入で、シニアiOSエンジニアのノ・スジンならではのレベルごとのアーキテクチャの設計ノウハウを盛り込んだ講義動画23本を期間制限なしで受講することができます。
    • 無期限視聴
    • 12月16日 9時 オープン
    • 12月9日 販売価格が上がります。
    • ¥24,350 ¥50,000 51% 割引

노수진_ シニアiOSエンジニア ノ・スジン カリキュラムの説明

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

エンジニアの技術力は、
開発過程で発生するボトルネックを
どれだけうまく処理するかによって差が出ます。
サーバの場合は、多くのユーザーがサーバーに
集中するとボトルネックが発生しますが、
モバイルの場合は、1つのプログラムに
多数のエンジニアのコードが集中する時に
ボトルネック現象が発生します。

Grabモバイル開発チームは、
スケーラブルなアーキテクチャのおかげで
100人以上のiOSエンジニアがモビリティ、
フード、ペイメント、CXなどの
大きなテックファミリーに分かれています。
各チームは、他のチームが作る機能を活用して
消費者に安定したサービスを提供し、
エンジニアの生産性も高めることができました。

Coloso 講座特徴
講座情報

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

Coloso 使用プログラム
使用プログラム

- Xcode 13
- Swift
- Swift Package
- Combine
- RIBs
- XCTest

※詳細はページ内下段の使用プログラムについての案内をご確認ください。

Coloso 動画情報
動画情報

オンライン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エンジニアが同時に開発しながらも
迅速なメンテナンスが可能な環境を
構築する方法をお伝えします。

背景イメージ
Coloso ノ・スジン
ノ・スジン

現) 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

一回の購入で、期限の制限なく視聴することができます。
毎週金曜日の18時、販売価格が上がります。


もうすぐ販売価格が上がる予定です。
今すぐご購入ください!

カリキュラム
カリキュラム内容の
ご紹介

*講座動画の公開時期や、カリキュラムのイメージ・内容などは予告なく変更になる場合がございます。予めご了承ください。

インタビュー
シニアiOSエンジニアの
ノ・スジンが
お話したいこと

背景イメージ
Interview.01
1人でのアプリ開発からiOSアプリエンジニアだけで100人を超えるスーパーアプリ開発まで経験したiOSエンジニア


アプリ開発を始めたときは、個人プロジェクトとしてセキュリティカードウィジェットアプリを開発しました。そのアプリがAppStoreで金融1位、全体2位にランクされ、2015~2017年の「今年を輝かせたアプリ」にも選ばれました。その後、LINE、Naver Webtoonを経て韓国で規模のあるアプリケーションサービスを開発しました。サービスの規模が大きくなることによって発生する問題を、より複雑で規模のある海外のアプリケーションサービスはどのように解決するのかが気になってGrabに入社しました。様々な規模のチームで開発をしてみると、大きいチームとサービスではアーキテクチャも規模に応じて変わらなければならないということを実感しました。

Interview.02
東南アジアのスーパーアプリGrabで、チームで初めてFlutterを導入してミステリープライズ新規機能の開発をリード


東南アジア版ウーバーと言われるGrabでiOS開発を行い、様々なプロジェクトをリードしました。その中でチームで初めてFlutterを導入し、ミステリープライズ機能開発プロジェクトをリードしました。その際、アーキテクチャの最も基本となるコンポジションについて深く理解していたおかげで、新しい言語とアーキテクチャを素早く理解し、プロジェクトに適用することができました。

Interview.03
GrabPayウォレットのチャージフレームワーク2.0開発プロジェクトのiOSパートをリード


ユーザーがより簡単かつ迅速にウォレットをチャージできるようにUI/UXを一新し、東南アジアの複数の国・銀行・チャージ方式をスケーラブルに対応するためのフレームワーク開発プロジェクトでiOSパートをリードしました。事業面の重要度が高く、技術的にも難易度が高く、それにプロジェクトの途中に合流したので時間にも余裕がありませんでした。
この時、チームメンバーと開発する方法を統一させるためにアーキテクチャ設計から見直し、結果的に開発速度を上げて期限内に開発を完了しました。リリースした後はユーザーの平均チャージ金額が上がり、また転換率も記録的に高まって(95%以上)、会社の手数料を節約するという成果をあげました。

Interview.04
本講座はどのような方々に
最も役に立つ内容でしょうか?


実務でのiOS開発経験が2年以上のシニアエンジニア、1つ以上のアーキテクチャを使ってアプリを開発した経験がある方だと思います。実習はiOSアプリを基盤としていますが、Swift文法についての知識を持っていれば、学習する理論の内容は他のプラットフォームモバイルアプリ(AndroidやFlutterなど)にも適用できます。

使用プログラムについて
ご案内します。

当講座は、以下のツールを使用します。

[メインツール]
- Xcode 13
- Swift
- Swift Package(ファーストパーティ依存性管理ツール)
- Combine(ファーストパーティの非同期+イベントドリブンフレームワーク)
- RIBs(Uberで開発したアーキテクチャフレームワーク)
- XCTest(テストフレームワーク)

Xcode13 Swift Swift Package Combine RIBs XCTest

【受講前にご確認ください】
※本講座で進行するすべて実習はiOSアプリに基づいており、Macで進められます。windowsユーザーは学習上の困難がある可能性があります。

【受講に必要な予備知識について】
[必須] Swift初心者以上+プロトコルについての概念理解と活用経験
[推奨] 1つ以上のiOSアーキテクチャ(MVC、MVVM、ReSwift、VIPER、RIBsなど)を使用してアプリを開発した経験がある場合は、さらに多くのインサイトを手に入れることができます。
※本講座では、Swiftの基礎知識については解説していません。

おすすめの講座
この講座を見た方は
こちらもチェック!

返金規定

Coloso返金規約

Colosoサービスを利用される利用者様((以下、「会員」とする。)が、株式会社Day1Company(以下、「弊社」とする。)にてご購入された講座チケットの返金、返品・交換について、各々次の規定に沿って対応いたします。また、弊社が別途定めた返金、返品・交換について規定がある場合、その該当の規定に沿うものとします。

購入と同時に受講が可能な講座について:受講有無に関係なくキャンセル不可

事前予約講座について:
①購入後、映像公開前まではキャンセル可能
②映像公開後はいかなる場合でもキャンセル不可


動画再生端末の台数制限について

1つのアカウント当たり再生可能なデバイス数は3台でございます。デバイスの登録は、動画視聴時に順次登録されることになります。携帯の機種変更などの理由で、登録されたデバイスを削除されたい場合は、help@coloso.jpまでお問い合わせください。年1回に限りデバイス変更が可能になります。
(3つ目のデバイスまでは動画を再生すると自動で登録されます。)