SwiftとiOSでgRPCクライアントを開発する――gRPCサービスの相互運用:スキマ時間にこっそり学ぶ「gRPC」入門(7)
第7回は、第4回で実装したサーバサイドストリーミングgRPCサービスを利用するモバイルアプリケーションを、iOS用にSwiftで開発します。前回と同様に、gRPCとモバイルアプリケーションの相性などを理解し、異なるプラットフォームとプログラミング言語で構成されるサービスを問題なく利用できることを理解します。
本連載のサンプルコードをGitHubで公開しています。こちらからダウンロードしてみてください。
今回のテーマ
今回のテーマは、プログラミング言語SwiftによるgRPCクライアントiOSアプリの開発です。連載第4回で、PythonによるサーバサイドストリーミングのgRPCサービスを開発し、前回はそのサーバにAndroidアプリからクライアントとしてアクセスしました。今回は、これをiOSアプリに置き換えてアクセスします。連載第1回で紹介したように、gRPCのサービスはプログラミング言語やプラットフォームに依存しない設計となっています。今回は、サーバがPython、クライアントがiOSとして、問題なく利用できることを確認します。
サーバサイドストリーミング、そしてPythonによるgRPCサービスの開発については、連載第4回を参照してください。サーバも、連載第4回のものをそのまま利用します。
開発のための準備
最初に、開発に必要な環境を準備しておきます。今回はクライアントがiOSアプリとなるので、主にiOSアプリの開発環境を作っていきます。サーバは同一ホストで動作させます。iOSアプリの開発には幾つかの方法がありますが、今回はgRPC公式リポジトリから入手できるgrpc-swiftをSwiftパッケージとして利用し、標準の開発ツールXcodeで開発していきます。以下の、必要なソフトウェアをインストールしておいてください。
- Xcode(14以降)
- swift-protobuf、grpc-swift、protoc
Xcodeのインストールは、macOSのDockにあるXcodeのアイコンをクリックして実行します。以下のウィンドウでは、Built-inと表示されているもの以外は不要なので、そのまま[Install]をクリックしてください。インストール済みの場合は、アイコンのクリックでそのままXcodeが起動します。
swift-protobufとgrpc-swiftは、protocがSwiftのコードを生成するために必要なプラグイン(protoc-gen-swiftとprotoc-gen-grpc-swift)です。protocは、連載第1回で触れたProtocol Buffersのツールで、プロトコル定義ファイルをコンパイルして言語ごとのクラスファイルなどを作成します。protocは標準でSwiftに対応していないので、このような外部のプラグインを必要とします。swift-protobuf、grpc-swiftはHomebrewで以下のようにインストールできます(protocを含むprotobufは、依存関係から自動的にインストールされます)。
% brew install swift-protobuf grpc-swift
ベースのiOSアプリの作成
Copyright © ITmedia, Inc. All Rights Reserved.