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
B2Cモバイル開発のいまとこれから #forcedotcomjp
Search
Naoya Ito
September 06, 2013
Technology
54
8.1k
B2Cモバイル開発のいまとこれから #forcedotcomjp
Salesforce Developer Conference Tokyo 2013 での発表資料
Naoya Ito
September 06, 2013
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
8
2.1k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
7.3k
Functional TypeScript
naoya
18
6.6k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
75
37k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.5k
20230227-engineer-type-talk.pdf
naoya
91
83k
関数型プログラミングと型システムのメンタルモデル
naoya
63
110k
TypeScript による GraphQL バックエンド開発
naoya
29
36k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
24k
Other Decks in Technology
See All in Technology
Redshift認可、アップデートでどう変わった?
handy
1
130
「駆動」って言葉、なんかカッコイイ_Mitz
comucal
PRO
0
140
戰略轉變:從建構 AI 代理人到發展可擴展的技能生態系統
appleboy
0
190
チームで安全にClaude Codeを利用するためのプラクティス / team-claude-code-practices
tomoki10
6
3k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
12k
AI: The stuff that nobody shows you
jnunemaker
PRO
1
160
[PR] はじめてのデジタルアイデンティティという本を書きました
ritou
1
790
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
470
コールドスタンバイ構成でCDは可能か
hiramax
0
130
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
2
770
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
1.3k
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
0
410
Building the Perfect Custom Keyboard
takai
2
670
First, design no harm
axbom
PRO
1
1.1k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
100
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Being A Developer After 40
akosma
91
590k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
2
3.9k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
61
48k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Paper Plane
katiecoart
PRO
0
45k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Transcript
#$͔ΒΈͨ ϞόΠϧΞϓϦέʔγϣϯ։ൃͷ ͍·ͱ͜Ε͔Β /BPZB*UP JOBPZB!HNBJMDPN
NAOYA ITO
None
None
None
ࡢࠓͷϞόΠϧࣄ
h"p://www.kpcb.com/insights/2013-‐internet-‐trends
h"p://www.kpcb.com/insights/2013-‐internet-‐trends
ྫ͑ɺ&$ • ϞόΠϧ͕ݗҾ – ஹԯԁ – ஹԯԁ • ͏͕ͪϞόΠϧ ܦࡁ࢈ۀলൃද "NB[PODPKQ
ʮࠓޙϞόΠϧͰΓ͍ͨʯ
ਓʑ͕ϞόΠϧͰࢥ͍ු͔ΔϞϊ 1BUI 5XJUUFS
None
ʰ͍ͭʹΤϯυϢʔβʔͷٯऻ͕࢝·ͬͨrاۀγεςϜʹ͓͚ΔίϯγϡʔϚʔΠϊϕʔ γϣϯ/PUIJOHWFOUVSFE OPUIJOHHBJOFEʱ h"p://takora"a.hatenablog.com/entry/20120329/1333033813
None
None
ϞόΠϧ։ൃैདྷͷ։ൃͱҧ͏
h"ps://speakerdeck.com/vitalyg/designing-‐for-‐mobile-‐commerce
ϞόΠϧΞϓϦ։ൃͷ 69ͷ։ൃ ˞एׯͬͯ·͕࣮͢ײͱͯ͠
69։ൃΛ͏·͘ਐΊΔʹ ࢼߦࡨޡͷճΛ૿͢
ࢼߦࡨޡͷճΛ࠷େԽ • #$ͷ։ൃϓϩηεͦͷ࠷దԽͷ݁Ռ – ϦʔϯɺΞδϟΠϧ։ൃɺ$*ɺ$%ɺ %FW0QTŋŋŋ
ͳͥϦϦʔεසΛ্͛Δͷ͔ h"p://www.gaku.net/ukki/なぜリリース頻度を上げるのか
None
None
5IF$POTVNFSJ[BUJPO0G*5
ϞόΠϧΞϓϦ։ൃͷ࣮ࡍ
ελʔτΞοϓॳظ͔Β6*։ൃ ʹྗΛೖΕ͍ͯΔ 1BUI 4NBSU/FXT
ͳͥͳΒ • ͦͦ69͕Α͘ͳ͍ͱϢʔβʔʹͬ ͯΒ͑ͳ͍͔Β • 6*ͷ࣮ίετ͕ߴ͍ͷͰɺॳظʹίϯ ηϓτΛ͔ͬ͠ΓݻΊ͍ͨ
ࢴͰֆΛॻ͘ 『はてブiPhone・Androidアプリの開発プロセス – ninjinkun's diary』 h"p://ninjinkun.hatenablog.com/entry/20110213/1297586340
ϖʔύʔϓϩτλΠϐϯά
101 ϖʔύʔϓϩτλΠϐϯά༻ΞϓϦ
'MJOUPɺ'JMF4RVBSFFUD
6*࡞ʹ͋ͨͬͯ • 6*ίϯϙʔωϯτͷύλʔ ϯΛ͓ͬͯ͘͜ͱ͕େ – Ͳ͏ͬͯ 㱺ޙड़ • ΨΠυϥΠϯඞಡ – J04ώϡʔϚϯΠϯλʔϑΣΠ
εΨΠυϥΠϯ – %FTJHOc"OESPJE %FWFMPQFST ʰεϚʔτϑΥϯͷͨΊͷ6*σβΠϯʱ ా࢘
6*,JU'SBNFXPSL
6*,JUͷ੍ • ૉʹै͏ͱJ04Β͍͠69ʹ্͕ΔΑ ͏ʹͳ͍ͬͯΔ – ྫը໘ભҠ"1*ͳͲࢥ͍ͬͯΔΑΓͣͬͱબ ࢶ͕গͳ͍ • pushViewController:animated: •
presentViewController:animated:completion : – ྫ: ϘλϯΛஔ͚Δॴܾ·͍ͬͯΔ
ͭ·Γŋŋŋ • ࣮Λߦ͍ͬͯΔϓϩάϥϚɺJ04ͷ6* ͕Ͳ͏͋Δ͖͔ΛΑ͍ͬͯ͘Δ • ϑϨʔϜϫʔΫͷཧղͳ͠ʹ6*ઃܭΛߦ ͏ͷԕճΓ
ۙͷ#$։ൃͷ • ʮϑϩϯτΤϯυ։ൃऀʯ – ϑϩϯτΤϯυ։ൃऀσβΠφͰ͋Δ͜ͱ h"p://www.theguardian.com/help/insideguardian/2009/sep/28/blogpost
1VMM3FRVFTU։ൃͱ6* ը໘ઃܭͷऀʹ։ൃϦςϥγ͕͋Ε (JUIVCͰͷίϥϘϨʔγϣϯ͕Մೳ
J04"OESPJE։ൃͷམͱ݀͠ ʮ"OESPJE൛J04൛ͱಉ͡σ βΠϯͰΑΖ͘͠ʂʯ
J04 • ը໘ભҠΞϓϦͷதͰجຊ݁͢Δ • ଞΞϓϦͱͷ࿈ܞ࠷ݶ
"OESPJE • ෦ભҠͱଞΞϓϦͷભҠ͕֓೦্ಉҰ • Σϒϒϥβͷߟ͑ํʹ͍ۙ – όοΫΩʔԿͷͨΊʹ͋Δʁ
6*ͷࠜຊͷࢥ͕ҧ͏ • J04ͱ"OESPJEͦΕͧΕ։ൃ͢Δํ ͕݁Ռతʹۙಓ • ϫϯιʔεɾΫϩεϓϥοτϑΥʔϜࠔ ͳಓ – ͨͩ͠ɺ6*ϑϨʔϜϫʔΫΛΘͳ͍։ൃ ྫ֎ ྫωΠςΟϒήʔϜ
)5.-Ͱ͍ͭΔͷ ࠓͰŋŋŋͳ͍
• 8FCϖʔδతͳͷ0, – ैདྷͷ8FC։ൃͱ΄΅มΘΒͳ͍ • ωΠςΟϒΞϓϦͷΑ͏ͳ )5.-ΞϓϦࠔͳಓ – &NCFEEFE8FC7JFXTͳͲ͍Ζ͍ΖΞϓϩʔν͋Δͷ ͷɺָܾͯ͠Ͱͳ͍
ϞόΠϧ։ൃͱ044 $PDPB1PETੵۃతʹར༻
$PDPB1PET • 3VCZͷHFNɺ1FSMͷ$1"/ • #VOEMFSͷΑ͏ͳґଘཧɺόʔδϣϯݻఆͷΈ # Podfile platform :ios,
'6.1' pod 'JSONKit' pod 'AFNetworking', '~> 1.3'
(JUIVCͱ044
$PDPB$POUSPMT
ΫϥυͱϞόΠϧ • *BB41BB4ɺ.#BB4ɺ4BB4 – ੵۃతʹ͍ͬͯ͘ – ੵۃతʹ͍ɺ։ൃαΠΫϧΛΊΔ • "1*ϑΝʔετ – όοΫΤϯυϑϩϯτΤϯυͷ୲ – ۀϩδοΫ"1*ͰΫϥυଆͰɻ6*Λ ΞϓϦͰ
όοΫΤϯυ*BB41BBT #$ͷ৽ن։ൃͰͨΓલ )FSPLV "84
ͳͥΫϥυʁ • ΠϯϑϥͷೲظΛॖΊ͍ͨ • %FW0QT͍ͨ͠ – #$ϞόΠϧ։ൃʹ͓͍ͯͪ͜Βͷཁ – ΠϯϑϥΛࣗಈԽ͠ɺࢼߦࡨޡճΛ૿͢
ϞόΠϧ#BB4 1BSTFDPN
.#BB4ͷఏڙ͢Δͷ • Ϣʔβొɾཧɾೝূ • ϝοηʔδϯά ϓογϡ௨ • ΫϥυετϨʔδ –
ϑΝΠϧετϨʔδ – ΦϒδΣΫτετϨʔδ • Ϋϥυ্Ͱͷܭࢉॲཧ • ՝ۚ *O"QQ1VSDITF • ར༻ੳ • ҐஔใɺιʔγϟϧͳͲͷίϯςΩετ
1BSTFJ044%, ίʔυ3VCZ.PUJPO # Push Notification を有効に # ParseのKVS
に deviceToken ó user_id のマッピングを保持 PFInstallation.currentInstallation.tap do |i| i.setDeviceTokenFromData deviceToken i.setObject @user_id, forKey:"owner" i.saveInBackground end
1BSTF3&45"1* # REST API で、push通知を端末に送るよう Parse に指令 curl -‐X
POST \ -‐H "X-‐Parse-‐Application-‐Id: "..." \ -‐H "X-‐Parse-‐REST-‐API-‐Key: "..." \ -‐H "Content-‐Type: application/json" \ -‐d '{ "data": { "where": { "owner": "naoya" } "alert": "Hello, World!" } }' \ https://api.parse.com/1/push ϓογϡ௨ʹ·ͭΘΔ໘ͳՕॴΫϥυଆͰͬͯ͘ ΕΔ ྫ"1/αʔόͱͷଓҡ࣋
"NB[PO4/4 • "84ͷϓογϡ௨αʔϏε • .#BB4΄Ͳͷػೳॊೈ͞ͳ͍͕ͱʹ ͔͍҆͘ – 64%ສ"1*ϦΫΤετ – .#BB4ΦϒδΣΫτετϨʔδ4%,ͱ ͷ࿈ܞ͕ڧΈ •
ࠓޙ"84͕#BB4తׂ୲͏
ϞόΠϧ#BB4ͷ࣮ࡍ • શͯΛ#BB4͕͏Θ͚Ͱͳ͍ – *BB41BB4ͱ͍͚ͳ͕Βɺ#BB4͕ಘҙ ͱ͢Δͱ͜ΖΛ୲ͤ͞Δͷ͕٢ 『モバイルBaaSの概観と最新動向 (2013/6/7)』 by Shnichi Tomita
h"p://www.slideshare.net/shinichitomita/mobile-‐baaslatest
)FMJPTCZ)FSPLV
։ൃΛॿ͚Δ4BB4 • ͲΜͲΜ͍ͬͯ͘ – 5FTU'MJHIUςετΞϓϦͷνʔϜͷ – #VH4FOTFΫϥογϡϨϙʔτ – /FX3FMJDϞχλϦϯά –
5SBWJT$*ܧଓతΠϯςάϨʔγϣϯ #VH4FOTF
ָͰ͖Δͱ͜ΖָΛ͢Δ ָͨͩ͠͠Ͳ͜ΖΛؒҧΘͳ͍
ʮ"OESPJE൛J04൛ͱಉ͡σ βΠϯͰΑΖ͘͠ʂʯ
·ͱΊ • #$ΞϓϦ։ൃͷϓϥΫςΟεΛհ • ैདྷ։ൃΑΓ69։ൃʹϦιʔεΛׂ͘ • ։ൃϓϩηεΠϯϑϥͷѻ͍Λચ࿅ͤ͞Δ͜ͱ ͰࢼߦࡨޡճΛ૿͢ – ݁Ռɺ6*։ൃͷϦιʔε֬อٴͼධՁ͕ॊೈʹͳΔ
• 044ΫϥυΛ࠷େݶ׆༻ • ͨͩ͠ɺָΛ͢ΔՕॴਖ਼͘͠ݟۃΊΔ – ΞϓϦૉʹɺී௨ͷΓํͰ࡞Δ – ʮָͦ͏͔ͩΒʯͱ͍͏ཧ༝͚ͩͰϫϯιʔε )5.-ࣗಈੜͳͲ͍ٻΊͳ͍ – पลڥʮڊਓͷݞͷ্ʯʹΔ