大LT2026春 in Aizu_鈴木啄斗_J-Stream

226 Views

May 26, 26

スライド概要

会津大学公認の技術系サークルZli(ジライ)主催の「大LT 2026 春 in Aizu」でのLT資料です。Goのコードを「gomobile」というライブラリを使って、モバイルアプリから利用する仕組みについて発表しました。

profile-image

1997年の設立以来、動画配信を主軸に事業展開。コーポレートメッセージ「もっと素敵な伝え方を。」を掲げ、テクノロジーを通じて世の中のコミュニケーションをよりよくすることを目指しています。 自社で保有・運営する独自のコンテンツ配信ネットワーク(CDN=Content Delivery Network)を活用した動画配信に加え、長年のノウハウを活かした動画の企画・制作・運用やWebサイト制作、システム開発、動画広告による収益化支援まで総合的なサービスとソリューションを提供。取引実績はメディア、大手企業をはじめ年間1,200社・10,000案件以上です。手がける技術領域は、ネットワークの物理層からアプリケーション層にわたり、日本屈指の大規模配信や最先端案件の実績も多数あります。 エンジニア向けオウンドサイト「Voice」公開中! https://voice.stream.co.jp/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

Golangで書いたコードを モバイルアプリで動かせるらしい 大LT2026春 in Aizu 5/16 株式会社Jストリーム プラットフォーム本部 技術開発部 鈴木 啄斗 1

2.

自己紹介 鈴木 啄斗(すずき たくと) プラットフォーム本部 技術開発部 アソシエイトエンジニア • 芝浦工業大学大学院卒 • 新卒2年目 • 学生時代 • WebフロントやReact Nativeでの モバイルアプリ開発 • 現在は動画プレイヤーの開発担当 2

3.

技術選定どうしてる? WebならJavaScript, PHP… UnityならC# iOSならSwift AndroidならKotlin 3

4.

技術選定どうしてる? WebならJavaScript, PHP… UnityならC# iOSならSwift 慣れた言語で開発したい、、、 AndroidならKotlin 4

5.

gomobile GolangのコードをSwift, Kotlinのライブラリに変換 .xcframework Go Package gomobile build ビルドコマンド .aar ※使える型に制限有り string, int, bool, []byte, *Struct, error 5

6.

gomobile 注意 • まだ実験的なライブラリ • 現状そこまで活発に開発されてなさそう • 使うとしても研究開発や趣味の範疇まで 6

7.

せっかくだし、、、 これで遊んでみたい!!! 7

8.

何を作ったか HTTP/3でHLS動画を再生するiOSアプリ • golang製のhttp/3サーバー • データの並列配信 • golang製のhttp/3クライアント(Fetch関数) • gomobileでSwiftライブラリ化 • golang製のhttp/1.1サーバー • iOS上でローカルサーバーとして使い、 http3クライアントとSwift側を繋ぐ • Swiftアプリ • 動画データのリクエスト、再生 Claude Opus4.7をモリモリ使用 8

9.

HTTP/3 従来 アプリケーション層 HTTP/3 HTTP セキュリティ層 TLS トランスポート層 TCP ネットワーク層 HTTP/3 QUIC TLS1.3 UDP IP 9

10.

QUIC TCP クライアント サーバー 1 1 2 1 2 3 QUIC クライアント 1 1 2 1 サーバー 2 3 10

11.

HLS 動画データ マニフェストファイル セグメント(.tsファイル) に分割 セグメントを受信し、 順番に再生 11

12.

アーキテクチャ iPhone HTTP/3サーバー HTTP/3クライアント キャッシュ ローカルHTTPサーバー AVPlayer 12

13.

アーキテクチャ iPhone HTTP/3サーバー セグメントファイルを並列で送信 HTTP/3クライアント キャッシュ ローカルHTTPサーバー AVPlayer 13

14.

アーキテクチャ iPhone HTTP/3サーバー 受け取ったセグメントファイルのデータ をキャッシュに保存 (キャッシュといってもGoの変数) HTTP/3クライアント キャッシュ ローカルHTTPサーバー AVPlayer 14

15.

アーキテクチャ iPhone HTTP/3サーバー ローカルHTTPサーバーがキャッシュ から取ったデータをプレイヤーに渡す。 プレイヤーは渡されたデータを再生。 HTTP/3クライアント キャッシュ ローカルHTTPサーバー AVPlayer 15

16.

デモ 16

17.

Wireshark上でも確認 17

18.

まとめ • gomobileでGoを使ったモバイルアプリ開発ができる • 実験的なライブラリだから使用には注意、、、 • Goでしかできない or Goの方が扱いやすい領域があるなら便利かも • ネイティブでできるなら、多分最初からネイティブの方が楽、、 18