SlideShare a Scribd company logo
1 of 44
Download to read offline
䝸䜰䜽䝔䜱䝤䝥䝻䜾䝷䝭䞁䜾䛸 
MVVM䝟䝍䞊䞁䛻䛴䛔䛶 
2014/10/31 @taketin
ච㈐஦㡯 
䛂䝸䜰䜽䝔䜱䝤䝥䝻䜾䝷䝭䞁䜾䛃䛻⯆࿡䜢ᣢ䛳䛶㍍䛔Ẽᣢ䛱䛷ㄪ䜉 
ጞ䜑䜎䛧䛯䛜䚸᝿ീ௨ୖ䛻ዟ䛜῝䛔ᴫᛕ䛷䛒䛳䛯Ⅽ䚸⌮ゎ୙༑ 
ศ䛺䛸䛣䜝䛜䛒䜚䜎䛩䚹䛭䛾䛯䜑䚸ბ䜢ゝ䛳䛶䜛ྍ⬟ᛶ䜒䛒䜚䜎 
䛩䚹 
䜎䛯䚸௒ᅇ䛿ᴫᛕ䛾ㄝ᫂䛻䛺䜚䜎䛩䛾䛷䜅䜣䜟䜚䛧䛯䛚ヰ䛻䛺䜚 
䜎䛩䚹 
䛒䜙䛛䛨䜑䛤஢ᢎ䛟䛰䛥䛔䚹
FRP (FunctionalReactiveProgramming)
FRP (Functional Reactive Programming) 
䞉᭱㏆䜘䛟⪺䛟
FRP (Functional Reactive Programming) 
䞉᭱㏆䜘䛟⪺䛟 
䞉䝣䝻䞁䝖䜶䞁䝗㛤Ⓨ⪅䛿≉䛻▱䛳䛸䛔䛯᪉䛜Ⰻ䛥䛭 
䛖
FRP 䛸䛿 
䞉䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭䞁䜾䝟䝷䝎䜲 
䝮
FRP 䛸䛿 
䞉䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭䞁䜾䝟䝷䝎䜲 
䝮 
䞉㠀ྠᮇ䝕䞊䝍䝇䝖䝸䞊䝮䜢⏝䛔䜛䝥䝻䜾䝷䝭䞁䜾䛷䛒䜚䚸䛂᫬㛫䛸 
䛸䜒䛻ኚ໬䛩䜛್䛃䛸䛂᣺䜛⯙䛔䛃ྠኈ䛾㛵ಀᛶ䜢グ㏙䛩䜛
FRP 䛸䛿 
䞉䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭䞁䜾䝟䝷䝎䜲 
䝮 
䞉㠀ྠᮇ䝕䞊䝍䝇䝖䝸䞊䝮䜢⏝䛔䜛䝥䝻䜾䝷䝭䞁䜾䛷䛒䜚䚸䛂᫬㛫䛸 
䛸䜒䛻ኚ໬䛩䜛್䛃䛸䛂᣺䜛⯙䛔䛃ྠኈ䛾㛵ಀᛶ䜢グ㏙䛩䜛 
䞉䝸䜰䜽䝔䜱䝤䝥䝻䜾䝷䝭䞁䜾 http://www.reactivemanifesto.org/ 䛻㛵ᩘ 
ᆺゝㄒ䛾≉ᚩ䜢ຍ䛘䛯䜒䛾䛜 FRP䚹1997ᖺ䛻 䚷Functional 
Reactive Animation http://conal.net/papers/icfp97/ 䛸䛧䛶ᥦၐ䛥䜜 
䛯䜙䛧䛔䚹
䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭 
䞁䜾䝟䝷䝎䜲䝮
䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭 
䞁䜾䝟䝷䝎䜲䝮 
䞉㠀FRP䛾ୡ⏺ 
Ⓨ⏕䛩䜛䜲䝧䞁䝖䛻ᑐ䛧䛶ᐇ⾜䛩䜛࿨௧䜢᭩䛟䚹
䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭 
䞁䜾䝟䝷䝎䜲䝮 
䞉㠀FRP䛾ୡ⏺ 
Ⓨ⏕䛩䜛䜲䝧䞁䝖䛻ᑐ䛧䛶ᐇ⾜䛩䜛࿨௧䜢᭩䛟䚹 
䞉FRP 䛾ୡ⏺ 
ධຊ䛸ฟຊ䛾㛵ಀᛶ䜢ᐃ⩏䛩䜛䚹
䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭 
䞁䜾䝟䝷䝎䜲䝮 
䞉㠀FRP䛾ୡ⏺ 
var a = 1; 
var b = a + 1; 
a = 10; 
console.log(b) // => 2
䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭 
䞁䜾䝟䝷䝎䜲䝮 
䞉㠀FRP䛾ୡ⏺ 
var a = 1; 
var b = a + 1; 
a = 10; 
console.log(b) // => 2 
䞉FRP䛾ୡ⏺ 
var a = 1; 
var b = a + 1; 
a = 10; 
console.log(b) // => 11
䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭 
䞁䜾䝟䝷䝎䜲䝮 
䞉㠀FRP䛾ୡ⏺ 
var a = 1; 
var b = a + 1; 
a = 10; 
console.log(b) // => 2 
䞉FRP䛾ୡ⏺ 
var a = 1; 
var b = a + 1; 
a = 10; 
console.log(b) // => 11 
FRP䛿䛂᫬㛫䛸䛸䜒䛻ኚ໬䛩䜛್䛃䜢ᢅ䛖䚹 
b = a + 1 䛾䛂㛵ಀᛶ䛃䜢ಖᣢ䛩䜛䚹
䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭 
䞁䜾䝟䝷䝎䜲䝮 
䞉㠀FRP䛾ୡ⏺ 
var a = 1; 
var b = a + 1; 
a = 10; 
console.log(b) // => 2 
䞉FRP䛾ୡ⏺ 
var a = 1; 
var b = a + 1; 
a = 10; 
console.log(b) // => 11 
FRP䛿䛂᫬㛫䛸䛸䜒䛻ኚ໬䛩䜛್䛃䜢ᢅ䛖䚹 
b = a + 1 䛾䛂㛵ಀᛶ䛃䜢ಖᣢ䛩䜛䚹 
Excel 䛷 A1䝉䝹䛻 =B2+C3䛸᭩䛟䛸䚸A1䝉䝹䛾ෆᐜ䛿B2䛸C3䛜ຍ⟬䛥䜜䛶䚸ື 
ⓗ䛻᭩䛝᥮䛘䜙䜜䜛䜘䛖䛺ື䛝䛾䜲䝯䞊䝆䚹
䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭 
䞁䜾䝟䝷䝎䜲䝮 
䞉㠀FRP䛾ୡ⏺ 
$("#select").change(function(val){ 
console.log(val.currentTarget.value); 
}); 
// selectbox で値が “foo” を選択した 
> foo 
// selectbox で値が “bar” を選択した 
> bar 
䞉FRP䛾ୡ⏺ 
var select = $("#select").asEventStream("change"); 
select.onValue(function(val) { 
console.log(val.currentTarget.value) 
}); 
// selectbox で値が “foo” をチェックした 
> foo 
// selectbox で値が “bar” をチェックした 
> bar
䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭 
䞁䜾䝟䝷䝎䜲䝮 
䞉㠀FRP䛾ୡ⏺ 
$("#select").change(function(val){ 
console.log(val.currentTarget.value); 
}); 
䞉FRP䛾ୡ⏺ 
var select = $("#select").asEventStream("change"); 
select.onValue(function(val) { 
console.log(val.currentTarget.value) 
}); 
䛣䜜䜎䛷䛿ධຊ䛜ኚ໬䛧䛯䛸䛔䛖ฟ᮶஦䠄䜲䝧䞁䝖䠅䛻ᑐᛂ䛩䜛ฎ⌮䜢䝥䝻䜾䝷䝮䛷グ㏙䛧䛶 
䛔䛯䚹 
䛣䜜䛻ᑐ䛧䛶䚸䝸䜰䜽䝔䜱䝤䞉䝥䝻䜾䝷䝭䞁䜾䛷䛿䚸ධຊ䛸ฟຊ䛾㛵ಀᛶ䜢ᐃ⩏䛧䛶䛚䛡䜀⮬ 
ືⓗ䛻ฎ⌮䛜⾜䜟䜜䜛䚹
䝸䜰䝹䝍䜲䝮䜲䝧䞁䝖䜢㐺ษ䛻ᢅ䛖䛯䜑䛾䝥䝻䜾䝷䝭 
䞁䜾䝟䝷䝎䜲䝮 
䞉㠀FRP䛾ୡ⏺ 
$("#select").change(function(val){ 
console.log(val.currentTarget.value); 
}); 
䞉FRP䛾ୡ⏺ 
var select = $("#select").asEventStream("change"); 
select.onValue(function(val) { 
console.log(val.currentTarget.value) 
}); 
䜲䝧䞁䝖㥑ື䛾࿨௧ᆺ ᐃ⩏ᐉゝᆺ 
䛣䜜䜎䛷䛿ධຊ䛜ኚ໬䛧䛯䛸䛔䛖ฟ᮶஦䠄䜲䝧䞁䝖䠅䛻ᑐᛂ䛩䜛ฎ⌮䜢䝥䝻䜾䝷䝮䛷グ㏙䛧䛶 
䛔䛯䚹 
䛣䜜䛻ᑐ䛧䛶䚸䝸䜰䜽䝔䜱䝤䞉䝥䝻䜾䝷䝭䞁䜾䛷䛿䚸ධຊ䛸ฟຊ䛾㛵ಀᛶ䜢ᐃ⩏䛧䛶䛚䛡䜀⮬ 
ືⓗ䛻ฎ⌮䛜⾜䜟䜜䜛䚹
㠀ྠᮇ䝕䞊䝍䝇䝖䝸䞊䝮䜢⏝䛔䜛䝥䝻䜾䝷䝭䞁䜾䛷䛒䜚䚸䛂᫬㛫䛸䛸 
䜒䛻ኚ໬䛩䜛್䛃䛸䛂᣺䜛⯙䛔䛃ྠኈ䛾㛵ಀᛶ䜢グ㏙䛩䜛
㠀ྠᮇ䝕䞊䝍䝇䝖䝸䞊䝮䜢⏝䛔䜛䝥䝻䜾䝷䝭䞁䜾䛷䛒䜚䚸䛂᫬㛫䛸䛸 
䜒䛻ኚ໬䛩䜛್䛃䛸䛂᣺䜛⯙䛔䛃ྠኈ䛾㛵ಀᛶ䜢グ㏙䛩䜛 
䞉ᐃ⩏䜢ᐉゝ䛩䜛ᑐ㇟ == ᫬㛫䛸䛸䜒䛻ኚ໬䛩䜛್
㠀ྠᮇ䝕䞊䝍䝇䝖䝸䞊䝮䜢⏝䛔䜛䝥䝻䜾䝷䝭䞁䜾䛷䛒䜚䚸䛂᫬㛫䛸䛸 
䜒䛻ኚ໬䛩䜛್䛃䛸䛂᣺䜛⯙䛔䛃ྠኈ䛾㛵ಀᛶ䜢グ㏙䛩䜛 
䞉ᐃ⩏䜢ᐉゝ䛩䜛ᑐ㇟ == ᫬㛫䛸䛸䜒䛻ኚ໬䛩䜛್ 
ex) textField : ᩥᏐ䛾ධຊ䛸ඹ䛻ෆᐜ䛜ኚ䜟䜛 
button : 䜽䝸䝑䜽䛧䛶 on, off 䛜ኚ䜟䜛
㠀ྠᮇ䝕䞊䝍䝇䝖䝸䞊䝮䜢⏝䛔䜛䝥䝻䜾䝷䝭䞁䜾䛷䛒䜚䚸䛂᫬㛫䛸䛸 
䜒䛻ኚ໬䛩䜛್䛃䛸䛂᣺䜛⯙䛔䛃ྠኈ䛾㛵ಀᛶ䜢グ㏙䛩䜛 
䞉ᐃ⩏䜢ᐉゝ䛩䜛ᑐ㇟ == ᫬㛫䛸䛸䜒䛻ኚ໬䛩䜛್ 
ex) textField : ᩥᏐ䛾ධຊ䛸ඹ䛻ෆᐜ䛜ኚ䜟䜛 
button : 䜽䝸䝑䜽䛧䛶 on, off 䛜ኚ䜟䜛 
FRP 䛷䛿䚸䛣䜜䜙䛾䛂᫬㛫䛸䛸䜒䛻ኚ໬䛩䜛್䛃䜢 
䛂䝇䝖䝸䞊䝮䛃䛸࿧䜀䜜䜛➨1⣭䜸䝤䝆䜵䜽䝖䛸䛧䛶ᢅ䛘䜛䜘䛖䛻䛩䜛 
஦䛷䚸ᐃ⩏ᐉゝᆺ䛾䝥䝻䜾䝷䝭䞁䜾䜢⾜䛘䜛ᵝ䛻䛧䛯䚹
㠀ྠᮇ䝕䞊䝍䝇䝖䝸䞊䝮䜢⏝䛔䜛䝥䝻䜾䝷䝭䞁䜾䛷䛒䜚䚸䛂᫬㛫䛸䛸 
䜒䛻ኚ໬䛩䜛್䛃䛸䛂᣺䜛⯙䛔䛃ྠኈ䛾㛵ಀᛶ䜢グ㏙䛩䜛 
䞉᣺䜛⯙䛔
㠀ྠᮇ䝕䞊䝍䝇䝖䝸䞊䝮䜢⏝䛔䜛䝥䝻䜾䝷䝭䞁䜾䛷䛒䜚䚸䛂᫬㛫䛸䛸 
䜒䛻ኚ໬䛩䜛್䛃䛸䛂᣺䜛⯙䛔䛃ྠኈ䛾㛵ಀᛶ䜢グ㏙䛩䜛 
䞉᣺䜛⯙䛔 
ex) ධຊ್ : 1, 2, 3, 4 
᣺䜛⯙䛔 : ධຊ䛥䜜䛯್䜢ಸ䛻䛩䜛 -> 2, 4, 6, 8 
᣺䜛⯙䛔 : 4 䛾ಸᩘ䛰䛡㏉䛩 -> 4, 8
㠀ྠᮇ䝕䞊䝍䝇䝖䝸䞊䝮䜢⏝䛔䜛䝥䝻䜾䝷䝭䞁䜾䛷䛒䜚䚸䛂᫬㛫䛸䛸 
䜒䛻ኚ໬䛩䜛್䛃䛸䛂᣺䜛⯙䛔䛃ྠኈ䛾㛵ಀᛶ䜢グ㏙䛩䜛 
䞉᣺䜛⯙䛔 
ex) ධຊ್ : 1, 2, 3, 4 
᣺䜛⯙䛔 : ධຊ䛥䜜䛯್䜢ಸ䛻䛩䜛 -> 2, 4, 6, 8 
᣺䜛⯙䛔 : 4 䛾ಸᩘ䛰䛡㏉䛩 -> 4, 8 
䛣䛾᣺䜛⯙䛔䠍䛴䠍䛴䛜䝇䝖䝸䞊䝮䛸䛧䛶ᢅ䛘䜛䚹
㠀ྠᮇ䝕䞊䝍䝇䝖䝸䞊䝮䜢⏝䛔䜛䝥䝻䜾䝷䝭䞁䜾䛷䛒䜚䚸䛂᫬㛫䛸䛸 
䜒䛻ኚ໬䛩䜛್䛃䛸䛂᣺䜛⯙䛔䛃ྠኈ䛾㛵ಀᛶ䜢グ㏙䛩䜛 
䞉᣺䜛⯙䛔 
ex) ධຊ್ : 1, 2, 3, 4 
᣺䜛⯙䛔 : ධຊ䛥䜜䛯್䜢2ಸ䛻䛩䜛 -> 2, 4, 6, 8 
∟ ᣺䜛⯙䛔 : 4 䛾ಸᩘ䛰䛡㏉䛩 -> 4, 8 
∟ ᣺䜛⯙䛔䠖5 ௨ୖ䛰䛡㏉䛩 -> 6, 8 
䛣䛾᣺䜛⯙䛔䠍䛴䠍䛴䛜䝇䝖䝸䞊䝮䛸䛧䛶ᢅ䛘䜛䚹 
䝇䝖䝸䞊䝮䜢䝧䞊䝇䛻᣺䜛⯙䛔䜢㔜䛽䛶䛔䛟஦䛜䛷䛝䜛䚹
Reactive programming䛸䛿... 
䞉᫬㛫䜔እ㒊ධຊ䛸ඹ䛻ኚ໬䛩䜛್䜔ィ⟬䜢䚸࿨௧ⓗ䛻グ㏙䛩 
䜛䛾䛷䛿䛺䛟䚸ᐉゝⓗ䛻ᐃ⩏䛩䜛䚹
Reactive programming䛸䛿... 
䞉᫬㛫䜔እ㒊ධຊ䛸ඹ䛻ኚ໬䛩䜛್䜔ィ⟬䜢䚸࿨௧ⓗ䛻グ㏙䛩 
䜛䛾䛷䛿䛺䛟䚸ᐉゝⓗ䛻ᐃ⩏䛩䜛䚹 
䞉ධຊ䛸ฟຊ䛾㛵ಀᛶ䜢ᐃ⩏䛧䛶䛚䛡䜀⮬ືⓗ䛻᭦᪂ฎ⌮䛜 
⾜䜟䜜䜛Ⅽ䚸䝕䞊䝍䝞䜲䞁䝕䜱䞁䜾ᶵᵓ䛾ᐇ⿦䛻㐺䛧䛶䛔䜛䚹
Reactive programming䛸䛿... 
䞉᫬㛫䜔እ㒊ධຊ䛸ඹ䛻ኚ໬䛩䜛್䜔ィ⟬䜢䚸࿨௧ⓗ䛻グ㏙䛩 
䜛䛾䛷䛿䛺䛟䚸ᐉゝⓗ䛻ᐃ⩏䛩䜛䚹 
䞉ධຊ䛸ฟຊ䛾㛵ಀᛶ䜢ᐃ⩏䛧䛶䛚䛡䜀⮬ືⓗ䛻᭦᪂ฎ⌮䛜 
⾜䜟䜜䜛Ⅽ䚸䝕䞊䝍䝞䜲䞁䝕䜱䞁䜾ᶵᵓ䛾ᐇ⿦䛻㐺䛧䛶䛔䜛䚹 
䞉MVVM 䝟䝍䞊䞁䛾ᐇ⿦䛻౑䜟䜜䛶䛔䜛䚹
MVVM (Model View ViewModel)
MVVM (Model View ViewModel) 
䞉2005ᖺ䚸Microsoft 䛾 WPF 䜔 Silverlight Ⓨ⚈ 䛾䜰䞊䜻䝔䜽 
䝏䝱 via: http://ja.wikipedia.org/wiki/Model_View_ViewModel 
䞉୺䛻 GUI 䜰䝥䝸䜿䞊䝅䝵䞁䛷᥇⏝䚹
MVVM (Model View ViewModel) 
䞉2005ᖺ䚸Microsoft 䛾 WPF 䜔 Silverlight Ⓨ⚈ 䛾䜰䞊䜻䝔䜽 
䝏䝱 via: http://ja.wikipedia.org/wiki/Model_View_ViewModel 
䞉୺䛻 GUI 䜰䝥䝸䜿䞊䝅䝵䞁䛷᥇⏝䚹 
䞉View䛿ViewModel䛻౫Ꮡ䛧䚸ViewModel䛿Model䛻౫Ꮡ䚹㏫ 
᪉ྥ䛾౫Ꮡ䛿↓䛔䚹 
image: http://www.atmarkit.co.jp/fdotnet/chushin/greatblogentry_02/greatblogentry_02_01.html
MVVM (Model View ViewModel) 
䞉Model - 䝗䝯䜲䞁䠄ၥ㢟㡿ᇦ䠅 
䞉View - UI䜈䛾ฟຊ䛸UI䛛䜙䛾ධຊ 
䞉ViewModel - View䛸Model䛾㛫䛾᝟ሗ䛾ఏ㐩䠄View䛛䜙ཷ䛡ྲྀ䛳䛯ධຊ䜢㐺 
ษ䛺ᙧ䛻ኚ᥮䛧䛶Ώ䛩䠅䛸䚸View䛾䛯䜑䛾≧ែಖᣢ䛾䜏䜢ᙺ๭䛸䛩䜛せ⣲䚹View䛸䛾 
㏻ಙ䛿䝕䞊䝍䝞䜲䞁䝕䜱䞁䜾ᶵᵓ䛾䜘䛖䛺௙⤌䜏䜢㏻䛨䛶⾜䛖䛾䛜๓ᥦ䚹
MVVM (Model View ViewModel) 
View䛸ViewModel䛾㛫䛾᝟ሗ䜢㛤Ⓨ⪅䛜ᡭື䛷ྠᮇ䛧䛺䛡䜜䜀䛺䜙䛺䛔䜘䛖䛺䝥 
䝷䝑䝖䝣䜷䞊䝮䛷䛿㠀ᖖ䛻㛤Ⓨ⪅䛾㈇ᢸ䛜኱䛝䛟䛺䜚䚸䝯䝸䝑䝖䛜Ⓨ᥹䛧䛻䛟䛔䚹 
䛭䛾䛯䜑䝕䞊䝍䝞䜲䞁䝕䜱䞁䜾ᶵᵓ䛾䜘䛖䛺௙⤌䜏䜢ᣢ䛴䝥䝷䝑䝖䝣䜷䞊䝮䛛䚸᪤Ꮡ䛾 
䝥䝷䝑䝖䝣䜷䞊䝮䛻䝕䞊䝍䝞䜲䞁䝕䜱䞁䜾ᶵᵓ䛾䜘䛖䛺௙⤌䜏䜢ᣑᙇ䛧䛯䝥䝷䝑䝖䝣䜷䞊 
䝮䛷᥇⏝䛥䜜䛶䛔䜛䚹
MVVM (Model View ViewModel) 
ᚲせ䛺䜒䛾 
䞉ᐉゝⓗ䛺 View䝔䞁䝥䝺䞊䝖 
䞉䝕䞊䝍䝞䜲䞁䝕䜱䞁䜾ᶵᵓ
MVVM (Model View ViewModel) 
ReactiveCocoa (Objective-C) 
䞉FRP䝟䝷䝎䜲䝮䜢᥇⏝䛧䛯ゝㄒෆDSL䚹 
䞉GitHub♫䛾ே㐩䜢䝯䜲䞁䛻㛤Ⓨ䚹GitHub䛾Mac䜰䝥䝸䛷᥇⏝䛥䜜䛶䛔䜛䚹 
䞉ኚ᭦䜢䝅䜾䝘䝹䛸࿧䜀䜜䜛䜸䝤䝆䜵䜽䝖䛷⾲⌧䛧䚸ู㏵⏝ព䛩䜛 VM 䛻䝥䝺䝊䞁䝔䞊 
䝅䝵䞁䝻䝆䝑䜽䜢᭩䛟஦䛷䚸ViewController 䛛䜙 View 䛸䝻䝆䝑䜽䜢ศ㞳䛩䜛䚹 
䚷䈜 ViewController 䛿 MVC 䛾 C 䛷䛿↓䛔䚹MVVM 䛾 V ┦ᙜ䚹
MVVM (Model View ViewModel) 
ReactiveCocoa (Objective-C) 
䝯䝸䝑䝖 
䞉䝔䝇䝖䛾グ㏙䛜ᐜ᫆䛻䛺䜚䚸䝁䞊䝗䛾෌฼⏝ᛶ䛜㧗䜎䜛䚹
MVVM (Model View ViewModel) 
ReactiveCocoa (Objective-C) 
䝯䝸䝑䝖 
䞉䝔䝇䝖䛾グ㏙䛜ᐜ᫆䛻䛺䜚䚸䝁䞊䝗䛾෌฼⏝ᛶ䛜㧗䜎䜛䚹 
䝕䝯䝸䝑䝖 
䞉グ㏙㔞䛜ቑ䛘䜛䚹 
䞉DSL 䛸 FRP 䛾Ꮫ⩦䝁䝇䝖䚹
MVVM (Model View ViewModel) 
ReactiveCocoa (Objective-C) 
ḟᮇ䝯䝆䝱䞊䝞䞊䝆䝵䞁 3⣔䛷 Swift ᑐᛂ䚹 
Swift ⏝䝷䜲䝤䝷䝸䛿௚䛻 https://github.com/ReactKit/ReactKit 䛜䛒䜛䚹 
䛸䜚䛒䛘䛪ヨ䛧䛶䜏䛯䛔䚹
FRP䛻䛴䛔䛶ㄪ䜉䛶䜏䛯ឤ᝿ 
䞉ᐇ⿦䛻䜘䛳䛶ゝⴥ䛾ᐃ⩏䛜᭕᫕䛺Ẽ䛜䛩䜛䛾䛷䚸኱ኚΰ஘䛧䛯䚹 
䝇䝖䝸䞊䝮 
䝅䜾䝘䝹
FRP䛻䛴䛔䛶ㄪ䜉䛶䜏䛯ឤ᝿ 
䞉ᐇ⿦䛻䜘䛳䛶ゝⴥ䛾ᐃ⩏䛜᭕᫕䛺Ẽ䛜䛩䜛䛾䛷䚸኱ኚΰ஘䛧䛯䚹 
䝇䝖䝸䞊䝮 
䝅䜾䝘䝹 
䞉㛵ᩘᆺゝㄒ䜈䛾㛵ᚰ䛜῝䜎䛳䛯䚹 
ཧ↷㏱㐣ᛶ䠄㛵ᩘ䛾࿧䜃ฟ䛧䜢䛭䛾䜎䜎್䛻⨨䛝᥮䛘䛶䜒඲䛟ྠ䛨ືస䜢䛩䜛䚹 
㛵ᩘ䛻๪స⏝䛜↓䛔≧ែ䠅
FRP䛻䛴䛔䛶ㄪ䜉䛶䜏䛯ឤ᝿ 
䞉ᐇ⿦䛻䜘䛳䛶ゝⴥ䛾ᐃ⩏䛜᭕᫕䛺Ẽ䛜䛩䜛䛾䛷䚸኱ኚΰ஘䛧䛯䚹 
䝇䝖䝸䞊䝮 
䝅䜾䝘䝹 
䞉㛵ᩘᆺゝㄒ䜈䛾㛵ᚰ䛜῝䜎䛳䛯䚹 
ཧ↷㏱㐣ᛶ䠄㛵ᩘ䛾࿧䜃ฟ䛧䜢䛭䛾䜎䜎್䛻⨨䛝᥮䛘䛶䜒඲䛟ྠ䛨ືస䜢䛩䜛䚹 
㛵ᩘ䛻๪స⏝䛜↓䛔≧ែ䠅 
䞉ᐇ㝿䛻䜰䝥䝸䜿䞊䝅䝵䞁᭩䛝䛺䛜䜙䛨䜓䛺䛔䛸⌮ゎ䛜㐍䜎䛺䛭䛖䚹
Library 
FRP: Javascript 
䞉https://github.com/Reactive-Extensions/RxJS 
䞉https://github.com/baconjs/bacon.js 
䞉https://github.com/facebook/react 
MVVM: Javascript 
䞉https://github.com/knockout/knockout 
䞉https://github.com/jashkenas/backbone 
䞉https://github.com/angular/angular.js 
䞉https://github.com/ractivejs/ractive 
䞉https://github.com/yyx990803/vue
ཧ⪃䝸䞁䜽 
䞉䛆⩻ヂ䛇䛒䛺䛯䛜ồ䜑䛶䛔䛯䝸䜰䜽䝔䜱䝤䝥䝻䜾䝷䝭䞁䜾ධ㛛 
http://ninjinkun.hatenablog.com/entry/introrxja 
䞉䛺䛬䝸䜰䜽䝔䜱䝤䝥䝻䜾䝷䝭䞁䜾䛿㔜せ䛛䚹 
http://d.hatena.ne.jp/pokarim/20101226 
䞉䝇䝖䝸䞊䝮⾲⌧䛸䛭䛾ኚ᥮ 
http://r7kamura.hatenablog.com/entry/2014/08/21/113654 
䞉FRP䛾ヰ 
http://maoe.hatenadiary.jp/entry/2012/12/24/011414 
䞉Web䝣䝻䞁䝖䜶䞁䝗䛷䝸䜰䜽䝔䜱䝤䝥䝻䜾䝷䝭䞁䜾 
http://www.ediplex.com/blog/?p=830 
䞉䜖䜛䜔䛛䛺 ReactiveCocoa 䛾ᑟධ 
https://speakerdeck.com/ninjinkun/yuruyakanareactivecocoafalsedao-ru 
䞉MVVM for iOS 
https://speakerdeck.com/laiso/mvvm-for-ios 
䞉ReactiveCocoa䛷iOS䛷䜒MVVM 
http://ios.caph.jp/articles/mvvm-using-reactivecocoa 
䞉AngularJS䛷ጞ䜑䜛䝸䜰䜽䝔䜱䝤䝥䝻䜾䝷䝭䞁䜾 
http://zoetrope.hatenablog.jp/entry/2014/02/15/175040 
䞉Bacon.js䛷═䜑䜛Functional reactive programming 
http://gan.hatenablog.jp/entry/2013/11/10/152720

More Related Content

What's hot

オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
 
インタフェース完全に理解した
インタフェース完全に理解したインタフェース完全に理解した
インタフェース完全に理解したtorisoup
 
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」U-dai Yokoyama
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作るtorisoup
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)Takuya Kawabe
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
ワタシはSingletonがキライだ
ワタシはSingletonがキライだワタシはSingletonがキライだ
ワタシはSingletonがキライだTetsuya Kaneuchi
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例sairoutine
 
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう増田 亨
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxShota Shinogi
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門増田 亨
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンAkihiko Horiuchi
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
コールバックと戦う話
コールバックと戦う話コールバックと戦う話
コールバックと戦う話torisoup
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All ThingsUnityTechnologiesJapan002
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意Yoshitaka Kawashima
 
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングなぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングSatoshi Kodaira
 

What's hot (20)

オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
インタフェース完全に理解した
インタフェース完全に理解したインタフェース完全に理解した
インタフェース完全に理解した
 
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
ワタシはSingletonがキライだ
ワタシはSingletonがキライだワタシはSingletonがキライだ
ワタシはSingletonがキライだ
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
 
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
コールバックと戦う話
コールバックと戦う話コールバックと戦う話
コールバックと戦う話
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングなぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリング
 

Similar to リアクティブプログラミングとMVVMパターンについて

第7回 ECMA-262 Edition5.1読書会
第7回 ECMA-262 Edition5.1読書会第7回 ECMA-262 Edition5.1読書会
第7回 ECMA-262 Edition5.1読書会Shou Takenaka
 
Cordovaで業務アプリを作る 〜その事例とノウハウ〜
Cordovaで業務アプリを作る 〜その事例とノウハウ〜Cordovaで業務アプリを作る 〜その事例とノウハウ〜
Cordovaで業務アプリを作る 〜その事例とノウハウ〜Kenichi Inoue
 
SUSE Open Forum講演 - OpenStack Summit 2014 Paris 報告
SUSE Open Forum講演 - OpenStack Summit 2014 Paris 報告SUSE Open Forum講演 - OpenStack Summit 2014 Paris 報告
SUSE Open Forum講演 - OpenStack Summit 2014 Paris 報告VirtualTech Japan Inc.
 
Shizuoka.py #4 pythonで設定ファイルを使う 質疑と資料について追記版
Shizuoka.py #4 pythonで設定ファイルを使う 質疑と資料について追記版Shizuoka.py #4 pythonで設定ファイルを使う 質疑と資料について追記版
Shizuoka.py #4 pythonで設定ファイルを使う 質疑と資料について追記版hiroshi sano
 
CEDEC2014 Live Coding in C++
CEDEC2014 Live Coding in C++CEDEC2014 Live Coding in C++
CEDEC2014 Live Coding in C++Seiya Ishibashi
 
ごみカレンダー
ごみカレンダーごみカレンダー
ごみカレンダーrarere
 
第4回WordBenchしずおか
第4回WordBenchしずおか第4回WordBenchしずおか
第4回WordBenchしずおかEndoh Shingo
 
Python入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニングPython入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニングYuichi Ito
 
IaaS業界激変の背景
IaaS業界激変の背景IaaS業界激変の背景
IaaS業界激変の背景知礼 八子
 
分析革命がもたらすビッグデータの世界@Cloudera World Tokyo 2014
分析革命がもたらすビッグデータの世界@Cloudera World Tokyo 2014分析革命がもたらすビッグデータの世界@Cloudera World Tokyo 2014
分析革命がもたらすビッグデータの世界@Cloudera World Tokyo 2014Satoshi Kitajima
 
Salesforce API シリーズ: バルクAPIを使った高速並列データロードWebinar
Salesforce API シリーズ: バルクAPIを使った高速並列データロードWebinarSalesforce API シリーズ: バルクAPIを使った高速並列データロードWebinar
Salesforce API シリーズ: バルクAPIを使った高速並列データロードWebinarSalesforce Developers Japan
 
日本語:開発者向けのMongo dbオペレーションガイド
日本語:開発者向けのMongo dbオペレーションガイド日本語:開発者向けのMongo dbオペレーションガイド
日本語:開発者向けのMongo dbオペレーションガイドippei_suzuki
 
Grnxx 2014-11-29
Grnxx 2014-11-29Grnxx 2014-11-29
Grnxx 2014-11-29s5yata
 
Angular js活用事例:filydoc
Angular js活用事例:filydocAngular js活用事例:filydoc
Angular js活用事例:filydocKeiichi Kobayashi
 
[Android]Fragmentとのつきあい方を考える
[Android]Fragmentとのつきあい方を考える[Android]Fragmentとのつきあい方を考える
[Android]Fragmentとのつきあい方を考えるichigotake .
 
自分でロジックを考えてプログラムしてみよう
自分でロジックを考えてプログラムしてみよう自分でロジックを考えてプログラムしてみよう
自分でロジックを考えてプログラムしてみようKenichi Inoue
 
Swift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせSwift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせTomohiro Kumagai
 
Reactive Programming In JavaScript
Reactive Programming In JavaScriptReactive Programming In JavaScript
Reactive Programming In JavaScriptCrafity
 

Similar to リアクティブプログラミングとMVVMパターンについて (20)

第7回 ECMA-262 Edition5.1読書会
第7回 ECMA-262 Edition5.1読書会第7回 ECMA-262 Edition5.1読書会
第7回 ECMA-262 Edition5.1読書会
 
Cordovaで業務アプリを作る 〜その事例とノウハウ〜
Cordovaで業務アプリを作る 〜その事例とノウハウ〜Cordovaで業務アプリを作る 〜その事例とノウハウ〜
Cordovaで業務アプリを作る 〜その事例とノウハウ〜
 
SUSE Open Forum講演 - OpenStack Summit 2014 Paris 報告
SUSE Open Forum講演 - OpenStack Summit 2014 Paris 報告SUSE Open Forum講演 - OpenStack Summit 2014 Paris 報告
SUSE Open Forum講演 - OpenStack Summit 2014 Paris 報告
 
Shizuoka.py #4 pythonで設定ファイルを使う 質疑と資料について追記版
Shizuoka.py #4 pythonで設定ファイルを使う 質疑と資料について追記版Shizuoka.py #4 pythonで設定ファイルを使う 質疑と資料について追記版
Shizuoka.py #4 pythonで設定ファイルを使う 質疑と資料について追記版
 
CEDEC2014 Live Coding in C++
CEDEC2014 Live Coding in C++CEDEC2014 Live Coding in C++
CEDEC2014 Live Coding in C++
 
ごみカレンダー
ごみカレンダーごみカレンダー
ごみカレンダー
 
EMNLP2014_reading
EMNLP2014_readingEMNLP2014_reading
EMNLP2014_reading
 
第4回WordBenchしずおか
第4回WordBenchしずおか第4回WordBenchしずおか
第4回WordBenchしずおか
 
Python入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニングPython入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニング
 
IaaS業界激変の背景
IaaS業界激変の背景IaaS業界激変の背景
IaaS業界激変の背景
 
分析革命がもたらすビッグデータの世界@Cloudera World Tokyo 2014
分析革命がもたらすビッグデータの世界@Cloudera World Tokyo 2014分析革命がもたらすビッグデータの世界@Cloudera World Tokyo 2014
分析革命がもたらすビッグデータの世界@Cloudera World Tokyo 2014
 
Salesforce API シリーズ: バルクAPIを使った高速並列データロードWebinar
Salesforce API シリーズ: バルクAPIを使った高速並列データロードWebinarSalesforce API シリーズ: バルクAPIを使った高速並列データロードWebinar
Salesforce API シリーズ: バルクAPIを使った高速並列データロードWebinar
 
日本語:開発者向けのMongo dbオペレーションガイド
日本語:開発者向けのMongo dbオペレーションガイド日本語:開発者向けのMongo dbオペレーションガイド
日本語:開発者向けのMongo dbオペレーションガイド
 
Grnxx 2014-11-29
Grnxx 2014-11-29Grnxx 2014-11-29
Grnxx 2014-11-29
 
Angular js活用事例:filydoc
Angular js活用事例:filydocAngular js活用事例:filydoc
Angular js活用事例:filydoc
 
[Android]Fragmentとのつきあい方を考える
[Android]Fragmentとのつきあい方を考える[Android]Fragmentとのつきあい方を考える
[Android]Fragmentとのつきあい方を考える
 
自分でロジックを考えてプログラムしてみよう
自分でロジックを考えてプログラムしてみよう自分でロジックを考えてプログラムしてみよう
自分でロジックを考えてプログラムしてみよう
 
About dexcs2014of
About dexcs2014ofAbout dexcs2014of
About dexcs2014of
 
Swift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせSwift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせ
 
Reactive Programming In JavaScript
Reactive Programming In JavaScriptReactive Programming In JavaScript
Reactive Programming In JavaScript
 

Recently uploaded

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

リアクティブプログラミングとMVVMパターンについて