3年間、個人でWebアプリケーション/スマートフォンアプリを作り続けている理由を第10回若手Webエンジニア交流会で話しました。 http://wakateweb.connpass.com/event/20386/
DenkinovelΛͲ͏ͯ͠࡞Γଓ͚͍ͯΔͷ͔@katryo
View Slide
Denkinovelͱ• http://denkinovel.com• Իͱը૾ͷԋग़͕Ͱ͖ΔখઆߘαΠτ• ࡞800• 201211݄ʹӡӦ։࢝ɻ3͕ܦա• iPhoneΞϓϦ͋ΔΑʂ
iPhoneΛ͍࣋ͬͯΔਓ ࠓ͙͢μϯϩʔ υ ͯ͘͠ΕΔͱخ͍͠Ͱ͢
Denkinovel͕ղܾ͢Δ• ಉਓখઆຯɻίϛέͳͲΠϕϯτͰखʹͱΒΕΔ͜ͱ΄ͱΜͲͳ͍ɻWebͰެ։ཱͯͨ͠ͳ͍• ΩϟϥΫλʔΠϥετͰͳ͍ͱཱͨͳ͍• ࣗͷখઆΛଟ͘ͷਓʹಡΜͰΒ͍͍͕ͨɺֆ͕༻ҙͰ͖ͳ͍ਓͷͨΊʹDenkinovel͋Δ—ڵຯͳ͍
Denkinovelͷٕज़తઆ໌ αʔόαΠυฤ• Rails 4.1• ͘͞ΒVPS 2GB• PostgreSQL 9.1• ࣮DBαʔό == WebαʔόɻͦΜͳʹΞΫηεͳ͍ͷͰى͖͍ͯͳ͍
Denkinovelͷٕज़తมભ iOSΞϓϦฤ• Swift 2.0, Cocoa TouchϑϨʔϜϫʔΫ• WebViewͰͳ͍ɻԻָͷϩʔσΟϯάɺഎܠΓସ͑ͷࡍͷύϑΥʔϚϯεͷͨΊ• Push௨ͱϢʔβΞΧϯτཧʹAWSCognito, SNS, SQSΛ༻
ਖ਼ʹݴ͏ͱɺ Denkinovel։ൃʹ ͕࣌ؒٵΘΕΔͷ ͪΐͬͱͭΒ͍
ͳͥDenkinovelΛ࡞Γଓ͚͍ͯΔͷ͔
ͪΖΜϢʔβʔͷͨΊ͕ͩͦΕ͚ͩͰͳ͍
ԿΛֶͿ͔ܾΊΔͨΊ
ͨͱ͑ΫϥΠΞϯταΠυɺԿΛֶͿʁ
ͨͱ͑ΫϥΠΞϯταΠυɺԿΛֶͿʁత͕ͳ͍ͱબͳ͍
Denkinovelʹඞཁͳͷ͔ΒֶͿͷΛબΜͩຊจΛJSONͰड͚औΓɺԻָɾը૾ΛΓସ͑ΔγεςϜഁ͠ͳ͍ߏʹ࡞Γͳ͓͢ඞཁ͕͋ͬͨɻBackbone.jsΛֶ΅͏ʂ
ٯʹ͍͏ͱɺDenkinovelʹෆඞཁͳٕज़ ֶͳ͍
DenkinovelͷՁΛߴΊͳ͍ͷͰ·ͩखΛग़͞ͳ͍
DenkinovelͰͷχʔζ͕͋Εɺ͖ͳٕज़ΛֶΜͰ͍͍ෳ࡞Λ·ͱΊΔγϦʔζػೳΛ࡞Γ͍ͨVueΛֶ΅͏ʂ͓͢͢Ί࡞ͷॱ൪Λཧ͢Δཧऀ͚ϖʔδ͕΄͍͠ReactΛֶ΅͏ʂ
݁Ռɺಉ͡తͷϥΠϒϥϦ͕ڞଘ͢Δ͜ͱʹͳͬͨ……• ͦͷͱֶ͖ͼ͔ͨͬͨVue, ReactͳͲͷϥΠϒϥϦͰͦͷ࣌࡞Γ͍ͨͷΛ։ൃͨ͠ɻͳͷͰɺݱࡏBackboneͱVueͱReact͕ڞଘ͍ͯ͠Δ• ͰͳΜͱ͔ͳ͍ͬͯΔɻͦΜͳʹѱ͘ͳ͍
ݱࡏͷࣗʹ͍ͭͯߟ͑ͯΈΔ• ϓϩάϥϛϯάΛ࢝Ίͯ3• ͢Ͱʹए͘ͳ͍• WebΤϯδχΞ25ࡀఆઆ• কདྷͷෆ҆
ϓϩάϥϛϯά࢝Ί͔ͯΒ3͘Β͍Ͱɺ WebΞϓϦ / iOSΞϓϦ࡞ΕΔΑ͏ʹͳΓ·ͨ͠ʂ
Denkinovel։ൃͰʹ͚ͭͨ͜ͱ• RailsͰͷWebΞϓϦ։ൃ• SNS, S3ͳͲAWSͷ͍ํ• iOSΞϓϦ։ൃ
͓ࣄͰʹ͚ͭͨ͜ͱ• PerlͰWebΞϓϦέʔγϣϯ։ൃɻDBઃܭɺWebαʔόͱͯ͠ͷLinuxͷ༻• اը͔ΒϦϦʔεΛܧଓͯ͠܁Γฦ͢ϓϩδΣΫτϚωδϝϯτ• εΫϥϜ։ൃ
ʹ͚ͭͨ͜ͱଟ͍͚Ͳɺ ͲΕ୭ͰͰ͖Δ͜ͱ
RailsͰͷWebΞϓϦ։ൃऀɹ݉iOSΞϓϦ։ൃऀͨ͘͞Μ͍Δ3BJMTͱJ04ΞϓϦ։ൃͬͯ·͢3BJMTͱJ04ΞϓϦ։ൃͬͯ·͢3BJMTͱJ04ΞϓϦ։ൃͬͯ·͢3BJMTͱJ04ΞϓϦ։ൃͬͯ·͢
ΞϓϦ։ൃͳΜͯ ୭ͰͰ͖ΔΜ
ͦ͜Ͱߟ͍͑ͯΔ͜ͱ• ͚ࣗͩͷڧΈΛ࣋ͭͨΊʹɺίϯϐϡʔλαΠΤϯεͷجૅΛֶͼ͍ͨ͠• ΞϓϦέʔγϣϯ։ൃଓ͚͍ͨ2ͭΛཱ͍྆ͤͨ͞
Γ͍ͨ͜ͱଟ͘ɺ࣌ؒͦΕ΄Ͳͳ͍Denkinovelʹؔͷ͋Δ͜ͱ͔Β࢝ΊΑ͏
Denkinovelʹؔͷ͋Δ• খઆຊจ͔ΒJSONͷมͰͷߏจղੳ• όάͷͳ͍ϓϩάϥϜͷͨΊͷܕݕࠪ• ϨίϝϯυͷͨΊͷػցֶशDenkinovelʹ ؔΘΓ͏ΔίϯϐϡʔλαΠΤϯε Ҋ֎ଟ͍
ֶͼ͍ͨ͜ͱͱ࡞Γ͍ͨͷͷཱ྆• ຊจ => JSONͷύʔαΛPEG.jsͰߦ͏• JSͰͷύʔαΛར༻ͯ͠ɺDenkinovelͷԋग़ΤσΟλΛElectronͰ։ൃ• ࡞Ϩίϝϯυ
ԿΛֶͿ͔ܾΊΔͨΊʹɺ ΞϓϦέʔγϣϯΛ։ൃ͢Δ
·ͱΊ• DenkinovelΛ3ؒ࡞Γଓ͚͖ͯͨ• ࣄɾझຯͰΞϓϦέʔγϣϯ։ൃΛ͖͕ͯͨ͠ɺઐੑ͕ཉ͘͠ͳͬͨɻ͔ͭΞϓϦέʔγϣϯ։ൃଓ͚͍͖͍ͯͨ• Denkinovelɺ͜Ε͔ΒֶͿͷΛऔࣺબ͢ΔͨΊͷࢦඪ