Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Shorebird について
Search
oyuk
September 04, 2023
Programming
0
260
Shorebird について
oyuk
September 04, 2023
Tweet
Share
More Decks by oyuk
See All by oyuk
Material designのWindow size classについて
oyuk
0
840
Swiftでなんで[weak self]するのか?
oyuk
2
4.4k
LLVMについて調べた
oyuk
0
160
Swiftのmapからその次へ
oyuk
1
1.3k
Other Decks in Programming
See All in Programming
CSC307 Lecture 12
javiergs
PRO
0
220
Introduction to GitOps
hwchiu
0
110
Rubyのパフォーマンスプロファイリングの改善 / Enhancing performance profiling for Ruby
osyoyu
1
410
最近追加した型の紹介とその振り返り
aki19035vc
0
170
Advanced App Shrinking Techniques
cbeyls
2
150
Google's Recipe for Scaling (Web) Security – LocoMocoSec 2024
lweichselbaum
0
170
初心者がおさえておきたいAWS CDKのベストプラクティス 2024
konokenj
15
7.3k
今こそ始める、CDKコンストラクトライブラリ開発 ― 入門から実践まで
tmokmss
1
930
社内 LT 会を発足し、アウトプット文化を醸成させるために考えたこと・やったこと / Starting internal LT meetings and fostering an output culture
mackey0225
3
120
12年前の『型システム入門』翻訳の思い出話
mame
11
1.2k
Activities at Cairo Library
cairolibrary720
0
1.2k
最古の関数型言語「Lisp」ことはじめ / lisp_in_kamiyama
uhooi
1
190
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
78
8.5k
Building Applications with DynamoDB
mza
89
5.8k
Pencils Down: Stop Designing & Start Developing
hursman
118
11k
The World Runs on Bad Software
bkeepers
PRO
63
11k
The Pragmatic Product Professional
lauravandoore
29
6.1k
Typedesign – Prime Four
hannesfritz
37
2.2k
Unsuck your backbone
ammeep
666
57k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
10 Git Anti Patterns You Should be Aware of
lemiorhan
652
58k
StorybookのUI Testing Handbookを読んだ
zakiyama
15
4.9k
The Invisible Customer
myddelton
117
13k
Building Better People: How to give real-time feedback that sticks.
wjessup
357
18k
Transcript
Shorebird について Relic Tech MeetUp 11 2023/9/8 oyuk
自己紹介 oyuk(@oydku) プログラマ 株式会社 Relic で Flutter やってます。
Shorebird とは? Flutter で Code Push を実現するサービス [1] https://shorebird.dev/#products-code-push
Shorebird とは? Code Push Code Push とはユーザーの端末に対して直接アップデートを配信する事。 つまり iOS, Android
においてはストアの申請を通さずにアプリを更新できる。
Shorebird の使い方 1. curl --proto '=https' --tlsv1.2 https://raw.githubusercontent.com/shorebirdtech/install/main/install.sh -sSf |
bash 2. shorebird login 3. Shorebird を使いたいアプリのルートディレクトリで shorebird init [2] https://m3.material.io/foundations/layout/applying-layout/window-size-classes#6e960b82-eff3-4f1b-92d3- 5edb5e338f49
Shorebird の使い方 Release と Patch という概念が存在します。1 つの Release に対し 0
個以上のパッチが紐づ いているという関係になります。 Release アプリのバージョンを示す。Storeに公開するアプリのバージョンと同じにすると分かりやす い。 Patch Release に含まれる変更を指す。
Shorebird の使い方 1. Release を作成 i. shorebird release コマンドでビルドを生成 ii.
1.1で出力されたビルドをリリース 2. 実装を変更する 3. Patch を作成 i. shorebird patch でビルドを生成、Shorebirdのサーバにビルドをpush 4. アプリに適用(詳細は後述) 一つのリリースにつき手順2~4は複数回行われる想定
Shorebird の使い方 どうやってcode pushを実現しているか 起動時にpatchが適用されたビルドを取得している Flutter Engineの起動処理を一部書き換えて、起動時にコードを取得するように している。 ShorebirdのSDK内にShorebirdで必要な機能を入れたFlutter SDKが含まれてい
る。ShorebirdのコマンドはこのShorebird用Flutter SDKを用いてアプリをビル ドする。
Shorebird の使い方
Shorebird の使い方 実際にやってみた 動画で紹介
Shorebird の使い方 起動時にpatchを取得、適用するライブラリ updater は公開されている 。 updaterはRustで書かれている。Rustで書いてCのAPIとして公開。Flutter Engine(c++) はそのAPIを使用している 理由
DartVMが二つ起動するのを防ぎたい 複数の言語で updater を使用できるようにしたい [3] https://github.com/shorebirdtech/updater [4] https://docs.shorebird.dev/faq#why-are-some-parts-of-the-code-push-library-written-in-rust
Shorebird の使い方 updater の機能を切り出した shorebird_code_push というライブラリがある 。 これを使うとアプリ内で任意のタイミングでpatchをインストールする事が可能。 [5] https://pub.dev/packages/shorebird_code_push
Shorebird の使い方 任意のタイミングでpatchをインストールする例 push通知を起点にpatchをインストールする
Shorebird の使い方 ストアのポリシーに違反しないか? 違反していない アプリの挙動を大きく変える変更をするのはポリシー違反になる可能性がある [6] https://docs.shorebird.dev/faq#does-shorebird-comply-with-play-store-guidelines [7] https://docs.shorebird.dev/faq#does-shorebird-comply-with-app-store-guidelines
Shorebird の使い方 具体的なユースケース 不具合を修正したい場合 細かい機能アップデート [8] https://docs.shorebird.dev/faq#what-can-i-use-shorebird-code-push-for
Shorebird の使い方 料金 無料のHobbyプランがあるので気軽に試しやすい
Shorebird について まとめ ShorebirdはCode pushをするサービス 細かい機能追加、不具合修正を審査を通さずに実現可能 FAQが非常に充実している 本記事はShorebird 0.14.6時点の情報です。