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
Rollout.ioでSwiftアプリの不具合を修正してみよう
Search
hmhv
December 14, 2016
Technology
0
850
Rollout.ioでSwiftアプリの不具合を修正してみよう
hmhv
December 14, 2016
Tweet
Share
Other Decks in Technology
See All in Technology
大規模サーバーレスAPIの堅牢性・信頼性設計 〜AWSのベストプラクティスから始まる現実的制約との向き合い方〜
maimyyym
6
3.9k
Adminaで実現するISMS/SOC2運用の効率化 〜 アカウント管理編 〜
shonansurvivors
4
430
ガバメントクラウドの概要と自治体事例(名古屋市)
techniczna
2
210
E2Eテスト設計_自動化のリアル___Playwrightでの実践とMCPの試み__AIによるテスト観点作成_.pdf
findy_eventslides
1
570
Git in Team
kawaguti
PRO
3
330
SwiftUIのGeometryReaderとScrollViewを基礎から応用まで学び直す:設計と活用事例
fumiyasac0921
0
150
Reflections of AI: A Trilogy in Four Parts (GOTO; Copenhagen 2025)
ondfisk
0
110
KMP の Swift export
kokihirokawa
0
350
「使い方教えて」「事例教えて」じゃもう遅い! Microsoft 365 Copilot を触り倒そう!
taichinakamura
0
280
SREとソフトウェア開発者の合同チームはどのようにS3のコストを削減したか?
muziyoshiz
1
210
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
10年の共創が示す、これからの開発者と企業の関係 ~ Crossroad
soracom
PRO
1
690
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Designing for Performance
lara
610
69k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
900
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
How STYLIGHT went responsive
nonsquared
100
5.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Automating Front-end Workflow
addyosmani
1371
200k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
9
590
Transcript
Rollout.ioでSwiftアプリの不具合を修正してみよう Gunosy Inc. 2016.12
2 ©Gunosy Inc. 株式会社Gunosy – 「情報を世界中の⼈に最適に届ける」 Gunosyは 情報キュレーションサービス「グノシー」と 2016年6⽉1⽇にKDDI株式会社と共同でリリースした 無料ニュース配信アプリ「ニュースパス」を提供する
会社です。「情報を世界中の⼈に最適に届ける」を ビジョンに活動しています。 ネット上に存在するさまざまな情報を、 独⾃のアルゴリズムで収集、評価付けを⾏い ユーザーに届けます。 情報キュレーションサービス 「グノシー」 300媒体以上のニュースソースをベースに、 新たに開発した情報解析・配信技術を⽤いて⾃動的に 選定したニュースや情報をユーザーに届けます。 無料ニュース配信アプリ 「ニュースパス」
3 ©Gunosy Inc. Agenda ・Rollout.ioの概要 ・デモ ・Swiftアプリで利⽤時の注意点
4 ©Gunosy Inc. Rollout.ioの概要
5 ©Gunosy Inc. Rollout.ioとは ネイティヴiOSアプリを申請を通さず不具合の修正などが⾏えるツール 対応⾔語 ▪Objective-C ▪Swift 2016年11⽉~
6 ©Gunosy Inc. Rollout.io 利⽤の流れ 1. Rollout.ioのダッシュボードでアプリを追加 2. SDKの導⼊(Cocoapods⼜はインストーラ) 3.
ビルドで前処理 不具合発⽣ 4. Rollout.ioのダッシュボードでパッチを作成 5. アプリがフォアグラウンドになるとパッチをダウンロードして適⽤
7 ©Gunosy Inc. Rollout.io 利⽤の流れ 1. Rollout.ioのダッシュボードでアプリを追加
8 ©Gunosy Inc. Rollout.io 利⽤の流れ 2. SDKの導⼊(Cocoapods⼜はインストーラ)
9 ©Gunosy Inc. Rollout.io 利⽤の流れ 3.ビルドで前処理 SDK導⼊によりビルド時に以下の処理が⾏われる ▪ アプリのコードを分析して必要情報をRollout.ioへ送信 ▪
Swiftの場合 `Pseudo Method Swizzlingʼ のためのコード変更 (Objective-Cでは Method Swizzling を利⽤) https://blog.rollout.io/swift-method-swizzling/
10 ©Gunosy Inc. Rollout.io 利⽤の流れ 4. Rollout.ioのダッシュボードでパッチを作成 パッチはメソッド単位でjavascriptで作成 (*Swiftアプリはテンプレートでのパッチ作成は不可)
11 ©Gunosy Inc. Rollout.io 利⽤の流れ 5. アプリがフォアグラウンドになるとパッチをダウンロードして適⽤ ▪ パッチのダウンロードは⾮同期 ▪
パッチ(javascript)はJavaScriptCore.frameworkによって実⾏ ▪ SwiftではPseudo Method Swizzling で適⽤ ▪ Objective-Cでは Method Swizzling で適⽤ https://rollout.io/how-it-works/
12 ©Gunosy Inc. デモ
13 ©Gunosy Inc. デモ内容 1. Rollout.ioのダッシュボードでアプリを追加 2. SDKの導⼊(Cocoapods⼜はインストーラ) 3.ビルドで前処理 不具合発⽣
4. Rollout.ioのダッシュボードでパッチを作成 5. アプリがフォアグラウンドになるとパッチをダウンロードして適⽤
14 ©Gunosy Inc. Swiftアプリで利⽤時の注意点
15 ©Gunosy Inc. Swiftアプリで利⽤時の注意点 ▪ Swift対応はまだ進⾏中 Swift Supportで確認(http://support.rollout.io/docs/swift-coverage) ▪ 無料プラン(LITE)ではSwiftアプリのパッチ作成が不可
有料プランはpricingで確認(https://rollout.io/pricing/) ▪ 使いすぎに注意 あくまで不具合修正⽤であって申請時になかった機能追加などはダメ
16 ©Gunosy Inc. 参考 n rollout.io – https://rollout.io/ n iOSアプリの不具合を申請なしで修正しよう
– https://techblog.yahoo.co.jp/advent-calendar-2016/ rollout/ n iOS アプリで審査なしでパッチを当てられる Rollout の勉強会に ⾏ってきたので紹介する – http://qiita.com/chiepomme/items/ 0b8370457389b4da2556
17 ©Gunosy Inc. 新しいアーキテクチャに⼀緒に挑戦する 仲間を募集しています!! ご静聴ありがとうございました