ããã«ã¡ã¯ãéçºæ¬éšã®é«äºã§ãããªã³ã©ã€ã³èšºçã¢ããªã CLINICS ãã®ã¢ããªéçºãäž»ã«æ
åœããŠããŸãã CLINICS ã§ã¯ Web ã«å ããŠãiOS çãš Android çã®åãã©ãããã©ãŒã ã®ä»æ§å€æŽãæ©èœè¿œå ãªã©ãã»ãŒåæã«éçºããŠããã®ã§ãããæ
åœãã人æ°ãå¢ãããããããšã§ã仿§ã«å·®ãåºããããã®çµæææ»ããèµ·ãããšããããšãå¢ãå§ããŠããŸããã ãããã課é¡ã解決ããããã«å®è·µããæ§ã
ãªæœçã®äžãããç¹ã«æå¹ã ã£ã 3 ã€ã®æ¹åçã«ã€ããŠã仿¥ã¯ã玹ä»ããŸãã èæ¯ CLINICS ã®éçºããŒã ã§ã¯ 5 人ã»ã©ã®ãšã³ãžãã¢ãã¿ã¹ã¯åäœã§å
šãŠã®ãã©ãããã©ãŒã ãå®è£
ãããã倧ããã¿ã¹ã¯ã®å Žåã¯ãã©ãããã©ãŒã æ¯ã«å¥ã®éçºè
ãæ
åœãã圢ã§éçºããŠããŸãã ãã®ãããªåœ¢ã§æ©èœè¿œå ãäžå
·å察å¿ã®éçºãé²ããäžã§ã以äžã®ãããªèª²é¡ããããŸããã ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéã ãªãªãŒã¹çŽåã«ä»æ§ã®éããèŠã€ãããææ»ããçºçãã åãã©ãããã©ãŒã ã«å¯Ÿããç¿ç床ã«ãã©ã€ãããããããéçºè
ã«ãã£ãŠå®è£
æ¹æ³ãéã ç¹ã«ãã©ãããã©ãŒã æ¯ã«éçºè
ãã»ãŒåºå®ãããŠããŸã£ãŠããææã«ã¯ãã³ãŒãã¬ãã¥ãŒã¯ããŠããŠã埮åŠãªéãã«æ°ã¥ããªãã£ãããåã UI ã«ããã®ã«å®è£
ã³ã¹ããé«ããŠããããããããšããããšãèµ·ãããã¡ã§ããã** ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéããšãŠãŒã¶äœéšã®è³ªããã©ãããã©ãŒã ã«ãã£ãŠãã©ã€ããŠããŸããŸããããã¶ã€ã³ãäŒç»ã®äœæ¥ãå¢ããŠããŸããŸã** ããããã«å ããŠããšã³ãžãã¢ã®äººæ°ãå¢ãããããã¶ã€ããŒãã«ã¹ã¿ããŒãµããŒããªã©ãšã³ãžãã¢ä»¥å€ã®ã¡ã³ããŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãå¢ãããããŠããããšããã£ãŠãéçºã¹ããŒããæ®µã
ãšé
ããªã£ãŠããŠããŸããã ãã®ãããªç¶æ³ãæ¹åããããã«ãããŒã å
ã§ç¶ç¶çã«å®è£
æ¹æ³ãéçºãããŒãèŠçŽããæ¹åçã宿œããŠããŸããã ä»åã¯ä»¥äžã® 3 ã€ã®æ¹åçãã玹ä»ããŸããå
·äœçãªå®è£
ã«ã€ããŠã¯ã䞻㫠iOS ã§äœ¿çšããŠããã³ãŒããåŒçšããŠã玹ä»ããŸããïŒã³ãŒãã®äžéšãæç²ããŠããã®ã§ããã®ãŸãŸã§ã¯äœ¿çšããããšã¯ã§ããŸããããããŸã§ãåèã³ãŒããšããŠèªãã§ãã ãããïŒ DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ã¢ããªãšã©ãŒã®å
±éå ã³ãŒãã¬ãã¥ãŒã®æé æ¹å æ¹åç 1 DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ãŸã㯠DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ã«ã€ããŠã§ããDLS ãšã¯ä»¥åãæ¬ããã°ã§ããã¶ã€ããŒã®åç°ãã玹ä»ãããŠããã ããŸãããïŒ ãã¶ã€ã³èšèªã·ã¹ãã ãå
¥ãããã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ãããã£ãšäžãã£ã話ãã¡ãã¬ãŒ TechLunchã ïŒã** UI ã«äžè²«æ§ããããããããé
è²ãã¬ã€ã¢ãŠããã¿ã€ãã°ã©ãã£ãããŒãžã³ãªã©ã®ã«ãŒã« **ãçå®ããããŒã å
šäœã§ç¶ç¶çã«éçšããŠããããã®ä»çµã¿ã§ããçå®ããã«ãŒã«ãçµã¿èŸŒãã åã³ã³ããŒãã³ãã®ãã¶ã€ã³ãå
ã«ãWeb / iOS / Android ã®åãã©ãããã©ãŒã ã§ UI ãå®è£
ããŠéçºæã«åå©çšã§ããããã«ããŠããŸãããã¶ã€ã³èªäœã¯äžèšã®ãããªåœ¢ã§ Sketch ãã¡ã€ã«ã§ç®¡çããŠããŸãã iOS ã«ã€ããŠã¯åã³ã³ããŒãã³ããã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ãšããŠå®è£
ããåå©çšã§ããããã«ããŸãããDLS å°å
¥ä»¥åã¯ãã©ãããã©ãŒã æ¯ã«éã£ã UI ãã«ãŒã«ã§éçºããŠããã®ã§ãå®è£
段éã§æ
åœããéçºè
æ¯ã®èªèã«ãã£ãŠå質ã仿§ã«å·®ãåºãŠããç¶æ
ã§ãããDLS å°å
¥ã«ãã£ãŠãã®ãããªå·®ãåºã«ãããªããäžå®ã®å質ãä¿ã€ããšãã§ããããã«ãªããŸããã ãŸãã** UI ã®åŸ®èª¿æŽãªã©ãæžã£ãŠãæ©èœããžãã¯ã«éç¹ã眮ããéçºã«å°å¿µã§ããããã«ãªããããã«ãã¶ã€ããŒãšã®èªèåãããæå°éã«ãªã£ãããšã«ããéçºå¹çãäžãã£ã **ãšæããŠããŸããUI ã®åºç€ãã€ãã£ãããšã§æ°ããç»é¢ãéçºããå Žåã§ãã³ã³ããŒãã³ããçµã¿åããããšã³ãžãã¢ã ãã§å®è£
ãå®äºããããšãå€ããªãããã®åãã¶ã€ããŒã¯æ¬¡ã®æœçããããžã§ã¯ãã«å°å¿µã§ããããã«ãªããŸããã å®è£
ã«ã€ããŠã§ãããåã³ã³ããŒãã³ãæ¯ã« xib ãã¡ã€ã«ã§ UI ããŒããäœæãããããã¯ã©ã¹ãã¡ã€ã«ã§èªã¿èŸŒãã§ã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ã®èŠãç®ãšããŠäœ¿ã£ãŠããŸããã«ã¹ã¿ã ãã¥ãŒã¯åå©çšãããããå©çšæã«ãã©ãããåºã«ããããã«ä»¥äžã®ç¹ãæºããããã«å®è£
ããŸããã Interface Builder/ã³ãŒãã®ã©ã¡ãããã§ãåæåã§ãã ãã«ãããåã« Storyboard äžã§ UI ããŒãã®ãã¶ã€ã³ã確èªã§ããããã« IBDesignable ãš IBInspectable ãæå®ãã ã«ã¹ã¿ã ãã¥ãŒã®äžã§ UI èŠçŽ ã®ããŒãžã³ãé«ããæå®ãã äŸãã°ãã»ã¬ã¯ããã©ãŒã ã³ã³ããŒãã³ãã®ã«ã¹ã¿ã ãã¥ãŒã¯ä»¥äžã®ãããªå®è£
ã«ãªã£ãŠããŸãã xib ãã¡ã€ã« ã¯ã©ã¹ãã¡ã€ã« import UIKit protocol ClinicsFormSelectDelegate : class { func didClickFormSelect ( sender : ClinicsFormSelect) } @IBDesignable class ClinicsFormSelect : UIView { @IBOutlet weak var selectView: SelectView! @IBInspectable var labelText: String = "Form-parts" { didSet { selectView. labelText = labelText } } weak var delegate: ClinicsFormSelectDelegate? // ã³ãŒãããåæåããå Žåã«åŒã°ãã override init ( frame : CGRect) { super . init ( frame : frame) commonInit () } // Interface Builder ããåæåããå Žåã«åŒã°ãã required init? ( coder aDecoder : NSCoder) { super . init ( coder : aDecoder) commonInit () } private func commonInit () { // xib ãã¡ã€ã«ã®èªã¿èŸŒã¿ let bundle = Bundle ( for : type ( of : self )) let view = UINib ( nibName : "ClinicsFormSelect" , bundle : bundle). instantiate ( withOwner : self , options : nil ). first as! UIView addSubview (view) backgroundColor = . clear view. backgroundColor = . clear // èªã¿èŸŒãã View ã®ãµã€ãºãã«ã¹ã¿ã ã¯ã©ã¹ïŒClinicsFormSelectïŒãšåããµã€ãºã«ãªãããã« Constraint ãèšå®ãã view. translatesAutoresizingMaskIntoConstraints = false let bindings = [ "view" : view] addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "H:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "V:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) } // xib ãã¡ã€ã«ã®äžã«é
眮ãã UI èŠçŽ ãžã®ã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã° @IBAction func didTap ( _ sender : UITapGestureRecognizer) { delegate?. didClickFormSelect ( sender : self ) } } CLINICS ã§ã¯äž»ã« Storyboard ã䜿ã£ãŠ UI ãå®è£
ããŠããã®ã§ã䜿çšãããšã㯠Storyboard ã« UIView ã眮ããã³ã³ããŒãã³ãã®ã¯ã©ã¹åãæå®ããŠäœ¿ããŸããããã¹ããªã©ã®ããããã£ãèšå®ããConstraint ãæå®ããŠé
眮ããã°å®äºã§ãããŠãŒã¶ã«ããã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã°ãåçã«ããããã£ãåãæ¿ããå¿
èŠãããå Žåã¯ãåŒã³åºãåŽã§åŠçã远å ããŸãã æçµçã«ãã«ããããšä»¥äžã®ããã«è¡šç€ºãããŸããïŒè¡šç€ºãããŠããå
容ã¯éçºäžã«äœæããä»®ã®ããŒã¿ã§å®éã®ãã®ãšã¯ç°ãªããŸããïŒ æ¹åç 2 ã¢ããªãšã©ãŒã®å
±éå 以åã¯æ¥åçã«éèŠãªåŠçã®ãšã©ãŒä»¥å€ã¯ãã©ãããã©ãŒã æ¯ã§è¡šç€ºãããšã©ãŒã¡ãã»ãŒãžãç°ãªã£ãŠãããããšã©ãŒãã³ããªã³ã°æã«éã£ãæåãããŠããããšããããŸããããã®çµæããŠãŒã¶äœéšãäžè²«ãããã®ã«ãªã£ãŠããªããšããã ãã§ãªãããåãåããããã£ãŠãã«ã¹ã¿ããŒãµããŒããäžæ¬¡åçãã«ããã£ãããäŒããããå
å®¹ãææ§ãªããéçºè
ã調æ»ããã®ã«æéãããã£ããããããšããããŸããã ããã§ãæ¹ããŠããã³ãåŽã§çºçãããšã©ãŒã®å®çŸ©ãå
±éåãããšã©ãŒã¡ãã»ãŒãžããšã©ãŒãã³ããªã³ã°æã®åŠçãçµ±äžããŸããã** åãåããã®å¹çåã®ããã«å
±éã®ãšã©ãŒã³ãŒããæ±ºããŠããšã©ãŒçºçæã«è¡šç€ºãããã¢ã©ãŒãã«è¿œå ãããããã®ãšã©ãŒå®çŸ©ã¯ããã¥ã¡ã³ãã§äžèЧåããŠãã«ã¹ã¿ããŒãµããŒãã«ãå
±æ **ããããã«ããŸããã ãŸãããšã©ãŒãã³ããªã³ã°æã«ã¯ã©ãã·ã¥ã¬ããŒãã®ãã°ã«èšé²ããå
容ãéä¿¡ããã¿ã€ãã³ã°ãçµ±äžããŠãéçºè
å
šå¡ãçè§£ããããããã«ããŸããããšã©ãŒã³ãŒãã®è¡šç€ºã«ã€ããŠã¯ãæ¹åãæ€èšããŠããææã«ã¡ããã©åå ããŠãã iOSDC Japan 2017 ã§ãåããããªèª²é¡ã«å¯Ÿããç¥èŠã çºè¡š ãããŠããã®ãèŠãŠãæ©éåãå
¥ããŸãããæè¿ã§ã¯ãŠãŒã¶ããã®åãåããã«ããšã©ãŒã³ãŒãã䜿ãããããšããããå®éã«ã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ããäœäžãããããšãã§ããŠããããã«æããŸãã ãšã©ãŒã®ãã£ãŒãããã¯ã¯çްãããšããã§ã¯ãããŸããããŠãŒã¶ã®ã¢ã¯ã·ã§ã³ãç¶ç¶ãããããã«éèŠãªèŠçŽ ã®ã²ãšã€ã§ããCLINICS ã¯ãŠãŒã¶å±æ§ãèè¥ç·å¥³åããå¹
åºãã®ã§ç¹ã«æ°ãé
ã£ãŠæ¹åãè¡ã£ãŠããŸããã å®è£
ã«ã€ããŠã§ãããiOS ã§ã¯ä»¥äžã®ããã«å®çŸ©ããŠããŸãã enum ApplicationError : Error { case commonRequestError ( String ) case createReservationCardError case createReservationScheduleIsFullError ~ var errorCode: String { switch self { case let . commonRequestError (viewId): return " \( viewId ) -0000" case . createReservationCardError : return "40-0001" case . createReservationScheduleIsFullError : return "40-0002" ~ var title: String { switch self { case . commonRequestError : return "æ¥ç¶ãšã©ãŒ" case . createReservationCardError : return "決æžå€±æãšã©ãŒ" ~ var description: String { switch self { case . commonRequestError : return "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" case . createReservationCardError : return "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ~ Android ã§ãåæ§ã« enum ã§å®çŸ©ããŠããŸãã enum class ApplicationError ( var code: String , val title: String , val description: String ) { CommonRequestError ( "0000" , "æ¥ç¶ãšã©ãŒ" , "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" ), CreateReservationCardError ( "40-0001" , "決æžå€±æãšã©ãŒ" , "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ), CreateReservationScheduleIsFullError ( "40-0002" , "ã¹ã±ãžã¥ãŒã«ç©ºããªããšã©ãŒ" , "éžæãããäºçŽæ¥æã®ã¹ã±ãžã¥ãŒã«ã«ç©ºãããããŸããã§ããã \n ããããããŸãããå¥ã®äºçŽæ¥æããéžæã®ãããããäžåºŠæåããæäœãã ããã" ), ~ æ¹åç 3 ã³ãŒãã¬ãã¥ãŒã®æé æ¹å ãªãªãŒã¹åœåããå®è£
è
以å€ã®ã¡ã³ããŒã«ããã¬ãã¥ãŒã¯é©å®è¡ãªã£ãŠããŸããããã¬ãã¥ãŒã®æ®µéã§ãã°ã¬ã仿§ã®éããèŠéããŠããŸãããšããã£ãã®ã§ãã¬ãã¥ãŒäœå¶ã®åŒ·åãšã¡ã³ããŒã®ãœãŒã¹çè§£ã®åäžãå³ãããã«ã以äžã®ããã«ã«ãŒã«ãèšå®ããŸããã ã»ã«ãããŒãžã¯ããªã PR ã«å¯Ÿã㊠2 人以äžã§ã¬ãã¥ãŒãã ãã¥ãŒã®å€æŽããã£ãå Žåã«ã¯ç»é¢ãã£ããã£ã貌ã ããããå®ãããããããå¹ççã«ããããã« Danger ãå°å
¥ããŸããã å°å
¥æé 㯠ãã¡ã ã«ãŸãšããããŠããã»ããæ€çŽ¢ããã°ãã£ããåºãŠããã®ã§çç¥ããŸããåŒç€Ÿã§ã¯ iOS ã® CI 㯠Bitrise ã䜿çšããŠããã®ã§ Bitrise äžã§å®è¡ã㊠GitHub ã® PR ã«åæ ãããŠããŸãã Danger ã§ã¯ã以äžã®é
ç®ããã§ãã¯ããŠããŸããäžèšã®ã«ãŒã«ãåæ ããŠããã®ã«å ããŠãPR ã®åãå
ãš SwiftLint ã®å®è¡çµæããã§ãã¯ããŠããŸããCLINICS ã® iOS ã¢ããªã§ã¯ GitFlow ãå°å
¥ããŠãããããrelease ãã©ã³ããš hot-fix ãã©ã³ã以å€ããã® PR ã®åãå
ã develop ãã©ã³ãã«ãªã£ãŠããªãå Žåã«ã¯èŠåãåºãããã«ããŠããŸãã ã¬ãã¥ã¢ãŒã®äººæ°ã 2 人以äžã«ãªã£ãŠããã ãã¥ãŒã®å€æŽïŒxibãstoryboard ãè§Šã£ããã©ããã®ã¿ç¢ºèªïŒããã£ãå Žåã«ç»é¢ãã£ããã£ã貌ã£ãŠãããã©ãã PR ã develop ã«åããŠäœæãããŠããã SwiftLint ã®ãã§ãã¯ãéã£ãŠããã åŒç€Ÿã iOS éçºã§å©çšããŠãã Danger ãã¡ã€ã«ã¯ä»¥äžã®éããšãªã£ãŠããŸããå°å
¥ããéã®ãåèã«ããŠãã ããã # for only difference github. dismiss_out_of_range_messages # reviewers warn ( "ã¬ãã¥ã¢ãŒã¯ 2 äººä»¥äžæå®ããŠãã ãã" ) if github. github . pr_json [ "requested_reviewers" ]. length < 2 # view changes view_extensions = [ ".xib" , ".storyboard" ] has_view_changes = git. modified_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} has_view_added = git. added_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} pr_has_screenshot = github. pr_body =~ /https?: \/\/\S * \. (png|jpg|jpeg|gif){1}/ warn ( "èŠãç®ã«å€æŽãããå Žåã¯ç»é¢ãã£ããã£ã貌ã£ãŠãã ãã" ) if (has_view_changes or has_view_added) and !pr_has_screenshot # base branch is_to_master = github. branch_for_base == 'master' is_to_develop = github. branch_for_base == 'develop' is_from_releases = !!github. branch_for_head . match ( /releases \/ [0-9]+ \. [0-9]+ \. [0-9]/ ) warn ( 'PR 㯠develop ã«åããŠãã ãã' ) if !is_to_develop and !(is_from_releases and is_to_master) # swiftLint swiftlint. lint_files inline_mode: true ãŸãšã CLINICS ã«ãããã¢ããªéçºã®å質ãšå¹çæ§ãåäžããããã®åãçµã¿ãã玹ä»ããŸããããããã®åãçµã¿ã«ãã£ãŠ ãã©ãããã©ãŒã æ¯ã®ãã¶ã€ã³ãæ©èœã®ãã¬ãå°ãªããªããèªèããã«ããææ»ããªã©ãå°ãªããªã£ãããšã§éçºå¹çãäžãã£ã ãšæããŸãããã©ãããã©ãŒã æ¯ã®éããå°ãªãããŠãããå€ãã®ã¡ã³ããŒãã³ãŒãã«æãå
¥ããããç¶æ
ã«ããããšã§å®è£
ãã³ãŒãã¬ãã¥ãŒã®è³ªãåäžããŠããããã«æããŸãã React Native ãªã©ãå©çšããŠãã³ãŒããã®ãã®ãå
±éåããæ¹æ³ããããšã¯æããŸããããã©ãããã©ãŒã æ¯ã«å¥ã®ã³ãŒãã§éçºããå Žåã§ãã仿§ãå®è£
ã®ã«ãŒã«ã工倫ããããšã§ããå¹ççã«éçºã§ããã®ã§ã¯ãªãã§ããããã CLINICS ããŒã ã§ã¯ä»ã«ãå®è£
ãéçºããã»ã¹ããããã¯ãéçšã«ã€ããŠæ¥ã
æ¹åãè¡ãªã£ãŠããŸããä»åŸããããããåãçµã¿ãç©æ¥µçã«å®è·µããKPT 圢åŒã§æ¯ãè¿ã£ãŠããŸã次ã®ã¢ã¯ã·ã§ã³ã«ã€ãªããããšã§ãå€ãã®æ¹ã«æããããããã¯ããè²ãŠãŠãããããšæã£ãŠããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ããã¶ã€ããŒãåéããŠããŸãããèå³ã®ããæ¹ã¯ããã¡ãããã©ããïŒ https://www.medley.jp/recruit/creative.html
ããã«ã¡ã¯ãéçºæ¬éšã®é«äºã§ãããªã³ã©ã€ã³èšºçã¢ããªã CLINICS ãã®ã¢ããªéçºãäž»ã«æ
åœããŠããŸãã CLINICS ã§ã¯ Web ã«å ããŠãiOS çãš Android çã®åãã©ãããã©ãŒã ã®ä»æ§å€æŽãæ©èœè¿œå ãªã©ãã»ãŒåæã«éçºããŠããã®ã§ãããæ
åœãã人æ°ãå¢ãããããããšã§ã仿§ã«å·®ãåºããããã®çµæææ»ããèµ·ãããšããããšãå¢ãå§ããŠããŸããã ãããã課é¡ã解決ããããã«å®è·µããæ§ã
ãªæœçã®äžãããç¹ã«æå¹ã ã£ã 3 ã€ã®æ¹åçã«ã€ããŠã仿¥ã¯ã玹ä»ããŸãã èæ¯ CLINICS ã®éçºããŒã ã§ã¯ 5 人ã»ã©ã®ãšã³ãžãã¢ãã¿ã¹ã¯åäœã§å
šãŠã®ãã©ãããã©ãŒã ãå®è£
ãããã倧ããã¿ã¹ã¯ã®å Žåã¯ãã©ãããã©ãŒã æ¯ã«å¥ã®éçºè
ãæ
åœãã圢ã§éçºããŠããŸãã ãã®ãããªåœ¢ã§æ©èœè¿œå ãäžå
·å察å¿ã®éçºãé²ããäžã§ã以äžã®ãããªèª²é¡ããããŸããã ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéã ãªãªãŒã¹çŽåã«ä»æ§ã®éããèŠã€ãããææ»ããçºçãã åãã©ãããã©ãŒã ã«å¯Ÿããç¿ç床ã«ãã©ã€ãããããããéçºè
ã«ãã£ãŠå®è£
æ¹æ³ãéã ç¹ã«ãã©ãããã©ãŒã æ¯ã«éçºè
ãã»ãŒåºå®ãããŠããŸã£ãŠããææã«ã¯ãã³ãŒãã¬ãã¥ãŒã¯ããŠããŠã埮åŠãªéãã«æ°ã¥ããªãã£ãããåã UI ã«ããã®ã«å®è£
ã³ã¹ããé«ããŠããããããããšããããšãèµ·ãããã¡ã§ããã** ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéããšãŠãŒã¶äœéšã®è³ªããã©ãããã©ãŒã ã«ãã£ãŠãã©ã€ããŠããŸããŸããããã¶ã€ã³ãäŒç»ã®äœæ¥ãå¢ããŠããŸããŸã** ããããã«å ããŠããšã³ãžãã¢ã®äººæ°ãå¢ãããããã¶ã€ããŒãã«ã¹ã¿ããŒãµããŒããªã©ãšã³ãžãã¢ä»¥å€ã®ã¡ã³ããŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãå¢ãããããŠããããšããã£ãŠãéçºã¹ããŒããæ®µã
ãšé
ããªã£ãŠããŠããŸããã ãã®ãããªç¶æ³ãæ¹åããããã«ãããŒã å
ã§ç¶ç¶çã«å®è£
æ¹æ³ãéçºãããŒãèŠçŽããæ¹åçã宿œããŠããŸããã ä»åã¯ä»¥äžã® 3 ã€ã®æ¹åçãã玹ä»ããŸããå
·äœçãªå®è£
ã«ã€ããŠã¯ã䞻㫠iOS ã§äœ¿çšããŠããã³ãŒããåŒçšããŠã玹ä»ããŸããïŒã³ãŒãã®äžéšãæç²ããŠããã®ã§ããã®ãŸãŸã§ã¯äœ¿çšããããšã¯ã§ããŸããããããŸã§ãåèã³ãŒããšããŠèªãã§ãã ãããïŒ DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ã¢ããªãšã©ãŒã®å
±éå ã³ãŒãã¬ãã¥ãŒã®æé æ¹å æ¹åç 1 DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ãŸã㯠DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ã«ã€ããŠã§ããDLS ãšã¯ä»¥åãæ¬ããã°ã§ããã¶ã€ããŒã®åç°ãã玹ä»ãããŠããã ããŸãããïŒ ãã¶ã€ã³èšèªã·ã¹ãã ãå
¥ãããã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ãããã£ãšäžãã£ã話ãã¡ãã¬ãŒ TechLunchã ïŒã** UI ã«äžè²«æ§ããããããããé
è²ãã¬ã€ã¢ãŠããã¿ã€ãã°ã©ãã£ãããŒãžã³ãªã©ã®ã«ãŒã« **ãçå®ããããŒã å
šäœã§ç¶ç¶çã«éçšããŠããããã®ä»çµã¿ã§ããçå®ããã«ãŒã«ãçµã¿èŸŒãã åã³ã³ããŒãã³ãã®ãã¶ã€ã³ãå
ã«ãWeb / iOS / Android ã®åãã©ãããã©ãŒã ã§ UI ãå®è£
ããŠéçºæã«åå©çšã§ããããã«ããŠããŸãããã¶ã€ã³èªäœã¯äžèšã®ãããªåœ¢ã§ Sketch ãã¡ã€ã«ã§ç®¡çããŠããŸãã iOS ã«ã€ããŠã¯åã³ã³ããŒãã³ããã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ãšããŠå®è£
ããåå©çšã§ããããã«ããŸãããDLS å°å
¥ä»¥åã¯ãã©ãããã©ãŒã æ¯ã«éã£ã UI ãã«ãŒã«ã§éçºããŠããã®ã§ãå®è£
段éã§æ
åœããéçºè
æ¯ã®èªèã«ãã£ãŠå質ã仿§ã«å·®ãåºãŠããç¶æ
ã§ãããDLS å°å
¥ã«ãã£ãŠãã®ãããªå·®ãåºã«ãããªããäžå®ã®å質ãä¿ã€ããšãã§ããããã«ãªããŸããã ãŸãã** UI ã®åŸ®èª¿æŽãªã©ãæžã£ãŠãæ©èœããžãã¯ã«éç¹ã眮ããéçºã«å°å¿µã§ããããã«ãªããããã«ãã¶ã€ããŒãšã®èªèåãããæå°éã«ãªã£ãããšã«ããéçºå¹çãäžãã£ã **ãšæããŠããŸããUI ã®åºç€ãã€ãã£ãããšã§æ°ããç»é¢ãéçºããå Žåã§ãã³ã³ããŒãã³ããçµã¿åããããšã³ãžãã¢ã ãã§å®è£
ãå®äºããããšãå€ããªãããã®åãã¶ã€ããŒã¯æ¬¡ã®æœçããããžã§ã¯ãã«å°å¿µã§ããããã«ãªããŸããã å®è£
ã«ã€ããŠã§ãããåã³ã³ããŒãã³ãæ¯ã« xib ãã¡ã€ã«ã§ UI ããŒããäœæãããããã¯ã©ã¹ãã¡ã€ã«ã§èªã¿èŸŒãã§ã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ã®èŠãç®ãšããŠäœ¿ã£ãŠããŸããã«ã¹ã¿ã ãã¥ãŒã¯åå©çšãããããå©çšæã«ãã©ãããåºã«ããããã«ä»¥äžã®ç¹ãæºããããã«å®è£
ããŸããã Interface Builder/ã³ãŒãã®ã©ã¡ãããã§ãåæåã§ãã ãã«ãããåã« Storyboard äžã§ UI ããŒãã®ãã¶ã€ã³ã確èªã§ããããã« IBDesignable ãš IBInspectable ãæå®ãã ã«ã¹ã¿ã ãã¥ãŒã®äžã§ UI èŠçŽ ã®ããŒãžã³ãé«ããæå®ãã äŸãã°ãã»ã¬ã¯ããã©ãŒã ã³ã³ããŒãã³ãã®ã«ã¹ã¿ã ãã¥ãŒã¯ä»¥äžã®ãããªå®è£
ã«ãªã£ãŠããŸãã xib ãã¡ã€ã« ã¯ã©ã¹ãã¡ã€ã« import UIKit protocol ClinicsFormSelectDelegate : class { func didClickFormSelect ( sender : ClinicsFormSelect) } @IBDesignable class ClinicsFormSelect : UIView { @IBOutlet weak var selectView: SelectView! @IBInspectable var labelText: String = "Form-parts" { didSet { selectView. labelText = labelText } } weak var delegate: ClinicsFormSelectDelegate? // ã³ãŒãããåæåããå Žåã«åŒã°ãã override init ( frame : CGRect) { super . init ( frame : frame) commonInit () } // Interface Builder ããåæåããå Žåã«åŒã°ãã required init? ( coder aDecoder : NSCoder) { super . init ( coder : aDecoder) commonInit () } private func commonInit () { // xib ãã¡ã€ã«ã®èªã¿èŸŒã¿ let bundle = Bundle ( for : type ( of : self )) let view = UINib ( nibName : "ClinicsFormSelect" , bundle : bundle). instantiate ( withOwner : self , options : nil ). first as! UIView addSubview (view) backgroundColor = . clear view. backgroundColor = . clear // èªã¿èŸŒãã View ã®ãµã€ãºãã«ã¹ã¿ã ã¯ã©ã¹ïŒClinicsFormSelectïŒãšåããµã€ãºã«ãªãããã« Constraint ãèšå®ãã view. translatesAutoresizingMaskIntoConstraints = false let bindings = [ "view" : view] addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "H:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "V:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) } // xib ãã¡ã€ã«ã®äžã«é
眮ãã UI èŠçŽ ãžã®ã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã° @IBAction func didTap ( _ sender : UITapGestureRecognizer) { delegate?. didClickFormSelect ( sender : self ) } } CLINICS ã§ã¯äž»ã« Storyboard ã䜿ã£ãŠ UI ãå®è£
ããŠããã®ã§ã䜿çšãããšã㯠Storyboard ã« UIView ã眮ããã³ã³ããŒãã³ãã®ã¯ã©ã¹åãæå®ããŠäœ¿ããŸããããã¹ããªã©ã®ããããã£ãèšå®ããConstraint ãæå®ããŠé
眮ããã°å®äºã§ãããŠãŒã¶ã«ããã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã°ãåçã«ããããã£ãåãæ¿ããå¿
èŠãããå Žåã¯ãåŒã³åºãåŽã§åŠçã远å ããŸãã æçµçã«ãã«ããããšä»¥äžã®ããã«è¡šç€ºãããŸããïŒè¡šç€ºãããŠããå
容ã¯éçºäžã«äœæããä»®ã®ããŒã¿ã§å®éã®ãã®ãšã¯ç°ãªããŸããïŒ æ¹åç 2 ã¢ããªãšã©ãŒã®å
±éå 以åã¯æ¥åçã«éèŠãªåŠçã®ãšã©ãŒä»¥å€ã¯ãã©ãããã©ãŒã æ¯ã§è¡šç€ºãããšã©ãŒã¡ãã»ãŒãžãç°ãªã£ãŠãããããšã©ãŒãã³ããªã³ã°æã«éã£ãæåãããŠããããšããããŸããããã®çµæããŠãŒã¶äœéšãäžè²«ãããã®ã«ãªã£ãŠããªããšããã ãã§ãªãããåãåããããã£ãŠãã«ã¹ã¿ããŒãµããŒããäžæ¬¡åçãã«ããã£ãããäŒããããå
å®¹ãææ§ãªããéçºè
ã調æ»ããã®ã«æéãããã£ããããããšããããŸããã ããã§ãæ¹ããŠããã³ãåŽã§çºçãããšã©ãŒã®å®çŸ©ãå
±éåãããšã©ãŒã¡ãã»ãŒãžããšã©ãŒãã³ããªã³ã°æã®åŠçãçµ±äžããŸããã** åãåããã®å¹çåã®ããã«å
±éã®ãšã©ãŒã³ãŒããæ±ºããŠããšã©ãŒçºçæã«è¡šç€ºãããã¢ã©ãŒãã«è¿œå ãããããã®ãšã©ãŒå®çŸ©ã¯ããã¥ã¡ã³ãã§äžèЧåããŠãã«ã¹ã¿ããŒãµããŒãã«ãå
±æ **ããããã«ããŸããã ãŸãããšã©ãŒãã³ããªã³ã°æã«ã¯ã©ãã·ã¥ã¬ããŒãã®ãã°ã«èšé²ããå
容ãéä¿¡ããã¿ã€ãã³ã°ãçµ±äžããŠãéçºè
å
šå¡ãçè§£ããããããã«ããŸããããšã©ãŒã³ãŒãã®è¡šç€ºã«ã€ããŠã¯ãæ¹åãæ€èšããŠããææã«ã¡ããã©åå ããŠãã iOSDC Japan 2017 ã§ãåããããªèª²é¡ã«å¯Ÿããç¥èŠã çºè¡š ãããŠããã®ãèŠãŠãæ©éåãå
¥ããŸãããæè¿ã§ã¯ãŠãŒã¶ããã®åãåããã«ããšã©ãŒã³ãŒãã䜿ãããããšããããå®éã«ã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ããäœäžãããããšãã§ããŠããããã«æããŸãã ãšã©ãŒã®ãã£ãŒãããã¯ã¯çްãããšããã§ã¯ãããŸããããŠãŒã¶ã®ã¢ã¯ã·ã§ã³ãç¶ç¶ãããããã«éèŠãªèŠçŽ ã®ã²ãšã€ã§ããCLINICS ã¯ãŠãŒã¶å±æ§ãèè¥ç·å¥³åããå¹
åºãã®ã§ç¹ã«æ°ãé
ã£ãŠæ¹åãè¡ã£ãŠããŸããã å®è£
ã«ã€ããŠã§ãããiOS ã§ã¯ä»¥äžã®ããã«å®çŸ©ããŠããŸãã enum ApplicationError : Error { case commonRequestError ( String ) case createReservationCardError case createReservationScheduleIsFullError ~ var errorCode: String { switch self { case let . commonRequestError (viewId): return " \( viewId ) -0000" case . createReservationCardError : return "40-0001" case . createReservationScheduleIsFullError : return "40-0002" ~ var title: String { switch self { case . commonRequestError : return "æ¥ç¶ãšã©ãŒ" case . createReservationCardError : return "決æžå€±æãšã©ãŒ" ~ var description: String { switch self { case . commonRequestError : return "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" case . createReservationCardError : return "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ~ Android ã§ãåæ§ã« enum ã§å®çŸ©ããŠããŸãã enum class ApplicationError ( var code: String , val title: String , val description: String ) { CommonRequestError ( "0000" , "æ¥ç¶ãšã©ãŒ" , "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" ), CreateReservationCardError ( "40-0001" , "決æžå€±æãšã©ãŒ" , "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ), CreateReservationScheduleIsFullError ( "40-0002" , "ã¹ã±ãžã¥ãŒã«ç©ºããªããšã©ãŒ" , "éžæãããäºçŽæ¥æã®ã¹ã±ãžã¥ãŒã«ã«ç©ºãããããŸããã§ããã \n ããããããŸãããå¥ã®äºçŽæ¥æããéžæã®ãããããäžåºŠæåããæäœãã ããã" ), ~ æ¹åç 3 ã³ãŒãã¬ãã¥ãŒã®æé æ¹å ãªãªãŒã¹åœåããå®è£
è
以å€ã®ã¡ã³ããŒã«ããã¬ãã¥ãŒã¯é©å®è¡ãªã£ãŠããŸããããã¬ãã¥ãŒã®æ®µéã§ãã°ã¬ã仿§ã®éããèŠéããŠããŸãããšããã£ãã®ã§ãã¬ãã¥ãŒäœå¶ã®åŒ·åãšã¡ã³ããŒã®ãœãŒã¹çè§£ã®åäžãå³ãããã«ã以äžã®ããã«ã«ãŒã«ãèšå®ããŸããã ã»ã«ãããŒãžã¯ããªã PR ã«å¯Ÿã㊠2 人以äžã§ã¬ãã¥ãŒãã ãã¥ãŒã®å€æŽããã£ãå Žåã«ã¯ç»é¢ãã£ããã£ã貌ã ããããå®ãããããããå¹ççã«ããããã« Danger ãå°å
¥ããŸããã å°å
¥æé 㯠ãã¡ã ã«ãŸãšããããŠããã»ããæ€çŽ¢ããã°ãã£ããåºãŠããã®ã§çç¥ããŸããåŒç€Ÿã§ã¯ iOS ã® CI 㯠Bitrise ã䜿çšããŠããã®ã§ Bitrise äžã§å®è¡ã㊠GitHub ã® PR ã«åæ ãããŠããŸãã Danger ã§ã¯ã以äžã®é
ç®ããã§ãã¯ããŠããŸããäžèšã®ã«ãŒã«ãåæ ããŠããã®ã«å ããŠãPR ã®åãå
ãš SwiftLint ã®å®è¡çµæããã§ãã¯ããŠããŸããCLINICS ã® iOS ã¢ããªã§ã¯ GitFlow ãå°å
¥ããŠãããããrelease ãã©ã³ããš hot-fix ãã©ã³ã以å€ããã® PR ã®åãå
ã develop ãã©ã³ãã«ãªã£ãŠããªãå Žåã«ã¯èŠåãåºãããã«ããŠããŸãã ã¬ãã¥ã¢ãŒã®äººæ°ã 2 人以äžã«ãªã£ãŠããã ãã¥ãŒã®å€æŽïŒxibãstoryboard ãè§Šã£ããã©ããã®ã¿ç¢ºèªïŒããã£ãå Žåã«ç»é¢ãã£ããã£ã貌ã£ãŠãããã©ãã PR ã develop ã«åããŠäœæãããŠããã SwiftLint ã®ãã§ãã¯ãéã£ãŠããã åŒç€Ÿã iOS éçºã§å©çšããŠãã Danger ãã¡ã€ã«ã¯ä»¥äžã®éããšãªã£ãŠããŸããå°å
¥ããéã®ãåèã«ããŠãã ããã # for only difference github. dismiss_out_of_range_messages # reviewers warn ( "ã¬ãã¥ã¢ãŒã¯ 2 äººä»¥äžæå®ããŠãã ãã" ) if github. github . pr_json [ "requested_reviewers" ]. length < 2 # view changes view_extensions = [ ".xib" , ".storyboard" ] has_view_changes = git. modified_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} has_view_added = git. added_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} pr_has_screenshot = github. pr_body =~ /https?: \/\/\S * \. (png|jpg|jpeg|gif){1}/ warn ( "èŠãç®ã«å€æŽãããå Žåã¯ç»é¢ãã£ããã£ã貌ã£ãŠãã ãã" ) if (has_view_changes or has_view_added) and !pr_has_screenshot # base branch is_to_master = github. branch_for_base == 'master' is_to_develop = github. branch_for_base == 'develop' is_from_releases = !!github. branch_for_head . match ( /releases \/ [0-9]+ \. [0-9]+ \. [0-9]/ ) warn ( 'PR 㯠develop ã«åããŠãã ãã' ) if !is_to_develop and !(is_from_releases and is_to_master) # swiftLint swiftlint. lint_files inline_mode: true ãŸãšã CLINICS ã«ãããã¢ããªéçºã®å質ãšå¹çæ§ãåäžããããã®åãçµã¿ãã玹ä»ããŸããããããã®åãçµã¿ã«ãã£ãŠ ãã©ãããã©ãŒã æ¯ã®ãã¶ã€ã³ãæ©èœã®ãã¬ãå°ãªããªããèªèããã«ããææ»ããªã©ãå°ãªããªã£ãããšã§éçºå¹çãäžãã£ã ãšæããŸãããã©ãããã©ãŒã æ¯ã®éããå°ãªãããŠãããå€ãã®ã¡ã³ããŒãã³ãŒãã«æãå
¥ããããç¶æ
ã«ããããšã§å®è£
ãã³ãŒãã¬ãã¥ãŒã®è³ªãåäžããŠããããã«æããŸãã React Native ãªã©ãå©çšããŠãã³ãŒããã®ãã®ãå
±éåããæ¹æ³ããããšã¯æããŸããããã©ãããã©ãŒã æ¯ã«å¥ã®ã³ãŒãã§éçºããå Žåã§ãã仿§ãå®è£
ã®ã«ãŒã«ã工倫ããããšã§ããå¹ççã«éçºã§ããã®ã§ã¯ãªãã§ããããã CLINICS ããŒã ã§ã¯ä»ã«ãå®è£
ãéçºããã»ã¹ããããã¯ãéçšã«ã€ããŠæ¥ã
æ¹åãè¡ãªã£ãŠããŸããä»åŸããããããåãçµã¿ãç©æ¥µçã«å®è·µããKPT 圢åŒã§æ¯ãè¿ã£ãŠããŸã次ã®ã¢ã¯ã·ã§ã³ã«ã€ãªããããšã§ãå€ãã®æ¹ã«æããããããã¯ããè²ãŠãŠãããããšæã£ãŠããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ããã¶ã€ããŒãåéããŠããŸãããèå³ã®ããæ¹ã¯ããã¡ãããã©ããïŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®é«äºã§ãããªã³ã©ã€ã³èšºçã¢ããªã CLINICS ãã®ã¢ããªéçºãäž»ã«æ
åœããŠããŸãã CLINICS ã§ã¯ Web ã«å ããŠãiOS çãš Android çã®åãã©ãããã©ãŒã ã®ä»æ§å€æŽãæ©èœè¿œå ãªã©ãã»ãŒåæã«éçºããŠããã®ã§ãããæ
åœãã人æ°ãå¢ãããããããšã§ã仿§ã«å·®ãåºããããã®çµæææ»ããèµ·ãããšããããšãå¢ãå§ããŠããŸããã ãããã課é¡ã解決ããããã«å®è·µããæ§ã
ãªæœçã®äžãããç¹ã«æå¹ã ã£ã 3 ã€ã®æ¹åçã«ã€ããŠã仿¥ã¯ã玹ä»ããŸãã èæ¯ CLINICS ã®éçºããŒã ã§ã¯ 5 人ã»ã©ã®ãšã³ãžãã¢ãã¿ã¹ã¯åäœã§å
šãŠã®ãã©ãããã©ãŒã ãå®è£
ãããã倧ããã¿ã¹ã¯ã®å Žåã¯ãã©ãããã©ãŒã æ¯ã«å¥ã®éçºè
ãæ
åœãã圢ã§éçºããŠããŸãã ãã®ãããªåœ¢ã§æ©èœè¿œå ãäžå
·å察å¿ã®éçºãé²ããäžã§ã以äžã®ãããªèª²é¡ããããŸããã ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéã ãªãªãŒã¹çŽåã«ä»æ§ã®éããèŠã€ãããææ»ããçºçãã åãã©ãããã©ãŒã ã«å¯Ÿããç¿ç床ã«ãã©ã€ãããããããéçºè
ã«ãã£ãŠå®è£
æ¹æ³ãéã ç¹ã«ãã©ãããã©ãŒã æ¯ã«éçºè
ãã»ãŒåºå®ãããŠããŸã£ãŠããææã«ã¯ãã³ãŒãã¬ãã¥ãŒã¯ããŠããŠã埮åŠãªéãã«æ°ã¥ããªãã£ãããåã UI ã«ããã®ã«å®è£
ã³ã¹ããé«ããŠããããããããšããããšãèµ·ãããã¡ã§ããã** ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéããšãŠãŒã¶äœéšã®è³ªããã©ãããã©ãŒã ã«ãã£ãŠãã©ã€ããŠããŸããŸããããã¶ã€ã³ãäŒç»ã®äœæ¥ãå¢ããŠããŸããŸã** ããããã«å ããŠããšã³ãžãã¢ã®äººæ°ãå¢ãããããã¶ã€ããŒãã«ã¹ã¿ããŒãµããŒããªã©ãšã³ãžãã¢ä»¥å€ã®ã¡ã³ããŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãå¢ãããããŠããããšããã£ãŠãéçºã¹ããŒããæ®µã
ãšé
ããªã£ãŠããŠããŸããã ãã®ãããªç¶æ³ãæ¹åããããã«ãããŒã å
ã§ç¶ç¶çã«å®è£
æ¹æ³ãéçºãããŒãèŠçŽããæ¹åçã宿œããŠããŸããã ä»åã¯ä»¥äžã® 3 ã€ã®æ¹åçãã玹ä»ããŸããå
·äœçãªå®è£
ã«ã€ããŠã¯ã䞻㫠iOS ã§äœ¿çšããŠããã³ãŒããåŒçšããŠã玹ä»ããŸããïŒã³ãŒãã®äžéšãæç²ããŠããã®ã§ããã®ãŸãŸã§ã¯äœ¿çšããããšã¯ã§ããŸããããããŸã§ãåèã³ãŒããšããŠèªãã§ãã ãããïŒ DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ã¢ããªãšã©ãŒã®å
±éå ã³ãŒãã¬ãã¥ãŒã®æé æ¹å æ¹åç 1 DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ãŸã㯠DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ã«ã€ããŠã§ããDLS ãšã¯ä»¥åãæ¬ããã°ã§ããã¶ã€ããŒã®åç°ãã玹ä»ãããŠããã ããŸãããïŒ ãã¶ã€ã³èšèªã·ã¹ãã ãå
¥ãããã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ãããã£ãšäžãã£ã話ãã¡ãã¬ãŒ TechLunchã ïŒã** UI ã«äžè²«æ§ããããããããé
è²ãã¬ã€ã¢ãŠããã¿ã€ãã°ã©ãã£ãããŒãžã³ãªã©ã®ã«ãŒã« **ãçå®ããããŒã å
šäœã§ç¶ç¶çã«éçšããŠããããã®ä»çµã¿ã§ããçå®ããã«ãŒã«ãçµã¿èŸŒãã åã³ã³ããŒãã³ãã®ãã¶ã€ã³ãå
ã«ãWeb / iOS / Android ã®åãã©ãããã©ãŒã ã§ UI ãå®è£
ããŠéçºæã«åå©çšã§ããããã«ããŠããŸãããã¶ã€ã³èªäœã¯äžèšã®ãããªåœ¢ã§ Sketch ãã¡ã€ã«ã§ç®¡çããŠããŸãã iOS ã«ã€ããŠã¯åã³ã³ããŒãã³ããã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ãšããŠå®è£
ããåå©çšã§ããããã«ããŸãããDLS å°å
¥ä»¥åã¯ãã©ãããã©ãŒã æ¯ã«éã£ã UI ãã«ãŒã«ã§éçºããŠããã®ã§ãå®è£
段éã§æ
åœããéçºè
æ¯ã®èªèã«ãã£ãŠå質ã仿§ã«å·®ãåºãŠããç¶æ
ã§ãããDLS å°å
¥ã«ãã£ãŠãã®ãããªå·®ãåºã«ãããªããäžå®ã®å質ãä¿ã€ããšãã§ããããã«ãªããŸããã ãŸãã** UI ã®åŸ®èª¿æŽãªã©ãæžã£ãŠãæ©èœããžãã¯ã«éç¹ã眮ããéçºã«å°å¿µã§ããããã«ãªããããã«ãã¶ã€ããŒãšã®èªèåãããæå°éã«ãªã£ãããšã«ããéçºå¹çãäžãã£ã **ãšæããŠããŸããUI ã®åºç€ãã€ãã£ãããšã§æ°ããç»é¢ãéçºããå Žåã§ãã³ã³ããŒãã³ããçµã¿åããããšã³ãžãã¢ã ãã§å®è£
ãå®äºããããšãå€ããªãããã®åãã¶ã€ããŒã¯æ¬¡ã®æœçããããžã§ã¯ãã«å°å¿µã§ããããã«ãªããŸããã å®è£
ã«ã€ããŠã§ãããåã³ã³ããŒãã³ãæ¯ã« xib ãã¡ã€ã«ã§ UI ããŒããäœæãããããã¯ã©ã¹ãã¡ã€ã«ã§èªã¿èŸŒãã§ã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ã®èŠãç®ãšããŠäœ¿ã£ãŠããŸããã«ã¹ã¿ã ãã¥ãŒã¯åå©çšãããããå©çšæã«ãã©ãããåºã«ããããã«ä»¥äžã®ç¹ãæºããããã«å®è£
ããŸããã Interface Builder/ã³ãŒãã®ã©ã¡ãããã§ãåæåã§ãã ãã«ãããåã« Storyboard äžã§ UI ããŒãã®ãã¶ã€ã³ã確èªã§ããããã« IBDesignable ãš IBInspectable ãæå®ãã ã«ã¹ã¿ã ãã¥ãŒã®äžã§ UI èŠçŽ ã®ããŒãžã³ãé«ããæå®ãã äŸãã°ãã»ã¬ã¯ããã©ãŒã ã³ã³ããŒãã³ãã®ã«ã¹ã¿ã ãã¥ãŒã¯ä»¥äžã®ãããªå®è£
ã«ãªã£ãŠããŸãã xib ãã¡ã€ã« ã¯ã©ã¹ãã¡ã€ã« import UIKit protocol ClinicsFormSelectDelegate : class { func didClickFormSelect ( sender : ClinicsFormSelect) } @IBDesignable class ClinicsFormSelect : UIView { @IBOutlet weak var selectView: SelectView! @IBInspectable var labelText: String = "Form-parts" { didSet { selectView. labelText = labelText } } weak var delegate: ClinicsFormSelectDelegate? // ã³ãŒãããåæåããå Žåã«åŒã°ãã override init ( frame : CGRect) { super . init ( frame : frame) commonInit () } // Interface Builder ããåæåããå Žåã«åŒã°ãã required init? ( coder aDecoder : NSCoder) { super . init ( coder : aDecoder) commonInit () } private func commonInit () { // xib ãã¡ã€ã«ã®èªã¿èŸŒã¿ let bundle = Bundle ( for : type ( of : self )) let view = UINib ( nibName : "ClinicsFormSelect" , bundle : bundle). instantiate ( withOwner : self , options : nil ). first as! UIView addSubview (view) backgroundColor = . clear view. backgroundColor = . clear // èªã¿èŸŒãã View ã®ãµã€ãºãã«ã¹ã¿ã ã¯ã©ã¹ïŒClinicsFormSelectïŒãšåããµã€ãºã«ãªãããã« Constraint ãèšå®ãã view. translatesAutoresizingMaskIntoConstraints = false let bindings = [ "view" : view] addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "H:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "V:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) } // xib ãã¡ã€ã«ã®äžã«é
眮ãã UI èŠçŽ ãžã®ã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã° @IBAction func didTap ( _ sender : UITapGestureRecognizer) { delegate?. didClickFormSelect ( sender : self ) } } CLINICS ã§ã¯äž»ã« Storyboard ã䜿ã£ãŠ UI ãå®è£
ããŠããã®ã§ã䜿çšãããšã㯠Storyboard ã« UIView ã眮ããã³ã³ããŒãã³ãã®ã¯ã©ã¹åãæå®ããŠäœ¿ããŸããããã¹ããªã©ã®ããããã£ãèšå®ããConstraint ãæå®ããŠé
眮ããã°å®äºã§ãããŠãŒã¶ã«ããã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã°ãåçã«ããããã£ãåãæ¿ããå¿
èŠãããå Žåã¯ãåŒã³åºãåŽã§åŠçã远å ããŸãã æçµçã«ãã«ããããšä»¥äžã®ããã«è¡šç€ºãããŸããïŒè¡šç€ºãããŠããå
容ã¯éçºäžã«äœæããä»®ã®ããŒã¿ã§å®éã®ãã®ãšã¯ç°ãªããŸããïŒ æ¹åç 2 ã¢ããªãšã©ãŒã®å
±éå 以åã¯æ¥åçã«éèŠãªåŠçã®ãšã©ãŒä»¥å€ã¯ãã©ãããã©ãŒã æ¯ã§è¡šç€ºãããšã©ãŒã¡ãã»ãŒãžãç°ãªã£ãŠãããããšã©ãŒãã³ããªã³ã°æã«éã£ãæåãããŠããããšããããŸããããã®çµæããŠãŒã¶äœéšãäžè²«ãããã®ã«ãªã£ãŠããªããšããã ãã§ãªãããåãåããããã£ãŠãã«ã¹ã¿ããŒãµããŒããäžæ¬¡åçãã«ããã£ãããäŒããããå
å®¹ãææ§ãªããéçºè
ã調æ»ããã®ã«æéãããã£ããããããšããããŸããã ããã§ãæ¹ããŠããã³ãåŽã§çºçãããšã©ãŒã®å®çŸ©ãå
±éåãããšã©ãŒã¡ãã»ãŒãžããšã©ãŒãã³ããªã³ã°æã®åŠçãçµ±äžããŸããã** åãåããã®å¹çåã®ããã«å
±éã®ãšã©ãŒã³ãŒããæ±ºããŠããšã©ãŒçºçæã«è¡šç€ºãããã¢ã©ãŒãã«è¿œå ãããããã®ãšã©ãŒå®çŸ©ã¯ããã¥ã¡ã³ãã§äžèЧåããŠãã«ã¹ã¿ããŒãµããŒãã«ãå
±æ **ããããã«ããŸããã ãŸãããšã©ãŒãã³ããªã³ã°æã«ã¯ã©ãã·ã¥ã¬ããŒãã®ãã°ã«èšé²ããå
容ãéä¿¡ããã¿ã€ãã³ã°ãçµ±äžããŠãéçºè
å
šå¡ãçè§£ããããããã«ããŸããããšã©ãŒã³ãŒãã®è¡šç€ºã«ã€ããŠã¯ãæ¹åãæ€èšããŠããææã«ã¡ããã©åå ããŠãã iOSDC Japan 2017 ã§ãåããããªèª²é¡ã«å¯Ÿããç¥èŠã çºè¡š ãããŠããã®ãèŠãŠãæ©éåãå
¥ããŸãããæè¿ã§ã¯ãŠãŒã¶ããã®åãåããã«ããšã©ãŒã³ãŒãã䜿ãããããšããããå®éã«ã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ããäœäžãããããšãã§ããŠããããã«æããŸãã ãšã©ãŒã®ãã£ãŒãããã¯ã¯çްãããšããã§ã¯ãããŸããããŠãŒã¶ã®ã¢ã¯ã·ã§ã³ãç¶ç¶ãããããã«éèŠãªèŠçŽ ã®ã²ãšã€ã§ããCLINICS ã¯ãŠãŒã¶å±æ§ãèè¥ç·å¥³åããå¹
åºãã®ã§ç¹ã«æ°ãé
ã£ãŠæ¹åãè¡ã£ãŠããŸããã å®è£
ã«ã€ããŠã§ãããiOS ã§ã¯ä»¥äžã®ããã«å®çŸ©ããŠããŸãã enum ApplicationError : Error { case commonRequestError ( String ) case createReservationCardError case createReservationScheduleIsFullError ~ var errorCode: String { switch self { case let . commonRequestError (viewId): return " \( viewId ) -0000" case . createReservationCardError : return "40-0001" case . createReservationScheduleIsFullError : return "40-0002" ~ var title: String { switch self { case . commonRequestError : return "æ¥ç¶ãšã©ãŒ" case . createReservationCardError : return "決æžå€±æãšã©ãŒ" ~ var description: String { switch self { case . commonRequestError : return "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" case . createReservationCardError : return "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ~ Android ã§ãåæ§ã« enum ã§å®çŸ©ããŠããŸãã enum class ApplicationError ( var code: String , val title: String , val description: String ) { CommonRequestError ( "0000" , "æ¥ç¶ãšã©ãŒ" , "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" ), CreateReservationCardError ( "40-0001" , "決æžå€±æãšã©ãŒ" , "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ), CreateReservationScheduleIsFullError ( "40-0002" , "ã¹ã±ãžã¥ãŒã«ç©ºããªããšã©ãŒ" , "éžæãããäºçŽæ¥æã®ã¹ã±ãžã¥ãŒã«ã«ç©ºãããããŸããã§ããã \n ããããããŸãããå¥ã®äºçŽæ¥æããéžæã®ãããããäžåºŠæåããæäœãã ããã" ), ~ æ¹åç 3 ã³ãŒãã¬ãã¥ãŒã®æé æ¹å ãªãªãŒã¹åœåããå®è£
è
以å€ã®ã¡ã³ããŒã«ããã¬ãã¥ãŒã¯é©å®è¡ãªã£ãŠããŸããããã¬ãã¥ãŒã®æ®µéã§ãã°ã¬ã仿§ã®éããèŠéããŠããŸãããšããã£ãã®ã§ãã¬ãã¥ãŒäœå¶ã®åŒ·åãšã¡ã³ããŒã®ãœãŒã¹çè§£ã®åäžãå³ãããã«ã以äžã®ããã«ã«ãŒã«ãèšå®ããŸããã ã»ã«ãããŒãžã¯ããªã PR ã«å¯Ÿã㊠2 人以äžã§ã¬ãã¥ãŒãã ãã¥ãŒã®å€æŽããã£ãå Žåã«ã¯ç»é¢ãã£ããã£ã貌ã ããããå®ãããããããå¹ççã«ããããã« Danger ãå°å
¥ããŸããã å°å
¥æé 㯠ãã¡ã ã«ãŸãšããããŠããã»ããæ€çŽ¢ããã°ãã£ããåºãŠããã®ã§çç¥ããŸããåŒç€Ÿã§ã¯ iOS ã® CI 㯠Bitrise ã䜿çšããŠããã®ã§ Bitrise äžã§å®è¡ã㊠GitHub ã® PR ã«åæ ãããŠããŸãã Danger ã§ã¯ã以äžã®é
ç®ããã§ãã¯ããŠããŸããäžèšã®ã«ãŒã«ãåæ ããŠããã®ã«å ããŠãPR ã®åãå
ãš SwiftLint ã®å®è¡çµæããã§ãã¯ããŠããŸããCLINICS ã® iOS ã¢ããªã§ã¯ GitFlow ãå°å
¥ããŠãããããrelease ãã©ã³ããš hot-fix ãã©ã³ã以å€ããã® PR ã®åãå
ã develop ãã©ã³ãã«ãªã£ãŠããªãå Žåã«ã¯èŠåãåºãããã«ããŠããŸãã ã¬ãã¥ã¢ãŒã®äººæ°ã 2 人以äžã«ãªã£ãŠããã ãã¥ãŒã®å€æŽïŒxibãstoryboard ãè§Šã£ããã©ããã®ã¿ç¢ºèªïŒããã£ãå Žåã«ç»é¢ãã£ããã£ã貌ã£ãŠãããã©ãã PR ã develop ã«åããŠäœæãããŠããã SwiftLint ã®ãã§ãã¯ãéã£ãŠããã åŒç€Ÿã iOS éçºã§å©çšããŠãã Danger ãã¡ã€ã«ã¯ä»¥äžã®éããšãªã£ãŠããŸããå°å
¥ããéã®ãåèã«ããŠãã ããã # for only difference github. dismiss_out_of_range_messages # reviewers warn ( "ã¬ãã¥ã¢ãŒã¯ 2 äººä»¥äžæå®ããŠãã ãã" ) if github. github . pr_json [ "requested_reviewers" ]. length < 2 # view changes view_extensions = [ ".xib" , ".storyboard" ] has_view_changes = git. modified_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} has_view_added = git. added_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} pr_has_screenshot = github. pr_body =~ /https?: \/\/\S * \. (png|jpg|jpeg|gif){1}/ warn ( "èŠãç®ã«å€æŽãããå Žåã¯ç»é¢ãã£ããã£ã貌ã£ãŠãã ãã" ) if (has_view_changes or has_view_added) and !pr_has_screenshot # base branch is_to_master = github. branch_for_base == 'master' is_to_develop = github. branch_for_base == 'develop' is_from_releases = !!github. branch_for_head . match ( /releases \/ [0-9]+ \. [0-9]+ \. [0-9]/ ) warn ( 'PR 㯠develop ã«åããŠãã ãã' ) if !is_to_develop and !(is_from_releases and is_to_master) # swiftLint swiftlint. lint_files inline_mode: true ãŸãšã CLINICS ã«ãããã¢ããªéçºã®å質ãšå¹çæ§ãåäžããããã®åãçµã¿ãã玹ä»ããŸããããããã®åãçµã¿ã«ãã£ãŠ ãã©ãããã©ãŒã æ¯ã®ãã¶ã€ã³ãæ©èœã®ãã¬ãå°ãªããªããèªèããã«ããææ»ããªã©ãå°ãªããªã£ãããšã§éçºå¹çãäžãã£ã ãšæããŸãããã©ãããã©ãŒã æ¯ã®éããå°ãªãããŠãããå€ãã®ã¡ã³ããŒãã³ãŒãã«æãå
¥ããããç¶æ
ã«ããããšã§å®è£
ãã³ãŒãã¬ãã¥ãŒã®è³ªãåäžããŠããããã«æããŸãã React Native ãªã©ãå©çšããŠãã³ãŒããã®ãã®ãå
±éåããæ¹æ³ããããšã¯æããŸããããã©ãããã©ãŒã æ¯ã«å¥ã®ã³ãŒãã§éçºããå Žåã§ãã仿§ãå®è£
ã®ã«ãŒã«ã工倫ããããšã§ããå¹ççã«éçºã§ããã®ã§ã¯ãªãã§ããããã CLINICS ããŒã ã§ã¯ä»ã«ãå®è£
ãéçºããã»ã¹ããããã¯ãéçšã«ã€ããŠæ¥ã
æ¹åãè¡ãªã£ãŠããŸããä»åŸããããããåãçµã¿ãç©æ¥µçã«å®è·µããKPT 圢åŒã§æ¯ãè¿ã£ãŠããŸã次ã®ã¢ã¯ã·ã§ã³ã«ã€ãªããããšã§ãå€ãã®æ¹ã«æããããããã¯ããè²ãŠãŠãããããšæã£ãŠããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ããã¶ã€ããŒãåéããŠããŸãããèå³ã®ããæ¹ã¯ããã¡ãããã©ããïŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®é«äºã§ãããªã³ã©ã€ã³èšºçã¢ããªã CLINICS ãã®ã¢ããªéçºãäž»ã«æ
åœããŠããŸãã CLINICS ã§ã¯ Web ã«å ããŠãiOS çãš Android çã®åãã©ãããã©ãŒã ã®ä»æ§å€æŽãæ©èœè¿œå ãªã©ãã»ãŒåæã«éçºããŠããã®ã§ãããæ
åœãã人æ°ãå¢ãããããããšã§ã仿§ã«å·®ãåºããããã®çµæææ»ããèµ·ãããšããããšãå¢ãå§ããŠããŸããã ãããã課é¡ã解決ããããã«å®è·µããæ§ã
ãªæœçã®äžãããç¹ã«æå¹ã ã£ã 3 ã€ã®æ¹åçã«ã€ããŠã仿¥ã¯ã玹ä»ããŸãã èæ¯ CLINICS ã®éçºããŒã ã§ã¯ 5 人ã»ã©ã®ãšã³ãžãã¢ãã¿ã¹ã¯åäœã§å
šãŠã®ãã©ãããã©ãŒã ãå®è£
ãããã倧ããã¿ã¹ã¯ã®å Žåã¯ãã©ãããã©ãŒã æ¯ã«å¥ã®éçºè
ãæ
åœãã圢ã§éçºããŠããŸãã ãã®ãããªåœ¢ã§æ©èœè¿œå ãäžå
·å察å¿ã®éçºãé²ããäžã§ã以äžã®ãããªèª²é¡ããããŸããã ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéã ãªãªãŒã¹çŽåã«ä»æ§ã®éããèŠã€ãããææ»ããçºçãã åãã©ãããã©ãŒã ã«å¯Ÿããç¿ç床ã«ãã©ã€ãããããããéçºè
ã«ãã£ãŠå®è£
æ¹æ³ãéã ç¹ã«ãã©ãããã©ãŒã æ¯ã«éçºè
ãã»ãŒåºå®ãããŠããŸã£ãŠããææã«ã¯ãã³ãŒãã¬ãã¥ãŒã¯ããŠããŠã埮åŠãªéãã«æ°ã¥ããªãã£ãããåã UI ã«ããã®ã«å®è£
ã³ã¹ããé«ããŠããããããããšããããšãèµ·ãããã¡ã§ããã** ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéããšãŠãŒã¶äœéšã®è³ªããã©ãããã©ãŒã ã«ãã£ãŠãã©ã€ããŠããŸããŸããããã¶ã€ã³ãäŒç»ã®äœæ¥ãå¢ããŠããŸããŸã** ããããã«å ããŠããšã³ãžãã¢ã®äººæ°ãå¢ãããããã¶ã€ããŒãã«ã¹ã¿ããŒãµããŒããªã©ãšã³ãžãã¢ä»¥å€ã®ã¡ã³ããŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãå¢ãããããŠããããšããã£ãŠãéçºã¹ããŒããæ®µã
ãšé
ããªã£ãŠããŠããŸããã ãã®ãããªç¶æ³ãæ¹åããããã«ãããŒã å
ã§ç¶ç¶çã«å®è£
æ¹æ³ãéçºãããŒãèŠçŽããæ¹åçã宿œããŠããŸããã ä»åã¯ä»¥äžã® 3 ã€ã®æ¹åçãã玹ä»ããŸããå
·äœçãªå®è£
ã«ã€ããŠã¯ã䞻㫠iOS ã§äœ¿çšããŠããã³ãŒããåŒçšããŠã玹ä»ããŸããïŒã³ãŒãã®äžéšãæç²ããŠããã®ã§ããã®ãŸãŸã§ã¯äœ¿çšããããšã¯ã§ããŸããããããŸã§ãåèã³ãŒããšããŠèªãã§ãã ãããïŒ DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ã¢ããªãšã©ãŒã®å
±éå ã³ãŒãã¬ãã¥ãŒã®æé æ¹å æ¹åç 1 DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ãŸã㯠DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ã«ã€ããŠã§ããDLS ãšã¯ä»¥åãæ¬ããã°ã§ããã¶ã€ããŒã®åç°ãã玹ä»ãããŠããã ããŸãããïŒ ãã¶ã€ã³èšèªã·ã¹ãã ãå
¥ãããã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ãããã£ãšäžãã£ã話ãã¡ãã¬ãŒ TechLunchã ïŒã** UI ã«äžè²«æ§ããããããããé
è²ãã¬ã€ã¢ãŠããã¿ã€ãã°ã©ãã£ãããŒãžã³ãªã©ã®ã«ãŒã« **ãçå®ããããŒã å
šäœã§ç¶ç¶çã«éçšããŠããããã®ä»çµã¿ã§ããçå®ããã«ãŒã«ãçµã¿èŸŒãã åã³ã³ããŒãã³ãã®ãã¶ã€ã³ãå
ã«ãWeb / iOS / Android ã®åãã©ãããã©ãŒã ã§ UI ãå®è£
ããŠéçºæã«åå©çšã§ããããã«ããŠããŸãããã¶ã€ã³èªäœã¯äžèšã®ãããªåœ¢ã§ Sketch ãã¡ã€ã«ã§ç®¡çããŠããŸãã iOS ã«ã€ããŠã¯åã³ã³ããŒãã³ããã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ãšããŠå®è£
ããåå©çšã§ããããã«ããŸãããDLS å°å
¥ä»¥åã¯ãã©ãããã©ãŒã æ¯ã«éã£ã UI ãã«ãŒã«ã§éçºããŠããã®ã§ãå®è£
段éã§æ
åœããéçºè
æ¯ã®èªèã«ãã£ãŠå質ã仿§ã«å·®ãåºãŠããç¶æ
ã§ãããDLS å°å
¥ã«ãã£ãŠãã®ãããªå·®ãåºã«ãããªããäžå®ã®å質ãä¿ã€ããšãã§ããããã«ãªããŸããã ãŸãã** UI ã®åŸ®èª¿æŽãªã©ãæžã£ãŠãæ©èœããžãã¯ã«éç¹ã眮ããéçºã«å°å¿µã§ããããã«ãªããããã«ãã¶ã€ããŒãšã®èªèåãããæå°éã«ãªã£ãããšã«ããéçºå¹çãäžãã£ã **ãšæããŠããŸããUI ã®åºç€ãã€ãã£ãããšã§æ°ããç»é¢ãéçºããå Žåã§ãã³ã³ããŒãã³ããçµã¿åããããšã³ãžãã¢ã ãã§å®è£
ãå®äºããããšãå€ããªãããã®åãã¶ã€ããŒã¯æ¬¡ã®æœçããããžã§ã¯ãã«å°å¿µã§ããããã«ãªããŸããã å®è£
ã«ã€ããŠã§ãããåã³ã³ããŒãã³ãæ¯ã« xib ãã¡ã€ã«ã§ UI ããŒããäœæãããããã¯ã©ã¹ãã¡ã€ã«ã§èªã¿èŸŒãã§ã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ã®èŠãç®ãšããŠäœ¿ã£ãŠããŸããã«ã¹ã¿ã ãã¥ãŒã¯åå©çšãããããå©çšæã«ãã©ãããåºã«ããããã«ä»¥äžã®ç¹ãæºããããã«å®è£
ããŸããã Interface Builder/ã³ãŒãã®ã©ã¡ãããã§ãåæåã§ãã ãã«ãããåã« Storyboard äžã§ UI ããŒãã®ãã¶ã€ã³ã確èªã§ããããã« IBDesignable ãš IBInspectable ãæå®ãã ã«ã¹ã¿ã ãã¥ãŒã®äžã§ UI èŠçŽ ã®ããŒãžã³ãé«ããæå®ãã äŸãã°ãã»ã¬ã¯ããã©ãŒã ã³ã³ããŒãã³ãã®ã«ã¹ã¿ã ãã¥ãŒã¯ä»¥äžã®ãããªå®è£
ã«ãªã£ãŠããŸãã xib ãã¡ã€ã« ã¯ã©ã¹ãã¡ã€ã« import UIKit protocol ClinicsFormSelectDelegate : class { func didClickFormSelect ( sender : ClinicsFormSelect) } @IBDesignable class ClinicsFormSelect : UIView { @IBOutlet weak var selectView: SelectView! @IBInspectable var labelText: String = "Form-parts" { didSet { selectView. labelText = labelText } } weak var delegate: ClinicsFormSelectDelegate? // ã³ãŒãããåæåããå Žåã«åŒã°ãã override init ( frame : CGRect) { super . init ( frame : frame) commonInit () } // Interface Builder ããåæåããå Žåã«åŒã°ãã required init? ( coder aDecoder : NSCoder) { super . init ( coder : aDecoder) commonInit () } private func commonInit () { // xib ãã¡ã€ã«ã®èªã¿èŸŒã¿ let bundle = Bundle ( for : type ( of : self )) let view = UINib ( nibName : "ClinicsFormSelect" , bundle : bundle). instantiate ( withOwner : self , options : nil ). first as! UIView addSubview (view) backgroundColor = . clear view. backgroundColor = . clear // èªã¿èŸŒãã View ã®ãµã€ãºãã«ã¹ã¿ã ã¯ã©ã¹ïŒClinicsFormSelectïŒãšåããµã€ãºã«ãªãããã« Constraint ãèšå®ãã view. translatesAutoresizingMaskIntoConstraints = false let bindings = [ "view" : view] addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "H:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "V:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) } // xib ãã¡ã€ã«ã®äžã«é
眮ãã UI èŠçŽ ãžã®ã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã° @IBAction func didTap ( _ sender : UITapGestureRecognizer) { delegate?. didClickFormSelect ( sender : self ) } } CLINICS ã§ã¯äž»ã« Storyboard ã䜿ã£ãŠ UI ãå®è£
ããŠããã®ã§ã䜿çšãããšã㯠Storyboard ã« UIView ã眮ããã³ã³ããŒãã³ãã®ã¯ã©ã¹åãæå®ããŠäœ¿ããŸããããã¹ããªã©ã®ããããã£ãèšå®ããConstraint ãæå®ããŠé
眮ããã°å®äºã§ãããŠãŒã¶ã«ããã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã°ãåçã«ããããã£ãåãæ¿ããå¿
èŠãããå Žåã¯ãåŒã³åºãåŽã§åŠçã远å ããŸãã æçµçã«ãã«ããããšä»¥äžã®ããã«è¡šç€ºãããŸããïŒè¡šç€ºãããŠããå
容ã¯éçºäžã«äœæããä»®ã®ããŒã¿ã§å®éã®ãã®ãšã¯ç°ãªããŸããïŒ æ¹åç 2 ã¢ããªãšã©ãŒã®å
±éå 以åã¯æ¥åçã«éèŠãªåŠçã®ãšã©ãŒä»¥å€ã¯ãã©ãããã©ãŒã æ¯ã§è¡šç€ºãããšã©ãŒã¡ãã»ãŒãžãç°ãªã£ãŠãããããšã©ãŒãã³ããªã³ã°æã«éã£ãæåãããŠããããšããããŸããããã®çµæããŠãŒã¶äœéšãäžè²«ãããã®ã«ãªã£ãŠããªããšããã ãã§ãªãããåãåããããã£ãŠãã«ã¹ã¿ããŒãµããŒããäžæ¬¡åçãã«ããã£ãããäŒããããå
å®¹ãææ§ãªããéçºè
ã調æ»ããã®ã«æéãããã£ããããããšããããŸããã ããã§ãæ¹ããŠããã³ãåŽã§çºçãããšã©ãŒã®å®çŸ©ãå
±éåãããšã©ãŒã¡ãã»ãŒãžããšã©ãŒãã³ããªã³ã°æã®åŠçãçµ±äžããŸããã** åãåããã®å¹çåã®ããã«å
±éã®ãšã©ãŒã³ãŒããæ±ºããŠããšã©ãŒçºçæã«è¡šç€ºãããã¢ã©ãŒãã«è¿œå ãããããã®ãšã©ãŒå®çŸ©ã¯ããã¥ã¡ã³ãã§äžèЧåããŠãã«ã¹ã¿ããŒãµããŒãã«ãå
±æ **ããããã«ããŸããã ãŸãããšã©ãŒãã³ããªã³ã°æã«ã¯ã©ãã·ã¥ã¬ããŒãã®ãã°ã«èšé²ããå
容ãéä¿¡ããã¿ã€ãã³ã°ãçµ±äžããŠãéçºè
å
šå¡ãçè§£ããããããã«ããŸããããšã©ãŒã³ãŒãã®è¡šç€ºã«ã€ããŠã¯ãæ¹åãæ€èšããŠããææã«ã¡ããã©åå ããŠãã iOSDC Japan 2017 ã§ãåããããªèª²é¡ã«å¯Ÿããç¥èŠã çºè¡š ãããŠããã®ãèŠãŠãæ©éåãå
¥ããŸãããæè¿ã§ã¯ãŠãŒã¶ããã®åãåããã«ããšã©ãŒã³ãŒãã䜿ãããããšããããå®éã«ã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ããäœäžãããããšãã§ããŠããããã«æããŸãã ãšã©ãŒã®ãã£ãŒãããã¯ã¯çްãããšããã§ã¯ãããŸããããŠãŒã¶ã®ã¢ã¯ã·ã§ã³ãç¶ç¶ãããããã«éèŠãªèŠçŽ ã®ã²ãšã€ã§ããCLINICS ã¯ãŠãŒã¶å±æ§ãèè¥ç·å¥³åããå¹
åºãã®ã§ç¹ã«æ°ãé
ã£ãŠæ¹åãè¡ã£ãŠããŸããã å®è£
ã«ã€ããŠã§ãããiOS ã§ã¯ä»¥äžã®ããã«å®çŸ©ããŠããŸãã enum ApplicationError : Error { case commonRequestError ( String ) case createReservationCardError case createReservationScheduleIsFullError ~ var errorCode: String { switch self { case let . commonRequestError (viewId): return " \( viewId ) -0000" case . createReservationCardError : return "40-0001" case . createReservationScheduleIsFullError : return "40-0002" ~ var title: String { switch self { case . commonRequestError : return "æ¥ç¶ãšã©ãŒ" case . createReservationCardError : return "決æžå€±æãšã©ãŒ" ~ var description: String { switch self { case . commonRequestError : return "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" case . createReservationCardError : return "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ~ Android ã§ãåæ§ã« enum ã§å®çŸ©ããŠããŸãã enum class ApplicationError ( var code: String , val title: String , val description: String ) { CommonRequestError ( "0000" , "æ¥ç¶ãšã©ãŒ" , "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" ), CreateReservationCardError ( "40-0001" , "決æžå€±æãšã©ãŒ" , "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ), CreateReservationScheduleIsFullError ( "40-0002" , "ã¹ã±ãžã¥ãŒã«ç©ºããªããšã©ãŒ" , "éžæãããäºçŽæ¥æã®ã¹ã±ãžã¥ãŒã«ã«ç©ºãããããŸããã§ããã \n ããããããŸãããå¥ã®äºçŽæ¥æããéžæã®ãããããäžåºŠæåããæäœãã ããã" ), ~ æ¹åç 3 ã³ãŒãã¬ãã¥ãŒã®æé æ¹å ãªãªãŒã¹åœåããå®è£
è
以å€ã®ã¡ã³ããŒã«ããã¬ãã¥ãŒã¯é©å®è¡ãªã£ãŠããŸããããã¬ãã¥ãŒã®æ®µéã§ãã°ã¬ã仿§ã®éããèŠéããŠããŸãããšããã£ãã®ã§ãã¬ãã¥ãŒäœå¶ã®åŒ·åãšã¡ã³ããŒã®ãœãŒã¹çè§£ã®åäžãå³ãããã«ã以äžã®ããã«ã«ãŒã«ãèšå®ããŸããã ã»ã«ãããŒãžã¯ããªã PR ã«å¯Ÿã㊠2 人以äžã§ã¬ãã¥ãŒãã ãã¥ãŒã®å€æŽããã£ãå Žåã«ã¯ç»é¢ãã£ããã£ã貌ã ããããå®ãããããããå¹ççã«ããããã« Danger ãå°å
¥ããŸããã å°å
¥æé 㯠ãã¡ã ã«ãŸãšããããŠããã»ããæ€çŽ¢ããã°ãã£ããåºãŠããã®ã§çç¥ããŸããåŒç€Ÿã§ã¯ iOS ã® CI 㯠Bitrise ã䜿çšããŠããã®ã§ Bitrise äžã§å®è¡ã㊠GitHub ã® PR ã«åæ ãããŠããŸãã Danger ã§ã¯ã以äžã®é
ç®ããã§ãã¯ããŠããŸããäžèšã®ã«ãŒã«ãåæ ããŠããã®ã«å ããŠãPR ã®åãå
ãš SwiftLint ã®å®è¡çµæããã§ãã¯ããŠããŸããCLINICS ã® iOS ã¢ããªã§ã¯ GitFlow ãå°å
¥ããŠãããããrelease ãã©ã³ããš hot-fix ãã©ã³ã以å€ããã® PR ã®åãå
ã develop ãã©ã³ãã«ãªã£ãŠããªãå Žåã«ã¯èŠåãåºãããã«ããŠããŸãã ã¬ãã¥ã¢ãŒã®äººæ°ã 2 人以äžã«ãªã£ãŠããã ãã¥ãŒã®å€æŽïŒxibãstoryboard ãè§Šã£ããã©ããã®ã¿ç¢ºèªïŒããã£ãå Žåã«ç»é¢ãã£ããã£ã貌ã£ãŠãããã©ãã PR ã develop ã«åããŠäœæãããŠããã SwiftLint ã®ãã§ãã¯ãéã£ãŠããã åŒç€Ÿã iOS éçºã§å©çšããŠãã Danger ãã¡ã€ã«ã¯ä»¥äžã®éããšãªã£ãŠããŸããå°å
¥ããéã®ãåèã«ããŠãã ããã # for only difference github. dismiss_out_of_range_messages # reviewers warn ( "ã¬ãã¥ã¢ãŒã¯ 2 äººä»¥äžæå®ããŠãã ãã" ) if github. github . pr_json [ "requested_reviewers" ]. length < 2 # view changes view_extensions = [ ".xib" , ".storyboard" ] has_view_changes = git. modified_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} has_view_added = git. added_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} pr_has_screenshot = github. pr_body =~ /https?: \/\/\S * \. (png|jpg|jpeg|gif){1}/ warn ( "èŠãç®ã«å€æŽãããå Žåã¯ç»é¢ãã£ããã£ã貌ã£ãŠãã ãã" ) if (has_view_changes or has_view_added) and !pr_has_screenshot # base branch is_to_master = github. branch_for_base == 'master' is_to_develop = github. branch_for_base == 'develop' is_from_releases = !!github. branch_for_head . match ( /releases \/ [0-9]+ \. [0-9]+ \. [0-9]/ ) warn ( 'PR 㯠develop ã«åããŠãã ãã' ) if !is_to_develop and !(is_from_releases and is_to_master) # swiftLint swiftlint. lint_files inline_mode: true ãŸãšã CLINICS ã«ãããã¢ããªéçºã®å質ãšå¹çæ§ãåäžããããã®åãçµã¿ãã玹ä»ããŸããããããã®åãçµã¿ã«ãã£ãŠ ãã©ãããã©ãŒã æ¯ã®ãã¶ã€ã³ãæ©èœã®ãã¬ãå°ãªããªããèªèããã«ããææ»ããªã©ãå°ãªããªã£ãããšã§éçºå¹çãäžãã£ã ãšæããŸãããã©ãããã©ãŒã æ¯ã®éããå°ãªãããŠãããå€ãã®ã¡ã³ããŒãã³ãŒãã«æãå
¥ããããç¶æ
ã«ããããšã§å®è£
ãã³ãŒãã¬ãã¥ãŒã®è³ªãåäžããŠããããã«æããŸãã React Native ãªã©ãå©çšããŠãã³ãŒããã®ãã®ãå
±éåããæ¹æ³ããããšã¯æããŸããããã©ãããã©ãŒã æ¯ã«å¥ã®ã³ãŒãã§éçºããå Žåã§ãã仿§ãå®è£
ã®ã«ãŒã«ã工倫ããããšã§ããå¹ççã«éçºã§ããã®ã§ã¯ãªãã§ããããã CLINICS ããŒã ã§ã¯ä»ã«ãå®è£
ãéçºããã»ã¹ããããã¯ãéçšã«ã€ããŠæ¥ã
æ¹åãè¡ãªã£ãŠããŸããä»åŸããããããåãçµã¿ãç©æ¥µçã«å®è·µããKPT 圢åŒã§æ¯ãè¿ã£ãŠããŸã次ã®ã¢ã¯ã·ã§ã³ã«ã€ãªããããšã§ãå€ãã®æ¹ã«æããããããã¯ããè²ãŠãŠãããããšæã£ãŠããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ããã¶ã€ããŒãåéããŠããŸãããèå³ã®ããæ¹ã¯ããã¡ãããã©ããïŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®é«äºã§ãããªã³ã©ã€ã³èšºçã¢ããªã CLINICS ãã®ã¢ããªéçºãäž»ã«æ
åœããŠããŸãã CLINICS ã§ã¯ Web ã«å ããŠãiOS çãš Android çã®åãã©ãããã©ãŒã ã®ä»æ§å€æŽãæ©èœè¿œå ãªã©ãã»ãŒåæã«éçºããŠããã®ã§ãããæ
åœãã人æ°ãå¢ãããããããšã§ã仿§ã«å·®ãåºããããã®çµæææ»ããèµ·ãããšããããšãå¢ãå§ããŠããŸããã ãããã課é¡ã解決ããããã«å®è·µããæ§ã
ãªæœçã®äžãããç¹ã«æå¹ã ã£ã 3 ã€ã®æ¹åçã«ã€ããŠã仿¥ã¯ã玹ä»ããŸãã èæ¯ CLINICS ã®éçºããŒã ã§ã¯ 5 人ã»ã©ã®ãšã³ãžãã¢ãã¿ã¹ã¯åäœã§å
šãŠã®ãã©ãããã©ãŒã ãå®è£
ãããã倧ããã¿ã¹ã¯ã®å Žåã¯ãã©ãããã©ãŒã æ¯ã«å¥ã®éçºè
ãæ
åœãã圢ã§éçºããŠããŸãã ãã®ãããªåœ¢ã§æ©èœè¿œå ãäžå
·å察å¿ã®éçºãé²ããäžã§ã以äžã®ãããªèª²é¡ããããŸããã ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéã ãªãªãŒã¹çŽåã«ä»æ§ã®éããèŠã€ãããææ»ããçºçãã åãã©ãããã©ãŒã ã«å¯Ÿããç¿ç床ã«ãã©ã€ãããããããéçºè
ã«ãã£ãŠå®è£
æ¹æ³ãéã ç¹ã«ãã©ãããã©ãŒã æ¯ã«éçºè
ãã»ãŒåºå®ãããŠããŸã£ãŠããææã«ã¯ãã³ãŒãã¬ãã¥ãŒã¯ããŠããŠã埮åŠãªéãã«æ°ã¥ããªãã£ãããåã UI ã«ããã®ã«å®è£
ã³ã¹ããé«ããŠããããããããšããããšãèµ·ãããã¡ã§ããã** ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéããšãŠãŒã¶äœéšã®è³ªããã©ãããã©ãŒã ã«ãã£ãŠãã©ã€ããŠããŸããŸããããã¶ã€ã³ãäŒç»ã®äœæ¥ãå¢ããŠããŸããŸã** ããããã«å ããŠããšã³ãžãã¢ã®äººæ°ãå¢ãããããã¶ã€ããŒãã«ã¹ã¿ããŒãµããŒããªã©ãšã³ãžãã¢ä»¥å€ã®ã¡ã³ããŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãå¢ãããããŠããããšããã£ãŠãéçºã¹ããŒããæ®µã
ãšé
ããªã£ãŠããŠããŸããã ãã®ãããªç¶æ³ãæ¹åããããã«ãããŒã å
ã§ç¶ç¶çã«å®è£
æ¹æ³ãéçºãããŒãèŠçŽããæ¹åçã宿œããŠããŸããã ä»åã¯ä»¥äžã® 3 ã€ã®æ¹åçãã玹ä»ããŸããå
·äœçãªå®è£
ã«ã€ããŠã¯ã䞻㫠iOS ã§äœ¿çšããŠããã³ãŒããåŒçšããŠã玹ä»ããŸããïŒã³ãŒãã®äžéšãæç²ããŠããã®ã§ããã®ãŸãŸã§ã¯äœ¿çšããããšã¯ã§ããŸããããããŸã§ãåèã³ãŒããšããŠèªãã§ãã ãããïŒ DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ã¢ããªãšã©ãŒã®å
±éå ã³ãŒãã¬ãã¥ãŒã®æé æ¹å æ¹åç 1 DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ãŸã㯠DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ã«ã€ããŠã§ããDLS ãšã¯ä»¥åãæ¬ããã°ã§ããã¶ã€ããŒã®åç°ãã玹ä»ãããŠããã ããŸãããïŒ ãã¶ã€ã³èšèªã·ã¹ãã ãå
¥ãããã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ãããã£ãšäžãã£ã話ãã¡ãã¬ãŒ TechLunchã ïŒã** UI ã«äžè²«æ§ããããããããé
è²ãã¬ã€ã¢ãŠããã¿ã€ãã°ã©ãã£ãããŒãžã³ãªã©ã®ã«ãŒã« **ãçå®ããããŒã å
šäœã§ç¶ç¶çã«éçšããŠããããã®ä»çµã¿ã§ããçå®ããã«ãŒã«ãçµã¿èŸŒãã åã³ã³ããŒãã³ãã®ãã¶ã€ã³ãå
ã«ãWeb / iOS / Android ã®åãã©ãããã©ãŒã ã§ UI ãå®è£
ããŠéçºæã«åå©çšã§ããããã«ããŠããŸãããã¶ã€ã³èªäœã¯äžèšã®ãããªåœ¢ã§ Sketch ãã¡ã€ã«ã§ç®¡çããŠããŸãã iOS ã«ã€ããŠã¯åã³ã³ããŒãã³ããã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ãšããŠå®è£
ããåå©çšã§ããããã«ããŸãããDLS å°å
¥ä»¥åã¯ãã©ãããã©ãŒã æ¯ã«éã£ã UI ãã«ãŒã«ã§éçºããŠããã®ã§ãå®è£
段éã§æ
åœããéçºè
æ¯ã®èªèã«ãã£ãŠå質ã仿§ã«å·®ãåºãŠããç¶æ
ã§ãããDLS å°å
¥ã«ãã£ãŠãã®ãããªå·®ãåºã«ãããªããäžå®ã®å質ãä¿ã€ããšãã§ããããã«ãªããŸããã ãŸãã** UI ã®åŸ®èª¿æŽãªã©ãæžã£ãŠãæ©èœããžãã¯ã«éç¹ã眮ããéçºã«å°å¿µã§ããããã«ãªããããã«ãã¶ã€ããŒãšã®èªèåãããæå°éã«ãªã£ãããšã«ããéçºå¹çãäžãã£ã **ãšæããŠããŸããUI ã®åºç€ãã€ãã£ãããšã§æ°ããç»é¢ãéçºããå Žåã§ãã³ã³ããŒãã³ããçµã¿åããããšã³ãžãã¢ã ãã§å®è£
ãå®äºããããšãå€ããªãããã®åãã¶ã€ããŒã¯æ¬¡ã®æœçããããžã§ã¯ãã«å°å¿µã§ããããã«ãªããŸããã å®è£
ã«ã€ããŠã§ãããåã³ã³ããŒãã³ãæ¯ã« xib ãã¡ã€ã«ã§ UI ããŒããäœæãããããã¯ã©ã¹ãã¡ã€ã«ã§èªã¿èŸŒãã§ã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ã®èŠãç®ãšããŠäœ¿ã£ãŠããŸããã«ã¹ã¿ã ãã¥ãŒã¯åå©çšãããããå©çšæã«ãã©ãããåºã«ããããã«ä»¥äžã®ç¹ãæºããããã«å®è£
ããŸããã Interface Builder/ã³ãŒãã®ã©ã¡ãããã§ãåæåã§ãã ãã«ãããåã« Storyboard äžã§ UI ããŒãã®ãã¶ã€ã³ã確èªã§ããããã« IBDesignable ãš IBInspectable ãæå®ãã ã«ã¹ã¿ã ãã¥ãŒã®äžã§ UI èŠçŽ ã®ããŒãžã³ãé«ããæå®ãã äŸãã°ãã»ã¬ã¯ããã©ãŒã ã³ã³ããŒãã³ãã®ã«ã¹ã¿ã ãã¥ãŒã¯ä»¥äžã®ãããªå®è£
ã«ãªã£ãŠããŸãã xib ãã¡ã€ã« ã¯ã©ã¹ãã¡ã€ã« import UIKit protocol ClinicsFormSelectDelegate : class { func didClickFormSelect ( sender : ClinicsFormSelect) } @IBDesignable class ClinicsFormSelect : UIView { @IBOutlet weak var selectView: SelectView! @IBInspectable var labelText: String = "Form-parts" { didSet { selectView. labelText = labelText } } weak var delegate: ClinicsFormSelectDelegate? // ã³ãŒãããåæåããå Žåã«åŒã°ãã override init ( frame : CGRect) { super . init ( frame : frame) commonInit () } // Interface Builder ããåæåããå Žåã«åŒã°ãã required init? ( coder aDecoder : NSCoder) { super . init ( coder : aDecoder) commonInit () } private func commonInit () { // xib ãã¡ã€ã«ã®èªã¿èŸŒã¿ let bundle = Bundle ( for : type ( of : self )) let view = UINib ( nibName : "ClinicsFormSelect" , bundle : bundle). instantiate ( withOwner : self , options : nil ). first as! UIView addSubview (view) backgroundColor = . clear view. backgroundColor = . clear // èªã¿èŸŒãã View ã®ãµã€ãºãã«ã¹ã¿ã ã¯ã©ã¹ïŒClinicsFormSelectïŒãšåããµã€ãºã«ãªãããã« Constraint ãèšå®ãã view. translatesAutoresizingMaskIntoConstraints = false let bindings = [ "view" : view] addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "H:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "V:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) } // xib ãã¡ã€ã«ã®äžã«é
眮ãã UI èŠçŽ ãžã®ã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã° @IBAction func didTap ( _ sender : UITapGestureRecognizer) { delegate?. didClickFormSelect ( sender : self ) } } CLINICS ã§ã¯äž»ã« Storyboard ã䜿ã£ãŠ UI ãå®è£
ããŠããã®ã§ã䜿çšãããšã㯠Storyboard ã« UIView ã眮ããã³ã³ããŒãã³ãã®ã¯ã©ã¹åãæå®ããŠäœ¿ããŸããããã¹ããªã©ã®ããããã£ãèšå®ããConstraint ãæå®ããŠé
眮ããã°å®äºã§ãããŠãŒã¶ã«ããã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã°ãåçã«ããããã£ãåãæ¿ããå¿
èŠãããå Žåã¯ãåŒã³åºãåŽã§åŠçã远å ããŸãã æçµçã«ãã«ããããšä»¥äžã®ããã«è¡šç€ºãããŸããïŒè¡šç€ºãããŠããå
容ã¯éçºäžã«äœæããä»®ã®ããŒã¿ã§å®éã®ãã®ãšã¯ç°ãªããŸããïŒ æ¹åç 2 ã¢ããªãšã©ãŒã®å
±éå 以åã¯æ¥åçã«éèŠãªåŠçã®ãšã©ãŒä»¥å€ã¯ãã©ãããã©ãŒã æ¯ã§è¡šç€ºãããšã©ãŒã¡ãã»ãŒãžãç°ãªã£ãŠãããããšã©ãŒãã³ããªã³ã°æã«éã£ãæåãããŠããããšããããŸããããã®çµæããŠãŒã¶äœéšãäžè²«ãããã®ã«ãªã£ãŠããªããšããã ãã§ãªãããåãåããããã£ãŠãã«ã¹ã¿ããŒãµããŒããäžæ¬¡åçãã«ããã£ãããäŒããããå
å®¹ãææ§ãªããéçºè
ã調æ»ããã®ã«æéãããã£ããããããšããããŸããã ããã§ãæ¹ããŠããã³ãåŽã§çºçãããšã©ãŒã®å®çŸ©ãå
±éåãããšã©ãŒã¡ãã»ãŒãžããšã©ãŒãã³ããªã³ã°æã®åŠçãçµ±äžããŸããã** åãåããã®å¹çåã®ããã«å
±éã®ãšã©ãŒã³ãŒããæ±ºããŠããšã©ãŒçºçæã«è¡šç€ºãããã¢ã©ãŒãã«è¿œå ãããããã®ãšã©ãŒå®çŸ©ã¯ããã¥ã¡ã³ãã§äžèЧåããŠãã«ã¹ã¿ããŒãµããŒãã«ãå
±æ **ããããã«ããŸããã ãŸãããšã©ãŒãã³ããªã³ã°æã«ã¯ã©ãã·ã¥ã¬ããŒãã®ãã°ã«èšé²ããå
容ãéä¿¡ããã¿ã€ãã³ã°ãçµ±äžããŠãéçºè
å
šå¡ãçè§£ããããããã«ããŸããããšã©ãŒã³ãŒãã®è¡šç€ºã«ã€ããŠã¯ãæ¹åãæ€èšããŠããææã«ã¡ããã©åå ããŠãã iOSDC Japan 2017 ã§ãåããããªèª²é¡ã«å¯Ÿããç¥èŠã çºè¡š ãããŠããã®ãèŠãŠãæ©éåãå
¥ããŸãããæè¿ã§ã¯ãŠãŒã¶ããã®åãåããã«ããšã©ãŒã³ãŒãã䜿ãããããšããããå®éã«ã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ããäœäžãããããšãã§ããŠããããã«æããŸãã ãšã©ãŒã®ãã£ãŒãããã¯ã¯çްãããšããã§ã¯ãããŸããããŠãŒã¶ã®ã¢ã¯ã·ã§ã³ãç¶ç¶ãããããã«éèŠãªèŠçŽ ã®ã²ãšã€ã§ããCLINICS ã¯ãŠãŒã¶å±æ§ãèè¥ç·å¥³åããå¹
åºãã®ã§ç¹ã«æ°ãé
ã£ãŠæ¹åãè¡ã£ãŠããŸããã å®è£
ã«ã€ããŠã§ãããiOS ã§ã¯ä»¥äžã®ããã«å®çŸ©ããŠããŸãã enum ApplicationError : Error { case commonRequestError ( String ) case createReservationCardError case createReservationScheduleIsFullError ~ var errorCode: String { switch self { case let . commonRequestError (viewId): return " \( viewId ) -0000" case . createReservationCardError : return "40-0001" case . createReservationScheduleIsFullError : return "40-0002" ~ var title: String { switch self { case . commonRequestError : return "æ¥ç¶ãšã©ãŒ" case . createReservationCardError : return "決æžå€±æãšã©ãŒ" ~ var description: String { switch self { case . commonRequestError : return "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" case . createReservationCardError : return "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ~ Android ã§ãåæ§ã« enum ã§å®çŸ©ããŠããŸãã enum class ApplicationError ( var code: String , val title: String , val description: String ) { CommonRequestError ( "0000" , "æ¥ç¶ãšã©ãŒ" , "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" ), CreateReservationCardError ( "40-0001" , "決æžå€±æãšã©ãŒ" , "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ), CreateReservationScheduleIsFullError ( "40-0002" , "ã¹ã±ãžã¥ãŒã«ç©ºããªããšã©ãŒ" , "éžæãããäºçŽæ¥æã®ã¹ã±ãžã¥ãŒã«ã«ç©ºãããããŸããã§ããã \n ããããããŸãããå¥ã®äºçŽæ¥æããéžæã®ãããããäžåºŠæåããæäœãã ããã" ), ~ æ¹åç 3 ã³ãŒãã¬ãã¥ãŒã®æé æ¹å ãªãªãŒã¹åœåããå®è£
è
以å€ã®ã¡ã³ããŒã«ããã¬ãã¥ãŒã¯é©å®è¡ãªã£ãŠããŸããããã¬ãã¥ãŒã®æ®µéã§ãã°ã¬ã仿§ã®éããèŠéããŠããŸãããšããã£ãã®ã§ãã¬ãã¥ãŒäœå¶ã®åŒ·åãšã¡ã³ããŒã®ãœãŒã¹çè§£ã®åäžãå³ãããã«ã以äžã®ããã«ã«ãŒã«ãèšå®ããŸããã ã»ã«ãããŒãžã¯ããªã PR ã«å¯Ÿã㊠2 人以äžã§ã¬ãã¥ãŒãã ãã¥ãŒã®å€æŽããã£ãå Žåã«ã¯ç»é¢ãã£ããã£ã貌ã ããããå®ãããããããå¹ççã«ããããã« Danger ãå°å
¥ããŸããã å°å
¥æé 㯠ãã¡ã ã«ãŸãšããããŠããã»ããæ€çŽ¢ããã°ãã£ããåºãŠããã®ã§çç¥ããŸããåŒç€Ÿã§ã¯ iOS ã® CI 㯠Bitrise ã䜿çšããŠããã®ã§ Bitrise äžã§å®è¡ã㊠GitHub ã® PR ã«åæ ãããŠããŸãã Danger ã§ã¯ã以äžã®é
ç®ããã§ãã¯ããŠããŸããäžèšã®ã«ãŒã«ãåæ ããŠããã®ã«å ããŠãPR ã®åãå
ãš SwiftLint ã®å®è¡çµæããã§ãã¯ããŠããŸããCLINICS ã® iOS ã¢ããªã§ã¯ GitFlow ãå°å
¥ããŠãããããrelease ãã©ã³ããš hot-fix ãã©ã³ã以å€ããã® PR ã®åãå
ã develop ãã©ã³ãã«ãªã£ãŠããªãå Žåã«ã¯èŠåãåºãããã«ããŠããŸãã ã¬ãã¥ã¢ãŒã®äººæ°ã 2 人以äžã«ãªã£ãŠããã ãã¥ãŒã®å€æŽïŒxibãstoryboard ãè§Šã£ããã©ããã®ã¿ç¢ºèªïŒããã£ãå Žåã«ç»é¢ãã£ããã£ã貌ã£ãŠãããã©ãã PR ã develop ã«åããŠäœæãããŠããã SwiftLint ã®ãã§ãã¯ãéã£ãŠããã åŒç€Ÿã iOS éçºã§å©çšããŠãã Danger ãã¡ã€ã«ã¯ä»¥äžã®éããšãªã£ãŠããŸããå°å
¥ããéã®ãåèã«ããŠãã ããã # for only difference github. dismiss_out_of_range_messages # reviewers warn ( "ã¬ãã¥ã¢ãŒã¯ 2 äººä»¥äžæå®ããŠãã ãã" ) if github. github . pr_json [ "requested_reviewers" ]. length < 2 # view changes view_extensions = [ ".xib" , ".storyboard" ] has_view_changes = git. modified_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} has_view_added = git. added_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} pr_has_screenshot = github. pr_body =~ /https?: \/\/\S * \. (png|jpg|jpeg|gif){1}/ warn ( "èŠãç®ã«å€æŽãããå Žåã¯ç»é¢ãã£ããã£ã貌ã£ãŠãã ãã" ) if (has_view_changes or has_view_added) and !pr_has_screenshot # base branch is_to_master = github. branch_for_base == 'master' is_to_develop = github. branch_for_base == 'develop' is_from_releases = !!github. branch_for_head . match ( /releases \/ [0-9]+ \. [0-9]+ \. [0-9]/ ) warn ( 'PR 㯠develop ã«åããŠãã ãã' ) if !is_to_develop and !(is_from_releases and is_to_master) # swiftLint swiftlint. lint_files inline_mode: true ãŸãšã CLINICS ã«ãããã¢ããªéçºã®å質ãšå¹çæ§ãåäžããããã®åãçµã¿ãã玹ä»ããŸããããããã®åãçµã¿ã«ãã£ãŠ ãã©ãããã©ãŒã æ¯ã®ãã¶ã€ã³ãæ©èœã®ãã¬ãå°ãªããªããèªèããã«ããææ»ããªã©ãå°ãªããªã£ãããšã§éçºå¹çãäžãã£ã ãšæããŸãããã©ãããã©ãŒã æ¯ã®éããå°ãªãããŠãããå€ãã®ã¡ã³ããŒãã³ãŒãã«æãå
¥ããããç¶æ
ã«ããããšã§å®è£
ãã³ãŒãã¬ãã¥ãŒã®è³ªãåäžããŠããããã«æããŸãã React Native ãªã©ãå©çšããŠãã³ãŒããã®ãã®ãå
±éåããæ¹æ³ããããšã¯æããŸããããã©ãããã©ãŒã æ¯ã«å¥ã®ã³ãŒãã§éçºããå Žåã§ãã仿§ãå®è£
ã®ã«ãŒã«ã工倫ããããšã§ããå¹ççã«éçºã§ããã®ã§ã¯ãªãã§ããããã CLINICS ããŒã ã§ã¯ä»ã«ãå®è£
ãéçºããã»ã¹ããããã¯ãéçšã«ã€ããŠæ¥ã
æ¹åãè¡ãªã£ãŠããŸããä»åŸããããããåãçµã¿ãç©æ¥µçã«å®è·µããKPT 圢åŒã§æ¯ãè¿ã£ãŠããŸã次ã®ã¢ã¯ã·ã§ã³ã«ã€ãªããããšã§ãå€ãã®æ¹ã«æããããããã¯ããè²ãŠãŠãããããšæã£ãŠããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ããã¶ã€ããŒãåéããŠããŸãããèå³ã®ããæ¹ã¯ããã¡ãããã©ããïŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®é«äºã§ãããªã³ã©ã€ã³èšºçã¢ããªã CLINICS ãã®ã¢ããªéçºãäž»ã«æ
åœããŠããŸãã CLINICS ã§ã¯ Web ã«å ããŠãiOS çãš Android çã®åãã©ãããã©ãŒã ã®ä»æ§å€æŽãæ©èœè¿œå ãªã©ãã»ãŒåæã«éçºããŠããã®ã§ãããæ
åœãã人æ°ãå¢ãããããããšã§ã仿§ã«å·®ãåºããããã®çµæææ»ããèµ·ãããšããããšãå¢ãå§ããŠããŸããã ãããã課é¡ã解決ããããã«å®è·µããæ§ã
ãªæœçã®äžãããç¹ã«æå¹ã ã£ã 3 ã€ã®æ¹åçã«ã€ããŠã仿¥ã¯ã玹ä»ããŸãã èæ¯ CLINICS ã®éçºããŒã ã§ã¯ 5 人ã»ã©ã®ãšã³ãžãã¢ãã¿ã¹ã¯åäœã§å
šãŠã®ãã©ãããã©ãŒã ãå®è£
ãããã倧ããã¿ã¹ã¯ã®å Žåã¯ãã©ãããã©ãŒã æ¯ã«å¥ã®éçºè
ãæ
åœãã圢ã§éçºããŠããŸãã ãã®ãããªåœ¢ã§æ©èœè¿œå ãäžå
·å察å¿ã®éçºãé²ããäžã§ã以äžã®ãããªèª²é¡ããããŸããã ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéã ãªãªãŒã¹çŽåã«ä»æ§ã®éããèŠã€ãããææ»ããçºçãã åãã©ãããã©ãŒã ã«å¯Ÿããç¿ç床ã«ãã©ã€ãããããããéçºè
ã«ãã£ãŠå®è£
æ¹æ³ãéã ç¹ã«ãã©ãããã©ãŒã æ¯ã«éçºè
ãã»ãŒåºå®ãããŠããŸã£ãŠããææã«ã¯ãã³ãŒãã¬ãã¥ãŒã¯ããŠããŠã埮åŠãªéãã«æ°ã¥ããªãã£ãããåã UI ã«ããã®ã«å®è£
ã³ã¹ããé«ããŠããããããããšããããšãèµ·ãããã¡ã§ããã** ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéããšãŠãŒã¶äœéšã®è³ªããã©ãããã©ãŒã ã«ãã£ãŠãã©ã€ããŠããŸããŸããããã¶ã€ã³ãäŒç»ã®äœæ¥ãå¢ããŠããŸããŸã** ããããã«å ããŠããšã³ãžãã¢ã®äººæ°ãå¢ãããããã¶ã€ããŒãã«ã¹ã¿ããŒãµããŒããªã©ãšã³ãžãã¢ä»¥å€ã®ã¡ã³ããŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãå¢ãããããŠããããšããã£ãŠãéçºã¹ããŒããæ®µã
ãšé
ããªã£ãŠããŠããŸããã ãã®ãããªç¶æ³ãæ¹åããããã«ãããŒã å
ã§ç¶ç¶çã«å®è£
æ¹æ³ãéçºãããŒãèŠçŽããæ¹åçã宿œããŠããŸããã ä»åã¯ä»¥äžã® 3 ã€ã®æ¹åçãã玹ä»ããŸããå
·äœçãªå®è£
ã«ã€ããŠã¯ã䞻㫠iOS ã§äœ¿çšããŠããã³ãŒããåŒçšããŠã玹ä»ããŸããïŒã³ãŒãã®äžéšãæç²ããŠããã®ã§ããã®ãŸãŸã§ã¯äœ¿çšããããšã¯ã§ããŸããããããŸã§ãåèã³ãŒããšããŠèªãã§ãã ãããïŒ DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ã¢ããªãšã©ãŒã®å
±éå ã³ãŒãã¬ãã¥ãŒã®æé æ¹å æ¹åç 1 DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ãŸã㯠DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ã«ã€ããŠã§ããDLS ãšã¯ä»¥åãæ¬ããã°ã§ããã¶ã€ããŒã®åç°ãã玹ä»ãããŠããã ããŸãããïŒ ãã¶ã€ã³èšèªã·ã¹ãã ãå
¥ãããã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ãããã£ãšäžãã£ã話ãã¡ãã¬ãŒ TechLunchã ïŒã** UI ã«äžè²«æ§ããããããããé
è²ãã¬ã€ã¢ãŠããã¿ã€ãã°ã©ãã£ãããŒãžã³ãªã©ã®ã«ãŒã« **ãçå®ããããŒã å
šäœã§ç¶ç¶çã«éçšããŠããããã®ä»çµã¿ã§ããçå®ããã«ãŒã«ãçµã¿èŸŒãã åã³ã³ããŒãã³ãã®ãã¶ã€ã³ãå
ã«ãWeb / iOS / Android ã®åãã©ãããã©ãŒã ã§ UI ãå®è£
ããŠéçºæã«åå©çšã§ããããã«ããŠããŸãããã¶ã€ã³èªäœã¯äžèšã®ãããªåœ¢ã§ Sketch ãã¡ã€ã«ã§ç®¡çããŠããŸãã iOS ã«ã€ããŠã¯åã³ã³ããŒãã³ããã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ãšããŠå®è£
ããåå©çšã§ããããã«ããŸãããDLS å°å
¥ä»¥åã¯ãã©ãããã©ãŒã æ¯ã«éã£ã UI ãã«ãŒã«ã§éçºããŠããã®ã§ãå®è£
段éã§æ
åœããéçºè
æ¯ã®èªèã«ãã£ãŠå質ã仿§ã«å·®ãåºãŠããç¶æ
ã§ãããDLS å°å
¥ã«ãã£ãŠãã®ãããªå·®ãåºã«ãããªããäžå®ã®å質ãä¿ã€ããšãã§ããããã«ãªããŸããã ãŸãã** UI ã®åŸ®èª¿æŽãªã©ãæžã£ãŠãæ©èœããžãã¯ã«éç¹ã眮ããéçºã«å°å¿µã§ããããã«ãªããããã«ãã¶ã€ããŒãšã®èªèåãããæå°éã«ãªã£ãããšã«ããéçºå¹çãäžãã£ã **ãšæããŠããŸããUI ã®åºç€ãã€ãã£ãããšã§æ°ããç»é¢ãéçºããå Žåã§ãã³ã³ããŒãã³ããçµã¿åããããšã³ãžãã¢ã ãã§å®è£
ãå®äºããããšãå€ããªãããã®åãã¶ã€ããŒã¯æ¬¡ã®æœçããããžã§ã¯ãã«å°å¿µã§ããããã«ãªããŸããã å®è£
ã«ã€ããŠã§ãããåã³ã³ããŒãã³ãæ¯ã« xib ãã¡ã€ã«ã§ UI ããŒããäœæãããããã¯ã©ã¹ãã¡ã€ã«ã§èªã¿èŸŒãã§ã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ã®èŠãç®ãšããŠäœ¿ã£ãŠããŸããã«ã¹ã¿ã ãã¥ãŒã¯åå©çšãããããå©çšæã«ãã©ãããåºã«ããããã«ä»¥äžã®ç¹ãæºããããã«å®è£
ããŸããã Interface Builder/ã³ãŒãã®ã©ã¡ãããã§ãåæåã§ãã ãã«ãããåã« Storyboard äžã§ UI ããŒãã®ãã¶ã€ã³ã確èªã§ããããã« IBDesignable ãš IBInspectable ãæå®ãã ã«ã¹ã¿ã ãã¥ãŒã®äžã§ UI èŠçŽ ã®ããŒãžã³ãé«ããæå®ãã äŸãã°ãã»ã¬ã¯ããã©ãŒã ã³ã³ããŒãã³ãã®ã«ã¹ã¿ã ãã¥ãŒã¯ä»¥äžã®ãããªå®è£
ã«ãªã£ãŠããŸãã xib ãã¡ã€ã« ã¯ã©ã¹ãã¡ã€ã« import UIKit protocol ClinicsFormSelectDelegate : class { func didClickFormSelect ( sender : ClinicsFormSelect) } @IBDesignable class ClinicsFormSelect : UIView { @IBOutlet weak var selectView: SelectView! @IBInspectable var labelText: String = "Form-parts" { didSet { selectView. labelText = labelText } } weak var delegate: ClinicsFormSelectDelegate? // ã³ãŒãããåæåããå Žåã«åŒã°ãã override init ( frame : CGRect) { super . init ( frame : frame) commonInit () } // Interface Builder ããåæåããå Žåã«åŒã°ãã required init? ( coder aDecoder : NSCoder) { super . init ( coder : aDecoder) commonInit () } private func commonInit () { // xib ãã¡ã€ã«ã®èªã¿èŸŒã¿ let bundle = Bundle ( for : type ( of : self )) let view = UINib ( nibName : "ClinicsFormSelect" , bundle : bundle). instantiate ( withOwner : self , options : nil ). first as! UIView addSubview (view) backgroundColor = . clear view. backgroundColor = . clear // èªã¿èŸŒãã View ã®ãµã€ãºãã«ã¹ã¿ã ã¯ã©ã¹ïŒClinicsFormSelectïŒãšåããµã€ãºã«ãªãããã« Constraint ãèšå®ãã view. translatesAutoresizingMaskIntoConstraints = false let bindings = [ "view" : view] addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "H:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "V:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) } // xib ãã¡ã€ã«ã®äžã«é
眮ãã UI èŠçŽ ãžã®ã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã° @IBAction func didTap ( _ sender : UITapGestureRecognizer) { delegate?. didClickFormSelect ( sender : self ) } } CLINICS ã§ã¯äž»ã« Storyboard ã䜿ã£ãŠ UI ãå®è£
ããŠããã®ã§ã䜿çšãããšã㯠Storyboard ã« UIView ã眮ããã³ã³ããŒãã³ãã®ã¯ã©ã¹åãæå®ããŠäœ¿ããŸããããã¹ããªã©ã®ããããã£ãèšå®ããConstraint ãæå®ããŠé
眮ããã°å®äºã§ãããŠãŒã¶ã«ããã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã°ãåçã«ããããã£ãåãæ¿ããå¿
èŠãããå Žåã¯ãåŒã³åºãåŽã§åŠçã远å ããŸãã æçµçã«ãã«ããããšä»¥äžã®ããã«è¡šç€ºãããŸããïŒè¡šç€ºãããŠããå
容ã¯éçºäžã«äœæããä»®ã®ããŒã¿ã§å®éã®ãã®ãšã¯ç°ãªããŸããïŒ æ¹åç 2 ã¢ããªãšã©ãŒã®å
±éå 以åã¯æ¥åçã«éèŠãªåŠçã®ãšã©ãŒä»¥å€ã¯ãã©ãããã©ãŒã æ¯ã§è¡šç€ºãããšã©ãŒã¡ãã»ãŒãžãç°ãªã£ãŠãããããšã©ãŒãã³ããªã³ã°æã«éã£ãæåãããŠããããšããããŸããããã®çµæããŠãŒã¶äœéšãäžè²«ãããã®ã«ãªã£ãŠããªããšããã ãã§ãªãããåãåããããã£ãŠãã«ã¹ã¿ããŒãµããŒããäžæ¬¡åçãã«ããã£ãããäŒããããå
å®¹ãææ§ãªããéçºè
ã調æ»ããã®ã«æéãããã£ããããããšããããŸããã ããã§ãæ¹ããŠããã³ãåŽã§çºçãããšã©ãŒã®å®çŸ©ãå
±éåãããšã©ãŒã¡ãã»ãŒãžããšã©ãŒãã³ããªã³ã°æã®åŠçãçµ±äžããŸããã** åãåããã®å¹çåã®ããã«å
±éã®ãšã©ãŒã³ãŒããæ±ºããŠããšã©ãŒçºçæã«è¡šç€ºãããã¢ã©ãŒãã«è¿œå ãããããã®ãšã©ãŒå®çŸ©ã¯ããã¥ã¡ã³ãã§äžèЧåããŠãã«ã¹ã¿ããŒãµããŒãã«ãå
±æ **ããããã«ããŸããã ãŸãããšã©ãŒãã³ããªã³ã°æã«ã¯ã©ãã·ã¥ã¬ããŒãã®ãã°ã«èšé²ããå
容ãéä¿¡ããã¿ã€ãã³ã°ãçµ±äžããŠãéçºè
å
šå¡ãçè§£ããããããã«ããŸããããšã©ãŒã³ãŒãã®è¡šç€ºã«ã€ããŠã¯ãæ¹åãæ€èšããŠããææã«ã¡ããã©åå ããŠãã iOSDC Japan 2017 ã§ãåããããªèª²é¡ã«å¯Ÿããç¥èŠã çºè¡š ãããŠããã®ãèŠãŠãæ©éåãå
¥ããŸãããæè¿ã§ã¯ãŠãŒã¶ããã®åãåããã«ããšã©ãŒã³ãŒãã䜿ãããããšããããå®éã«ã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ããäœäžãããããšãã§ããŠããããã«æããŸãã ãšã©ãŒã®ãã£ãŒãããã¯ã¯çްãããšããã§ã¯ãããŸããããŠãŒã¶ã®ã¢ã¯ã·ã§ã³ãç¶ç¶ãããããã«éèŠãªèŠçŽ ã®ã²ãšã€ã§ããCLINICS ã¯ãŠãŒã¶å±æ§ãèè¥ç·å¥³åããå¹
åºãã®ã§ç¹ã«æ°ãé
ã£ãŠæ¹åãè¡ã£ãŠããŸããã å®è£
ã«ã€ããŠã§ãããiOS ã§ã¯ä»¥äžã®ããã«å®çŸ©ããŠããŸãã enum ApplicationError : Error { case commonRequestError ( String ) case createReservationCardError case createReservationScheduleIsFullError ~ var errorCode: String { switch self { case let . commonRequestError (viewId): return " \( viewId ) -0000" case . createReservationCardError : return "40-0001" case . createReservationScheduleIsFullError : return "40-0002" ~ var title: String { switch self { case . commonRequestError : return "æ¥ç¶ãšã©ãŒ" case . createReservationCardError : return "決æžå€±æãšã©ãŒ" ~ var description: String { switch self { case . commonRequestError : return "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" case . createReservationCardError : return "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ~ Android ã§ãåæ§ã« enum ã§å®çŸ©ããŠããŸãã enum class ApplicationError ( var code: String , val title: String , val description: String ) { CommonRequestError ( "0000" , "æ¥ç¶ãšã©ãŒ" , "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" ), CreateReservationCardError ( "40-0001" , "決æžå€±æãšã©ãŒ" , "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ), CreateReservationScheduleIsFullError ( "40-0002" , "ã¹ã±ãžã¥ãŒã«ç©ºããªããšã©ãŒ" , "éžæãããäºçŽæ¥æã®ã¹ã±ãžã¥ãŒã«ã«ç©ºãããããŸããã§ããã \n ããããããŸãããå¥ã®äºçŽæ¥æããéžæã®ãããããäžåºŠæåããæäœãã ããã" ), ~ æ¹åç 3 ã³ãŒãã¬ãã¥ãŒã®æé æ¹å ãªãªãŒã¹åœåããå®è£
è
以å€ã®ã¡ã³ããŒã«ããã¬ãã¥ãŒã¯é©å®è¡ãªã£ãŠããŸããããã¬ãã¥ãŒã®æ®µéã§ãã°ã¬ã仿§ã®éããèŠéããŠããŸãããšããã£ãã®ã§ãã¬ãã¥ãŒäœå¶ã®åŒ·åãšã¡ã³ããŒã®ãœãŒã¹çè§£ã®åäžãå³ãããã«ã以äžã®ããã«ã«ãŒã«ãèšå®ããŸããã ã»ã«ãããŒãžã¯ããªã PR ã«å¯Ÿã㊠2 人以äžã§ã¬ãã¥ãŒãã ãã¥ãŒã®å€æŽããã£ãå Žåã«ã¯ç»é¢ãã£ããã£ã貌ã ããããå®ãããããããå¹ççã«ããããã« Danger ãå°å
¥ããŸããã å°å
¥æé 㯠ãã¡ã ã«ãŸãšããããŠããã»ããæ€çŽ¢ããã°ãã£ããåºãŠããã®ã§çç¥ããŸããåŒç€Ÿã§ã¯ iOS ã® CI 㯠Bitrise ã䜿çšããŠããã®ã§ Bitrise äžã§å®è¡ã㊠GitHub ã® PR ã«åæ ãããŠããŸãã Danger ã§ã¯ã以äžã®é
ç®ããã§ãã¯ããŠããŸããäžèšã®ã«ãŒã«ãåæ ããŠããã®ã«å ããŠãPR ã®åãå
ãš SwiftLint ã®å®è¡çµæããã§ãã¯ããŠããŸããCLINICS ã® iOS ã¢ããªã§ã¯ GitFlow ãå°å
¥ããŠãããããrelease ãã©ã³ããš hot-fix ãã©ã³ã以å€ããã® PR ã®åãå
ã develop ãã©ã³ãã«ãªã£ãŠããªãå Žåã«ã¯èŠåãåºãããã«ããŠããŸãã ã¬ãã¥ã¢ãŒã®äººæ°ã 2 人以äžã«ãªã£ãŠããã ãã¥ãŒã®å€æŽïŒxibãstoryboard ãè§Šã£ããã©ããã®ã¿ç¢ºèªïŒããã£ãå Žåã«ç»é¢ãã£ããã£ã貌ã£ãŠãããã©ãã PR ã develop ã«åããŠäœæãããŠããã SwiftLint ã®ãã§ãã¯ãéã£ãŠããã åŒç€Ÿã iOS éçºã§å©çšããŠãã Danger ãã¡ã€ã«ã¯ä»¥äžã®éããšãªã£ãŠããŸããå°å
¥ããéã®ãåèã«ããŠãã ããã # for only difference github. dismiss_out_of_range_messages # reviewers warn ( "ã¬ãã¥ã¢ãŒã¯ 2 äººä»¥äžæå®ããŠãã ãã" ) if github. github . pr_json [ "requested_reviewers" ]. length < 2 # view changes view_extensions = [ ".xib" , ".storyboard" ] has_view_changes = git. modified_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} has_view_added = git. added_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} pr_has_screenshot = github. pr_body =~ /https?: \/\/\S * \. (png|jpg|jpeg|gif){1}/ warn ( "èŠãç®ã«å€æŽãããå Žåã¯ç»é¢ãã£ããã£ã貌ã£ãŠãã ãã" ) if (has_view_changes or has_view_added) and !pr_has_screenshot # base branch is_to_master = github. branch_for_base == 'master' is_to_develop = github. branch_for_base == 'develop' is_from_releases = !!github. branch_for_head . match ( /releases \/ [0-9]+ \. [0-9]+ \. [0-9]/ ) warn ( 'PR 㯠develop ã«åããŠãã ãã' ) if !is_to_develop and !(is_from_releases and is_to_master) # swiftLint swiftlint. lint_files inline_mode: true ãŸãšã CLINICS ã«ãããã¢ããªéçºã®å質ãšå¹çæ§ãåäžããããã®åãçµã¿ãã玹ä»ããŸããããããã®åãçµã¿ã«ãã£ãŠ ãã©ãããã©ãŒã æ¯ã®ãã¶ã€ã³ãæ©èœã®ãã¬ãå°ãªããªããèªèããã«ããææ»ããªã©ãå°ãªããªã£ãããšã§éçºå¹çãäžãã£ã ãšæããŸãããã©ãããã©ãŒã æ¯ã®éããå°ãªãããŠãããå€ãã®ã¡ã³ããŒãã³ãŒãã«æãå
¥ããããç¶æ
ã«ããããšã§å®è£
ãã³ãŒãã¬ãã¥ãŒã®è³ªãåäžããŠããããã«æããŸãã React Native ãªã©ãå©çšããŠãã³ãŒããã®ãã®ãå
±éåããæ¹æ³ããããšã¯æããŸããããã©ãããã©ãŒã æ¯ã«å¥ã®ã³ãŒãã§éçºããå Žåã§ãã仿§ãå®è£
ã®ã«ãŒã«ã工倫ããããšã§ããå¹ççã«éçºã§ããã®ã§ã¯ãªãã§ããããã CLINICS ããŒã ã§ã¯ä»ã«ãå®è£
ãéçºããã»ã¹ããããã¯ãéçšã«ã€ããŠæ¥ã
æ¹åãè¡ãªã£ãŠããŸããä»åŸããããããåãçµã¿ãç©æ¥µçã«å®è·µããKPT 圢åŒã§æ¯ãè¿ã£ãŠããŸã次ã®ã¢ã¯ã·ã§ã³ã«ã€ãªããããšã§ãå€ãã®æ¹ã«æããããããã¯ããè²ãŠãŠãããããšæã£ãŠããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ããã¶ã€ããŒãåéããŠããŸãããèå³ã®ããæ¹ã¯ããã¡ãããã©ããïŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®é«äºã§ãããªã³ã©ã€ã³èšºçã¢ããªã CLINICS ãã®ã¢ããªéçºãäž»ã«æ
åœããŠããŸãã CLINICS ã§ã¯ Web ã«å ããŠãiOS çãš Android çã®åãã©ãããã©ãŒã ã®ä»æ§å€æŽãæ©èœè¿œå ãªã©ãã»ãŒåæã«éçºããŠããã®ã§ãããæ
åœãã人æ°ãå¢ãããããããšã§ã仿§ã«å·®ãåºããããã®çµæææ»ããèµ·ãããšããããšãå¢ãå§ããŠããŸããã ãããã課é¡ã解決ããããã«å®è·µããæ§ã
ãªæœçã®äžãããç¹ã«æå¹ã ã£ã 3 ã€ã®æ¹åçã«ã€ããŠã仿¥ã¯ã玹ä»ããŸãã èæ¯ CLINICS ã®éçºããŒã ã§ã¯ 5 人ã»ã©ã®ãšã³ãžãã¢ãã¿ã¹ã¯åäœã§å
šãŠã®ãã©ãããã©ãŒã ãå®è£
ãããã倧ããã¿ã¹ã¯ã®å Žåã¯ãã©ãããã©ãŒã æ¯ã«å¥ã®éçºè
ãæ
åœãã圢ã§éçºããŠããŸãã ãã®ãããªåœ¢ã§æ©èœè¿œå ãäžå
·å察å¿ã®éçºãé²ããäžã§ã以äžã®ãããªèª²é¡ããããŸããã ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéã ãªãªãŒã¹çŽåã«ä»æ§ã®éããèŠã€ãããææ»ããçºçãã åãã©ãããã©ãŒã ã«å¯Ÿããç¿ç床ã«ãã©ã€ãããããããéçºè
ã«ãã£ãŠå®è£
æ¹æ³ãéã ç¹ã«ãã©ãããã©ãŒã æ¯ã«éçºè
ãã»ãŒåºå®ãããŠããŸã£ãŠããææã«ã¯ãã³ãŒãã¬ãã¥ãŒã¯ããŠããŠã埮åŠãªéãã«æ°ã¥ããªãã£ãããåã UI ã«ããã®ã«å®è£
ã³ã¹ããé«ããŠããããããããšããããšãèµ·ãããã¡ã§ããã** ãã©ãããã©ãŒã éã§ä»æ§ããã¶ã€ã³ãéããšãŠãŒã¶äœéšã®è³ªããã©ãããã©ãŒã ã«ãã£ãŠãã©ã€ããŠããŸããŸããããã¶ã€ã³ãäŒç»ã®äœæ¥ãå¢ããŠããŸããŸã** ããããã«å ããŠããšã³ãžãã¢ã®äººæ°ãå¢ãããããã¶ã€ããŒãã«ã¹ã¿ããŒãµããŒããªã©ãšã³ãžãã¢ä»¥å€ã®ã¡ã³ããŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãå¢ãããããŠããããšããã£ãŠãéçºã¹ããŒããæ®µã
ãšé
ããªã£ãŠããŠããŸããã ãã®ãããªç¶æ³ãæ¹åããããã«ãããŒã å
ã§ç¶ç¶çã«å®è£
æ¹æ³ãéçºãããŒãèŠçŽããæ¹åçã宿œããŠããŸããã ä»åã¯ä»¥äžã® 3 ã€ã®æ¹åçãã玹ä»ããŸããå
·äœçãªå®è£
ã«ã€ããŠã¯ã䞻㫠iOS ã§äœ¿çšããŠããã³ãŒããåŒçšããŠã玹ä»ããŸããïŒã³ãŒãã®äžéšãæç²ããŠããã®ã§ããã®ãŸãŸã§ã¯äœ¿çšããããšã¯ã§ããŸããããããŸã§ãåèã³ãŒããšããŠèªãã§ãã ãããïŒ DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ã¢ããªãšã©ãŒã®å
±éå ã³ãŒãã¬ãã¥ãŒã®æé æ¹å æ¹åç 1 DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ ãŸã㯠DLSïŒãã¶ã€ã³èšèªã·ã¹ãã ïŒã®å°å
¥ã«ã€ããŠã§ããDLS ãšã¯ä»¥åãæ¬ããã°ã§ããã¶ã€ããŒã®åç°ãã玹ä»ãããŠããã ããŸãããïŒ ãã¶ã€ã³èšèªã·ã¹ãã ãå
¥ãããã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ãããã£ãšäžãã£ã話ãã¡ãã¬ãŒ TechLunchã ïŒã** UI ã«äžè²«æ§ããããããããé
è²ãã¬ã€ã¢ãŠããã¿ã€ãã°ã©ãã£ãããŒãžã³ãªã©ã®ã«ãŒã« **ãçå®ããããŒã å
šäœã§ç¶ç¶çã«éçšããŠããããã®ä»çµã¿ã§ããçå®ããã«ãŒã«ãçµã¿èŸŒãã åã³ã³ããŒãã³ãã®ãã¶ã€ã³ãå
ã«ãWeb / iOS / Android ã®åãã©ãããã©ãŒã ã§ UI ãå®è£
ããŠéçºæã«åå©çšã§ããããã«ããŠããŸãããã¶ã€ã³èªäœã¯äžèšã®ãããªåœ¢ã§ Sketch ãã¡ã€ã«ã§ç®¡çããŠããŸãã iOS ã«ã€ããŠã¯åã³ã³ããŒãã³ããã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ãšããŠå®è£
ããåå©çšã§ããããã«ããŸãããDLS å°å
¥ä»¥åã¯ãã©ãããã©ãŒã æ¯ã«éã£ã UI ãã«ãŒã«ã§éçºããŠããã®ã§ãå®è£
段éã§æ
åœããéçºè
æ¯ã®èªèã«ãã£ãŠå質ã仿§ã«å·®ãåºãŠããç¶æ
ã§ãããDLS å°å
¥ã«ãã£ãŠãã®ãããªå·®ãåºã«ãããªããäžå®ã®å質ãä¿ã€ããšãã§ããããã«ãªããŸããã ãŸãã** UI ã®åŸ®èª¿æŽãªã©ãæžã£ãŠãæ©èœããžãã¯ã«éç¹ã眮ããéçºã«å°å¿µã§ããããã«ãªããããã«ãã¶ã€ããŒãšã®èªèåãããæå°éã«ãªã£ãããšã«ããéçºå¹çãäžãã£ã **ãšæããŠããŸããUI ã®åºç€ãã€ãã£ãããšã§æ°ããç»é¢ãéçºããå Žåã§ãã³ã³ããŒãã³ããçµã¿åããããšã³ãžãã¢ã ãã§å®è£
ãå®äºããããšãå€ããªãããã®åãã¶ã€ããŒã¯æ¬¡ã®æœçããããžã§ã¯ãã«å°å¿µã§ããããã«ãªããŸããã å®è£
ã«ã€ããŠã§ãããåã³ã³ããŒãã³ãæ¯ã« xib ãã¡ã€ã«ã§ UI ããŒããäœæãããããã¯ã©ã¹ãã¡ã€ã«ã§èªã¿èŸŒãã§ã«ã¹ã¿ã ãã¥ãŒã¯ã©ã¹ã®èŠãç®ãšããŠäœ¿ã£ãŠããŸããã«ã¹ã¿ã ãã¥ãŒã¯åå©çšãããããå©çšæã«ãã©ãããåºã«ããããã«ä»¥äžã®ç¹ãæºããããã«å®è£
ããŸããã Interface Builder/ã³ãŒãã®ã©ã¡ãããã§ãåæåã§ãã ãã«ãããåã« Storyboard äžã§ UI ããŒãã®ãã¶ã€ã³ã確èªã§ããããã« IBDesignable ãš IBInspectable ãæå®ãã ã«ã¹ã¿ã ãã¥ãŒã®äžã§ UI èŠçŽ ã®ããŒãžã³ãé«ããæå®ãã äŸãã°ãã»ã¬ã¯ããã©ãŒã ã³ã³ããŒãã³ãã®ã«ã¹ã¿ã ãã¥ãŒã¯ä»¥äžã®ãããªå®è£
ã«ãªã£ãŠããŸãã xib ãã¡ã€ã« ã¯ã©ã¹ãã¡ã€ã« import UIKit protocol ClinicsFormSelectDelegate : class { func didClickFormSelect ( sender : ClinicsFormSelect) } @IBDesignable class ClinicsFormSelect : UIView { @IBOutlet weak var selectView: SelectView! @IBInspectable var labelText: String = "Form-parts" { didSet { selectView. labelText = labelText } } weak var delegate: ClinicsFormSelectDelegate? // ã³ãŒãããåæåããå Žåã«åŒã°ãã override init ( frame : CGRect) { super . init ( frame : frame) commonInit () } // Interface Builder ããåæåããå Žåã«åŒã°ãã required init? ( coder aDecoder : NSCoder) { super . init ( coder : aDecoder) commonInit () } private func commonInit () { // xib ãã¡ã€ã«ã®èªã¿èŸŒã¿ let bundle = Bundle ( for : type ( of : self )) let view = UINib ( nibName : "ClinicsFormSelect" , bundle : bundle). instantiate ( withOwner : self , options : nil ). first as! UIView addSubview (view) backgroundColor = . clear view. backgroundColor = . clear // èªã¿èŸŒãã View ã®ãµã€ãºãã«ã¹ã¿ã ã¯ã©ã¹ïŒClinicsFormSelectïŒãšåããµã€ãºã«ãªãããã« Constraint ãèšå®ãã view. translatesAutoresizingMaskIntoConstraints = false let bindings = [ "view" : view] addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "H:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) addConstraints (NSLayoutConstraint. constraints ( withVisualFormat : "V:|[view]|" , options : NSLayoutFormatOptions ( rawValue : 0 ), metrics : nil , views : bindings)) } // xib ãã¡ã€ã«ã®äžã«é
眮ãã UI èŠçŽ ãžã®ã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã° @IBAction func didTap ( _ sender : UITapGestureRecognizer) { delegate?. didClickFormSelect ( sender : self ) } } CLINICS ã§ã¯äž»ã« Storyboard ã䜿ã£ãŠ UI ãå®è£
ããŠããã®ã§ã䜿çšãããšã㯠Storyboard ã« UIView ã眮ããã³ã³ããŒãã³ãã®ã¯ã©ã¹åãæå®ããŠäœ¿ããŸããããã¹ããªã©ã®ããããã£ãèšå®ããConstraint ãæå®ããŠé
眮ããã°å®äºã§ãããŠãŒã¶ã«ããã¢ã¯ã·ã§ã³ã®ãã³ããªã³ã°ãåçã«ããããã£ãåãæ¿ããå¿
èŠãããå Žåã¯ãåŒã³åºãåŽã§åŠçã远å ããŸãã æçµçã«ãã«ããããšä»¥äžã®ããã«è¡šç€ºãããŸããïŒè¡šç€ºãããŠããå
容ã¯éçºäžã«äœæããä»®ã®ããŒã¿ã§å®éã®ãã®ãšã¯ç°ãªããŸããïŒ æ¹åç 2 ã¢ããªãšã©ãŒã®å
±éå 以åã¯æ¥åçã«éèŠãªåŠçã®ãšã©ãŒä»¥å€ã¯ãã©ãããã©ãŒã æ¯ã§è¡šç€ºãããšã©ãŒã¡ãã»ãŒãžãç°ãªã£ãŠãããããšã©ãŒãã³ããªã³ã°æã«éã£ãæåãããŠããããšããããŸããããã®çµæããŠãŒã¶äœéšãäžè²«ãããã®ã«ãªã£ãŠããªããšããã ãã§ãªãããåãåããããã£ãŠãã«ã¹ã¿ããŒãµããŒããäžæ¬¡åçãã«ããã£ãããäŒããããå
å®¹ãææ§ãªããéçºè
ã調æ»ããã®ã«æéãããã£ããããããšããããŸããã ããã§ãæ¹ããŠããã³ãåŽã§çºçãããšã©ãŒã®å®çŸ©ãå
±éåãããšã©ãŒã¡ãã»ãŒãžããšã©ãŒãã³ããªã³ã°æã®åŠçãçµ±äžããŸããã** åãåããã®å¹çåã®ããã«å
±éã®ãšã©ãŒã³ãŒããæ±ºããŠããšã©ãŒçºçæã«è¡šç€ºãããã¢ã©ãŒãã«è¿œå ãããããã®ãšã©ãŒå®çŸ©ã¯ããã¥ã¡ã³ãã§äžèЧåããŠãã«ã¹ã¿ããŒãµããŒãã«ãå
±æ **ããããã«ããŸããã ãŸãããšã©ãŒãã³ããªã³ã°æã«ã¯ã©ãã·ã¥ã¬ããŒãã®ãã°ã«èšé²ããå
容ãéä¿¡ããã¿ã€ãã³ã°ãçµ±äžããŠãéçºè
å
šå¡ãçè§£ããããããã«ããŸããããšã©ãŒã³ãŒãã®è¡šç€ºã«ã€ããŠã¯ãæ¹åãæ€èšããŠããææã«ã¡ããã©åå ããŠãã iOSDC Japan 2017 ã§ãåããããªèª²é¡ã«å¯Ÿããç¥èŠã çºè¡š ãããŠããã®ãèŠãŠãæ©éåãå
¥ããŸãããæè¿ã§ã¯ãŠãŒã¶ããã®åãåããã«ããšã©ãŒã³ãŒãã䜿ãããããšããããå®éã«ã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ããäœäžãããããšãã§ããŠããããã«æããŸãã ãšã©ãŒã®ãã£ãŒãããã¯ã¯çްãããšããã§ã¯ãããŸããããŠãŒã¶ã®ã¢ã¯ã·ã§ã³ãç¶ç¶ãããããã«éèŠãªèŠçŽ ã®ã²ãšã€ã§ããCLINICS ã¯ãŠãŒã¶å±æ§ãèè¥ç·å¥³åããå¹
åºãã®ã§ç¹ã«æ°ãé
ã£ãŠæ¹åãè¡ã£ãŠããŸããã å®è£
ã«ã€ããŠã§ãããiOS ã§ã¯ä»¥äžã®ããã«å®çŸ©ããŠããŸãã enum ApplicationError : Error { case commonRequestError ( String ) case createReservationCardError case createReservationScheduleIsFullError ~ var errorCode: String { switch self { case let . commonRequestError (viewId): return " \( viewId ) -0000" case . createReservationCardError : return "40-0001" case . createReservationScheduleIsFullError : return "40-0002" ~ var title: String { switch self { case . commonRequestError : return "æ¥ç¶ãšã©ãŒ" case . createReservationCardError : return "決æžå€±æãšã©ãŒ" ~ var description: String { switch self { case . commonRequestError : return "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" case . createReservationCardError : return "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ~ Android ã§ãåæ§ã« enum ã§å®çŸ©ããŠããŸãã enum class ApplicationError ( var code: String , val title: String , val description: String ) { CommonRequestError ( "0000" , "æ¥ç¶ãšã©ãŒ" , "ããŒã¿ãæ£ããè¡šç€ºåºæ¥ãªãå¯èœæ§ããããŸãã \n éä¿¡ç¶æ³ãã確ããããã ããããã°ããçµã£ãŠããå床起åããŠãã ããã" ), CreateReservationCardError ( "40-0001" , "決æžå€±æãšã©ãŒ" , "ãç»é²ãããŠããã¯ã¬ãžããã«ãŒãã®æ±ºæžäžã«ãšã©ãŒãçºçããŸããã \n ããããããŸãããããäžåºŠæåããæäœãã ããã" ), CreateReservationScheduleIsFullError ( "40-0002" , "ã¹ã±ãžã¥ãŒã«ç©ºããªããšã©ãŒ" , "éžæãããäºçŽæ¥æã®ã¹ã±ãžã¥ãŒã«ã«ç©ºãããããŸããã§ããã \n ããããããŸãããå¥ã®äºçŽæ¥æããéžæã®ãããããäžåºŠæåããæäœãã ããã" ), ~ æ¹åç 3 ã³ãŒãã¬ãã¥ãŒã®æé æ¹å ãªãªãŒã¹åœåããå®è£
è
以å€ã®ã¡ã³ããŒã«ããã¬ãã¥ãŒã¯é©å®è¡ãªã£ãŠããŸããããã¬ãã¥ãŒã®æ®µéã§ãã°ã¬ã仿§ã®éããèŠéããŠããŸãããšããã£ãã®ã§ãã¬ãã¥ãŒäœå¶ã®åŒ·åãšã¡ã³ããŒã®ãœãŒã¹çè§£ã®åäžãå³ãããã«ã以äžã®ããã«ã«ãŒã«ãèšå®ããŸããã ã»ã«ãããŒãžã¯ããªã PR ã«å¯Ÿã㊠2 人以äžã§ã¬ãã¥ãŒãã ãã¥ãŒã®å€æŽããã£ãå Žåã«ã¯ç»é¢ãã£ããã£ã貌ã ããããå®ãããããããå¹ççã«ããããã« Danger ãå°å
¥ããŸããã å°å
¥æé 㯠ãã¡ã ã«ãŸãšããããŠããã»ããæ€çŽ¢ããã°ãã£ããåºãŠããã®ã§çç¥ããŸããåŒç€Ÿã§ã¯ iOS ã® CI 㯠Bitrise ã䜿çšããŠããã®ã§ Bitrise äžã§å®è¡ã㊠GitHub ã® PR ã«åæ ãããŠããŸãã Danger ã§ã¯ã以äžã®é
ç®ããã§ãã¯ããŠããŸããäžèšã®ã«ãŒã«ãåæ ããŠããã®ã«å ããŠãPR ã®åãå
ãš SwiftLint ã®å®è¡çµæããã§ãã¯ããŠããŸããCLINICS ã® iOS ã¢ããªã§ã¯ GitFlow ãå°å
¥ããŠãããããrelease ãã©ã³ããš hot-fix ãã©ã³ã以å€ããã® PR ã®åãå
ã develop ãã©ã³ãã«ãªã£ãŠããªãå Žåã«ã¯èŠåãåºãããã«ããŠããŸãã ã¬ãã¥ã¢ãŒã®äººæ°ã 2 人以äžã«ãªã£ãŠããã ãã¥ãŒã®å€æŽïŒxibãstoryboard ãè§Šã£ããã©ããã®ã¿ç¢ºèªïŒããã£ãå Žåã«ç»é¢ãã£ããã£ã貌ã£ãŠãããã©ãã PR ã develop ã«åããŠäœæãããŠããã SwiftLint ã®ãã§ãã¯ãéã£ãŠããã åŒç€Ÿã iOS éçºã§å©çšããŠãã Danger ãã¡ã€ã«ã¯ä»¥äžã®éããšãªã£ãŠããŸããå°å
¥ããéã®ãåèã«ããŠãã ããã # for only difference github. dismiss_out_of_range_messages # reviewers warn ( "ã¬ãã¥ã¢ãŒã¯ 2 äººä»¥äžæå®ããŠãã ãã" ) if github. github . pr_json [ "requested_reviewers" ]. length < 2 # view changes view_extensions = [ ".xib" , ".storyboard" ] has_view_changes = git. modified_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} has_view_added = git. added_files . any? { | file | view_extensions. any? { | ext | file. end_with? ext }} pr_has_screenshot = github. pr_body =~ /https?: \/\/\S * \. (png|jpg|jpeg|gif){1}/ warn ( "èŠãç®ã«å€æŽãããå Žåã¯ç»é¢ãã£ããã£ã貌ã£ãŠãã ãã" ) if (has_view_changes or has_view_added) and !pr_has_screenshot # base branch is_to_master = github. branch_for_base == 'master' is_to_develop = github. branch_for_base == 'develop' is_from_releases = !!github. branch_for_head . match ( /releases \/ [0-9]+ \. [0-9]+ \. [0-9]/ ) warn ( 'PR 㯠develop ã«åããŠãã ãã' ) if !is_to_develop and !(is_from_releases and is_to_master) # swiftLint swiftlint. lint_files inline_mode: true ãŸãšã CLINICS ã«ãããã¢ããªéçºã®å質ãšå¹çæ§ãåäžããããã®åãçµã¿ãã玹ä»ããŸããããããã®åãçµã¿ã«ãã£ãŠ ãã©ãããã©ãŒã æ¯ã®ãã¶ã€ã³ãæ©èœã®ãã¬ãå°ãªããªããèªèããã«ããææ»ããªã©ãå°ãªããªã£ãããšã§éçºå¹çãäžãã£ã ãšæããŸãããã©ãããã©ãŒã æ¯ã®éããå°ãªãããŠãããå€ãã®ã¡ã³ããŒãã³ãŒãã«æãå
¥ããããç¶æ
ã«ããããšã§å®è£
ãã³ãŒãã¬ãã¥ãŒã®è³ªãåäžããŠããããã«æããŸãã React Native ãªã©ãå©çšããŠãã³ãŒããã®ãã®ãå
±éåããæ¹æ³ããããšã¯æããŸããããã©ãããã©ãŒã æ¯ã«å¥ã®ã³ãŒãã§éçºããå Žåã§ãã仿§ãå®è£
ã®ã«ãŒã«ã工倫ããããšã§ããå¹ççã«éçºã§ããã®ã§ã¯ãªãã§ããããã CLINICS ããŒã ã§ã¯ä»ã«ãå®è£
ãéçºããã»ã¹ããããã¯ãéçšã«ã€ããŠæ¥ã
æ¹åãè¡ãªã£ãŠããŸããä»åŸããããããåãçµã¿ãç©æ¥µçã«å®è·µããKPT 圢åŒã§æ¯ãè¿ã£ãŠããŸã次ã®ã¢ã¯ã·ã§ã³ã«ã€ãªããããšã§ãå€ãã®æ¹ã«æããããããã¯ããè²ãŠãŠãããããšæã£ãŠããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ããã¶ã€ããŒãåéããŠããŸãããèå³ã®ããæ¹ã¯ããã¡ãããã©ããïŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®å»çã¡ãã£ã¢ããŒã ã§ãã¶ã€ã³ãããŠããæ³¢åã§ãã ã¡ãã¬ãŒéçºæ¬éšã§è¡ãããŠããå匷äŒãTechLunchãã§ããã¶ã€ããŒä»¥å€ã®æ¹ãç¥ã£ãŠãããŠæã¯ãªãããã©ã³ããšã¯ïŒããšããã話ããããŠããã ããŸãããå€ãã®æ¹ãäœãšãªãç¥ã£ãŠããããšãå€ããããããŸããããåå
¥éçã«åèã«ããŠããã ãããšå¬ããã§ãã èæ¯ ã¡ãã¬ãŒã§ã¯ææãåãããããã¯ãã®åšãæ¹ã«ã€ããŠåžžæ¥é ããæ§ã
ãªå Žé¢ã§è°è«ããªãããŠããŸãã ãããã£ãè°è«ã®äžã§ãã©ã³ããšããŠã©ã®ããã«èŠããããã®ãè¯ãã ãããããšãã£ãæ€èšãããããšãå€ã
ãããæ¹ããŠãã©ã³ãã«ã€ããŠåŠã³çŽããããšæã£ãã®ãä»åã®ãã£ããã«ãªããŸãã TechLunch ã§ã¯ãšã³ãžãã¢ã»ãã¶ã€ããŒã»ãã£ã¬ã¯ã¿ãŒã»å»åž«ïŒïŒïŒãšæ§ã
ãªè·çš®ã®äººãåå ããŠããŸãã ãã®æä»£ã§ã¯åœããåãããããªããã©ã³ãã®åºç€ãæ¹ããŠåŠã³çŽãããã¶ã€ããŒä»¥å€ã®è·çš®ã®æ¹ã«ãå
±æããŸããã®ã§ãããã°ã§ãã玹ä»ãããŠããã ããã°ãšæããŸãã ãã©ã³ãã£ãŠãªãã§ããã ãã©ã³ããšãã©ã³ãã£ã³ã°ã®éãã£ãŠïŒï¿Œ ãŸãã¯æ··åãããããã©ã³ããšãã©ã³ãã£ã³ã°ã®å®çŸ©ããã ããç¹å®ã®ååããµãŒãã¹ãæ¶è²»è
ã»é¡§å®¢ã«ãã£ãŠèå¥ãããŠãããšãã ãã®ååããµãŒãã¹ãããã©ã³ãããšåŒã¶ â»è£œååãããã±ãŒãžã³ã°ãåºåãäŸ¡æ Œã䜿çšçµéšãªã©ã«ããããã®è£œåã«ã€ãããã補åç¹æ§ãšäŸ¡å€ïŒæ©èœçããã³éæ©èœçïŒãšã®ãŠããŒã¯ãªã³ã³ãããŒã·ã§ã³ãæ¶è²»è
ã»é¡§å®¢ã®ç®ããèŠãå Žåããã®è£œåãç«¶åããå·®å¥åãããã®ã (via ãã©ã³ãã»ãããŒãžã£ãŒèªå®åäŒ çšèªé ) ãã©ã³ãã£ã³ã°ãšã¯ããã©ã³ãã«å¯Ÿããå
±æãä¿¡é Œãªã©ãéããŠé¡§å®¢ã«ãšã£ãŠã®äŸ¡å€ãé«ããŠãããäŒæ¥ãšçµç¹ã®ããŒã±ãã£ã³ã°æŠç¥ã® 1 ã€ããã©ã³ããšããŠèªç¥ãããŠããªããã®ããã©ã³ãã«è²ãŠäžããããããã¯ãã©ã³ãæ§æèŠçŽ ã匷åããæŽ»æ§ã»ç¶æç®¡çããŠããããšããŸãããã®ææ³ãããã§ãããã©ã³ããšã¯é«çŽæ¶è²»è²¡ã«éããããã®å¯Ÿè±¡ãšããŠã¯ãååããµãŒãã¹ãããããäŸçµŠããäŒæ¥ãå£äœã®ã»ãã人ç©ã»å»ºç¯ç©ã»å²è·¡ã»å°å ã»ç¥äºãªã©ããããããã®ã該åœããã (via wikipedia:ãã©ã³ãã£ã³ã° ) ãã©ã³ã ãšã¯ãäŒæ¥ã»è£œåã«å¯ŸããŠæ¶è²»è
ãæã£ãŠããã€ã¡ãŒãž(èšå·)ã§ãããç«¶åãšã®å·®å¥åãçã¿åºã䟡å€ã®ç·äœããæãã ãã©ã³ãã£ã³ã° ã¯ããã©ã³ã䟡å€ãäžããããã®ææ®µããšæããããšãã§ãããšæããŸãã ãã®å®çŸ©ã«ãªããããŠã³ã«ã»ã³ãŒã©ãäŸã«ãã©ã³ããšããŠèªç¥ãããå
·äœçãªã¹ããããšããŠç޹ä»ãããšã以äžã®ããã«ãªããŸãã ããŽãªã©ã®èå¥èšå·ãèšæ¶ããã ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèšæ¶ããã (çæŽ»è
ã®é ã®äžã«ãããŽãªã©ã®èå¥èšå·ãèšæ¶ããã) èšå·ããäœéšãæãæµ®ãã¶ ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèŠãã°çé
žé£²æã§ããããšããçœãããªæ°åã«ãªããããšãæã浮㶠(èå¥èšå·ãèŠãã°ãç¥èŠäœéšãæ³èµ·ã§ãã) äœéšããèšå·ãæãåºã çœãããªæ°åã«ãªããããšæã£ãããã³ã«ïœ¥ã³ãŒã©ãæãåºããããŽãæãæµ®ãã¶ (ç¥èŠäŸ¡å€ãé ã«æµ®ããã ããèå¥èšå·ãæ³èµ·ããã) ããã©ã³ã飿³ãããã©ã³ãè³ç£ããšãã£ãèšèãããããã©ã³ãïŒèå¥èšå·ãšç¥èŠäœéšïŒã«å¯ŸããŠããžãã£ããªå°è±¡ãç¯ãèç©ãããããšããã©ã³ãã£ã³ã°ã®ã«ã®ã«ãªã£ãŠããŸãã ãã©ã³ãæ§ç¯ åè¿°ã®èšå·ããã©ã³ãã®åå°ãšãããšã³ãŒãã¬ãŒãã¢ã€ãã³ãã£ãã£ïŒCIïŒããŽã£ãžã¥ã¢ã«ã¢ã€ãã³ãã£ãã£ïŒVIïŒãšãã£ãã¯ãªãšã€ãã£ãã倧ããªåœ¹å²ãæãããŸãããçŸåšã§ã¯ãŠãŒã¶ãŒã¯ãã©ã³ããç¥èŠããæ©äŒãå€ããå·®å¥åã®ããã«ããã©ã³ãã¯é¡§å®¢äœéšãããŒã¹ã«äœã£ãŠããããšãéèŠã«ãªããŸãã è¯ã顧客äœéšãæäŸããã©ã³ãã®ç«¶äºåãé«ãã ãšããèãæ¹ã«åºã¥ããŠããã©ã³ãæŠç¥ãèããé çªã¯çæ³çãªäœéšãæããŠããå¿
èŠãªã¢ããæè¡ãèããŸããããã¯ãã©ã³ãã«éããæ§ã
ãªå Žé¢ã§æèãããããšã§ãã ãã©ã³ãã«å€§äºãªäžè²«æ§ é
åçãªãã©ã³ãã¯é¡§å®¢äœéšãèç©ããŠåœ¢æãããŠãããŸããèç©ããããã©ã³ãäœéšã®èŠçŽ ã¯ãäœéšã®é
å床ããäœéšã®éãšæéããäœéšã®äžè²«æ§ããš 3 ã€ããããã©ã³ãã®äŸ¡å€ã¯ãã® 3 ã€ã®èŠçŽ ã®ããç®ã«ãããŸãã äœéšãé
åçã§ããããã®äœéšã®åæ°ãå€ãé·ãæéã«ããã£ãŠçµéšããäœéšèªäœã«äžè²«æ§ããããã©ã³ãããŠãŒã¶ãŒãšã£ãŠè¯ããã®ãšãããŸãã 3 ã€ã®ãã¡ç¹ã«éèŠãªãã®ã¯æåŸã® äœéšã®äžè²«æ§ïœ£ ã«ããããã®äžè²«æ§ã¯ 2 ã€ã«åããããšãã§ããŸãã æç³»åã§äžè²«æ§ ïŒæä»£ã§å·Šå³ãããªã顧客äœéšããã©ã³ãããæäŸããã æ¥ç¹ã®äžè²«æ§ ïŒãã©ã³ããè²·ã£ããå©çšããåããã賌å
¥ããã»ã¹ã賌å
¥åŸã®å©çšã·ãŒã³ã«ãããŠãäžè²«ãã顧客äœéšãã§ãã ãã¢ããšã³ããã«ãäŸãããããšããã§ããã補åãšããŠã®äžè²«æ§ã«å ããŠäœéšããååŸã®ã°ã©ã³ããã¶ã€ã³ã«ãäžè²«æ§ãæããããšãéèŠã«ãªããŸãã äŸãšããŠã¹ã¿ãŒããã¯ã¹ã¯åºåè²»ãã»ãšãã©ãããã«ä»ã®ãã©ã³ãèªç¥åºŠãç¯ããããšã¯æåã§ãããããã«ã¯ãã©ã³ãã®äŸ¡å€ãç¯ãããã®ãã©ã³ãã£ã³ã°ã«äžè²«æ§ãããããã€ããããæä»£æ§ãšãããããã®ãèŠå ã§ã¯ãªãããšæããŸãã ãã©ã³ãã£ã³ã°ã®ã¡ãªãã éžææææ±ºå®ã®åçŽåã»åºå®å 顧客ã®ç¥èãæŽçãããããšã§ç«¶åãšå·®å¥åããåã³åãç©ãéžã¶ããã«ãªã ãŠãŒã¶ãŒã®ãã€ã€ã«å 芪ãã¿ãä¿¡é Œãå¢å€§ãããããšã§ãã©ã³ããã€ã€ãªãã£ã圢æããã ãªããã©ã³ãã«ãã ããã®ãããšããç¹ã§ããããã¡ãªãããå®çŸããŠããããšãéèŠã§ãã ãã¶ã€ããŒãšããŠæ°é£ã溢ãã UI ãããµãŒãã¹ã®ææ³ãèšå·ã«èœãšã蟌ãã VI ãªã©ã¢ãã¥ããèŠç¹ã§ã®ãã ãããéèŠããèžãŸããäžã§ãä»è·çš®ã®æ¹ã«ããããã®ã¡ãªãããç«¶äºãšããŠã®å¿
èŠã§ããããšãçè§£ããŠããããããåããããããšãæèããŠãããããšããã§ãã ãã©ã³ãã£ã³ã°ã®æ©ã¿ã©ãã ããããã¯åºç€ãèžãŸããŠãå®è·µçã«è¡ãããŠãããã©ã³ãã£ã³ã°ã§æ©ã¿ããããšãããäºäŸã§ç޹ä»ããªããç°¡åãªãã£ã¹ã«ãã·ã§ã³ãããŠãããŸãããäžéšã ãæç²ããŠã玹ä»ããŸãã 補åãã©ã³ãã®ç®¡ç äŒç€Ÿã®ãã©ã³ã管çã®ææ³ãå®çŸ©ã§ããŠããå€åã®æ©ãæ¥çã§ããã°ã€ã¡ãŒãžéãã«ãªããªãéããªãããšãå€ã
æãããŸãã å°ãªããã©ã³ãè³ç£ã掻çšããæå³ã§ãã¹ã¿ãŒãã¢ããã¯æšªäž²åã«æŽçãããããšãå€ããããŸãããããçšåºŠã®èŠæš¡æã«ãªã£ãŠåºç€äœåãããäŒæ¥ã§ãããšåå¥é©å¿åã§ããã©ã³ããšããŠä¿¡é Œæ§ãä¿ãŠãŸãããæšªäž²åã«æ¯ã¹ãŠåããããããããšæããŸãã äžæ¹ã§ããã©ãããã©ãŒããŒãšããŠååšããããªã暪䞲ã®ãã©ã³ã䟡å€ãããã¡ã³ãå²ã蟌ãã¹ããããããŸãããTechlunch ã®äžã§ãã¡ãã¬ãŒã§ããã°ã©ããããšè¯ããã«ã€ããŠè°è«ãã§ããŸããã ãã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã° 顧客äœéšã®èç©ãéèŠãªãã©ã³ãã§ãããŸãããã©ã®æ®µéã§ãã©ã³ãã£ã³ã°ã«åãçµããã¯ç¶æ³ã«ãããŸããæèŠãåºããããšããã ãšæããŸãã ICC FUKUOKA2017 ã«ãŠãã©ã³ãã£ã³ã°ã«ã€ããŠã®ã»ãã·ã§ã³ããããåãçµãã¿ã€ãã³ã°ã«ã€ããŠã®è°è«ãããŸããŸãšããããŠãããã Techlunch ã§äºäŸãšããŠå
±æããŸããããããã¯ããšããŠã®å·®å¥åãåºæ¬ã§ããããšã«å ããŠããã©ã³ãã®åšãæ¹ãçµç¹ã«ã€ã³ã¹ããŒã«ãããããã«ãã©ã³ãã£ã³ã°ã«åãçµãã±ãŒã¹ã玹ä»ãããŠããŸãã åã¯ãã©ã³ããåžžã«å¿
èŠããšèšããšâNoâã ãšæããŸãã ã³ã¢ãã£ãã£åãå§ããããç«¶äºãå§ãŸã£ãŠå·®å¥åããªããŠã¯ãªããªãæã«ããããã¯ãã®æ©èœãªã©ã§å·®å¥åãã§ããªãããŸãã¯å¿
ãããããã©ãŒãã³ã¹ã§å·®å¥åãã§ããªãæã«å¯äžæ®ãããéžæãããã©ã³ããäœããšããããšã§ãããšæããŸãã [æ ªåŒäŒç€Ÿ Bloom&Co. åœéæ³°åŒ] ãŠãŒã¶ãŒãç²ãã«ãããšãããã§ãŒãºã§ãããã ã¡ã«ã«ãªã®å Žåããã¯ãæåã® 100 äžããŠã³ããŒãããããŸã§ã¯ãçµæ§ãã¥ãŒãã³ã°ãããªãããªã³ã©ã€ã³ã®ããŒã±ãã£ã³ã°ã§ïŒãŠãŒã¶ãŒãïŒç²åŸããŠããŠããŸããã äžç¥ ãã¯ã 100 äžããŠã³ããŒãããããã£ãŠããªãã³ã·ã§ã³ã¬ãŒããé«ããŠãŒã¶ãŒãç©ã¿äžããç¶æ
ã«ãªã£ãŠããã°ã倧ãããã¹ããŒã±ãã£ã³ã°ïŒTVCMïŒããã£ãŠãç²åŸãããŠãŒã¶ãŒã¯æ®ããŸããããã [æ ªåŒäŒç€Ÿã¡ã«ã«ãª å°æ³ææ] åã¯ããŠãŒã¶ãŒãç²åŸããæåã§ãã©ã³ããå¿
èŠã ãšæã£ãŠãããã§ãããã ãã©ã³ããšããã®ã¯å¿
ãããå€ã«å¯ŸããŠã ãã§ã¯ãªããŠãïŒçµç¹ã®ïŒäžã®äººã«å¯ŸããŠå¿
èŠã§ããããšããããå€ãã®ã§ãã äžç¥ è³çå ã¯åœæ 130 幎ãããçµã£ãŠããäŒç€Ÿã ã£ãã®ã§ããã® 130 幎ããã®åŸã® 130 幎ããäžã®äžãçŸãããããšãã人ãçŸãããããšããããã¯å¥³æ§ã«éããããåç²§ã«éããçŸãããããšããããšãå¿
èŠã ããã軞ã ãããšãã話ã«ãªã£ãŠããã®ã¹ããŒã¬ã³ãšå
±ã«åç°æ°ç€Ÿé·äœå¶ã§é²ãã§ããããšã«ãªããŸããã [æ ªåŒäŒç€Ÿ dof éœè€å€ªé] (via ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒãF17-7C #3ã ) å
±æããåŸã«ã¯ããªãªãŒã¹åœåãããã©ã³ããã¯ãªãšã€ãã£ããäœã蟌ãŸãããããã¯ããæè¿è©±é¡ã«ãªãããšãå€ããšããããšã話ã«äžãããŸããã ãã¡ãããã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã°ã¯ç¶æ³ã«ããåå·®äžå¥ã§ããããããã¯ãããŒãããäœãéã«ã¯ããããã¯ãã®åšãæ¹ãšåãããŠã©ããªãã©ã³ããäœã£ãŠè¡ãããã®ããæ©ãã«èããããããšãå¿
èŠã ããªã©å
·äœçãªãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãŸããã æ°ããªãã©ã³ããåãå
¥ããããªãããšã åºæ¬çã«ãã©ã³ããæ°ããããããšã¯èŠæ
£ãããã®ãå€ãã£ãŠããŸãææããåçºãçãã±ãŒã¹ãå€ãã§ããããã®äžã§ã GAP ã¯ããŽã® 2010 幎ãªãã¥ãŒã¢ã«å
¬è¡šåŸãããäžããã®åçºã匷ãããã 6 æ¥éãšããçæéã§æ°ããããŽã®äœ¿çšãæ¢ããå
ã®ããŽã«æ»ããŠããŸããšããäžä»¶ããããŸãããïŒãã®ä»¶ã¯ æ ªäŸ¡ ã«ã倧ããªåœ±é¿ãäžããŸããïŒ äžæ¹ãåããããªå¢éã§ Airbnb ã 2014 幎ã®ãªãã¥ãŒã¢ã«åœåããŽã¯äžè©ã§ãããä»ã§ã¯ãªãã¥ãŒã¢ã«ã®æåäŸãšããŠæ±ãããååšã«ãªã£ãŠããŸãã Techlunch ã§ãæŽå²ã®æç¡ãå·®ã«ãªã£ãã®ãããªã©æ§ã
ãªæèŠãåºãŠããŸããããã®ä»¶ã¯ããŽãšããŠã®çéãæ¥µããããšãã以äžã®èæ¯ãæç€ºåºæ¥ãªãã£ã Gap ã«å¯ŸããŠã Airbnb ã¯ãµãŒãã¹ã®ã¹ããŒãªãŒãããŽã«å
å
ããå°éã«ããŽãä»ããã³ãã¥ãã±ãŒã·ã§ã³ã«åŸ¹ããããšãææãåããããã«æããŸãã ãã®äºäŸã¯ããŽã®ã¢ã€ãã³ãã£ãã£ãã©ããŸã§ç¢ºç«ããããããã®éãã«ããããšã«å ããŠããã¶ã€ã³ã®æææ±ºå®ãäžæçãªå€æ°æèŠã«å§ããäºäŸãšããŠãåŠã¶ããšãå€ãã§ãã ãŸãšã ç§å人ãå
ã
ã°ã©ãã£ãã¯ãã¶ã€ã³ãããŠããçµéšããããä»ãŸã§ã¯ãã©ã³ãã£ã³ã°ã®äžã§ãèå³ã CI ã VI ã«åŸåããŠããŸããããäœéšå
šäœããã©ã³ãã«å€§ããªåœ±é¿ãäžãããã®æä»£ãçµç¹ãšããŠãã©ã³ãæ§ç¯ãããŠããæèãéèŠã§ããããšãä»åã®å€§ããªåŠã³ã§ããã ãŸãåºç€ãåŠã¶äžã§æžç±ãèªãã§ããŸããããæè¿ã®äºäŸãªã©ãåŠã¶éã«ã¯ããã°ãªã©ã§ã®æ
å ±åéããšãŠãæå¹ã§ãåŠã³æ¹ãå€ãã£ãŠããŠãããªãšæããŸãããä»å玹ä»ããå
容ã¯ãããŸã§å
¥éç·šãªã®ã§ãèå³ãããã°ä»ååèã«ãããŠããã ããæ¬ãšããã°ã»èšäºããããæ·±å ããåºæ¥ãã®ã§ãªã¹ã¹ã¡ããŸãã ãã©ãããã©ãŒã ãã©ã³ãã£ã³ã° ã³ãŒãã¬ãŒãã»ã¢ã€ãã³ãã£ãã£æŠç¥âãã¶ã€ã³ãäŒæ¥çµå¶ãå€ãã ãã©ã³ãã»ãšã¯ã€ãã£ç ç©¶ã®å±æ ïœäŸ¡å€ããããè°è«ã®ç³»èãäžå¿ã«ïœ UX ãšãã©ã³ã ãã©ã³ãã¢ã€ãã³ãã£ãã£ãšã¯ïœãã©ã³ãæ§ç¯ãææã«å°ã BI ã®åµãæ¹ïœæåäºäŸæ ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒ ããŽã®ãªãã¶ã€ã³ãŒãªã Gap ã倱æã Airbnb ãåãå
¥ããããã®ã æŠåšã«ãªããããŽããçã¿åºããCI ãã¶ã€ã³ãšã¯äœãïŒ Techlunch ã§ã¯ãã¶ã€ããŒä»¥å€ã®æ¹ãããäºäŸã«å¯ŸããŠæèŠãåºãããçåã«å¯ŸããŠåå è
ã§ãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãããšããšãŠãææçŸ©ã§ãããä»åŸã¯ããããæèããªãããã©ã³ãã®åå°ãšãªã䟡å€ãåšãæ¹ããã¶ã€ã³åºæ¥ãããã«ããŠãããããšæããŸãã ãç¥ãã  ã¡ãã¬ãŒã§ã¯ãå»çä»è·ã®æ±äººãµã€ãããžã§ãã¡ãã¬ãŒããå»åž«ãã¡ãã€ãããªã³ã©ã€ã³å»çäºå
žãMEDLEYããå£ã³ãã§æ¢ããä»è·æœèšã®æ€çŽ¢ãµã€ããä»è·ã®ã»ãããããªã³ã©ã€ã³èšºçã¢ããªãCLINICSããªã©ã®ãããã¯ããæäŸããŠããŸãããããã®ãµãŒãã¹ã®æ¡å€§ãåããŠããã®æé·ãæ¯ãããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã èå³ã®ããæ¹ããã²ã¡ãã¬ãŒãžéã³ã«ããããŠãã ããã www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®å»çã¡ãã£ã¢ããŒã ã§ãã¶ã€ã³ãããŠããæ³¢åã§ãã ã¡ãã¬ãŒéçºæ¬éšã§è¡ãããŠããå匷äŒãTechLunchãã§ããã¶ã€ããŒä»¥å€ã®æ¹ãç¥ã£ãŠãããŠæã¯ãªãããã©ã³ããšã¯ïŒããšããã話ããããŠããã ããŸãããå€ãã®æ¹ãäœãšãªãç¥ã£ãŠããããšãå€ããããããŸããããåå
¥éçã«åèã«ããŠããã ãããšå¬ããã§ãã èæ¯ ã¡ãã¬ãŒã§ã¯ææãåãããããã¯ãã®åšãæ¹ã«ã€ããŠåžžæ¥é ããæ§ã
ãªå Žé¢ã§è°è«ããªãããŠããŸãã ãããã£ãè°è«ã®äžã§ãã©ã³ããšããŠã©ã®ããã«èŠããããã®ãè¯ãã ãããããšãã£ãæ€èšãããããšãå€ã
ãããæ¹ããŠãã©ã³ãã«ã€ããŠåŠã³çŽããããšæã£ãã®ãä»åã®ãã£ããã«ãªããŸãã TechLunch ã§ã¯ãšã³ãžãã¢ã»ãã¶ã€ããŒã»ãã£ã¬ã¯ã¿ãŒã»å»åž«ïŒïŒïŒãšæ§ã
ãªè·çš®ã®äººãåå ããŠããŸãã ãã®æä»£ã§ã¯åœããåãããããªããã©ã³ãã®åºç€ãæ¹ããŠåŠã³çŽãããã¶ã€ããŒä»¥å€ã®è·çš®ã®æ¹ã«ãå
±æããŸããã®ã§ãããã°ã§ãã玹ä»ãããŠããã ããã°ãšæããŸãã ãã©ã³ãã£ãŠãªãã§ããã ãã©ã³ããšãã©ã³ãã£ã³ã°ã®éãã£ãŠïŒï¿Œ ãŸãã¯æ··åãããããã©ã³ããšãã©ã³ãã£ã³ã°ã®å®çŸ©ããã ããç¹å®ã®ååããµãŒãã¹ãæ¶è²»è
ã»é¡§å®¢ã«ãã£ãŠèå¥ãããŠãããšãã ãã®ååããµãŒãã¹ãããã©ã³ãããšåŒã¶ â»è£œååãããã±ãŒãžã³ã°ãåºåãäŸ¡æ Œã䜿çšçµéšãªã©ã«ããããã®è£œåã«ã€ãããã補åç¹æ§ãšäŸ¡å€ïŒæ©èœçããã³éæ©èœçïŒãšã®ãŠããŒã¯ãªã³ã³ãããŒã·ã§ã³ãæ¶è²»è
ã»é¡§å®¢ã®ç®ããèŠãå Žåããã®è£œåãç«¶åããå·®å¥åãããã®ã (via ãã©ã³ãã»ãããŒãžã£ãŒèªå®åäŒ çšèªé ) ãã©ã³ãã£ã³ã°ãšã¯ããã©ã³ãã«å¯Ÿããå
±æãä¿¡é Œãªã©ãéããŠé¡§å®¢ã«ãšã£ãŠã®äŸ¡å€ãé«ããŠãããäŒæ¥ãšçµç¹ã®ããŒã±ãã£ã³ã°æŠç¥ã® 1 ã€ããã©ã³ããšããŠèªç¥ãããŠããªããã®ããã©ã³ãã«è²ãŠäžããããããã¯ãã©ã³ãæ§æèŠçŽ ã匷åããæŽ»æ§ã»ç¶æç®¡çããŠããããšããŸãããã®ææ³ãããã§ãããã©ã³ããšã¯é«çŽæ¶è²»è²¡ã«éããããã®å¯Ÿè±¡ãšããŠã¯ãååããµãŒãã¹ãããããäŸçµŠããäŒæ¥ãå£äœã®ã»ãã人ç©ã»å»ºç¯ç©ã»å²è·¡ã»å°å ã»ç¥äºãªã©ããããããã®ã該åœããã (via wikipedia:ãã©ã³ãã£ã³ã° ) ãã©ã³ã ãšã¯ãäŒæ¥ã»è£œåã«å¯ŸããŠæ¶è²»è
ãæã£ãŠããã€ã¡ãŒãž(èšå·)ã§ãããç«¶åãšã®å·®å¥åãçã¿åºã䟡å€ã®ç·äœããæãã ãã©ã³ãã£ã³ã° ã¯ããã©ã³ã䟡å€ãäžããããã®ææ®µããšæããããšãã§ãããšæããŸãã ãã®å®çŸ©ã«ãªããããŠã³ã«ã»ã³ãŒã©ãäŸã«ãã©ã³ããšããŠèªç¥ãããå
·äœçãªã¹ããããšããŠç޹ä»ãããšã以äžã®ããã«ãªããŸãã ããŽãªã©ã®èå¥èšå·ãèšæ¶ããã ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèšæ¶ããã (çæŽ»è
ã®é ã®äžã«ãããŽãªã©ã®èå¥èšå·ãèšæ¶ããã) èšå·ããäœéšãæãæµ®ãã¶ ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèŠãã°çé
žé£²æã§ããããšããçœãããªæ°åã«ãªããããšãæã浮㶠(èå¥èšå·ãèŠãã°ãç¥èŠäœéšãæ³èµ·ã§ãã) äœéšããèšå·ãæãåºã çœãããªæ°åã«ãªããããšæã£ãããã³ã«ïœ¥ã³ãŒã©ãæãåºããããŽãæãæµ®ãã¶ (ç¥èŠäŸ¡å€ãé ã«æµ®ããã ããèå¥èšå·ãæ³èµ·ããã) ããã©ã³ã飿³ãããã©ã³ãè³ç£ããšãã£ãèšèãããããã©ã³ãïŒèå¥èšå·ãšç¥èŠäœéšïŒã«å¯ŸããŠããžãã£ããªå°è±¡ãç¯ãèç©ãããããšããã©ã³ãã£ã³ã°ã®ã«ã®ã«ãªã£ãŠããŸãã ãã©ã³ãæ§ç¯ åè¿°ã®èšå·ããã©ã³ãã®åå°ãšãããšã³ãŒãã¬ãŒãã¢ã€ãã³ãã£ãã£ïŒCIïŒããŽã£ãžã¥ã¢ã«ã¢ã€ãã³ãã£ãã£ïŒVIïŒãšãã£ãã¯ãªãšã€ãã£ãã倧ããªåœ¹å²ãæãããŸãããçŸåšã§ã¯ãŠãŒã¶ãŒã¯ãã©ã³ããç¥èŠããæ©äŒãå€ããå·®å¥åã®ããã«ããã©ã³ãã¯é¡§å®¢äœéšãããŒã¹ã«äœã£ãŠããããšãéèŠã«ãªããŸãã è¯ã顧客äœéšãæäŸããã©ã³ãã®ç«¶äºåãé«ãã ãšããèãæ¹ã«åºã¥ããŠããã©ã³ãæŠç¥ãèããé çªã¯çæ³çãªäœéšãæããŠããå¿
èŠãªã¢ããæè¡ãèããŸããããã¯ãã©ã³ãã«éããæ§ã
ãªå Žé¢ã§æèãããããšã§ãã ãã©ã³ãã«å€§äºãªäžè²«æ§ é
åçãªãã©ã³ãã¯é¡§å®¢äœéšãèç©ããŠåœ¢æãããŠãããŸããèç©ããããã©ã³ãäœéšã®èŠçŽ ã¯ãäœéšã®é
å床ããäœéšã®éãšæéããäœéšã®äžè²«æ§ããš 3 ã€ããããã©ã³ãã®äŸ¡å€ã¯ãã® 3 ã€ã®èŠçŽ ã®ããç®ã«ãããŸãã äœéšãé
åçã§ããããã®äœéšã®åæ°ãå€ãé·ãæéã«ããã£ãŠçµéšããäœéšèªäœã«äžè²«æ§ããããã©ã³ãããŠãŒã¶ãŒãšã£ãŠè¯ããã®ãšãããŸãã 3 ã€ã®ãã¡ç¹ã«éèŠãªãã®ã¯æåŸã® äœéšã®äžè²«æ§ïœ£ ã«ããããã®äžè²«æ§ã¯ 2 ã€ã«åããããšãã§ããŸãã æç³»åã§äžè²«æ§ ïŒæä»£ã§å·Šå³ãããªã顧客äœéšããã©ã³ãããæäŸããã æ¥ç¹ã®äžè²«æ§ ïŒãã©ã³ããè²·ã£ããå©çšããåããã賌å
¥ããã»ã¹ã賌å
¥åŸã®å©çšã·ãŒã³ã«ãããŠãäžè²«ãã顧客äœéšãã§ãã ãã¢ããšã³ããã«ãäŸãããããšããã§ããã補åãšããŠã®äžè²«æ§ã«å ããŠäœéšããååŸã®ã°ã©ã³ããã¶ã€ã³ã«ãäžè²«æ§ãæããããšãéèŠã«ãªããŸãã äŸãšããŠã¹ã¿ãŒããã¯ã¹ã¯åºåè²»ãã»ãšãã©ãããã«ä»ã®ãã©ã³ãèªç¥åºŠãç¯ããããšã¯æåã§ãããããã«ã¯ãã©ã³ãã®äŸ¡å€ãç¯ãããã®ãã©ã³ãã£ã³ã°ã«äžè²«æ§ãããããã€ããããæä»£æ§ãšãããããã®ãèŠå ã§ã¯ãªãããšæããŸãã ãã©ã³ãã£ã³ã°ã®ã¡ãªãã éžææææ±ºå®ã®åçŽåã»åºå®å 顧客ã®ç¥èãæŽçãããããšã§ç«¶åãšå·®å¥åããåã³åãç©ãéžã¶ããã«ãªã ãŠãŒã¶ãŒã®ãã€ã€ã«å 芪ãã¿ãä¿¡é Œãå¢å€§ãããããšã§ãã©ã³ããã€ã€ãªãã£ã圢æããã ãªããã©ã³ãã«ãã ããã®ãããšããç¹ã§ããããã¡ãªãããå®çŸããŠããããšãéèŠã§ãã ãã¶ã€ããŒãšããŠæ°é£ã溢ãã UI ãããµãŒãã¹ã®ææ³ãèšå·ã«èœãšã蟌ãã VI ãªã©ã¢ãã¥ããèŠç¹ã§ã®ãã ãããéèŠããèžãŸããäžã§ãä»è·çš®ã®æ¹ã«ããããã®ã¡ãªãããç«¶äºãšããŠã®å¿
èŠã§ããããšãçè§£ããŠããããããåããããããšãæèããŠãããããšããã§ãã ãã©ã³ãã£ã³ã°ã®æ©ã¿ã©ãã ããããã¯åºç€ãèžãŸããŠãå®è·µçã«è¡ãããŠãããã©ã³ãã£ã³ã°ã§æ©ã¿ããããšãããäºäŸã§ç޹ä»ããªããç°¡åãªãã£ã¹ã«ãã·ã§ã³ãããŠãããŸãããäžéšã ãæç²ããŠã玹ä»ããŸãã 補åãã©ã³ãã®ç®¡ç äŒç€Ÿã®ãã©ã³ã管çã®ææ³ãå®çŸ©ã§ããŠããå€åã®æ©ãæ¥çã§ããã°ã€ã¡ãŒãžéãã«ãªããªãéããªãããšãå€ã
æãããŸãã å°ãªããã©ã³ãè³ç£ã掻çšããæå³ã§ãã¹ã¿ãŒãã¢ããã¯æšªäž²åã«æŽçãããããšãå€ããããŸãããããçšåºŠã®èŠæš¡æã«ãªã£ãŠåºç€äœåãããäŒæ¥ã§ãããšåå¥é©å¿åã§ããã©ã³ããšããŠä¿¡é Œæ§ãä¿ãŠãŸãããæšªäž²åã«æ¯ã¹ãŠåããããããããšæããŸãã äžæ¹ã§ããã©ãããã©ãŒããŒãšããŠååšããããªã暪䞲ã®ãã©ã³ã䟡å€ãããã¡ã³ãå²ã蟌ãã¹ããããããŸãããTechlunch ã®äžã§ãã¡ãã¬ãŒã§ããã°ã©ããããšè¯ããã«ã€ããŠè°è«ãã§ããŸããã ãã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã° 顧客äœéšã®èç©ãéèŠãªãã©ã³ãã§ãããŸãããã©ã®æ®µéã§ãã©ã³ãã£ã³ã°ã«åãçµããã¯ç¶æ³ã«ãããŸããæèŠãåºããããšããã ãšæããŸãã ICC FUKUOKA2017 ã«ãŠãã©ã³ãã£ã³ã°ã«ã€ããŠã®ã»ãã·ã§ã³ããããåãçµãã¿ã€ãã³ã°ã«ã€ããŠã®è°è«ãããŸããŸãšããããŠãããã Techlunch ã§äºäŸãšããŠå
±æããŸããããããã¯ããšããŠã®å·®å¥åãåºæ¬ã§ããããšã«å ããŠããã©ã³ãã®åšãæ¹ãçµç¹ã«ã€ã³ã¹ããŒã«ãããããã«ãã©ã³ãã£ã³ã°ã«åãçµãã±ãŒã¹ã玹ä»ãããŠããŸãã åã¯ãã©ã³ããåžžã«å¿
èŠããšèšããšâNoâã ãšæããŸãã ã³ã¢ãã£ãã£åãå§ããããç«¶äºãå§ãŸã£ãŠå·®å¥åããªããŠã¯ãªããªãæã«ããããã¯ãã®æ©èœãªã©ã§å·®å¥åãã§ããªãããŸãã¯å¿
ãããããã©ãŒãã³ã¹ã§å·®å¥åãã§ããªãæã«å¯äžæ®ãããéžæãããã©ã³ããäœããšããããšã§ãããšæããŸãã [æ ªåŒäŒç€Ÿ Bloom&Co. åœéæ³°åŒ] ãŠãŒã¶ãŒãç²ãã«ãããšãããã§ãŒãºã§ãããã ã¡ã«ã«ãªã®å Žåããã¯ãæåã® 100 äžããŠã³ããŒãããããŸã§ã¯ãçµæ§ãã¥ãŒãã³ã°ãããªãããªã³ã©ã€ã³ã®ããŒã±ãã£ã³ã°ã§ïŒãŠãŒã¶ãŒãïŒç²åŸããŠããŠããŸããã äžç¥ ãã¯ã 100 äžããŠã³ããŒãããããã£ãŠããªãã³ã·ã§ã³ã¬ãŒããé«ããŠãŒã¶ãŒãç©ã¿äžããç¶æ
ã«ãªã£ãŠããã°ã倧ãããã¹ããŒã±ãã£ã³ã°ïŒTVCMïŒããã£ãŠãç²åŸãããŠãŒã¶ãŒã¯æ®ããŸããããã [æ ªåŒäŒç€Ÿã¡ã«ã«ãª å°æ³ææ] åã¯ããŠãŒã¶ãŒãç²åŸããæåã§ãã©ã³ããå¿
èŠã ãšæã£ãŠãããã§ãããã ãã©ã³ããšããã®ã¯å¿
ãããå€ã«å¯ŸããŠã ãã§ã¯ãªããŠãïŒçµç¹ã®ïŒäžã®äººã«å¯ŸããŠå¿
èŠã§ããããšããããå€ãã®ã§ãã äžç¥ è³çå ã¯åœæ 130 幎ãããçµã£ãŠããäŒç€Ÿã ã£ãã®ã§ããã® 130 幎ããã®åŸã® 130 幎ããäžã®äžãçŸãããããšãã人ãçŸãããããšããããã¯å¥³æ§ã«éããããåç²§ã«éããçŸãããããšããããšãå¿
èŠã ããã軞ã ãããšãã話ã«ãªã£ãŠããã®ã¹ããŒã¬ã³ãšå
±ã«åç°æ°ç€Ÿé·äœå¶ã§é²ãã§ããããšã«ãªããŸããã [æ ªåŒäŒç€Ÿ dof éœè€å€ªé] (via ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒãF17-7C #3ã ) å
±æããåŸã«ã¯ããªãªãŒã¹åœåãããã©ã³ããã¯ãªãšã€ãã£ããäœã蟌ãŸãããããã¯ããæè¿è©±é¡ã«ãªãããšãå€ããšããããšã話ã«äžãããŸããã ãã¡ãããã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã°ã¯ç¶æ³ã«ããåå·®äžå¥ã§ããããããã¯ãããŒãããäœãéã«ã¯ããããã¯ãã®åšãæ¹ãšåãããŠã©ããªãã©ã³ããäœã£ãŠè¡ãããã®ããæ©ãã«èããããããšãå¿
èŠã ããªã©å
·äœçãªãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãŸããã æ°ããªãã©ã³ããåãå
¥ããããªãããšã åºæ¬çã«ãã©ã³ããæ°ããããããšã¯èŠæ
£ãããã®ãå€ãã£ãŠããŸãææããåçºãçãã±ãŒã¹ãå€ãã§ããããã®äžã§ã GAP ã¯ããŽã® 2010 幎ãªãã¥ãŒã¢ã«å
¬è¡šåŸãããäžããã®åçºã匷ãããã 6 æ¥éãšããçæéã§æ°ããããŽã®äœ¿çšãæ¢ããå
ã®ããŽã«æ»ããŠããŸããšããäžä»¶ããããŸãããïŒãã®ä»¶ã¯ æ ªäŸ¡ ã«ã倧ããªåœ±é¿ãäžããŸããïŒ äžæ¹ãåããããªå¢éã§ Airbnb ã 2014 幎ã®ãªãã¥ãŒã¢ã«åœåããŽã¯äžè©ã§ãããä»ã§ã¯ãªãã¥ãŒã¢ã«ã®æåäŸãšããŠæ±ãããååšã«ãªã£ãŠããŸãã Techlunch ã§ãæŽå²ã®æç¡ãå·®ã«ãªã£ãã®ãããªã©æ§ã
ãªæèŠãåºãŠããŸããããã®ä»¶ã¯ããŽãšããŠã®çéãæ¥µããããšãã以äžã®èæ¯ãæç€ºåºæ¥ãªãã£ã Gap ã«å¯ŸããŠã Airbnb ã¯ãµãŒãã¹ã®ã¹ããŒãªãŒãããŽã«å
å
ããå°éã«ããŽãä»ããã³ãã¥ãã±ãŒã·ã§ã³ã«åŸ¹ããããšãææãåããããã«æããŸãã ãã®äºäŸã¯ããŽã®ã¢ã€ãã³ãã£ãã£ãã©ããŸã§ç¢ºç«ããããããã®éãã«ããããšã«å ããŠããã¶ã€ã³ã®æææ±ºå®ãäžæçãªå€æ°æèŠã«å§ããäºäŸãšããŠãåŠã¶ããšãå€ãã§ãã ãŸãšã ç§å人ãå
ã
ã°ã©ãã£ãã¯ãã¶ã€ã³ãããŠããçµéšããããä»ãŸã§ã¯ãã©ã³ãã£ã³ã°ã®äžã§ãèå³ã CI ã VI ã«åŸåããŠããŸããããäœéšå
šäœããã©ã³ãã«å€§ããªåœ±é¿ãäžãããã®æä»£ãçµç¹ãšããŠãã©ã³ãæ§ç¯ãããŠããæèãéèŠã§ããããšãä»åã®å€§ããªåŠã³ã§ããã ãŸãåºç€ãåŠã¶äžã§æžç±ãèªãã§ããŸããããæè¿ã®äºäŸãªã©ãåŠã¶éã«ã¯ããã°ãªã©ã§ã®æ
å ±åéããšãŠãæå¹ã§ãåŠã³æ¹ãå€ãã£ãŠããŠãããªãšæããŸãããä»å玹ä»ããå
容ã¯ãããŸã§å
¥éç·šãªã®ã§ãèå³ãããã°ä»ååèã«ãããŠããã ããæ¬ãšããã°ã»èšäºããããæ·±å ããåºæ¥ãã®ã§ãªã¹ã¹ã¡ããŸãã ãã©ãããã©ãŒã ãã©ã³ãã£ã³ã° ã³ãŒãã¬ãŒãã»ã¢ã€ãã³ãã£ãã£æŠç¥âãã¶ã€ã³ãäŒæ¥çµå¶ãå€ãã ãã©ã³ãã»ãšã¯ã€ãã£ç ç©¶ã®å±æ ïœäŸ¡å€ããããè°è«ã®ç³»èãäžå¿ã«ïœ UX ãšãã©ã³ã ãã©ã³ãã¢ã€ãã³ãã£ãã£ãšã¯ïœãã©ã³ãæ§ç¯ãææã«å°ã BI ã®åµãæ¹ïœæåäºäŸæ ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒ ããŽã®ãªãã¶ã€ã³ãŒãªã Gap ã倱æã Airbnb ãåãå
¥ããããã®ã æŠåšã«ãªããããŽããçã¿åºããCI ãã¶ã€ã³ãšã¯äœãïŒ Techlunch ã§ã¯ãã¶ã€ããŒä»¥å€ã®æ¹ãããäºäŸã«å¯ŸããŠæèŠãåºãããçåã«å¯ŸããŠåå è
ã§ãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãããšããšãŠãææçŸ©ã§ãããä»åŸã¯ããããæèããªãããã©ã³ãã®åå°ãšãªã䟡å€ãåšãæ¹ããã¶ã€ã³åºæ¥ãããã«ããŠãããããšæããŸãã ãç¥ãã  ã¡ãã¬ãŒã§ã¯ãå»çä»è·ã®æ±äººãµã€ãããžã§ãã¡ãã¬ãŒããå»åž«ãã¡ãã€ãããªã³ã©ã€ã³å»çäºå
žãMEDLEYããå£ã³ãã§æ¢ããä»è·æœèšã®æ€çŽ¢ãµã€ããä»è·ã®ã»ãããããªã³ã©ã€ã³èšºçã¢ããªãCLINICSããªã©ã®ãããã¯ããæäŸããŠããŸãããããã®ãµãŒãã¹ã®æ¡å€§ãåããŠããã®æé·ãæ¯ãããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã èå³ã®ããæ¹ããã²ã¡ãã¬ãŒãžéã³ã«ããããŠãã ããã www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®å»çã¡ãã£ã¢ããŒã ã§ãã¶ã€ã³ãããŠããæ³¢åã§ãã ã¡ãã¬ãŒéçºæ¬éšã§è¡ãããŠããå匷äŒãTechLunchãã§ããã¶ã€ããŒä»¥å€ã®æ¹ãç¥ã£ãŠãããŠæã¯ãªãããã©ã³ããšã¯ïŒããšããã話ããããŠããã ããŸãããå€ãã®æ¹ãäœãšãªãç¥ã£ãŠããããšãå€ããããããŸããããåå
¥éçã«åèã«ããŠããã ãããšå¬ããã§ãã èæ¯ ã¡ãã¬ãŒã§ã¯ææãåãããããã¯ãã®åšãæ¹ã«ã€ããŠåžžæ¥é ããæ§ã
ãªå Žé¢ã§è°è«ããªãããŠããŸãã ãããã£ãè°è«ã®äžã§ãã©ã³ããšããŠã©ã®ããã«èŠããããã®ãè¯ãã ãããããšãã£ãæ€èšãããããšãå€ã
ãããæ¹ããŠãã©ã³ãã«ã€ããŠåŠã³çŽããããšæã£ãã®ãä»åã®ãã£ããã«ãªããŸãã TechLunch ã§ã¯ãšã³ãžãã¢ã»ãã¶ã€ããŒã»ãã£ã¬ã¯ã¿ãŒã»å»åž«ïŒïŒïŒãšæ§ã
ãªè·çš®ã®äººãåå ããŠããŸãã ãã®æä»£ã§ã¯åœããåãããããªããã©ã³ãã®åºç€ãæ¹ããŠåŠã³çŽãããã¶ã€ããŒä»¥å€ã®è·çš®ã®æ¹ã«ãå
±æããŸããã®ã§ãããã°ã§ãã玹ä»ãããŠããã ããã°ãšæããŸãã ãã©ã³ãã£ãŠãªãã§ããã ãã©ã³ããšãã©ã³ãã£ã³ã°ã®éãã£ãŠïŒï¿Œ ãŸãã¯æ··åãããããã©ã³ããšãã©ã³ãã£ã³ã°ã®å®çŸ©ããã ããç¹å®ã®ååããµãŒãã¹ãæ¶è²»è
ã»é¡§å®¢ã«ãã£ãŠèå¥ãããŠãããšãã ãã®ååããµãŒãã¹ãããã©ã³ãããšåŒã¶ â»è£œååãããã±ãŒãžã³ã°ãåºåãäŸ¡æ Œã䜿çšçµéšãªã©ã«ããããã®è£œåã«ã€ãããã補åç¹æ§ãšäŸ¡å€ïŒæ©èœçããã³éæ©èœçïŒãšã®ãŠããŒã¯ãªã³ã³ãããŒã·ã§ã³ãæ¶è²»è
ã»é¡§å®¢ã®ç®ããèŠãå Žåããã®è£œåãç«¶åããå·®å¥åãããã®ã (via ãã©ã³ãã»ãããŒãžã£ãŒèªå®åäŒ çšèªé ) ãã©ã³ãã£ã³ã°ãšã¯ããã©ã³ãã«å¯Ÿããå
±æãä¿¡é Œãªã©ãéããŠé¡§å®¢ã«ãšã£ãŠã®äŸ¡å€ãé«ããŠãããäŒæ¥ãšçµç¹ã®ããŒã±ãã£ã³ã°æŠç¥ã® 1 ã€ããã©ã³ããšããŠèªç¥ãããŠããªããã®ããã©ã³ãã«è²ãŠäžããããããã¯ãã©ã³ãæ§æèŠçŽ ã匷åããæŽ»æ§ã»ç¶æç®¡çããŠããããšããŸãããã®ææ³ãããã§ãããã©ã³ããšã¯é«çŽæ¶è²»è²¡ã«éããããã®å¯Ÿè±¡ãšããŠã¯ãååããµãŒãã¹ãããããäŸçµŠããäŒæ¥ãå£äœã®ã»ãã人ç©ã»å»ºç¯ç©ã»å²è·¡ã»å°å ã»ç¥äºãªã©ããããããã®ã該åœããã (via wikipedia:ãã©ã³ãã£ã³ã° ) ãã©ã³ã ãšã¯ãäŒæ¥ã»è£œåã«å¯ŸããŠæ¶è²»è
ãæã£ãŠããã€ã¡ãŒãž(èšå·)ã§ãããç«¶åãšã®å·®å¥åãçã¿åºã䟡å€ã®ç·äœããæãã ãã©ã³ãã£ã³ã° ã¯ããã©ã³ã䟡å€ãäžããããã®ææ®µããšæããããšãã§ãããšæããŸãã ãã®å®çŸ©ã«ãªããããŠã³ã«ã»ã³ãŒã©ãäŸã«ãã©ã³ããšããŠèªç¥ãããå
·äœçãªã¹ããããšããŠç޹ä»ãããšã以äžã®ããã«ãªããŸãã ããŽãªã©ã®èå¥èšå·ãèšæ¶ããã ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèšæ¶ããã (çæŽ»è
ã®é ã®äžã«ãããŽãªã©ã®èå¥èšå·ãèšæ¶ããã) èšå·ããäœéšãæãæµ®ãã¶ ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèŠãã°çé
žé£²æã§ããããšããçœãããªæ°åã«ãªããããšãæã浮㶠(èå¥èšå·ãèŠãã°ãç¥èŠäœéšãæ³èµ·ã§ãã) äœéšããèšå·ãæãåºã çœãããªæ°åã«ãªããããšæã£ãããã³ã«ïœ¥ã³ãŒã©ãæãåºããããŽãæãæµ®ãã¶ (ç¥èŠäŸ¡å€ãé ã«æµ®ããã ããèå¥èšå·ãæ³èµ·ããã) ããã©ã³ã飿³ãããã©ã³ãè³ç£ããšãã£ãèšèãããããã©ã³ãïŒèå¥èšå·ãšç¥èŠäœéšïŒã«å¯ŸããŠããžãã£ããªå°è±¡ãç¯ãèç©ãããããšããã©ã³ãã£ã³ã°ã®ã«ã®ã«ãªã£ãŠããŸãã ãã©ã³ãæ§ç¯ åè¿°ã®èšå·ããã©ã³ãã®åå°ãšãããšã³ãŒãã¬ãŒãã¢ã€ãã³ãã£ãã£ïŒCIïŒããŽã£ãžã¥ã¢ã«ã¢ã€ãã³ãã£ãã£ïŒVIïŒãšãã£ãã¯ãªãšã€ãã£ãã倧ããªåœ¹å²ãæãããŸãããçŸåšã§ã¯ãŠãŒã¶ãŒã¯ãã©ã³ããç¥èŠããæ©äŒãå€ããå·®å¥åã®ããã«ããã©ã³ãã¯é¡§å®¢äœéšãããŒã¹ã«äœã£ãŠããããšãéèŠã«ãªããŸãã è¯ã顧客äœéšãæäŸããã©ã³ãã®ç«¶äºåãé«ãã ãšããèãæ¹ã«åºã¥ããŠããã©ã³ãæŠç¥ãèããé çªã¯çæ³çãªäœéšãæããŠããå¿
èŠãªã¢ããæè¡ãèããŸããããã¯ãã©ã³ãã«éããæ§ã
ãªå Žé¢ã§æèãããããšã§ãã ãã©ã³ãã«å€§äºãªäžè²«æ§ é
åçãªãã©ã³ãã¯é¡§å®¢äœéšãèç©ããŠåœ¢æãããŠãããŸããèç©ããããã©ã³ãäœéšã®èŠçŽ ã¯ãäœéšã®é
å床ããäœéšã®éãšæéããäœéšã®äžè²«æ§ããš 3 ã€ããããã©ã³ãã®äŸ¡å€ã¯ãã® 3 ã€ã®èŠçŽ ã®ããç®ã«ãããŸãã äœéšãé
åçã§ããããã®äœéšã®åæ°ãå€ãé·ãæéã«ããã£ãŠçµéšããäœéšèªäœã«äžè²«æ§ããããã©ã³ãããŠãŒã¶ãŒãšã£ãŠè¯ããã®ãšãããŸãã 3 ã€ã®ãã¡ç¹ã«éèŠãªãã®ã¯æåŸã® äœéšã®äžè²«æ§ïœ£ ã«ããããã®äžè²«æ§ã¯ 2 ã€ã«åããããšãã§ããŸãã æç³»åã§äžè²«æ§ ïŒæä»£ã§å·Šå³ãããªã顧客äœéšããã©ã³ãããæäŸããã æ¥ç¹ã®äžè²«æ§ ïŒãã©ã³ããè²·ã£ããå©çšããåããã賌å
¥ããã»ã¹ã賌å
¥åŸã®å©çšã·ãŒã³ã«ãããŠãäžè²«ãã顧客äœéšãã§ãã ãã¢ããšã³ããã«ãäŸãããããšããã§ããã補åãšããŠã®äžè²«æ§ã«å ããŠäœéšããååŸã®ã°ã©ã³ããã¶ã€ã³ã«ãäžè²«æ§ãæããããšãéèŠã«ãªããŸãã äŸãšããŠã¹ã¿ãŒããã¯ã¹ã¯åºåè²»ãã»ãšãã©ãããã«ä»ã®ãã©ã³ãèªç¥åºŠãç¯ããããšã¯æåã§ãããããã«ã¯ãã©ã³ãã®äŸ¡å€ãç¯ãããã®ãã©ã³ãã£ã³ã°ã«äžè²«æ§ãããããã€ããããæä»£æ§ãšãããããã®ãèŠå ã§ã¯ãªãããšæããŸãã ãã©ã³ãã£ã³ã°ã®ã¡ãªãã éžææææ±ºå®ã®åçŽåã»åºå®å 顧客ã®ç¥èãæŽçãããããšã§ç«¶åãšå·®å¥åããåã³åãç©ãéžã¶ããã«ãªã ãŠãŒã¶ãŒã®ãã€ã€ã«å 芪ãã¿ãä¿¡é Œãå¢å€§ãããããšã§ãã©ã³ããã€ã€ãªãã£ã圢æããã ãªããã©ã³ãã«ãã ããã®ãããšããç¹ã§ããããã¡ãªãããå®çŸããŠããããšãéèŠã§ãã ãã¶ã€ããŒãšããŠæ°é£ã溢ãã UI ãããµãŒãã¹ã®ææ³ãèšå·ã«èœãšã蟌ãã VI ãªã©ã¢ãã¥ããèŠç¹ã§ã®ãã ãããéèŠããèžãŸããäžã§ãä»è·çš®ã®æ¹ã«ããããã®ã¡ãªãããç«¶äºãšããŠã®å¿
èŠã§ããããšãçè§£ããŠããããããåããããããšãæèããŠãããããšããã§ãã ãã©ã³ãã£ã³ã°ã®æ©ã¿ã©ãã ããããã¯åºç€ãèžãŸããŠãå®è·µçã«è¡ãããŠãããã©ã³ãã£ã³ã°ã§æ©ã¿ããããšãããäºäŸã§ç޹ä»ããªããç°¡åãªãã£ã¹ã«ãã·ã§ã³ãããŠãããŸãããäžéšã ãæç²ããŠã玹ä»ããŸãã 補åãã©ã³ãã®ç®¡ç äŒç€Ÿã®ãã©ã³ã管çã®ææ³ãå®çŸ©ã§ããŠããå€åã®æ©ãæ¥çã§ããã°ã€ã¡ãŒãžéãã«ãªããªãéããªãããšãå€ã
æãããŸãã å°ãªããã©ã³ãè³ç£ã掻çšããæå³ã§ãã¹ã¿ãŒãã¢ããã¯æšªäž²åã«æŽçãããããšãå€ããããŸãããããçšåºŠã®èŠæš¡æã«ãªã£ãŠåºç€äœåãããäŒæ¥ã§ãããšåå¥é©å¿åã§ããã©ã³ããšããŠä¿¡é Œæ§ãä¿ãŠãŸãããæšªäž²åã«æ¯ã¹ãŠåããããããããšæããŸãã äžæ¹ã§ããã©ãããã©ãŒããŒãšããŠååšããããªã暪䞲ã®ãã©ã³ã䟡å€ãããã¡ã³ãå²ã蟌ãã¹ããããããŸãããTechlunch ã®äžã§ãã¡ãã¬ãŒã§ããã°ã©ããããšè¯ããã«ã€ããŠè°è«ãã§ããŸããã ãã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã° 顧客äœéšã®èç©ãéèŠãªãã©ã³ãã§ãããŸãããã©ã®æ®µéã§ãã©ã³ãã£ã³ã°ã«åãçµããã¯ç¶æ³ã«ãããŸããæèŠãåºããããšããã ãšæããŸãã ICC FUKUOKA2017 ã«ãŠãã©ã³ãã£ã³ã°ã«ã€ããŠã®ã»ãã·ã§ã³ããããåãçµãã¿ã€ãã³ã°ã«ã€ããŠã®è°è«ãããŸããŸãšããããŠãããã Techlunch ã§äºäŸãšããŠå
±æããŸããããããã¯ããšããŠã®å·®å¥åãåºæ¬ã§ããããšã«å ããŠããã©ã³ãã®åšãæ¹ãçµç¹ã«ã€ã³ã¹ããŒã«ãããããã«ãã©ã³ãã£ã³ã°ã«åãçµãã±ãŒã¹ã玹ä»ãããŠããŸãã åã¯ãã©ã³ããåžžã«å¿
èŠããšèšããšâNoâã ãšæããŸãã ã³ã¢ãã£ãã£åãå§ããããç«¶äºãå§ãŸã£ãŠå·®å¥åããªããŠã¯ãªããªãæã«ããããã¯ãã®æ©èœãªã©ã§å·®å¥åãã§ããªãããŸãã¯å¿
ãããããã©ãŒãã³ã¹ã§å·®å¥åãã§ããªãæã«å¯äžæ®ãããéžæãããã©ã³ããäœããšããããšã§ãããšæããŸãã [æ ªåŒäŒç€Ÿ Bloom&Co. åœéæ³°åŒ] ãŠãŒã¶ãŒãç²ãã«ãããšãããã§ãŒãºã§ãããã ã¡ã«ã«ãªã®å Žåããã¯ãæåã® 100 äžããŠã³ããŒãããããŸã§ã¯ãçµæ§ãã¥ãŒãã³ã°ãããªãããªã³ã©ã€ã³ã®ããŒã±ãã£ã³ã°ã§ïŒãŠãŒã¶ãŒãïŒç²åŸããŠããŠããŸããã äžç¥ ãã¯ã 100 äžããŠã³ããŒãããããã£ãŠããªãã³ã·ã§ã³ã¬ãŒããé«ããŠãŒã¶ãŒãç©ã¿äžããç¶æ
ã«ãªã£ãŠããã°ã倧ãããã¹ããŒã±ãã£ã³ã°ïŒTVCMïŒããã£ãŠãç²åŸãããŠãŒã¶ãŒã¯æ®ããŸããããã [æ ªåŒäŒç€Ÿã¡ã«ã«ãª å°æ³ææ] åã¯ããŠãŒã¶ãŒãç²åŸããæåã§ãã©ã³ããå¿
èŠã ãšæã£ãŠãããã§ãããã ãã©ã³ããšããã®ã¯å¿
ãããå€ã«å¯ŸããŠã ãã§ã¯ãªããŠãïŒçµç¹ã®ïŒäžã®äººã«å¯ŸããŠå¿
èŠã§ããããšããããå€ãã®ã§ãã äžç¥ è³çå ã¯åœæ 130 幎ãããçµã£ãŠããäŒç€Ÿã ã£ãã®ã§ããã® 130 幎ããã®åŸã® 130 幎ããäžã®äžãçŸãããããšãã人ãçŸãããããšããããã¯å¥³æ§ã«éããããåç²§ã«éããçŸãããããšããããšãå¿
èŠã ããã軞ã ãããšãã話ã«ãªã£ãŠããã®ã¹ããŒã¬ã³ãšå
±ã«åç°æ°ç€Ÿé·äœå¶ã§é²ãã§ããããšã«ãªããŸããã [æ ªåŒäŒç€Ÿ dof éœè€å€ªé] (via ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒãF17-7C #3ã ) å
±æããåŸã«ã¯ããªãªãŒã¹åœåãããã©ã³ããã¯ãªãšã€ãã£ããäœã蟌ãŸãããããã¯ããæè¿è©±é¡ã«ãªãããšãå€ããšããããšã話ã«äžãããŸããã ãã¡ãããã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã°ã¯ç¶æ³ã«ããåå·®äžå¥ã§ããããããã¯ãããŒãããäœãéã«ã¯ããããã¯ãã®åšãæ¹ãšåãããŠã©ããªãã©ã³ããäœã£ãŠè¡ãããã®ããæ©ãã«èããããããšãå¿
èŠã ããªã©å
·äœçãªãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãŸããã æ°ããªãã©ã³ããåãå
¥ããããªãããšã åºæ¬çã«ãã©ã³ããæ°ããããããšã¯èŠæ
£ãããã®ãå€ãã£ãŠããŸãææããåçºãçãã±ãŒã¹ãå€ãã§ããããã®äžã§ã GAP ã¯ããŽã® 2010 幎ãªãã¥ãŒã¢ã«å
¬è¡šåŸãããäžããã®åçºã匷ãããã 6 æ¥éãšããçæéã§æ°ããããŽã®äœ¿çšãæ¢ããå
ã®ããŽã«æ»ããŠããŸããšããäžä»¶ããããŸãããïŒãã®ä»¶ã¯ æ ªäŸ¡ ã«ã倧ããªåœ±é¿ãäžããŸããïŒ äžæ¹ãåããããªå¢éã§ Airbnb ã 2014 幎ã®ãªãã¥ãŒã¢ã«åœåããŽã¯äžè©ã§ãããä»ã§ã¯ãªãã¥ãŒã¢ã«ã®æåäŸãšããŠæ±ãããååšã«ãªã£ãŠããŸãã Techlunch ã§ãæŽå²ã®æç¡ãå·®ã«ãªã£ãã®ãããªã©æ§ã
ãªæèŠãåºãŠããŸããããã®ä»¶ã¯ããŽãšããŠã®çéãæ¥µããããšãã以äžã®èæ¯ãæç€ºåºæ¥ãªãã£ã Gap ã«å¯ŸããŠã Airbnb ã¯ãµãŒãã¹ã®ã¹ããŒãªãŒãããŽã«å
å
ããå°éã«ããŽãä»ããã³ãã¥ãã±ãŒã·ã§ã³ã«åŸ¹ããããšãææãåããããã«æããŸãã ãã®äºäŸã¯ããŽã®ã¢ã€ãã³ãã£ãã£ãã©ããŸã§ç¢ºç«ããããããã®éãã«ããããšã«å ããŠããã¶ã€ã³ã®æææ±ºå®ãäžæçãªå€æ°æèŠã«å§ããäºäŸãšããŠãåŠã¶ããšãå€ãã§ãã ãŸãšã ç§å人ãå
ã
ã°ã©ãã£ãã¯ãã¶ã€ã³ãããŠããçµéšããããä»ãŸã§ã¯ãã©ã³ãã£ã³ã°ã®äžã§ãèå³ã CI ã VI ã«åŸåããŠããŸããããäœéšå
šäœããã©ã³ãã«å€§ããªåœ±é¿ãäžãããã®æä»£ãçµç¹ãšããŠãã©ã³ãæ§ç¯ãããŠããæèãéèŠã§ããããšãä»åã®å€§ããªåŠã³ã§ããã ãŸãåºç€ãåŠã¶äžã§æžç±ãèªãã§ããŸããããæè¿ã®äºäŸãªã©ãåŠã¶éã«ã¯ããã°ãªã©ã§ã®æ
å ±åéããšãŠãæå¹ã§ãåŠã³æ¹ãå€ãã£ãŠããŠãããªãšæããŸãããä»å玹ä»ããå
容ã¯ãããŸã§å
¥éç·šãªã®ã§ãèå³ãããã°ä»ååèã«ãããŠããã ããæ¬ãšããã°ã»èšäºããããæ·±å ããåºæ¥ãã®ã§ãªã¹ã¹ã¡ããŸãã ãã©ãããã©ãŒã ãã©ã³ãã£ã³ã° ã³ãŒãã¬ãŒãã»ã¢ã€ãã³ãã£ãã£æŠç¥âãã¶ã€ã³ãäŒæ¥çµå¶ãå€ãã ãã©ã³ãã»ãšã¯ã€ãã£ç ç©¶ã®å±æ ïœäŸ¡å€ããããè°è«ã®ç³»èãäžå¿ã«ïœ UX ãšãã©ã³ã ãã©ã³ãã¢ã€ãã³ãã£ãã£ãšã¯ïœãã©ã³ãæ§ç¯ãææã«å°ã BI ã®åµãæ¹ïœæåäºäŸæ ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒ ããŽã®ãªãã¶ã€ã³ãŒãªã Gap ã倱æã Airbnb ãåãå
¥ããããã®ã æŠåšã«ãªããããŽããçã¿åºããCI ãã¶ã€ã³ãšã¯äœãïŒ Techlunch ã§ã¯ãã¶ã€ããŒä»¥å€ã®æ¹ãããäºäŸã«å¯ŸããŠæèŠãåºãããçåã«å¯ŸããŠåå è
ã§ãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãããšããšãŠãææçŸ©ã§ãããä»åŸã¯ããããæèããªãããã©ã³ãã®åå°ãšãªã䟡å€ãåšãæ¹ããã¶ã€ã³åºæ¥ãããã«ããŠãããããšæããŸãã ãç¥ãã  ã¡ãã¬ãŒã§ã¯ãå»çä»è·ã®æ±äººãµã€ãããžã§ãã¡ãã¬ãŒããå»åž«ãã¡ãã€ãããªã³ã©ã€ã³å»çäºå
žãMEDLEYããå£ã³ãã§æ¢ããä»è·æœèšã®æ€çŽ¢ãµã€ããä»è·ã®ã»ãããããªã³ã©ã€ã³èšºçã¢ããªãCLINICSããªã©ã®ãããã¯ããæäŸããŠããŸãããããã®ãµãŒãã¹ã®æ¡å€§ãåããŠããã®æé·ãæ¯ãããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã èå³ã®ããæ¹ããã²ã¡ãã¬ãŒãžéã³ã«ããããŠãã ããã www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®å»çã¡ãã£ã¢ããŒã ã§ãã¶ã€ã³ãããŠããæ³¢åã§ãã ã¡ãã¬ãŒéçºæ¬éšã§è¡ãããŠããå匷äŒãTechLunchãã§ããã¶ã€ããŒä»¥å€ã®æ¹ãç¥ã£ãŠãããŠæã¯ãªãããã©ã³ããšã¯ïŒããšããã話ããããŠããã ããŸãããå€ãã®æ¹ãäœãšãªãç¥ã£ãŠããããšãå€ããããããŸããããåå
¥éçã«åèã«ããŠããã ãããšå¬ããã§ãã èæ¯ ã¡ãã¬ãŒã§ã¯ææãåãããããã¯ãã®åšãæ¹ã«ã€ããŠåžžæ¥é ããæ§ã
ãªå Žé¢ã§è°è«ããªãããŠããŸãã ãããã£ãè°è«ã®äžã§ãã©ã³ããšããŠã©ã®ããã«èŠããããã®ãè¯ãã ãããããšãã£ãæ€èšãããããšãå€ã
ãããæ¹ããŠãã©ã³ãã«ã€ããŠåŠã³çŽããããšæã£ãã®ãä»åã®ãã£ããã«ãªããŸãã TechLunch ã§ã¯ãšã³ãžãã¢ã»ãã¶ã€ããŒã»ãã£ã¬ã¯ã¿ãŒã»å»åž«ïŒïŒïŒãšæ§ã
ãªè·çš®ã®äººãåå ããŠããŸãã ãã®æä»£ã§ã¯åœããåãããããªããã©ã³ãã®åºç€ãæ¹ããŠåŠã³çŽãããã¶ã€ããŒä»¥å€ã®è·çš®ã®æ¹ã«ãå
±æããŸããã®ã§ãããã°ã§ãã玹ä»ãããŠããã ããã°ãšæããŸãã ãã©ã³ãã£ãŠãªãã§ããã ãã©ã³ããšãã©ã³ãã£ã³ã°ã®éãã£ãŠïŒï¿Œ ãŸãã¯æ··åãããããã©ã³ããšãã©ã³ãã£ã³ã°ã®å®çŸ©ããã ããç¹å®ã®ååããµãŒãã¹ãæ¶è²»è
ã»é¡§å®¢ã«ãã£ãŠèå¥ãããŠãããšãã ãã®ååããµãŒãã¹ãããã©ã³ãããšåŒã¶ â»è£œååãããã±ãŒãžã³ã°ãåºåãäŸ¡æ Œã䜿çšçµéšãªã©ã«ããããã®è£œåã«ã€ãããã補åç¹æ§ãšäŸ¡å€ïŒæ©èœçããã³éæ©èœçïŒãšã®ãŠããŒã¯ãªã³ã³ãããŒã·ã§ã³ãæ¶è²»è
ã»é¡§å®¢ã®ç®ããèŠãå Žåããã®è£œåãç«¶åããå·®å¥åãããã®ã (via ãã©ã³ãã»ãããŒãžã£ãŒèªå®åäŒ çšèªé ) ãã©ã³ãã£ã³ã°ãšã¯ããã©ã³ãã«å¯Ÿããå
±æãä¿¡é Œãªã©ãéããŠé¡§å®¢ã«ãšã£ãŠã®äŸ¡å€ãé«ããŠãããäŒæ¥ãšçµç¹ã®ããŒã±ãã£ã³ã°æŠç¥ã® 1 ã€ããã©ã³ããšããŠèªç¥ãããŠããªããã®ããã©ã³ãã«è²ãŠäžããããããã¯ãã©ã³ãæ§æèŠçŽ ã匷åããæŽ»æ§ã»ç¶æç®¡çããŠããããšããŸãããã®ææ³ãããã§ãããã©ã³ããšã¯é«çŽæ¶è²»è²¡ã«éããããã®å¯Ÿè±¡ãšããŠã¯ãååããµãŒãã¹ãããããäŸçµŠããäŒæ¥ãå£äœã®ã»ãã人ç©ã»å»ºç¯ç©ã»å²è·¡ã»å°å ã»ç¥äºãªã©ããããããã®ã該åœããã (via wikipedia:ãã©ã³ãã£ã³ã° ) ãã©ã³ã ãšã¯ãäŒæ¥ã»è£œåã«å¯ŸããŠæ¶è²»è
ãæã£ãŠããã€ã¡ãŒãž(èšå·)ã§ãããç«¶åãšã®å·®å¥åãçã¿åºã䟡å€ã®ç·äœããæãã ãã©ã³ãã£ã³ã° ã¯ããã©ã³ã䟡å€ãäžããããã®ææ®µããšæããããšãã§ãããšæããŸãã ãã®å®çŸ©ã«ãªããããŠã³ã«ã»ã³ãŒã©ãäŸã«ãã©ã³ããšããŠèªç¥ãããå
·äœçãªã¹ããããšããŠç޹ä»ãããšã以äžã®ããã«ãªããŸãã ããŽãªã©ã®èå¥èšå·ãèšæ¶ããã ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèšæ¶ããã (çæŽ»è
ã®é ã®äžã«ãããŽãªã©ã®èå¥èšå·ãèšæ¶ããã) èšå·ããäœéšãæãæµ®ãã¶ ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèŠãã°çé
žé£²æã§ããããšããçœãããªæ°åã«ãªããããšãæã浮㶠(èå¥èšå·ãèŠãã°ãç¥èŠäœéšãæ³èµ·ã§ãã) äœéšããèšå·ãæãåºã çœãããªæ°åã«ãªããããšæã£ãããã³ã«ïœ¥ã³ãŒã©ãæãåºããããŽãæãæµ®ãã¶ (ç¥èŠäŸ¡å€ãé ã«æµ®ããã ããèå¥èšå·ãæ³èµ·ããã) ããã©ã³ã飿³ãããã©ã³ãè³ç£ããšãã£ãèšèãããããã©ã³ãïŒèå¥èšå·ãšç¥èŠäœéšïŒã«å¯ŸããŠããžãã£ããªå°è±¡ãç¯ãèç©ãããããšããã©ã³ãã£ã³ã°ã®ã«ã®ã«ãªã£ãŠããŸãã ãã©ã³ãæ§ç¯ åè¿°ã®èšå·ããã©ã³ãã®åå°ãšãããšã³ãŒãã¬ãŒãã¢ã€ãã³ãã£ãã£ïŒCIïŒããŽã£ãžã¥ã¢ã«ã¢ã€ãã³ãã£ãã£ïŒVIïŒãšãã£ãã¯ãªãšã€ãã£ãã倧ããªåœ¹å²ãæãããŸãããçŸåšã§ã¯ãŠãŒã¶ãŒã¯ãã©ã³ããç¥èŠããæ©äŒãå€ããå·®å¥åã®ããã«ããã©ã³ãã¯é¡§å®¢äœéšãããŒã¹ã«äœã£ãŠããããšãéèŠã«ãªããŸãã è¯ã顧客äœéšãæäŸããã©ã³ãã®ç«¶äºåãé«ãã ãšããèãæ¹ã«åºã¥ããŠããã©ã³ãæŠç¥ãèããé çªã¯çæ³çãªäœéšãæããŠããå¿
èŠãªã¢ããæè¡ãèããŸããããã¯ãã©ã³ãã«éããæ§ã
ãªå Žé¢ã§æèãããããšã§ãã ãã©ã³ãã«å€§äºãªäžè²«æ§ é
åçãªãã©ã³ãã¯é¡§å®¢äœéšãèç©ããŠåœ¢æãããŠãããŸããèç©ããããã©ã³ãäœéšã®èŠçŽ ã¯ãäœéšã®é
å床ããäœéšã®éãšæéããäœéšã®äžè²«æ§ããš 3 ã€ããããã©ã³ãã®äŸ¡å€ã¯ãã® 3 ã€ã®èŠçŽ ã®ããç®ã«ãããŸãã äœéšãé
åçã§ããããã®äœéšã®åæ°ãå€ãé·ãæéã«ããã£ãŠçµéšããäœéšèªäœã«äžè²«æ§ããããã©ã³ãããŠãŒã¶ãŒãšã£ãŠè¯ããã®ãšãããŸãã 3 ã€ã®ãã¡ç¹ã«éèŠãªãã®ã¯æåŸã® äœéšã®äžè²«æ§ïœ£ ã«ããããã®äžè²«æ§ã¯ 2 ã€ã«åããããšãã§ããŸãã æç³»åã§äžè²«æ§ ïŒæä»£ã§å·Šå³ãããªã顧客äœéšããã©ã³ãããæäŸããã æ¥ç¹ã®äžè²«æ§ ïŒãã©ã³ããè²·ã£ããå©çšããåããã賌å
¥ããã»ã¹ã賌å
¥åŸã®å©çšã·ãŒã³ã«ãããŠãäžè²«ãã顧客äœéšãã§ãã ãã¢ããšã³ããã«ãäŸãããããšããã§ããã補åãšããŠã®äžè²«æ§ã«å ããŠäœéšããååŸã®ã°ã©ã³ããã¶ã€ã³ã«ãäžè²«æ§ãæããããšãéèŠã«ãªããŸãã äŸãšããŠã¹ã¿ãŒããã¯ã¹ã¯åºåè²»ãã»ãšãã©ãããã«ä»ã®ãã©ã³ãèªç¥åºŠãç¯ããããšã¯æåã§ãããããã«ã¯ãã©ã³ãã®äŸ¡å€ãç¯ãããã®ãã©ã³ãã£ã³ã°ã«äžè²«æ§ãããããã€ããããæä»£æ§ãšãããããã®ãèŠå ã§ã¯ãªãããšæããŸãã ãã©ã³ãã£ã³ã°ã®ã¡ãªãã éžææææ±ºå®ã®åçŽåã»åºå®å 顧客ã®ç¥èãæŽçãããããšã§ç«¶åãšå·®å¥åããåã³åãç©ãéžã¶ããã«ãªã ãŠãŒã¶ãŒã®ãã€ã€ã«å 芪ãã¿ãä¿¡é Œãå¢å€§ãããããšã§ãã©ã³ããã€ã€ãªãã£ã圢æããã ãªããã©ã³ãã«ãã ããã®ãããšããç¹ã§ããããã¡ãªãããå®çŸããŠããããšãéèŠã§ãã ãã¶ã€ããŒãšããŠæ°é£ã溢ãã UI ãããµãŒãã¹ã®ææ³ãèšå·ã«èœãšã蟌ãã VI ãªã©ã¢ãã¥ããèŠç¹ã§ã®ãã ãããéèŠããèžãŸããäžã§ãä»è·çš®ã®æ¹ã«ããããã®ã¡ãªãããç«¶äºãšããŠã®å¿
èŠã§ããããšãçè§£ããŠããããããåããããããšãæèããŠãããããšããã§ãã ãã©ã³ãã£ã³ã°ã®æ©ã¿ã©ãã ããããã¯åºç€ãèžãŸããŠãå®è·µçã«è¡ãããŠãããã©ã³ãã£ã³ã°ã§æ©ã¿ããããšãããäºäŸã§ç޹ä»ããªããç°¡åãªãã£ã¹ã«ãã·ã§ã³ãããŠãããŸãããäžéšã ãæç²ããŠã玹ä»ããŸãã 補åãã©ã³ãã®ç®¡ç äŒç€Ÿã®ãã©ã³ã管çã®ææ³ãå®çŸ©ã§ããŠããå€åã®æ©ãæ¥çã§ããã°ã€ã¡ãŒãžéãã«ãªããªãéããªãããšãå€ã
æãããŸãã å°ãªããã©ã³ãè³ç£ã掻çšããæå³ã§ãã¹ã¿ãŒãã¢ããã¯æšªäž²åã«æŽçãããããšãå€ããããŸãããããçšåºŠã®èŠæš¡æã«ãªã£ãŠåºç€äœåãããäŒæ¥ã§ãããšåå¥é©å¿åã§ããã©ã³ããšããŠä¿¡é Œæ§ãä¿ãŠãŸãããæšªäž²åã«æ¯ã¹ãŠåããããããããšæããŸãã äžæ¹ã§ããã©ãããã©ãŒããŒãšããŠååšããããªã暪䞲ã®ãã©ã³ã䟡å€ãããã¡ã³ãå²ã蟌ãã¹ããããããŸãããTechlunch ã®äžã§ãã¡ãã¬ãŒã§ããã°ã©ããããšè¯ããã«ã€ããŠè°è«ãã§ããŸããã ãã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã° 顧客äœéšã®èç©ãéèŠãªãã©ã³ãã§ãããŸãããã©ã®æ®µéã§ãã©ã³ãã£ã³ã°ã«åãçµããã¯ç¶æ³ã«ãããŸããæèŠãåºããããšããã ãšæããŸãã ICC FUKUOKA2017 ã«ãŠãã©ã³ãã£ã³ã°ã«ã€ããŠã®ã»ãã·ã§ã³ããããåãçµãã¿ã€ãã³ã°ã«ã€ããŠã®è°è«ãããŸããŸãšããããŠãããã Techlunch ã§äºäŸãšããŠå
±æããŸããããããã¯ããšããŠã®å·®å¥åãåºæ¬ã§ããããšã«å ããŠããã©ã³ãã®åšãæ¹ãçµç¹ã«ã€ã³ã¹ããŒã«ãããããã«ãã©ã³ãã£ã³ã°ã«åãçµãã±ãŒã¹ã玹ä»ãããŠããŸãã åã¯ãã©ã³ããåžžã«å¿
èŠããšèšããšâNoâã ãšæããŸãã ã³ã¢ãã£ãã£åãå§ããããç«¶äºãå§ãŸã£ãŠå·®å¥åããªããŠã¯ãªããªãæã«ããããã¯ãã®æ©èœãªã©ã§å·®å¥åãã§ããªãããŸãã¯å¿
ãããããã©ãŒãã³ã¹ã§å·®å¥åãã§ããªãæã«å¯äžæ®ãããéžæãããã©ã³ããäœããšããããšã§ãããšæããŸãã [æ ªåŒäŒç€Ÿ Bloom&Co. åœéæ³°åŒ] ãŠãŒã¶ãŒãç²ãã«ãããšãããã§ãŒãºã§ãããã ã¡ã«ã«ãªã®å Žåããã¯ãæåã® 100 äžããŠã³ããŒãããããŸã§ã¯ãçµæ§ãã¥ãŒãã³ã°ãããªãããªã³ã©ã€ã³ã®ããŒã±ãã£ã³ã°ã§ïŒãŠãŒã¶ãŒãïŒç²åŸããŠããŠããŸããã äžç¥ ãã¯ã 100 äžããŠã³ããŒãããããã£ãŠããªãã³ã·ã§ã³ã¬ãŒããé«ããŠãŒã¶ãŒãç©ã¿äžããç¶æ
ã«ãªã£ãŠããã°ã倧ãããã¹ããŒã±ãã£ã³ã°ïŒTVCMïŒããã£ãŠãç²åŸãããŠãŒã¶ãŒã¯æ®ããŸããããã [æ ªåŒäŒç€Ÿã¡ã«ã«ãª å°æ³ææ] åã¯ããŠãŒã¶ãŒãç²åŸããæåã§ãã©ã³ããå¿
èŠã ãšæã£ãŠãããã§ãããã ãã©ã³ããšããã®ã¯å¿
ãããå€ã«å¯ŸããŠã ãã§ã¯ãªããŠãïŒçµç¹ã®ïŒäžã®äººã«å¯ŸããŠå¿
èŠã§ããããšããããå€ãã®ã§ãã äžç¥ è³çå ã¯åœæ 130 幎ãããçµã£ãŠããäŒç€Ÿã ã£ãã®ã§ããã® 130 幎ããã®åŸã® 130 幎ããäžã®äžãçŸãããããšãã人ãçŸãããããšããããã¯å¥³æ§ã«éããããåç²§ã«éããçŸãããããšããããšãå¿
èŠã ããã軞ã ãããšãã話ã«ãªã£ãŠããã®ã¹ããŒã¬ã³ãšå
±ã«åç°æ°ç€Ÿé·äœå¶ã§é²ãã§ããããšã«ãªããŸããã [æ ªåŒäŒç€Ÿ dof éœè€å€ªé] (via ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒãF17-7C #3ã ) å
±æããåŸã«ã¯ããªãªãŒã¹åœåãããã©ã³ããã¯ãªãšã€ãã£ããäœã蟌ãŸãããããã¯ããæè¿è©±é¡ã«ãªãããšãå€ããšããããšã話ã«äžãããŸããã ãã¡ãããã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã°ã¯ç¶æ³ã«ããåå·®äžå¥ã§ããããããã¯ãããŒãããäœãéã«ã¯ããããã¯ãã®åšãæ¹ãšåãããŠã©ããªãã©ã³ããäœã£ãŠè¡ãããã®ããæ©ãã«èããããããšãå¿
èŠã ããªã©å
·äœçãªãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãŸããã æ°ããªãã©ã³ããåãå
¥ããããªãããšã åºæ¬çã«ãã©ã³ããæ°ããããããšã¯èŠæ
£ãããã®ãå€ãã£ãŠããŸãææããåçºãçãã±ãŒã¹ãå€ãã§ããããã®äžã§ã GAP ã¯ããŽã® 2010 幎ãªãã¥ãŒã¢ã«å
¬è¡šåŸãããäžããã®åçºã匷ãããã 6 æ¥éãšããçæéã§æ°ããããŽã®äœ¿çšãæ¢ããå
ã®ããŽã«æ»ããŠããŸããšããäžä»¶ããããŸãããïŒãã®ä»¶ã¯ æ ªäŸ¡ ã«ã倧ããªåœ±é¿ãäžããŸããïŒ äžæ¹ãåããããªå¢éã§ Airbnb ã 2014 幎ã®ãªãã¥ãŒã¢ã«åœåããŽã¯äžè©ã§ãããä»ã§ã¯ãªãã¥ãŒã¢ã«ã®æåäŸãšããŠæ±ãããååšã«ãªã£ãŠããŸãã Techlunch ã§ãæŽå²ã®æç¡ãå·®ã«ãªã£ãã®ãããªã©æ§ã
ãªæèŠãåºãŠããŸããããã®ä»¶ã¯ããŽãšããŠã®çéãæ¥µããããšãã以äžã®èæ¯ãæç€ºåºæ¥ãªãã£ã Gap ã«å¯ŸããŠã Airbnb ã¯ãµãŒãã¹ã®ã¹ããŒãªãŒãããŽã«å
å
ããå°éã«ããŽãä»ããã³ãã¥ãã±ãŒã·ã§ã³ã«åŸ¹ããããšãææãåããããã«æããŸãã ãã®äºäŸã¯ããŽã®ã¢ã€ãã³ãã£ãã£ãã©ããŸã§ç¢ºç«ããããããã®éãã«ããããšã«å ããŠããã¶ã€ã³ã®æææ±ºå®ãäžæçãªå€æ°æèŠã«å§ããäºäŸãšããŠãåŠã¶ããšãå€ãã§ãã ãŸãšã ç§å人ãå
ã
ã°ã©ãã£ãã¯ãã¶ã€ã³ãããŠããçµéšããããä»ãŸã§ã¯ãã©ã³ãã£ã³ã°ã®äžã§ãèå³ã CI ã VI ã«åŸåããŠããŸããããäœéšå
šäœããã©ã³ãã«å€§ããªåœ±é¿ãäžãããã®æä»£ãçµç¹ãšããŠãã©ã³ãæ§ç¯ãããŠããæèãéèŠã§ããããšãä»åã®å€§ããªåŠã³ã§ããã ãŸãåºç€ãåŠã¶äžã§æžç±ãèªãã§ããŸããããæè¿ã®äºäŸãªã©ãåŠã¶éã«ã¯ããã°ãªã©ã§ã®æ
å ±åéããšãŠãæå¹ã§ãåŠã³æ¹ãå€ãã£ãŠããŠãããªãšæããŸãããä»å玹ä»ããå
容ã¯ãããŸã§å
¥éç·šãªã®ã§ãèå³ãããã°ä»ååèã«ãããŠããã ããæ¬ãšããã°ã»èšäºããããæ·±å ããåºæ¥ãã®ã§ãªã¹ã¹ã¡ããŸãã ãã©ãããã©ãŒã ãã©ã³ãã£ã³ã° ã³ãŒãã¬ãŒãã»ã¢ã€ãã³ãã£ãã£æŠç¥âãã¶ã€ã³ãäŒæ¥çµå¶ãå€ãã ãã©ã³ãã»ãšã¯ã€ãã£ç ç©¶ã®å±æ ïœäŸ¡å€ããããè°è«ã®ç³»èãäžå¿ã«ïœ UX ãšãã©ã³ã ãã©ã³ãã¢ã€ãã³ãã£ãã£ãšã¯ïœãã©ã³ãæ§ç¯ãææã«å°ã BI ã®åµãæ¹ïœæåäºäŸæ ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒ ããŽã®ãªãã¶ã€ã³ãŒãªã Gap ã倱æã Airbnb ãåãå
¥ããããã®ã æŠåšã«ãªããããŽããçã¿åºããCI ãã¶ã€ã³ãšã¯äœãïŒ Techlunch ã§ã¯ãã¶ã€ããŒä»¥å€ã®æ¹ãããäºäŸã«å¯ŸããŠæèŠãåºãããçåã«å¯ŸããŠåå è
ã§ãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãããšããšãŠãææçŸ©ã§ãããä»åŸã¯ããããæèããªãããã©ã³ãã®åå°ãšãªã䟡å€ãåšãæ¹ããã¶ã€ã³åºæ¥ãããã«ããŠãããããšæããŸãã ãç¥ãã  ã¡ãã¬ãŒã§ã¯ãå»çä»è·ã®æ±äººãµã€ãããžã§ãã¡ãã¬ãŒããå»åž«ãã¡ãã€ãããªã³ã©ã€ã³å»çäºå
žãMEDLEYããå£ã³ãã§æ¢ããä»è·æœèšã®æ€çŽ¢ãµã€ããä»è·ã®ã»ãããããªã³ã©ã€ã³èšºçã¢ããªãCLINICSããªã©ã®ãããã¯ããæäŸããŠããŸãããããã®ãµãŒãã¹ã®æ¡å€§ãåããŠããã®æé·ãæ¯ãããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã èå³ã®ããæ¹ããã²ã¡ãã¬ãŒãžéã³ã«ããããŠãã ããã www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®å»çã¡ãã£ã¢ããŒã ã§ãã¶ã€ã³ãããŠããæ³¢åã§ãã ã¡ãã¬ãŒéçºæ¬éšã§è¡ãããŠããå匷äŒãTechLunchãã§ããã¶ã€ããŒä»¥å€ã®æ¹ãç¥ã£ãŠãããŠæã¯ãªãããã©ã³ããšã¯ïŒããšããã話ããããŠããã ããŸãããå€ãã®æ¹ãäœãšãªãç¥ã£ãŠããããšãå€ããããããŸããããåå
¥éçã«åèã«ããŠããã ãããšå¬ããã§ãã èæ¯ ã¡ãã¬ãŒã§ã¯ææãåãããããã¯ãã®åšãæ¹ã«ã€ããŠåžžæ¥é ããæ§ã
ãªå Žé¢ã§è°è«ããªãããŠããŸãã ãããã£ãè°è«ã®äžã§ãã©ã³ããšããŠã©ã®ããã«èŠããããã®ãè¯ãã ãããããšãã£ãæ€èšãããããšãå€ã
ãããæ¹ããŠãã©ã³ãã«ã€ããŠåŠã³çŽããããšæã£ãã®ãä»åã®ãã£ããã«ãªããŸãã TechLunch ã§ã¯ãšã³ãžãã¢ã»ãã¶ã€ããŒã»ãã£ã¬ã¯ã¿ãŒã»å»åž«ïŒïŒïŒãšæ§ã
ãªè·çš®ã®äººãåå ããŠããŸãã ãã®æä»£ã§ã¯åœããåãããããªããã©ã³ãã®åºç€ãæ¹ããŠåŠã³çŽãããã¶ã€ããŒä»¥å€ã®è·çš®ã®æ¹ã«ãå
±æããŸããã®ã§ãããã°ã§ãã玹ä»ãããŠããã ããã°ãšæããŸãã ãã©ã³ãã£ãŠãªãã§ããã ãã©ã³ããšãã©ã³ãã£ã³ã°ã®éãã£ãŠïŒï¿Œ ãŸãã¯æ··åãããããã©ã³ããšãã©ã³ãã£ã³ã°ã®å®çŸ©ããã ããç¹å®ã®ååããµãŒãã¹ãæ¶è²»è
ã»é¡§å®¢ã«ãã£ãŠèå¥ãããŠãããšãã ãã®ååããµãŒãã¹ãããã©ã³ãããšåŒã¶ â»è£œååãããã±ãŒãžã³ã°ãåºåãäŸ¡æ Œã䜿çšçµéšãªã©ã«ããããã®è£œåã«ã€ãããã補åç¹æ§ãšäŸ¡å€ïŒæ©èœçããã³éæ©èœçïŒãšã®ãŠããŒã¯ãªã³ã³ãããŒã·ã§ã³ãæ¶è²»è
ã»é¡§å®¢ã®ç®ããèŠãå Žåããã®è£œåãç«¶åããå·®å¥åãããã®ã (via ãã©ã³ãã»ãããŒãžã£ãŒèªå®åäŒ çšèªé ) ãã©ã³ãã£ã³ã°ãšã¯ããã©ã³ãã«å¯Ÿããå
±æãä¿¡é Œãªã©ãéããŠé¡§å®¢ã«ãšã£ãŠã®äŸ¡å€ãé«ããŠãããäŒæ¥ãšçµç¹ã®ããŒã±ãã£ã³ã°æŠç¥ã® 1 ã€ããã©ã³ããšããŠèªç¥ãããŠããªããã®ããã©ã³ãã«è²ãŠäžããããããã¯ãã©ã³ãæ§æèŠçŽ ã匷åããæŽ»æ§ã»ç¶æç®¡çããŠããããšããŸãããã®ææ³ãããã§ãããã©ã³ããšã¯é«çŽæ¶è²»è²¡ã«éããããã®å¯Ÿè±¡ãšããŠã¯ãååããµãŒãã¹ãããããäŸçµŠããäŒæ¥ãå£äœã®ã»ãã人ç©ã»å»ºç¯ç©ã»å²è·¡ã»å°å ã»ç¥äºãªã©ããããããã®ã該åœããã (via wikipedia:ãã©ã³ãã£ã³ã° ) ãã©ã³ã ãšã¯ãäŒæ¥ã»è£œåã«å¯ŸããŠæ¶è²»è
ãæã£ãŠããã€ã¡ãŒãž(èšå·)ã§ãããç«¶åãšã®å·®å¥åãçã¿åºã䟡å€ã®ç·äœããæãã ãã©ã³ãã£ã³ã° ã¯ããã©ã³ã䟡å€ãäžããããã®ææ®µããšæããããšãã§ãããšæããŸãã ãã®å®çŸ©ã«ãªããããŠã³ã«ã»ã³ãŒã©ãäŸã«ãã©ã³ããšããŠèªç¥ãããå
·äœçãªã¹ããããšããŠç޹ä»ãããšã以äžã®ããã«ãªããŸãã ããŽãªã©ã®èå¥èšå·ãèšæ¶ããã ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèšæ¶ããã (çæŽ»è
ã®é ã®äžã«ãããŽãªã©ã®èå¥èšå·ãèšæ¶ããã) èšå·ããäœéšãæãæµ®ãã¶ ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèŠãã°çé
žé£²æã§ããããšããçœãããªæ°åã«ãªããããšãæã浮㶠(èå¥èšå·ãèŠãã°ãç¥èŠäœéšãæ³èµ·ã§ãã) äœéšããèšå·ãæãåºã çœãããªæ°åã«ãªããããšæã£ãããã³ã«ïœ¥ã³ãŒã©ãæãåºããããŽãæãæµ®ãã¶ (ç¥èŠäŸ¡å€ãé ã«æµ®ããã ããèå¥èšå·ãæ³èµ·ããã) ããã©ã³ã飿³ãããã©ã³ãè³ç£ããšãã£ãèšèãããããã©ã³ãïŒèå¥èšå·ãšç¥èŠäœéšïŒã«å¯ŸããŠããžãã£ããªå°è±¡ãç¯ãèç©ãããããšããã©ã³ãã£ã³ã°ã®ã«ã®ã«ãªã£ãŠããŸãã ãã©ã³ãæ§ç¯ åè¿°ã®èšå·ããã©ã³ãã®åå°ãšãããšã³ãŒãã¬ãŒãã¢ã€ãã³ãã£ãã£ïŒCIïŒããŽã£ãžã¥ã¢ã«ã¢ã€ãã³ãã£ãã£ïŒVIïŒãšãã£ãã¯ãªãšã€ãã£ãã倧ããªåœ¹å²ãæãããŸãããçŸåšã§ã¯ãŠãŒã¶ãŒã¯ãã©ã³ããç¥èŠããæ©äŒãå€ããå·®å¥åã®ããã«ããã©ã³ãã¯é¡§å®¢äœéšãããŒã¹ã«äœã£ãŠããããšãéèŠã«ãªããŸãã è¯ã顧客äœéšãæäŸããã©ã³ãã®ç«¶äºåãé«ãã ãšããèãæ¹ã«åºã¥ããŠããã©ã³ãæŠç¥ãèããé çªã¯çæ³çãªäœéšãæããŠããå¿
èŠãªã¢ããæè¡ãèããŸããããã¯ãã©ã³ãã«éããæ§ã
ãªå Žé¢ã§æèãããããšã§ãã ãã©ã³ãã«å€§äºãªäžè²«æ§ é
åçãªãã©ã³ãã¯é¡§å®¢äœéšãèç©ããŠåœ¢æãããŠãããŸããèç©ããããã©ã³ãäœéšã®èŠçŽ ã¯ãäœéšã®é
å床ããäœéšã®éãšæéããäœéšã®äžè²«æ§ããš 3 ã€ããããã©ã³ãã®äŸ¡å€ã¯ãã® 3 ã€ã®èŠçŽ ã®ããç®ã«ãããŸãã äœéšãé
åçã§ããããã®äœéšã®åæ°ãå€ãé·ãæéã«ããã£ãŠçµéšããäœéšèªäœã«äžè²«æ§ããããã©ã³ãããŠãŒã¶ãŒãšã£ãŠè¯ããã®ãšãããŸãã 3 ã€ã®ãã¡ç¹ã«éèŠãªãã®ã¯æåŸã® äœéšã®äžè²«æ§ïœ£ ã«ããããã®äžè²«æ§ã¯ 2 ã€ã«åããããšãã§ããŸãã æç³»åã§äžè²«æ§ ïŒæä»£ã§å·Šå³ãããªã顧客äœéšããã©ã³ãããæäŸããã æ¥ç¹ã®äžè²«æ§ ïŒãã©ã³ããè²·ã£ããå©çšããåããã賌å
¥ããã»ã¹ã賌å
¥åŸã®å©çšã·ãŒã³ã«ãããŠãäžè²«ãã顧客äœéšãã§ãã ãã¢ããšã³ããã«ãäŸãããããšããã§ããã補åãšããŠã®äžè²«æ§ã«å ããŠäœéšããååŸã®ã°ã©ã³ããã¶ã€ã³ã«ãäžè²«æ§ãæããããšãéèŠã«ãªããŸãã äŸãšããŠã¹ã¿ãŒããã¯ã¹ã¯åºåè²»ãã»ãšãã©ãããã«ä»ã®ãã©ã³ãèªç¥åºŠãç¯ããããšã¯æåã§ãããããã«ã¯ãã©ã³ãã®äŸ¡å€ãç¯ãããã®ãã©ã³ãã£ã³ã°ã«äžè²«æ§ãããããã€ããããæä»£æ§ãšãããããã®ãèŠå ã§ã¯ãªãããšæããŸãã ãã©ã³ãã£ã³ã°ã®ã¡ãªãã éžææææ±ºå®ã®åçŽåã»åºå®å 顧客ã®ç¥èãæŽçãããããšã§ç«¶åãšå·®å¥åããåã³åãç©ãéžã¶ããã«ãªã ãŠãŒã¶ãŒã®ãã€ã€ã«å 芪ãã¿ãä¿¡é Œãå¢å€§ãããããšã§ãã©ã³ããã€ã€ãªãã£ã圢æããã ãªããã©ã³ãã«ãã ããã®ãããšããç¹ã§ããããã¡ãªãããå®çŸããŠããããšãéèŠã§ãã ãã¶ã€ããŒãšããŠæ°é£ã溢ãã UI ãããµãŒãã¹ã®ææ³ãèšå·ã«èœãšã蟌ãã VI ãªã©ã¢ãã¥ããèŠç¹ã§ã®ãã ãããéèŠããèžãŸããäžã§ãä»è·çš®ã®æ¹ã«ããããã®ã¡ãªãããç«¶äºãšããŠã®å¿
èŠã§ããããšãçè§£ããŠããããããåããããããšãæèããŠãããããšããã§ãã ãã©ã³ãã£ã³ã°ã®æ©ã¿ã©ãã ããããã¯åºç€ãèžãŸããŠãå®è·µçã«è¡ãããŠãããã©ã³ãã£ã³ã°ã§æ©ã¿ããããšãããäºäŸã§ç޹ä»ããªããç°¡åãªãã£ã¹ã«ãã·ã§ã³ãããŠãããŸãããäžéšã ãæç²ããŠã玹ä»ããŸãã 補åãã©ã³ãã®ç®¡ç äŒç€Ÿã®ãã©ã³ã管çã®ææ³ãå®çŸ©ã§ããŠããå€åã®æ©ãæ¥çã§ããã°ã€ã¡ãŒãžéãã«ãªããªãéããªãããšãå€ã
æãããŸãã å°ãªããã©ã³ãè³ç£ã掻çšããæå³ã§ãã¹ã¿ãŒãã¢ããã¯æšªäž²åã«æŽçãããããšãå€ããããŸãããããçšåºŠã®èŠæš¡æã«ãªã£ãŠåºç€äœåãããäŒæ¥ã§ãããšåå¥é©å¿åã§ããã©ã³ããšããŠä¿¡é Œæ§ãä¿ãŠãŸãããæšªäž²åã«æ¯ã¹ãŠåããããããããšæããŸãã äžæ¹ã§ããã©ãããã©ãŒããŒãšããŠååšããããªã暪䞲ã®ãã©ã³ã䟡å€ãããã¡ã³ãå²ã蟌ãã¹ããããããŸãããTechlunch ã®äžã§ãã¡ãã¬ãŒã§ããã°ã©ããããšè¯ããã«ã€ããŠè°è«ãã§ããŸããã ãã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã° 顧客äœéšã®èç©ãéèŠãªãã©ã³ãã§ãããŸãããã©ã®æ®µéã§ãã©ã³ãã£ã³ã°ã«åãçµããã¯ç¶æ³ã«ãããŸããæèŠãåºããããšããã ãšæããŸãã ICC FUKUOKA2017 ã«ãŠãã©ã³ãã£ã³ã°ã«ã€ããŠã®ã»ãã·ã§ã³ããããåãçµãã¿ã€ãã³ã°ã«ã€ããŠã®è°è«ãããŸããŸãšããããŠãããã Techlunch ã§äºäŸãšããŠå
±æããŸããããããã¯ããšããŠã®å·®å¥åãåºæ¬ã§ããããšã«å ããŠããã©ã³ãã®åšãæ¹ãçµç¹ã«ã€ã³ã¹ããŒã«ãããããã«ãã©ã³ãã£ã³ã°ã«åãçµãã±ãŒã¹ã玹ä»ãããŠããŸãã åã¯ãã©ã³ããåžžã«å¿
èŠããšèšããšâNoâã ãšæããŸãã ã³ã¢ãã£ãã£åãå§ããããç«¶äºãå§ãŸã£ãŠå·®å¥åããªããŠã¯ãªããªãæã«ããããã¯ãã®æ©èœãªã©ã§å·®å¥åãã§ããªãããŸãã¯å¿
ãããããã©ãŒãã³ã¹ã§å·®å¥åãã§ããªãæã«å¯äžæ®ãããéžæãããã©ã³ããäœããšããããšã§ãããšæããŸãã [æ ªåŒäŒç€Ÿ Bloom&Co. åœéæ³°åŒ] ãŠãŒã¶ãŒãç²ãã«ãããšãããã§ãŒãºã§ãããã ã¡ã«ã«ãªã®å Žåããã¯ãæåã® 100 äžããŠã³ããŒãããããŸã§ã¯ãçµæ§ãã¥ãŒãã³ã°ãããªãããªã³ã©ã€ã³ã®ããŒã±ãã£ã³ã°ã§ïŒãŠãŒã¶ãŒãïŒç²åŸããŠããŠããŸããã äžç¥ ãã¯ã 100 äžããŠã³ããŒãããããã£ãŠããªãã³ã·ã§ã³ã¬ãŒããé«ããŠãŒã¶ãŒãç©ã¿äžããç¶æ
ã«ãªã£ãŠããã°ã倧ãããã¹ããŒã±ãã£ã³ã°ïŒTVCMïŒããã£ãŠãç²åŸãããŠãŒã¶ãŒã¯æ®ããŸããããã [æ ªåŒäŒç€Ÿã¡ã«ã«ãª å°æ³ææ] åã¯ããŠãŒã¶ãŒãç²åŸããæåã§ãã©ã³ããå¿
èŠã ãšæã£ãŠãããã§ãããã ãã©ã³ããšããã®ã¯å¿
ãããå€ã«å¯ŸããŠã ãã§ã¯ãªããŠãïŒçµç¹ã®ïŒäžã®äººã«å¯ŸããŠå¿
èŠã§ããããšããããå€ãã®ã§ãã äžç¥ è³çå ã¯åœæ 130 幎ãããçµã£ãŠããäŒç€Ÿã ã£ãã®ã§ããã® 130 幎ããã®åŸã® 130 幎ããäžã®äžãçŸãããããšãã人ãçŸãããããšããããã¯å¥³æ§ã«éããããåç²§ã«éããçŸãããããšããããšãå¿
èŠã ããã軞ã ãããšãã話ã«ãªã£ãŠããã®ã¹ããŒã¬ã³ãšå
±ã«åç°æ°ç€Ÿé·äœå¶ã§é²ãã§ããããšã«ãªããŸããã [æ ªåŒäŒç€Ÿ dof éœè€å€ªé] (via ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒãF17-7C #3ã ) å
±æããåŸã«ã¯ããªãªãŒã¹åœåãããã©ã³ããã¯ãªãšã€ãã£ããäœã蟌ãŸãããããã¯ããæè¿è©±é¡ã«ãªãããšãå€ããšããããšã話ã«äžãããŸããã ãã¡ãããã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã°ã¯ç¶æ³ã«ããåå·®äžå¥ã§ããããããã¯ãããŒãããäœãéã«ã¯ããããã¯ãã®åšãæ¹ãšåãããŠã©ããªãã©ã³ããäœã£ãŠè¡ãããã®ããæ©ãã«èããããããšãå¿
èŠã ããªã©å
·äœçãªãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãŸããã æ°ããªãã©ã³ããåãå
¥ããããªãããšã åºæ¬çã«ãã©ã³ããæ°ããããããšã¯èŠæ
£ãããã®ãå€ãã£ãŠããŸãææããåçºãçãã±ãŒã¹ãå€ãã§ããããã®äžã§ã GAP ã¯ããŽã® 2010 幎ãªãã¥ãŒã¢ã«å
¬è¡šåŸãããäžããã®åçºã匷ãããã 6 æ¥éãšããçæéã§æ°ããããŽã®äœ¿çšãæ¢ããå
ã®ããŽã«æ»ããŠããŸããšããäžä»¶ããããŸãããïŒãã®ä»¶ã¯ æ ªäŸ¡ ã«ã倧ããªåœ±é¿ãäžããŸããïŒ äžæ¹ãåããããªå¢éã§ Airbnb ã 2014 幎ã®ãªãã¥ãŒã¢ã«åœåããŽã¯äžè©ã§ãããä»ã§ã¯ãªãã¥ãŒã¢ã«ã®æåäŸãšããŠæ±ãããååšã«ãªã£ãŠããŸãã Techlunch ã§ãæŽå²ã®æç¡ãå·®ã«ãªã£ãã®ãããªã©æ§ã
ãªæèŠãåºãŠããŸããããã®ä»¶ã¯ããŽãšããŠã®çéãæ¥µããããšãã以äžã®èæ¯ãæç€ºåºæ¥ãªãã£ã Gap ã«å¯ŸããŠã Airbnb ã¯ãµãŒãã¹ã®ã¹ããŒãªãŒãããŽã«å
å
ããå°éã«ããŽãä»ããã³ãã¥ãã±ãŒã·ã§ã³ã«åŸ¹ããããšãææãåããããã«æããŸãã ãã®äºäŸã¯ããŽã®ã¢ã€ãã³ãã£ãã£ãã©ããŸã§ç¢ºç«ããããããã®éãã«ããããšã«å ããŠããã¶ã€ã³ã®æææ±ºå®ãäžæçãªå€æ°æèŠã«å§ããäºäŸãšããŠãåŠã¶ããšãå€ãã§ãã ãŸãšã ç§å人ãå
ã
ã°ã©ãã£ãã¯ãã¶ã€ã³ãããŠããçµéšããããä»ãŸã§ã¯ãã©ã³ãã£ã³ã°ã®äžã§ãèå³ã CI ã VI ã«åŸåããŠããŸããããäœéšå
šäœããã©ã³ãã«å€§ããªåœ±é¿ãäžãããã®æä»£ãçµç¹ãšããŠãã©ã³ãæ§ç¯ãããŠããæèãéèŠã§ããããšãä»åã®å€§ããªåŠã³ã§ããã ãŸãåºç€ãåŠã¶äžã§æžç±ãèªãã§ããŸããããæè¿ã®äºäŸãªã©ãåŠã¶éã«ã¯ããã°ãªã©ã§ã®æ
å ±åéããšãŠãæå¹ã§ãåŠã³æ¹ãå€ãã£ãŠããŠãããªãšæããŸãããä»å玹ä»ããå
容ã¯ãããŸã§å
¥éç·šãªã®ã§ãèå³ãããã°ä»ååèã«ãããŠããã ããæ¬ãšããã°ã»èšäºããããæ·±å ããåºæ¥ãã®ã§ãªã¹ã¹ã¡ããŸãã ãã©ãããã©ãŒã ãã©ã³ãã£ã³ã° ã³ãŒãã¬ãŒãã»ã¢ã€ãã³ãã£ãã£æŠç¥âãã¶ã€ã³ãäŒæ¥çµå¶ãå€ãã ãã©ã³ãã»ãšã¯ã€ãã£ç ç©¶ã®å±æ ïœäŸ¡å€ããããè°è«ã®ç³»èãäžå¿ã«ïœ UX ãšãã©ã³ã ãã©ã³ãã¢ã€ãã³ãã£ãã£ãšã¯ïœãã©ã³ãæ§ç¯ãææã«å°ã BI ã®åµãæ¹ïœæåäºäŸæ ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒ ããŽã®ãªãã¶ã€ã³ãŒãªã Gap ã倱æã Airbnb ãåãå
¥ããããã®ã æŠåšã«ãªããããŽããçã¿åºããCI ãã¶ã€ã³ãšã¯äœãïŒ Techlunch ã§ã¯ãã¶ã€ããŒä»¥å€ã®æ¹ãããäºäŸã«å¯ŸããŠæèŠãåºãããçåã«å¯ŸããŠåå è
ã§ãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãããšããšãŠãææçŸ©ã§ãããä»åŸã¯ããããæèããªãããã©ã³ãã®åå°ãšãªã䟡å€ãåšãæ¹ããã¶ã€ã³åºæ¥ãããã«ããŠãããããšæããŸãã ãç¥ãã  ã¡ãã¬ãŒã§ã¯ãå»çä»è·ã®æ±äººãµã€ãããžã§ãã¡ãã¬ãŒããå»åž«ãã¡ãã€ãããªã³ã©ã€ã³å»çäºå
žãMEDLEYããå£ã³ãã§æ¢ããä»è·æœèšã®æ€çŽ¢ãµã€ããä»è·ã®ã»ãããããªã³ã©ã€ã³èšºçã¢ããªãCLINICSããªã©ã®ãããã¯ããæäŸããŠããŸãããããã®ãµãŒãã¹ã®æ¡å€§ãåããŠããã®æé·ãæ¯ãããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã èå³ã®ããæ¹ããã²ã¡ãã¬ãŒãžéã³ã«ããããŠãã ããã www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®å»çã¡ãã£ã¢ããŒã ã§ãã¶ã€ã³ãããŠããæ³¢åã§ãã ã¡ãã¬ãŒéçºæ¬éšã§è¡ãããŠããå匷äŒãTechLunchãã§ããã¶ã€ããŒä»¥å€ã®æ¹ãç¥ã£ãŠãããŠæã¯ãªãããã©ã³ããšã¯ïŒããšããã話ããããŠããã ããŸãããå€ãã®æ¹ãäœãšãªãç¥ã£ãŠããããšãå€ããããããŸããããåå
¥éçã«åèã«ããŠããã ãããšå¬ããã§ãã èæ¯ ã¡ãã¬ãŒã§ã¯ææãåãããããã¯ãã®åšãæ¹ã«ã€ããŠåžžæ¥é ããæ§ã
ãªå Žé¢ã§è°è«ããªãããŠããŸãã ãããã£ãè°è«ã®äžã§ãã©ã³ããšããŠã©ã®ããã«èŠããããã®ãè¯ãã ãããããšãã£ãæ€èšãããããšãå€ã
ãããæ¹ããŠãã©ã³ãã«ã€ããŠåŠã³çŽããããšæã£ãã®ãä»åã®ãã£ããã«ãªããŸãã TechLunch ã§ã¯ãšã³ãžãã¢ã»ãã¶ã€ããŒã»ãã£ã¬ã¯ã¿ãŒã»å»åž«ïŒïŒïŒãšæ§ã
ãªè·çš®ã®äººãåå ããŠããŸãã ãã®æä»£ã§ã¯åœããåãããããªããã©ã³ãã®åºç€ãæ¹ããŠåŠã³çŽãããã¶ã€ããŒä»¥å€ã®è·çš®ã®æ¹ã«ãå
±æããŸããã®ã§ãããã°ã§ãã玹ä»ãããŠããã ããã°ãšæããŸãã ãã©ã³ãã£ãŠãªãã§ããã ãã©ã³ããšãã©ã³ãã£ã³ã°ã®éãã£ãŠïŒï¿Œ ãŸãã¯æ··åãããããã©ã³ããšãã©ã³ãã£ã³ã°ã®å®çŸ©ããã ããç¹å®ã®ååããµãŒãã¹ãæ¶è²»è
ã»é¡§å®¢ã«ãã£ãŠèå¥ãããŠãããšãã ãã®ååããµãŒãã¹ãããã©ã³ãããšåŒã¶ â»è£œååãããã±ãŒãžã³ã°ãåºåãäŸ¡æ Œã䜿çšçµéšãªã©ã«ããããã®è£œåã«ã€ãããã補åç¹æ§ãšäŸ¡å€ïŒæ©èœçããã³éæ©èœçïŒãšã®ãŠããŒã¯ãªã³ã³ãããŒã·ã§ã³ãæ¶è²»è
ã»é¡§å®¢ã®ç®ããèŠãå Žåããã®è£œåãç«¶åããå·®å¥åãããã®ã (via ãã©ã³ãã»ãããŒãžã£ãŒèªå®åäŒ çšèªé ) ãã©ã³ãã£ã³ã°ãšã¯ããã©ã³ãã«å¯Ÿããå
±æãä¿¡é Œãªã©ãéããŠé¡§å®¢ã«ãšã£ãŠã®äŸ¡å€ãé«ããŠãããäŒæ¥ãšçµç¹ã®ããŒã±ãã£ã³ã°æŠç¥ã® 1 ã€ããã©ã³ããšããŠèªç¥ãããŠããªããã®ããã©ã³ãã«è²ãŠäžããããããã¯ãã©ã³ãæ§æèŠçŽ ã匷åããæŽ»æ§ã»ç¶æç®¡çããŠããããšããŸãããã®ææ³ãããã§ãããã©ã³ããšã¯é«çŽæ¶è²»è²¡ã«éããããã®å¯Ÿè±¡ãšããŠã¯ãååããµãŒãã¹ãããããäŸçµŠããäŒæ¥ãå£äœã®ã»ãã人ç©ã»å»ºç¯ç©ã»å²è·¡ã»å°å ã»ç¥äºãªã©ããããããã®ã該åœããã (via wikipedia:ãã©ã³ãã£ã³ã° ) ãã©ã³ã ãšã¯ãäŒæ¥ã»è£œåã«å¯ŸããŠæ¶è²»è
ãæã£ãŠããã€ã¡ãŒãž(èšå·)ã§ãããç«¶åãšã®å·®å¥åãçã¿åºã䟡å€ã®ç·äœããæãã ãã©ã³ãã£ã³ã° ã¯ããã©ã³ã䟡å€ãäžããããã®ææ®µããšæããããšãã§ãããšæããŸãã ãã®å®çŸ©ã«ãªããããŠã³ã«ã»ã³ãŒã©ãäŸã«ãã©ã³ããšããŠèªç¥ãããå
·äœçãªã¹ããããšããŠç޹ä»ãããšã以äžã®ããã«ãªããŸãã ããŽãªã©ã®èå¥èšå·ãèšæ¶ããã ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèšæ¶ããã (çæŽ»è
ã®é ã®äžã«ãããŽãªã©ã®èå¥èšå·ãèšæ¶ããã) èšå·ããäœéšãæãæµ®ãã¶ ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèŠãã°çé
žé£²æã§ããããšããçœãããªæ°åã«ãªããããšãæã浮㶠(èå¥èšå·ãèŠãã°ãç¥èŠäœéšãæ³èµ·ã§ãã) äœéšããèšå·ãæãåºã çœãããªæ°åã«ãªããããšæã£ãããã³ã«ïœ¥ã³ãŒã©ãæãåºããããŽãæãæµ®ãã¶ (ç¥èŠäŸ¡å€ãé ã«æµ®ããã ããèå¥èšå·ãæ³èµ·ããã) ããã©ã³ã飿³ãããã©ã³ãè³ç£ããšãã£ãèšèãããããã©ã³ãïŒèå¥èšå·ãšç¥èŠäœéšïŒã«å¯ŸããŠããžãã£ããªå°è±¡ãç¯ãèç©ãããããšããã©ã³ãã£ã³ã°ã®ã«ã®ã«ãªã£ãŠããŸãã ãã©ã³ãæ§ç¯ åè¿°ã®èšå·ããã©ã³ãã®åå°ãšãããšã³ãŒãã¬ãŒãã¢ã€ãã³ãã£ãã£ïŒCIïŒããŽã£ãžã¥ã¢ã«ã¢ã€ãã³ãã£ãã£ïŒVIïŒãšãã£ãã¯ãªãšã€ãã£ãã倧ããªåœ¹å²ãæãããŸãããçŸåšã§ã¯ãŠãŒã¶ãŒã¯ãã©ã³ããç¥èŠããæ©äŒãå€ããå·®å¥åã®ããã«ããã©ã³ãã¯é¡§å®¢äœéšãããŒã¹ã«äœã£ãŠããããšãéèŠã«ãªããŸãã è¯ã顧客äœéšãæäŸããã©ã³ãã®ç«¶äºåãé«ãã ãšããèãæ¹ã«åºã¥ããŠããã©ã³ãæŠç¥ãèããé çªã¯çæ³çãªäœéšãæããŠããå¿
èŠãªã¢ããæè¡ãèããŸããããã¯ãã©ã³ãã«éããæ§ã
ãªå Žé¢ã§æèãããããšã§ãã ãã©ã³ãã«å€§äºãªäžè²«æ§ é
åçãªãã©ã³ãã¯é¡§å®¢äœéšãèç©ããŠåœ¢æãããŠãããŸããèç©ããããã©ã³ãäœéšã®èŠçŽ ã¯ãäœéšã®é
å床ããäœéšã®éãšæéããäœéšã®äžè²«æ§ããš 3 ã€ããããã©ã³ãã®äŸ¡å€ã¯ãã® 3 ã€ã®èŠçŽ ã®ããç®ã«ãããŸãã äœéšãé
åçã§ããããã®äœéšã®åæ°ãå€ãé·ãæéã«ããã£ãŠçµéšããäœéšèªäœã«äžè²«æ§ããããã©ã³ãããŠãŒã¶ãŒãšã£ãŠè¯ããã®ãšãããŸãã 3 ã€ã®ãã¡ç¹ã«éèŠãªãã®ã¯æåŸã® äœéšã®äžè²«æ§ïœ£ ã«ããããã®äžè²«æ§ã¯ 2 ã€ã«åããããšãã§ããŸãã æç³»åã§äžè²«æ§ ïŒæä»£ã§å·Šå³ãããªã顧客äœéšããã©ã³ãããæäŸããã æ¥ç¹ã®äžè²«æ§ ïŒãã©ã³ããè²·ã£ããå©çšããåããã賌å
¥ããã»ã¹ã賌å
¥åŸã®å©çšã·ãŒã³ã«ãããŠãäžè²«ãã顧客äœéšãã§ãã ãã¢ããšã³ããã«ãäŸãããããšããã§ããã補åãšããŠã®äžè²«æ§ã«å ããŠäœéšããååŸã®ã°ã©ã³ããã¶ã€ã³ã«ãäžè²«æ§ãæããããšãéèŠã«ãªããŸãã äŸãšããŠã¹ã¿ãŒããã¯ã¹ã¯åºåè²»ãã»ãšãã©ãããã«ä»ã®ãã©ã³ãèªç¥åºŠãç¯ããããšã¯æåã§ãããããã«ã¯ãã©ã³ãã®äŸ¡å€ãç¯ãããã®ãã©ã³ãã£ã³ã°ã«äžè²«æ§ãããããã€ããããæä»£æ§ãšãããããã®ãèŠå ã§ã¯ãªãããšæããŸãã ãã©ã³ãã£ã³ã°ã®ã¡ãªãã éžææææ±ºå®ã®åçŽåã»åºå®å 顧客ã®ç¥èãæŽçãããããšã§ç«¶åãšå·®å¥åããåã³åãç©ãéžã¶ããã«ãªã ãŠãŒã¶ãŒã®ãã€ã€ã«å 芪ãã¿ãä¿¡é Œãå¢å€§ãããããšã§ãã©ã³ããã€ã€ãªãã£ã圢æããã ãªããã©ã³ãã«ãã ããã®ãããšããç¹ã§ããããã¡ãªãããå®çŸããŠããããšãéèŠã§ãã ãã¶ã€ããŒãšããŠæ°é£ã溢ãã UI ãããµãŒãã¹ã®ææ³ãèšå·ã«èœãšã蟌ãã VI ãªã©ã¢ãã¥ããèŠç¹ã§ã®ãã ãããéèŠããèžãŸããäžã§ãä»è·çš®ã®æ¹ã«ããããã®ã¡ãªãããç«¶äºãšããŠã®å¿
èŠã§ããããšãçè§£ããŠããããããåããããããšãæèããŠãããããšããã§ãã ãã©ã³ãã£ã³ã°ã®æ©ã¿ã©ãã ããããã¯åºç€ãèžãŸããŠãå®è·µçã«è¡ãããŠãããã©ã³ãã£ã³ã°ã§æ©ã¿ããããšãããäºäŸã§ç޹ä»ããªããç°¡åãªãã£ã¹ã«ãã·ã§ã³ãããŠãããŸãããäžéšã ãæç²ããŠã玹ä»ããŸãã 補åãã©ã³ãã®ç®¡ç äŒç€Ÿã®ãã©ã³ã管çã®ææ³ãå®çŸ©ã§ããŠããå€åã®æ©ãæ¥çã§ããã°ã€ã¡ãŒãžéãã«ãªããªãéããªãããšãå€ã
æãããŸãã å°ãªããã©ã³ãè³ç£ã掻çšããæå³ã§ãã¹ã¿ãŒãã¢ããã¯æšªäž²åã«æŽçãããããšãå€ããããŸãããããçšåºŠã®èŠæš¡æã«ãªã£ãŠåºç€äœåãããäŒæ¥ã§ãããšåå¥é©å¿åã§ããã©ã³ããšããŠä¿¡é Œæ§ãä¿ãŠãŸãããæšªäž²åã«æ¯ã¹ãŠåããããããããšæããŸãã äžæ¹ã§ããã©ãããã©ãŒããŒãšããŠååšããããªã暪䞲ã®ãã©ã³ã䟡å€ãããã¡ã³ãå²ã蟌ãã¹ããããããŸãããTechlunch ã®äžã§ãã¡ãã¬ãŒã§ããã°ã©ããããšè¯ããã«ã€ããŠè°è«ãã§ããŸããã ãã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã° 顧客äœéšã®èç©ãéèŠãªãã©ã³ãã§ãããŸãããã©ã®æ®µéã§ãã©ã³ãã£ã³ã°ã«åãçµããã¯ç¶æ³ã«ãããŸããæèŠãåºããããšããã ãšæããŸãã ICC FUKUOKA2017 ã«ãŠãã©ã³ãã£ã³ã°ã«ã€ããŠã®ã»ãã·ã§ã³ããããåãçµãã¿ã€ãã³ã°ã«ã€ããŠã®è°è«ãããŸããŸãšããããŠãããã Techlunch ã§äºäŸãšããŠå
±æããŸããããããã¯ããšããŠã®å·®å¥åãåºæ¬ã§ããããšã«å ããŠããã©ã³ãã®åšãæ¹ãçµç¹ã«ã€ã³ã¹ããŒã«ãããããã«ãã©ã³ãã£ã³ã°ã«åãçµãã±ãŒã¹ã玹ä»ãããŠããŸãã åã¯ãã©ã³ããåžžã«å¿
èŠããšèšããšâNoâã ãšæããŸãã ã³ã¢ãã£ãã£åãå§ããããç«¶äºãå§ãŸã£ãŠå·®å¥åããªããŠã¯ãªããªãæã«ããããã¯ãã®æ©èœãªã©ã§å·®å¥åãã§ããªãããŸãã¯å¿
ãããããã©ãŒãã³ã¹ã§å·®å¥åãã§ããªãæã«å¯äžæ®ãããéžæãããã©ã³ããäœããšããããšã§ãããšæããŸãã [æ ªåŒäŒç€Ÿ Bloom&Co. åœéæ³°åŒ] ãŠãŒã¶ãŒãç²ãã«ãããšãããã§ãŒãºã§ãããã ã¡ã«ã«ãªã®å Žåããã¯ãæåã® 100 äžããŠã³ããŒãããããŸã§ã¯ãçµæ§ãã¥ãŒãã³ã°ãããªãããªã³ã©ã€ã³ã®ããŒã±ãã£ã³ã°ã§ïŒãŠãŒã¶ãŒãïŒç²åŸããŠããŠããŸããã äžç¥ ãã¯ã 100 äžããŠã³ããŒãããããã£ãŠããªãã³ã·ã§ã³ã¬ãŒããé«ããŠãŒã¶ãŒãç©ã¿äžããç¶æ
ã«ãªã£ãŠããã°ã倧ãããã¹ããŒã±ãã£ã³ã°ïŒTVCMïŒããã£ãŠãç²åŸãããŠãŒã¶ãŒã¯æ®ããŸããããã [æ ªåŒäŒç€Ÿã¡ã«ã«ãª å°æ³ææ] åã¯ããŠãŒã¶ãŒãç²åŸããæåã§ãã©ã³ããå¿
èŠã ãšæã£ãŠãããã§ãããã ãã©ã³ããšããã®ã¯å¿
ãããå€ã«å¯ŸããŠã ãã§ã¯ãªããŠãïŒçµç¹ã®ïŒäžã®äººã«å¯ŸããŠå¿
èŠã§ããããšããããå€ãã®ã§ãã äžç¥ è³çå ã¯åœæ 130 幎ãããçµã£ãŠããäŒç€Ÿã ã£ãã®ã§ããã® 130 幎ããã®åŸã® 130 幎ããäžã®äžãçŸãããããšãã人ãçŸãããããšããããã¯å¥³æ§ã«éããããåç²§ã«éããçŸãããããšããããšãå¿
èŠã ããã軞ã ãããšãã話ã«ãªã£ãŠããã®ã¹ããŒã¬ã³ãšå
±ã«åç°æ°ç€Ÿé·äœå¶ã§é²ãã§ããããšã«ãªããŸããã [æ ªåŒäŒç€Ÿ dof éœè€å€ªé] (via ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒãF17-7C #3ã ) å
±æããåŸã«ã¯ããªãªãŒã¹åœåãããã©ã³ããã¯ãªãšã€ãã£ããäœã蟌ãŸãããããã¯ããæè¿è©±é¡ã«ãªãããšãå€ããšããããšã話ã«äžãããŸããã ãã¡ãããã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã°ã¯ç¶æ³ã«ããåå·®äžå¥ã§ããããããã¯ãããŒãããäœãéã«ã¯ããããã¯ãã®åšãæ¹ãšåãããŠã©ããªãã©ã³ããäœã£ãŠè¡ãããã®ããæ©ãã«èããããããšãå¿
èŠã ããªã©å
·äœçãªãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãŸããã æ°ããªãã©ã³ããåãå
¥ããããªãããšã åºæ¬çã«ãã©ã³ããæ°ããããããšã¯èŠæ
£ãããã®ãå€ãã£ãŠããŸãææããåçºãçãã±ãŒã¹ãå€ãã§ããããã®äžã§ã GAP ã¯ããŽã® 2010 幎ãªãã¥ãŒã¢ã«å
¬è¡šåŸãããäžããã®åçºã匷ãããã 6 æ¥éãšããçæéã§æ°ããããŽã®äœ¿çšãæ¢ããå
ã®ããŽã«æ»ããŠããŸããšããäžä»¶ããããŸãããïŒãã®ä»¶ã¯ æ ªäŸ¡ ã«ã倧ããªåœ±é¿ãäžããŸããïŒ äžæ¹ãåããããªå¢éã§ Airbnb ã 2014 幎ã®ãªãã¥ãŒã¢ã«åœåããŽã¯äžè©ã§ãããä»ã§ã¯ãªãã¥ãŒã¢ã«ã®æåäŸãšããŠæ±ãããååšã«ãªã£ãŠããŸãã Techlunch ã§ãæŽå²ã®æç¡ãå·®ã«ãªã£ãã®ãããªã©æ§ã
ãªæèŠãåºãŠããŸããããã®ä»¶ã¯ããŽãšããŠã®çéãæ¥µããããšãã以äžã®èæ¯ãæç€ºåºæ¥ãªãã£ã Gap ã«å¯ŸããŠã Airbnb ã¯ãµãŒãã¹ã®ã¹ããŒãªãŒãããŽã«å
å
ããå°éã«ããŽãä»ããã³ãã¥ãã±ãŒã·ã§ã³ã«åŸ¹ããããšãææãåããããã«æããŸãã ãã®äºäŸã¯ããŽã®ã¢ã€ãã³ãã£ãã£ãã©ããŸã§ç¢ºç«ããããããã®éãã«ããããšã«å ããŠããã¶ã€ã³ã®æææ±ºå®ãäžæçãªå€æ°æèŠã«å§ããäºäŸãšããŠãåŠã¶ããšãå€ãã§ãã ãŸãšã ç§å人ãå
ã
ã°ã©ãã£ãã¯ãã¶ã€ã³ãããŠããçµéšããããä»ãŸã§ã¯ãã©ã³ãã£ã³ã°ã®äžã§ãèå³ã CI ã VI ã«åŸåããŠããŸããããäœéšå
šäœããã©ã³ãã«å€§ããªåœ±é¿ãäžãããã®æä»£ãçµç¹ãšããŠãã©ã³ãæ§ç¯ãããŠããæèãéèŠã§ããããšãä»åã®å€§ããªåŠã³ã§ããã ãŸãåºç€ãåŠã¶äžã§æžç±ãèªãã§ããŸããããæè¿ã®äºäŸãªã©ãåŠã¶éã«ã¯ããã°ãªã©ã§ã®æ
å ±åéããšãŠãæå¹ã§ãåŠã³æ¹ãå€ãã£ãŠããŠãããªãšæããŸãããä»å玹ä»ããå
容ã¯ãããŸã§å
¥éç·šãªã®ã§ãèå³ãããã°ä»ååèã«ãããŠããã ããæ¬ãšããã°ã»èšäºããããæ·±å ããåºæ¥ãã®ã§ãªã¹ã¹ã¡ããŸãã ãã©ãããã©ãŒã ãã©ã³ãã£ã³ã° ã³ãŒãã¬ãŒãã»ã¢ã€ãã³ãã£ãã£æŠç¥âãã¶ã€ã³ãäŒæ¥çµå¶ãå€ãã ãã©ã³ãã»ãšã¯ã€ãã£ç ç©¶ã®å±æ ïœäŸ¡å€ããããè°è«ã®ç³»èãäžå¿ã«ïœ UX ãšãã©ã³ã ãã©ã³ãã¢ã€ãã³ãã£ãã£ãšã¯ïœãã©ã³ãæ§ç¯ãææã«å°ã BI ã®åµãæ¹ïœæåäºäŸæ ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒ ããŽã®ãªãã¶ã€ã³ãŒãªã Gap ã倱æã Airbnb ãåãå
¥ããããã®ã æŠåšã«ãªããããŽããçã¿åºããCI ãã¶ã€ã³ãšã¯äœãïŒ Techlunch ã§ã¯ãã¶ã€ããŒä»¥å€ã®æ¹ãããäºäŸã«å¯ŸããŠæèŠãåºãããçåã«å¯ŸããŠåå è
ã§ãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãããšããšãŠãææçŸ©ã§ãããä»åŸã¯ããããæèããªãããã©ã³ãã®åå°ãšãªã䟡å€ãåšãæ¹ããã¶ã€ã³åºæ¥ãããã«ããŠãããããšæããŸãã ãç¥ãã  ã¡ãã¬ãŒã§ã¯ãå»çä»è·ã®æ±äººãµã€ãããžã§ãã¡ãã¬ãŒããå»åž«ãã¡ãã€ãããªã³ã©ã€ã³å»çäºå
žãMEDLEYããå£ã³ãã§æ¢ããä»è·æœèšã®æ€çŽ¢ãµã€ããä»è·ã®ã»ãããããªã³ã©ã€ã³èšºçã¢ããªãCLINICSããªã©ã®ãããã¯ããæäŸããŠããŸãããããã®ãµãŒãã¹ã®æ¡å€§ãåããŠããã®æé·ãæ¯ãããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã èå³ã®ããæ¹ããã²ã¡ãã¬ãŒãžéã³ã«ããããŠãã ããã www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®å»çã¡ãã£ã¢ããŒã ã§ãã¶ã€ã³ãããŠããæ³¢åã§ãã ã¡ãã¬ãŒéçºæ¬éšã§è¡ãããŠããå匷äŒãTechLunchãã§ããã¶ã€ããŒä»¥å€ã®æ¹ãç¥ã£ãŠãããŠæã¯ãªãããã©ã³ããšã¯ïŒããšããã話ããããŠããã ããŸãããå€ãã®æ¹ãäœãšãªãç¥ã£ãŠããããšãå€ããããããŸããããåå
¥éçã«åèã«ããŠããã ãããšå¬ããã§ãã èæ¯ ã¡ãã¬ãŒã§ã¯ææãåãããããã¯ãã®åšãæ¹ã«ã€ããŠåžžæ¥é ããæ§ã
ãªå Žé¢ã§è°è«ããªãããŠããŸãã ãããã£ãè°è«ã®äžã§ãã©ã³ããšããŠã©ã®ããã«èŠããããã®ãè¯ãã ãããããšãã£ãæ€èšãããããšãå€ã
ãããæ¹ããŠãã©ã³ãã«ã€ããŠåŠã³çŽããããšæã£ãã®ãä»åã®ãã£ããã«ãªããŸãã TechLunch ã§ã¯ãšã³ãžãã¢ã»ãã¶ã€ããŒã»ãã£ã¬ã¯ã¿ãŒã»å»åž«ïŒïŒïŒãšæ§ã
ãªè·çš®ã®äººãåå ããŠããŸãã ãã®æä»£ã§ã¯åœããåãããããªããã©ã³ãã®åºç€ãæ¹ããŠåŠã³çŽãããã¶ã€ããŒä»¥å€ã®è·çš®ã®æ¹ã«ãå
±æããŸããã®ã§ãããã°ã§ãã玹ä»ãããŠããã ããã°ãšæããŸãã ãã©ã³ãã£ãŠãªãã§ããã ãã©ã³ããšãã©ã³ãã£ã³ã°ã®éãã£ãŠïŒï¿Œ ãŸãã¯æ··åãããããã©ã³ããšãã©ã³ãã£ã³ã°ã®å®çŸ©ããã ããç¹å®ã®ååããµãŒãã¹ãæ¶è²»è
ã»é¡§å®¢ã«ãã£ãŠèå¥ãããŠãããšãã ãã®ååããµãŒãã¹ãããã©ã³ãããšåŒã¶ â»è£œååãããã±ãŒãžã³ã°ãåºåãäŸ¡æ Œã䜿çšçµéšãªã©ã«ããããã®è£œåã«ã€ãããã補åç¹æ§ãšäŸ¡å€ïŒæ©èœçããã³éæ©èœçïŒãšã®ãŠããŒã¯ãªã³ã³ãããŒã·ã§ã³ãæ¶è²»è
ã»é¡§å®¢ã®ç®ããèŠãå Žåããã®è£œåãç«¶åããå·®å¥åãããã®ã (via ãã©ã³ãã»ãããŒãžã£ãŒèªå®åäŒ çšèªé ) ãã©ã³ãã£ã³ã°ãšã¯ããã©ã³ãã«å¯Ÿããå
±æãä¿¡é Œãªã©ãéããŠé¡§å®¢ã«ãšã£ãŠã®äŸ¡å€ãé«ããŠãããäŒæ¥ãšçµç¹ã®ããŒã±ãã£ã³ã°æŠç¥ã® 1 ã€ããã©ã³ããšããŠèªç¥ãããŠããªããã®ããã©ã³ãã«è²ãŠäžããããããã¯ãã©ã³ãæ§æèŠçŽ ã匷åããæŽ»æ§ã»ç¶æç®¡çããŠããããšããŸãããã®ææ³ãããã§ãããã©ã³ããšã¯é«çŽæ¶è²»è²¡ã«éããããã®å¯Ÿè±¡ãšããŠã¯ãååããµãŒãã¹ãããããäŸçµŠããäŒæ¥ãå£äœã®ã»ãã人ç©ã»å»ºç¯ç©ã»å²è·¡ã»å°å ã»ç¥äºãªã©ããããããã®ã該åœããã (via wikipedia:ãã©ã³ãã£ã³ã° ) ãã©ã³ã ãšã¯ãäŒæ¥ã»è£œåã«å¯ŸããŠæ¶è²»è
ãæã£ãŠããã€ã¡ãŒãž(èšå·)ã§ãããç«¶åãšã®å·®å¥åãçã¿åºã䟡å€ã®ç·äœããæãã ãã©ã³ãã£ã³ã° ã¯ããã©ã³ã䟡å€ãäžããããã®ææ®µããšæããããšãã§ãããšæããŸãã ãã®å®çŸ©ã«ãªããããŠã³ã«ã»ã³ãŒã©ãäŸã«ãã©ã³ããšããŠèªç¥ãããå
·äœçãªã¹ããããšããŠç޹ä»ãããšã以äžã®ããã«ãªããŸãã ããŽãªã©ã®èå¥èšå·ãèšæ¶ããã ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèšæ¶ããã (çæŽ»è
ã®é ã®äžã«ãããŽãªã©ã®èå¥èšå·ãèšæ¶ããã) èšå·ããäœéšãæãæµ®ãã¶ ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèŠãã°çé
žé£²æã§ããããšããçœãããªæ°åã«ãªããããšãæã浮㶠(èå¥èšå·ãèŠãã°ãç¥èŠäœéšãæ³èµ·ã§ãã) äœéšããèšå·ãæãåºã çœãããªæ°åã«ãªããããšæã£ãããã³ã«ïœ¥ã³ãŒã©ãæãåºããããŽãæãæµ®ãã¶ (ç¥èŠäŸ¡å€ãé ã«æµ®ããã ããèå¥èšå·ãæ³èµ·ããã) ããã©ã³ã飿³ãããã©ã³ãè³ç£ããšãã£ãèšèãããããã©ã³ãïŒèå¥èšå·ãšç¥èŠäœéšïŒã«å¯ŸããŠããžãã£ããªå°è±¡ãç¯ãèç©ãããããšããã©ã³ãã£ã³ã°ã®ã«ã®ã«ãªã£ãŠããŸãã ãã©ã³ãæ§ç¯ åè¿°ã®èšå·ããã©ã³ãã®åå°ãšãããšã³ãŒãã¬ãŒãã¢ã€ãã³ãã£ãã£ïŒCIïŒããŽã£ãžã¥ã¢ã«ã¢ã€ãã³ãã£ãã£ïŒVIïŒãšãã£ãã¯ãªãšã€ãã£ãã倧ããªåœ¹å²ãæãããŸãããçŸåšã§ã¯ãŠãŒã¶ãŒã¯ãã©ã³ããç¥èŠããæ©äŒãå€ããå·®å¥åã®ããã«ããã©ã³ãã¯é¡§å®¢äœéšãããŒã¹ã«äœã£ãŠããããšãéèŠã«ãªããŸãã è¯ã顧客äœéšãæäŸããã©ã³ãã®ç«¶äºåãé«ãã ãšããèãæ¹ã«åºã¥ããŠããã©ã³ãæŠç¥ãèããé çªã¯çæ³çãªäœéšãæããŠããå¿
èŠãªã¢ããæè¡ãèããŸããããã¯ãã©ã³ãã«éããæ§ã
ãªå Žé¢ã§æèãããããšã§ãã ãã©ã³ãã«å€§äºãªäžè²«æ§ é
åçãªãã©ã³ãã¯é¡§å®¢äœéšãèç©ããŠåœ¢æãããŠãããŸããèç©ããããã©ã³ãäœéšã®èŠçŽ ã¯ãäœéšã®é
å床ããäœéšã®éãšæéããäœéšã®äžè²«æ§ããš 3 ã€ããããã©ã³ãã®äŸ¡å€ã¯ãã® 3 ã€ã®èŠçŽ ã®ããç®ã«ãããŸãã äœéšãé
åçã§ããããã®äœéšã®åæ°ãå€ãé·ãæéã«ããã£ãŠçµéšããäœéšèªäœã«äžè²«æ§ããããã©ã³ãããŠãŒã¶ãŒãšã£ãŠè¯ããã®ãšãããŸãã 3 ã€ã®ãã¡ç¹ã«éèŠãªãã®ã¯æåŸã® äœéšã®äžè²«æ§ïœ£ ã«ããããã®äžè²«æ§ã¯ 2 ã€ã«åããããšãã§ããŸãã æç³»åã§äžè²«æ§ ïŒæä»£ã§å·Šå³ãããªã顧客äœéšããã©ã³ãããæäŸããã æ¥ç¹ã®äžè²«æ§ ïŒãã©ã³ããè²·ã£ããå©çšããåããã賌å
¥ããã»ã¹ã賌å
¥åŸã®å©çšã·ãŒã³ã«ãããŠãäžè²«ãã顧客äœéšãã§ãã ãã¢ããšã³ããã«ãäŸãããããšããã§ããã補åãšããŠã®äžè²«æ§ã«å ããŠäœéšããååŸã®ã°ã©ã³ããã¶ã€ã³ã«ãäžè²«æ§ãæããããšãéèŠã«ãªããŸãã äŸãšããŠã¹ã¿ãŒããã¯ã¹ã¯åºåè²»ãã»ãšãã©ãããã«ä»ã®ãã©ã³ãèªç¥åºŠãç¯ããããšã¯æåã§ãããããã«ã¯ãã©ã³ãã®äŸ¡å€ãç¯ãããã®ãã©ã³ãã£ã³ã°ã«äžè²«æ§ãããããã€ããããæä»£æ§ãšãããããã®ãèŠå ã§ã¯ãªãããšæããŸãã ãã©ã³ãã£ã³ã°ã®ã¡ãªãã éžææææ±ºå®ã®åçŽåã»åºå®å 顧客ã®ç¥èãæŽçãããããšã§ç«¶åãšå·®å¥åããåã³åãç©ãéžã¶ããã«ãªã ãŠãŒã¶ãŒã®ãã€ã€ã«å 芪ãã¿ãä¿¡é Œãå¢å€§ãããããšã§ãã©ã³ããã€ã€ãªãã£ã圢æããã ãªããã©ã³ãã«ãã ããã®ãããšããç¹ã§ããããã¡ãªãããå®çŸããŠããããšãéèŠã§ãã ãã¶ã€ããŒãšããŠæ°é£ã溢ãã UI ãããµãŒãã¹ã®ææ³ãèšå·ã«èœãšã蟌ãã VI ãªã©ã¢ãã¥ããèŠç¹ã§ã®ãã ãããéèŠããèžãŸããäžã§ãä»è·çš®ã®æ¹ã«ããããã®ã¡ãªãããç«¶äºãšããŠã®å¿
èŠã§ããããšãçè§£ããŠããããããåããããããšãæèããŠãããããšããã§ãã ãã©ã³ãã£ã³ã°ã®æ©ã¿ã©ãã ããããã¯åºç€ãèžãŸããŠãå®è·µçã«è¡ãããŠãããã©ã³ãã£ã³ã°ã§æ©ã¿ããããšãããäºäŸã§ç޹ä»ããªããç°¡åãªãã£ã¹ã«ãã·ã§ã³ãããŠãããŸãããäžéšã ãæç²ããŠã玹ä»ããŸãã 補åãã©ã³ãã®ç®¡ç äŒç€Ÿã®ãã©ã³ã管çã®ææ³ãå®çŸ©ã§ããŠããå€åã®æ©ãæ¥çã§ããã°ã€ã¡ãŒãžéãã«ãªããªãéããªãããšãå€ã
æãããŸãã å°ãªããã©ã³ãè³ç£ã掻çšããæå³ã§ãã¹ã¿ãŒãã¢ããã¯æšªäž²åã«æŽçãããããšãå€ããããŸãããããçšåºŠã®èŠæš¡æã«ãªã£ãŠåºç€äœåãããäŒæ¥ã§ãããšåå¥é©å¿åã§ããã©ã³ããšããŠä¿¡é Œæ§ãä¿ãŠãŸãããæšªäž²åã«æ¯ã¹ãŠåããããããããšæããŸãã äžæ¹ã§ããã©ãããã©ãŒããŒãšããŠååšããããªã暪䞲ã®ãã©ã³ã䟡å€ãããã¡ã³ãå²ã蟌ãã¹ããããããŸãããTechlunch ã®äžã§ãã¡ãã¬ãŒã§ããã°ã©ããããšè¯ããã«ã€ããŠè°è«ãã§ããŸããã ãã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã° 顧客äœéšã®èç©ãéèŠãªãã©ã³ãã§ãããŸãããã©ã®æ®µéã§ãã©ã³ãã£ã³ã°ã«åãçµããã¯ç¶æ³ã«ãããŸããæèŠãåºããããšããã ãšæããŸãã ICC FUKUOKA2017 ã«ãŠãã©ã³ãã£ã³ã°ã«ã€ããŠã®ã»ãã·ã§ã³ããããåãçµãã¿ã€ãã³ã°ã«ã€ããŠã®è°è«ãããŸããŸãšããããŠãããã Techlunch ã§äºäŸãšããŠå
±æããŸããããããã¯ããšããŠã®å·®å¥åãåºæ¬ã§ããããšã«å ããŠããã©ã³ãã®åšãæ¹ãçµç¹ã«ã€ã³ã¹ããŒã«ãããããã«ãã©ã³ãã£ã³ã°ã«åãçµãã±ãŒã¹ã玹ä»ãããŠããŸãã åã¯ãã©ã³ããåžžã«å¿
èŠããšèšããšâNoâã ãšæããŸãã ã³ã¢ãã£ãã£åãå§ããããç«¶äºãå§ãŸã£ãŠå·®å¥åããªããŠã¯ãªããªãæã«ããããã¯ãã®æ©èœãªã©ã§å·®å¥åãã§ããªãããŸãã¯å¿
ãããããã©ãŒãã³ã¹ã§å·®å¥åãã§ããªãæã«å¯äžæ®ãããéžæãããã©ã³ããäœããšããããšã§ãããšæããŸãã [æ ªåŒäŒç€Ÿ Bloom&Co. åœéæ³°åŒ] ãŠãŒã¶ãŒãç²ãã«ãããšãããã§ãŒãºã§ãããã ã¡ã«ã«ãªã®å Žåããã¯ãæåã® 100 äžããŠã³ããŒãããããŸã§ã¯ãçµæ§ãã¥ãŒãã³ã°ãããªãããªã³ã©ã€ã³ã®ããŒã±ãã£ã³ã°ã§ïŒãŠãŒã¶ãŒãïŒç²åŸããŠããŠããŸããã äžç¥ ãã¯ã 100 äžããŠã³ããŒãããããã£ãŠããªãã³ã·ã§ã³ã¬ãŒããé«ããŠãŒã¶ãŒãç©ã¿äžããç¶æ
ã«ãªã£ãŠããã°ã倧ãããã¹ããŒã±ãã£ã³ã°ïŒTVCMïŒããã£ãŠãç²åŸãããŠãŒã¶ãŒã¯æ®ããŸããããã [æ ªåŒäŒç€Ÿã¡ã«ã«ãª å°æ³ææ] åã¯ããŠãŒã¶ãŒãç²åŸããæåã§ãã©ã³ããå¿
èŠã ãšæã£ãŠãããã§ãããã ãã©ã³ããšããã®ã¯å¿
ãããå€ã«å¯ŸããŠã ãã§ã¯ãªããŠãïŒçµç¹ã®ïŒäžã®äººã«å¯ŸããŠå¿
èŠã§ããããšããããå€ãã®ã§ãã äžç¥ è³çå ã¯åœæ 130 幎ãããçµã£ãŠããäŒç€Ÿã ã£ãã®ã§ããã® 130 幎ããã®åŸã® 130 幎ããäžã®äžãçŸãããããšãã人ãçŸãããããšããããã¯å¥³æ§ã«éããããåç²§ã«éããçŸãããããšããããšãå¿
èŠã ããã軞ã ãããšãã話ã«ãªã£ãŠããã®ã¹ããŒã¬ã³ãšå
±ã«åç°æ°ç€Ÿé·äœå¶ã§é²ãã§ããããšã«ãªããŸããã [æ ªåŒäŒç€Ÿ dof éœè€å€ªé] (via ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒãF17-7C #3ã ) å
±æããåŸã«ã¯ããªãªãŒã¹åœåãããã©ã³ããã¯ãªãšã€ãã£ããäœã蟌ãŸãããããã¯ããæè¿è©±é¡ã«ãªãããšãå€ããšããããšã話ã«äžãããŸããã ãã¡ãããã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã°ã¯ç¶æ³ã«ããåå·®äžå¥ã§ããããããã¯ãããŒãããäœãéã«ã¯ããããã¯ãã®åšãæ¹ãšåãããŠã©ããªãã©ã³ããäœã£ãŠè¡ãããã®ããæ©ãã«èããããããšãå¿
èŠã ããªã©å
·äœçãªãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãŸããã æ°ããªãã©ã³ããåãå
¥ããããªãããšã åºæ¬çã«ãã©ã³ããæ°ããããããšã¯èŠæ
£ãããã®ãå€ãã£ãŠããŸãææããåçºãçãã±ãŒã¹ãå€ãã§ããããã®äžã§ã GAP ã¯ããŽã® 2010 幎ãªãã¥ãŒã¢ã«å
¬è¡šåŸãããäžããã®åçºã匷ãããã 6 æ¥éãšããçæéã§æ°ããããŽã®äœ¿çšãæ¢ããå
ã®ããŽã«æ»ããŠããŸããšããäžä»¶ããããŸãããïŒãã®ä»¶ã¯ æ ªäŸ¡ ã«ã倧ããªåœ±é¿ãäžããŸããïŒ äžæ¹ãåããããªå¢éã§ Airbnb ã 2014 幎ã®ãªãã¥ãŒã¢ã«åœåããŽã¯äžè©ã§ãããä»ã§ã¯ãªãã¥ãŒã¢ã«ã®æåäŸãšããŠæ±ãããååšã«ãªã£ãŠããŸãã Techlunch ã§ãæŽå²ã®æç¡ãå·®ã«ãªã£ãã®ãããªã©æ§ã
ãªæèŠãåºãŠããŸããããã®ä»¶ã¯ããŽãšããŠã®çéãæ¥µããããšãã以äžã®èæ¯ãæç€ºåºæ¥ãªãã£ã Gap ã«å¯ŸããŠã Airbnb ã¯ãµãŒãã¹ã®ã¹ããŒãªãŒãããŽã«å
å
ããå°éã«ããŽãä»ããã³ãã¥ãã±ãŒã·ã§ã³ã«åŸ¹ããããšãææãåããããã«æããŸãã ãã®äºäŸã¯ããŽã®ã¢ã€ãã³ãã£ãã£ãã©ããŸã§ç¢ºç«ããããããã®éãã«ããããšã«å ããŠããã¶ã€ã³ã®æææ±ºå®ãäžæçãªå€æ°æèŠã«å§ããäºäŸãšããŠãåŠã¶ããšãå€ãã§ãã ãŸãšã ç§å人ãå
ã
ã°ã©ãã£ãã¯ãã¶ã€ã³ãããŠããçµéšããããä»ãŸã§ã¯ãã©ã³ãã£ã³ã°ã®äžã§ãèå³ã CI ã VI ã«åŸåããŠããŸããããäœéšå
šäœããã©ã³ãã«å€§ããªåœ±é¿ãäžãããã®æä»£ãçµç¹ãšããŠãã©ã³ãæ§ç¯ãããŠããæèãéèŠã§ããããšãä»åã®å€§ããªåŠã³ã§ããã ãŸãåºç€ãåŠã¶äžã§æžç±ãèªãã§ããŸããããæè¿ã®äºäŸãªã©ãåŠã¶éã«ã¯ããã°ãªã©ã§ã®æ
å ±åéããšãŠãæå¹ã§ãåŠã³æ¹ãå€ãã£ãŠããŠãããªãšæããŸãããä»å玹ä»ããå
容ã¯ãããŸã§å
¥éç·šãªã®ã§ãèå³ãããã°ä»ååèã«ãããŠããã ããæ¬ãšããã°ã»èšäºããããæ·±å ããåºæ¥ãã®ã§ãªã¹ã¹ã¡ããŸãã ãã©ãããã©ãŒã ãã©ã³ãã£ã³ã° ã³ãŒãã¬ãŒãã»ã¢ã€ãã³ãã£ãã£æŠç¥âãã¶ã€ã³ãäŒæ¥çµå¶ãå€ãã ãã©ã³ãã»ãšã¯ã€ãã£ç ç©¶ã®å±æ ïœäŸ¡å€ããããè°è«ã®ç³»èãäžå¿ã«ïœ UX ãšãã©ã³ã ãã©ã³ãã¢ã€ãã³ãã£ãã£ãšã¯ïœãã©ã³ãæ§ç¯ãææã«å°ã BI ã®åµãæ¹ïœæåäºäŸæ ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒ ããŽã®ãªãã¶ã€ã³ãŒãªã Gap ã倱æã Airbnb ãåãå
¥ããããã®ã æŠåšã«ãªããããŽããçã¿åºããCI ãã¶ã€ã³ãšã¯äœãïŒ Techlunch ã§ã¯ãã¶ã€ããŒä»¥å€ã®æ¹ãããäºäŸã«å¯ŸããŠæèŠãåºãããçåã«å¯ŸããŠåå è
ã§ãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãããšããšãŠãææçŸ©ã§ãããä»åŸã¯ããããæèããªãããã©ã³ãã®åå°ãšãªã䟡å€ãåšãæ¹ããã¶ã€ã³åºæ¥ãããã«ããŠãããããšæããŸãã ãç¥ãã  ã¡ãã¬ãŒã§ã¯ãå»çä»è·ã®æ±äººãµã€ãããžã§ãã¡ãã¬ãŒããå»åž«ãã¡ãã€ãããªã³ã©ã€ã³å»çäºå
žãMEDLEYããå£ã³ãã§æ¢ããä»è·æœèšã®æ€çŽ¢ãµã€ããä»è·ã®ã»ãããããªã³ã©ã€ã³èšºçã¢ããªãCLINICSããªã©ã®ãããã¯ããæäŸããŠããŸãããããã®ãµãŒãã¹ã®æ¡å€§ãåããŠããã®æé·ãæ¯ãããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã èå³ã®ããæ¹ããã²ã¡ãã¬ãŒãžéã³ã«ããããŠãã ããã www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®å»çã¡ãã£ã¢ããŒã ã§ãã¶ã€ã³ãããŠããæ³¢åã§ãã ã¡ãã¬ãŒéçºæ¬éšã§è¡ãããŠããå匷äŒãTechLunchãã§ããã¶ã€ããŒä»¥å€ã®æ¹ãç¥ã£ãŠãããŠæã¯ãªãããã©ã³ããšã¯ïŒããšããã話ããããŠããã ããŸãããå€ãã®æ¹ãäœãšãªãç¥ã£ãŠããããšãå€ããããããŸããããåå
¥éçã«åèã«ããŠããã ãããšå¬ããã§ãã èæ¯ ã¡ãã¬ãŒã§ã¯ææãåãããããã¯ãã®åšãæ¹ã«ã€ããŠåžžæ¥é ããæ§ã
ãªå Žé¢ã§è°è«ããªãããŠããŸãã ãããã£ãè°è«ã®äžã§ãã©ã³ããšããŠã©ã®ããã«èŠããããã®ãè¯ãã ãããããšãã£ãæ€èšãããããšãå€ã
ãããæ¹ããŠãã©ã³ãã«ã€ããŠåŠã³çŽããããšæã£ãã®ãä»åã®ãã£ããã«ãªããŸãã TechLunch ã§ã¯ãšã³ãžãã¢ã»ãã¶ã€ããŒã»ãã£ã¬ã¯ã¿ãŒã»å»åž«ïŒïŒïŒãšæ§ã
ãªè·çš®ã®äººãåå ããŠããŸãã ãã®æä»£ã§ã¯åœããåãããããªããã©ã³ãã®åºç€ãæ¹ããŠåŠã³çŽãããã¶ã€ããŒä»¥å€ã®è·çš®ã®æ¹ã«ãå
±æããŸããã®ã§ãããã°ã§ãã玹ä»ãããŠããã ããã°ãšæããŸãã ãã©ã³ãã£ãŠãªãã§ããã ãã©ã³ããšãã©ã³ãã£ã³ã°ã®éãã£ãŠïŒï¿Œ ãŸãã¯æ··åãããããã©ã³ããšãã©ã³ãã£ã³ã°ã®å®çŸ©ããã ããç¹å®ã®ååããµãŒãã¹ãæ¶è²»è
ã»é¡§å®¢ã«ãã£ãŠèå¥ãããŠãããšãã ãã®ååããµãŒãã¹ãããã©ã³ãããšåŒã¶ â»è£œååãããã±ãŒãžã³ã°ãåºåãäŸ¡æ Œã䜿çšçµéšãªã©ã«ããããã®è£œåã«ã€ãããã補åç¹æ§ãšäŸ¡å€ïŒæ©èœçããã³éæ©èœçïŒãšã®ãŠããŒã¯ãªã³ã³ãããŒã·ã§ã³ãæ¶è²»è
ã»é¡§å®¢ã®ç®ããèŠãå Žåããã®è£œåãç«¶åããå·®å¥åãããã®ã (via ãã©ã³ãã»ãããŒãžã£ãŒèªå®åäŒ çšèªé ) ãã©ã³ãã£ã³ã°ãšã¯ããã©ã³ãã«å¯Ÿããå
±æãä¿¡é Œãªã©ãéããŠé¡§å®¢ã«ãšã£ãŠã®äŸ¡å€ãé«ããŠãããäŒæ¥ãšçµç¹ã®ããŒã±ãã£ã³ã°æŠç¥ã® 1 ã€ããã©ã³ããšããŠèªç¥ãããŠããªããã®ããã©ã³ãã«è²ãŠäžããããããã¯ãã©ã³ãæ§æèŠçŽ ã匷åããæŽ»æ§ã»ç¶æç®¡çããŠããããšããŸãããã®ææ³ãããã§ãããã©ã³ããšã¯é«çŽæ¶è²»è²¡ã«éããããã®å¯Ÿè±¡ãšããŠã¯ãååããµãŒãã¹ãããããäŸçµŠããäŒæ¥ãå£äœã®ã»ãã人ç©ã»å»ºç¯ç©ã»å²è·¡ã»å°å ã»ç¥äºãªã©ããããããã®ã該åœããã (via wikipedia:ãã©ã³ãã£ã³ã° ) ãã©ã³ã ãšã¯ãäŒæ¥ã»è£œåã«å¯ŸããŠæ¶è²»è
ãæã£ãŠããã€ã¡ãŒãž(èšå·)ã§ãããç«¶åãšã®å·®å¥åãçã¿åºã䟡å€ã®ç·äœããæãã ãã©ã³ãã£ã³ã° ã¯ããã©ã³ã䟡å€ãäžããããã®ææ®µããšæããããšãã§ãããšæããŸãã ãã®å®çŸ©ã«ãªããããŠã³ã«ã»ã³ãŒã©ãäŸã«ãã©ã³ããšããŠèªç¥ãããå
·äœçãªã¹ããããšããŠç޹ä»ãããšã以äžã®ããã«ãªããŸãã ããŽãªã©ã®èå¥èšå·ãèšæ¶ããã ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèšæ¶ããã (çæŽ»è
ã®é ã®äžã«ãããŽãªã©ã®èå¥èšå·ãèšæ¶ããã) èšå·ããäœéšãæãæµ®ãã¶ ã³ã«ïœ¥ã³ãŒã©ã®ããŽãèŠãã°çé
žé£²æã§ããããšããçœãããªæ°åã«ãªããããšãæã浮㶠(èå¥èšå·ãèŠãã°ãç¥èŠäœéšãæ³èµ·ã§ãã) äœéšããèšå·ãæãåºã çœãããªæ°åã«ãªããããšæã£ãããã³ã«ïœ¥ã³ãŒã©ãæãåºããããŽãæãæµ®ãã¶ (ç¥èŠäŸ¡å€ãé ã«æµ®ããã ããèå¥èšå·ãæ³èµ·ããã) ããã©ã³ã飿³ãããã©ã³ãè³ç£ããšãã£ãèšèãããããã©ã³ãïŒèå¥èšå·ãšç¥èŠäœéšïŒã«å¯ŸããŠããžãã£ããªå°è±¡ãç¯ãèç©ãããããšããã©ã³ãã£ã³ã°ã®ã«ã®ã«ãªã£ãŠããŸãã ãã©ã³ãæ§ç¯ åè¿°ã®èšå·ããã©ã³ãã®åå°ãšãããšã³ãŒãã¬ãŒãã¢ã€ãã³ãã£ãã£ïŒCIïŒããŽã£ãžã¥ã¢ã«ã¢ã€ãã³ãã£ãã£ïŒVIïŒãšãã£ãã¯ãªãšã€ãã£ãã倧ããªåœ¹å²ãæãããŸãããçŸåšã§ã¯ãŠãŒã¶ãŒã¯ãã©ã³ããç¥èŠããæ©äŒãå€ããå·®å¥åã®ããã«ããã©ã³ãã¯é¡§å®¢äœéšãããŒã¹ã«äœã£ãŠããããšãéèŠã«ãªããŸãã è¯ã顧客äœéšãæäŸããã©ã³ãã®ç«¶äºåãé«ãã ãšããèãæ¹ã«åºã¥ããŠããã©ã³ãæŠç¥ãèããé çªã¯çæ³çãªäœéšãæããŠããå¿
èŠãªã¢ããæè¡ãèããŸããããã¯ãã©ã³ãã«éããæ§ã
ãªå Žé¢ã§æèãããããšã§ãã ãã©ã³ãã«å€§äºãªäžè²«æ§ é
åçãªãã©ã³ãã¯é¡§å®¢äœéšãèç©ããŠåœ¢æãããŠãããŸããèç©ããããã©ã³ãäœéšã®èŠçŽ ã¯ãäœéšã®é
å床ããäœéšã®éãšæéããäœéšã®äžè²«æ§ããš 3 ã€ããããã©ã³ãã®äŸ¡å€ã¯ãã® 3 ã€ã®èŠçŽ ã®ããç®ã«ãããŸãã äœéšãé
åçã§ããããã®äœéšã®åæ°ãå€ãé·ãæéã«ããã£ãŠçµéšããäœéšèªäœã«äžè²«æ§ããããã©ã³ãããŠãŒã¶ãŒãšã£ãŠè¯ããã®ãšãããŸãã 3 ã€ã®ãã¡ç¹ã«éèŠãªãã®ã¯æåŸã® äœéšã®äžè²«æ§ïœ£ ã«ããããã®äžè²«æ§ã¯ 2 ã€ã«åããããšãã§ããŸãã æç³»åã§äžè²«æ§ ïŒæä»£ã§å·Šå³ãããªã顧客äœéšããã©ã³ãããæäŸããã æ¥ç¹ã®äžè²«æ§ ïŒãã©ã³ããè²·ã£ããå©çšããåããã賌å
¥ããã»ã¹ã賌å
¥åŸã®å©çšã·ãŒã³ã«ãããŠãäžè²«ãã顧客äœéšãã§ãã ãã¢ããšã³ããã«ãäŸãããããšããã§ããã補åãšããŠã®äžè²«æ§ã«å ããŠäœéšããååŸã®ã°ã©ã³ããã¶ã€ã³ã«ãäžè²«æ§ãæããããšãéèŠã«ãªããŸãã äŸãšããŠã¹ã¿ãŒããã¯ã¹ã¯åºåè²»ãã»ãšãã©ãããã«ä»ã®ãã©ã³ãèªç¥åºŠãç¯ããããšã¯æåã§ãããããã«ã¯ãã©ã³ãã®äŸ¡å€ãç¯ãããã®ãã©ã³ãã£ã³ã°ã«äžè²«æ§ãããããã€ããããæä»£æ§ãšãããããã®ãèŠå ã§ã¯ãªãããšæããŸãã ãã©ã³ãã£ã³ã°ã®ã¡ãªãã éžææææ±ºå®ã®åçŽåã»åºå®å 顧客ã®ç¥èãæŽçãããããšã§ç«¶åãšå·®å¥åããåã³åãç©ãéžã¶ããã«ãªã ãŠãŒã¶ãŒã®ãã€ã€ã«å 芪ãã¿ãä¿¡é Œãå¢å€§ãããããšã§ãã©ã³ããã€ã€ãªãã£ã圢æããã ãªããã©ã³ãã«ãã ããã®ãããšããç¹ã§ããããã¡ãªãããå®çŸããŠããããšãéèŠã§ãã ãã¶ã€ããŒãšããŠæ°é£ã溢ãã UI ãããµãŒãã¹ã®ææ³ãèšå·ã«èœãšã蟌ãã VI ãªã©ã¢ãã¥ããèŠç¹ã§ã®ãã ãããéèŠããèžãŸããäžã§ãä»è·çš®ã®æ¹ã«ããããã®ã¡ãªãããç«¶äºãšããŠã®å¿
èŠã§ããããšãçè§£ããŠããããããåããããããšãæèããŠãããããšããã§ãã ãã©ã³ãã£ã³ã°ã®æ©ã¿ã©ãã ããããã¯åºç€ãèžãŸããŠãå®è·µçã«è¡ãããŠãããã©ã³ãã£ã³ã°ã§æ©ã¿ããããšãããäºäŸã§ç޹ä»ããªããç°¡åãªãã£ã¹ã«ãã·ã§ã³ãããŠãããŸãããäžéšã ãæç²ããŠã玹ä»ããŸãã 補åãã©ã³ãã®ç®¡ç äŒç€Ÿã®ãã©ã³ã管çã®ææ³ãå®çŸ©ã§ããŠããå€åã®æ©ãæ¥çã§ããã°ã€ã¡ãŒãžéãã«ãªããªãéããªãããšãå€ã
æãããŸãã å°ãªããã©ã³ãè³ç£ã掻çšããæå³ã§ãã¹ã¿ãŒãã¢ããã¯æšªäž²åã«æŽçãããããšãå€ããããŸãããããçšåºŠã®èŠæš¡æã«ãªã£ãŠåºç€äœåãããäŒæ¥ã§ãããšåå¥é©å¿åã§ããã©ã³ããšããŠä¿¡é Œæ§ãä¿ãŠãŸãããæšªäž²åã«æ¯ã¹ãŠåããããããããšæããŸãã äžæ¹ã§ããã©ãããã©ãŒããŒãšããŠååšããããªã暪䞲ã®ãã©ã³ã䟡å€ãããã¡ã³ãå²ã蟌ãã¹ããããããŸãããTechlunch ã®äžã§ãã¡ãã¬ãŒã§ããã°ã©ããããšè¯ããã«ã€ããŠè°è«ãã§ããŸããã ãã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã° 顧客äœéšã®èç©ãéèŠãªãã©ã³ãã§ãããŸãããã©ã®æ®µéã§ãã©ã³ãã£ã³ã°ã«åãçµããã¯ç¶æ³ã«ãããŸããæèŠãåºããããšããã ãšæããŸãã ICC FUKUOKA2017 ã«ãŠãã©ã³ãã£ã³ã°ã«ã€ããŠã®ã»ãã·ã§ã³ããããåãçµãã¿ã€ãã³ã°ã«ã€ããŠã®è°è«ãããŸããŸãšããããŠãããã Techlunch ã§äºäŸãšããŠå
±æããŸããããããã¯ããšããŠã®å·®å¥åãåºæ¬ã§ããããšã«å ããŠããã©ã³ãã®åšãæ¹ãçµç¹ã«ã€ã³ã¹ããŒã«ãããããã«ãã©ã³ãã£ã³ã°ã«åãçµãã±ãŒã¹ã玹ä»ãããŠããŸãã åã¯ãã©ã³ããåžžã«å¿
èŠããšèšããšâNoâã ãšæããŸãã ã³ã¢ãã£ãã£åãå§ããããç«¶äºãå§ãŸã£ãŠå·®å¥åããªããŠã¯ãªããªãæã«ããããã¯ãã®æ©èœãªã©ã§å·®å¥åãã§ããªãããŸãã¯å¿
ãããããã©ãŒãã³ã¹ã§å·®å¥åãã§ããªãæã«å¯äžæ®ãããéžæãããã©ã³ããäœããšããããšã§ãããšæããŸãã [æ ªåŒäŒç€Ÿ Bloom&Co. åœéæ³°åŒ] ãŠãŒã¶ãŒãç²ãã«ãããšãããã§ãŒãºã§ãããã ã¡ã«ã«ãªã®å Žåããã¯ãæåã® 100 äžããŠã³ããŒãããããŸã§ã¯ãçµæ§ãã¥ãŒãã³ã°ãããªãããªã³ã©ã€ã³ã®ããŒã±ãã£ã³ã°ã§ïŒãŠãŒã¶ãŒãïŒç²åŸããŠããŠããŸããã äžç¥ ãã¯ã 100 äžããŠã³ããŒãããããã£ãŠããªãã³ã·ã§ã³ã¬ãŒããé«ããŠãŒã¶ãŒãç©ã¿äžããç¶æ
ã«ãªã£ãŠããã°ã倧ãããã¹ããŒã±ãã£ã³ã°ïŒTVCMïŒããã£ãŠãç²åŸãããŠãŒã¶ãŒã¯æ®ããŸããããã [æ ªåŒäŒç€Ÿã¡ã«ã«ãª å°æ³ææ] åã¯ããŠãŒã¶ãŒãç²åŸããæåã§ãã©ã³ããå¿
èŠã ãšæã£ãŠãããã§ãããã ãã©ã³ããšããã®ã¯å¿
ãããå€ã«å¯ŸããŠã ãã§ã¯ãªããŠãïŒçµç¹ã®ïŒäžã®äººã«å¯ŸããŠå¿
èŠã§ããããšããããå€ãã®ã§ãã äžç¥ è³çå ã¯åœæ 130 幎ãããçµã£ãŠããäŒç€Ÿã ã£ãã®ã§ããã® 130 幎ããã®åŸã® 130 幎ããäžã®äžãçŸãããããšãã人ãçŸãããããšããããã¯å¥³æ§ã«éããããåç²§ã«éããçŸãããããšããããšãå¿
èŠã ããã軞ã ãããšãã話ã«ãªã£ãŠããã®ã¹ããŒã¬ã³ãšå
±ã«åç°æ°ç€Ÿé·äœå¶ã§é²ãã§ããããšã«ãªããŸããã [æ ªåŒäŒç€Ÿ dof éœè€å€ªé] (via ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒãF17-7C #3ã ) å
±æããåŸã«ã¯ããªãªãŒã¹åœåãããã©ã³ããã¯ãªãšã€ãã£ããäœã蟌ãŸãããããã¯ããæè¿è©±é¡ã«ãªãããšãå€ããšããããšã話ã«äžãããŸããã ãã¡ãããã©ã³ãã£ã³ã°ã®ã¿ã€ãã³ã°ã¯ç¶æ³ã«ããåå·®äžå¥ã§ããããããã¯ãããŒãããäœãéã«ã¯ããããã¯ãã®åšãæ¹ãšåãããŠã©ããªãã©ã³ããäœã£ãŠè¡ãããã®ããæ©ãã«èããããããšãå¿
èŠã ããªã©å
·äœçãªãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãŸããã æ°ããªãã©ã³ããåãå
¥ããããªãããšã åºæ¬çã«ãã©ã³ããæ°ããããããšã¯èŠæ
£ãããã®ãå€ãã£ãŠããŸãææããåçºãçãã±ãŒã¹ãå€ãã§ããããã®äžã§ã GAP ã¯ããŽã® 2010 幎ãªãã¥ãŒã¢ã«å
¬è¡šåŸãããäžããã®åçºã匷ãããã 6 æ¥éãšããçæéã§æ°ããããŽã®äœ¿çšãæ¢ããå
ã®ããŽã«æ»ããŠããŸããšããäžä»¶ããããŸãããïŒãã®ä»¶ã¯ æ ªäŸ¡ ã«ã倧ããªåœ±é¿ãäžããŸããïŒ äžæ¹ãåããããªå¢éã§ Airbnb ã 2014 幎ã®ãªãã¥ãŒã¢ã«åœåããŽã¯äžè©ã§ãããä»ã§ã¯ãªãã¥ãŒã¢ã«ã®æåäŸãšããŠæ±ãããååšã«ãªã£ãŠããŸãã Techlunch ã§ãæŽå²ã®æç¡ãå·®ã«ãªã£ãã®ãããªã©æ§ã
ãªæèŠãåºãŠããŸããããã®ä»¶ã¯ããŽãšããŠã®çéãæ¥µããããšãã以äžã®èæ¯ãæç€ºåºæ¥ãªãã£ã Gap ã«å¯ŸããŠã Airbnb ã¯ãµãŒãã¹ã®ã¹ããŒãªãŒãããŽã«å
å
ããå°éã«ããŽãä»ããã³ãã¥ãã±ãŒã·ã§ã³ã«åŸ¹ããããšãææãåããããã«æããŸãã ãã®äºäŸã¯ããŽã®ã¢ã€ãã³ãã£ãã£ãã©ããŸã§ç¢ºç«ããããããã®éãã«ããããšã«å ããŠããã¶ã€ã³ã®æææ±ºå®ãäžæçãªå€æ°æèŠã«å§ããäºäŸãšããŠãåŠã¶ããšãå€ãã§ãã ãŸãšã ç§å人ãå
ã
ã°ã©ãã£ãã¯ãã¶ã€ã³ãããŠããçµéšããããä»ãŸã§ã¯ãã©ã³ãã£ã³ã°ã®äžã§ãèå³ã CI ã VI ã«åŸåããŠããŸããããäœéšå
šäœããã©ã³ãã«å€§ããªåœ±é¿ãäžãããã®æä»£ãçµç¹ãšããŠãã©ã³ãæ§ç¯ãããŠããæèãéèŠã§ããããšãä»åã®å€§ããªåŠã³ã§ããã ãŸãåºç€ãåŠã¶äžã§æžç±ãèªãã§ããŸããããæè¿ã®äºäŸãªã©ãåŠã¶éã«ã¯ããã°ãªã©ã§ã®æ
å ±åéããšãŠãæå¹ã§ãåŠã³æ¹ãå€ãã£ãŠããŠãããªãšæããŸãããä»å玹ä»ããå
容ã¯ãããŸã§å
¥éç·šãªã®ã§ãèå³ãããã°ä»ååèã«ãããŠããã ããæ¬ãšããã°ã»èšäºããããæ·±å ããåºæ¥ãã®ã§ãªã¹ã¹ã¡ããŸãã ãã©ãããã©ãŒã ãã©ã³ãã£ã³ã° ã³ãŒãã¬ãŒãã»ã¢ã€ãã³ãã£ãã£æŠç¥âãã¶ã€ã³ãäŒæ¥çµå¶ãå€ãã ãã©ã³ãã»ãšã¯ã€ãã£ç ç©¶ã®å±æ ïœäŸ¡å€ããããè°è«ã®ç³»èãäžå¿ã«ïœ UX ãšãã©ã³ã ãã©ã³ãã¢ã€ãã³ãã£ãã£ãšã¯ïœãã©ã³ãæ§ç¯ãææã«å°ã BI ã®åµãæ¹ïœæåäºäŸæ ã¹ã¿ãŒãã¢ããã®ãã©ã³ãã£ã³ã°ã¯ãã€ããå¿
èŠãïŒ ããŽã®ãªãã¶ã€ã³ãŒãªã Gap ã倱æã Airbnb ãåãå
¥ããããã®ã æŠåšã«ãªããããŽããçã¿åºããCI ãã¶ã€ã³ãšã¯äœãïŒ Techlunch ã§ã¯ãã¶ã€ããŒä»¥å€ã®æ¹ãããäºäŸã«å¯ŸããŠæèŠãåºãããçåã«å¯ŸããŠåå è
ã§ãã£ã¹ã«ãã·ã§ã³ãåºæ¥ãããšããšãŠãææçŸ©ã§ãããä»åŸã¯ããããæèããªãããã©ã³ãã®åå°ãšãªã䟡å€ãåšãæ¹ããã¶ã€ã³åºæ¥ãããã«ããŠãããããšæããŸãã ãç¥ãã  ã¡ãã¬ãŒã§ã¯ãå»çä»è·ã®æ±äººãµã€ãããžã§ãã¡ãã¬ãŒããå»åž«ãã¡ãã€ãããªã³ã©ã€ã³å»çäºå
žãMEDLEYããå£ã³ãã§æ¢ããä»è·æœèšã®æ€çŽ¢ãµã€ããä»è·ã®ã»ãããããªã³ã©ã€ã³èšºçã¢ããªãCLINICSããªã©ã®ãããã¯ããæäŸããŠããŸãããããã®ãµãŒãã¹ã®æ¡å€§ãåããŠããã®æé·ãæ¯ãããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã èå³ã®ããæ¹ããã²ã¡ãã¬ãŒãžéã³ã«ããããŠãã ããã www.medley.jp
ããã«ã¡ã¯ãã¡ãã¬ãŒåºå ±ã®é¿éšã§ããå
æ¥éå¬ããã Developers SummitïŒãããµãïŒ2018 ã«ãã¡ãã¬ãŒã® CTO ã»å¹³å±±ãç»å£ããŸããã ãããµãã®ä»åã®ããŒãã¯ã å€ãããã® Ã å€ãããªããã® ãã ã¬ã¬ã·ãŒãªæ¥çãã€ã³ã¿ãŒãããã®åã§å€ããã€ã€ããããã®é¢çœãããšã³ãžãã¢ã«ç¥ã£ãŠãããããããã§ããããš CodeZine ïŒ EdTechZine ç·šéé·ã®ææšãããšçãäžãã£ãããšã§ãããŒã¯ã»ãã·ã§ã³ãå®çŸã ãå»ç ÃITããšããŠã¡ãã¬ãŒ CTO ã»å¹³å±±ãããéè ÃITããšããŠãããŒãã©ã¯ãŒã CTO ã»äžåºãããããé£²é£ ÃITããšããŠãã¬ã¿ CTO ã»å¢äºãã ãç»å£ããã¡ã·ãªããŒã¿ãŒã«  CodeZineïŒEdTechZine ç·šéé·ã®ææšããããè¿ãããŠã®å®æœãšãªããŸããã ã©ããªè©±ãé£ã³åºããã®ããäžéšã§ã¯ãããŸãã玹ä»ããŸãïŒ ãããã X-Tech ã£ãŠïŒ Â ææšããã¯åé ã§ãX-Tech ã«ã€ããŠã IT ã®å°å
¥ããé
ããŠããæ¥çã«ãããŠã ã¹ã¿ãŒãã¢ãããããæŽç·Žããã IT æè¡ã«ããæ°ããªäŸ¡å€ãä»çµã¿ãæäŸããåã ããšå®çŸ©ãå®éã«åäºæ¥ã§ã¯ã©ãããæããïŒãšè©±ãé²ã¿ãŸããã Fintech ã®å°æ¥åãšããŠã ãã£ãã·ã¥ã¬ã¹ç€ŸäŒãå®çŸããã ããåºã«ãšã£ãŠãçŸéã£ãŠæ¬åœã¯äžäŸ¿ãªãã®ã®ã¯ããæ¯æ¥ãé£ãéãæºåããªããšãããªãããããŸã倧éããåºã«çœ®ããŠãããªãããã宿çã«éè¡ã«å
¥éãã«è¡ã£ããããŠããã®ãçŸç¶ãããããç
©ãããããå°ããã€ç¡ãããŠããããã§ããããšããããŒãã©ã¯ãŒãã»äžåºããã ãéïŒçŸéãšãããããªâåœããåâãæ·±ãæ ¹ãããŠããã®ã¯ãå»çã®äžçãåæ§ã§ãã ãå»çã¯ãæªã ã«çŽã®ã«ã«ãã FAX æåãæ®ã£ãŠããããããããã€ã³ã¿ãŒããããæµžéããŠããªãããã¡ããå»çã·ã¹ãã ããããŸãããå»åž«ãå»çåŸäºè
ã®èšãããšããã®ãŸãŸèããŠäœã£ããšãããã®ãå€ããŠã å
šäœæé©ãåããŠããªã ãšãã課é¡ããããŸãããšåŒç€Ÿã»å¹³å±±ã話ããŸãã å€ãã®åºèã«å
±éãã課é¡ãæ¬è³ªçã«è§£æ±ºããŠããããšã倧å X-Tech ã§ã¯ãã€ã³ã¿ãŒããããµãŒãã¹ã«ãã倧ããªå€åããããåããããŸã§äœ¿ãæ
£ããŠããªããµãŒãã¹ã ãã«ãæ§ã
ãªæ¹åèŠæãå
¥ãããšãå°ãªããããŸããã ãå®éã«ãµãŒãã¹ã䜿ã£ãŠé ããŠãã飲é£åºããæ§ã
ãªèŠæãé ãã®ã§ãããåŒç€Ÿã¯äžåã«ã¹ã¿ãã€ãºãããªãããšããã¹ã¿ã³ã¹ããšã£ãŠããŸãã飲é£åºã®äŸ¡æ Œãã¿ã€ãã¯æ§ã
ã ãã©ãçªãè©°ãããšå®ã¯èª²é¡ã¯å
±éããŠãããããããã¢ãªã³ã°ããªããã æ¬è³ªçãªèª²é¡ãèŠã€ããŠã解決çãæäŸãã ããã«ããŠããŸãããšãäºçŽ/顧客管çãµãŒãã¹ã ãã¬ã¿ ããæäŸãããã¬ã¿ã»å¢äºããã ããã¯å»çã§ãåæ§ã§ãã¬ã¬ã·ãŒãªæ¥çã ãšãå»åž«ã®ããéãã«ãããã¯ããäœãããšã«åŸããªã©ã®é¢ä¿æ§ãçãŸãããããšããç¶æ³ã¯ãããŸããã§ãããã¯ã å°éåéãéã察çãªååšãšæããŠããã©ã€ããæã£ãŠè°è«ãã§ããããšã倧å ã§ãããããšå¹³å±±ãçããŸãã X-Tech ã§æŽ»èºã§ãããšã³ãžãã¢ã¯ïŒ CTO 察è«ãšããããšãããã話ã¯ãX-Tech ãæ¯ããçµç¹äœããã«ã äŒç€Ÿã§åããšã³ãžãã¢ã®ç¹åŸŽãæ±ãããããã®ãèããããšã ã飲é£çµéšè
ãå€ãããã§ã¯ãªãã®ã§ãããé£ã¹ãã®ã奜ããªäººã¯å€ãã瀟å¡å士ã§é£äºã«è¡ãããšãå€ããããŸã«ãšã³ã²ã«èšæ°å€§äžå€«ããªãšæããŸãïŒç¬ïŒãã¹ã¿ãŒãã¢ããã ãããããæ±ãããã圹å²ãåºå®ãããæ¥ã
å€ãã£ãŠããŸããææ©çã«å€ããããšã«æµææããªãããšã倧åã§ããããšãå¢äºããã äžåºãããããããã«ãäžã®äžã®èª²é¡è§£æ±ºãžã®ã¢ãããŒã·ã§ã³ã匷ããšæãããšããã«åæãããã«å¹³å±±ãã ãããã¯ãã«èªããæã£ãŠãã人ãå€ã ã§ãããããšç¶ããŸããã X-Tech ãªãã§ã¯ã®éçºããŒã ã£ãŠïŒ æåŸã«ãçµç¹ã¥ãããæ¡çšã§æ°ãã€ããŠããããšã«ã¯ãå瀟ãããªåçããããŸããã ããããŒãã©ã¯ãŒãã§ã¯ããããã¯ãããšã«ããŒã ãçµãã§ããŠã ã¹ã¢ãŒã«ããŒã ã§éå¶ããããšãå¿ãããŠããŸã ãæè¡éžå®ãå«ããŠããã®ããŒã ã䜿ãã¹ããšå€æããããããšãå
±æåã倧åã§ããããããè¶³ããã«ãªãããšããããç§ã CTO ã«ãªã£ãŠããããããããã®ã¯æäœéã«æŽçããŸãããã ïŒäžåºããïŒ ãæ¡çšã¯ãã£ãšé 匵ã£ãŠãããã©ããã£ãšè¶³ããŠããŸãããããšããšçµéšçã«ã·ãã¢ãããã«å±€ãæ¡çšããããšèããŠããŸããããçŸåšã¯ãžã¥ãã¢ãŸã§å¹
ãåºããŠããŸãããã ãã¹ã¿ãŒãã¢ããã§ã¯æ®å¿µãªãããŒãããããã°ã©ã ãæããäœè£ã¯ãªãããšãå€ããã ããããâ åããäœãäžããããã®ãâããããèããŠããŸã ãæè¡ãããžãã¹ãããŒã®ã€ããã¯ååã«æããããªãããã©ãæ¥çãæè¡ã®é¢çœãã¯ãã¬ã¿ã ããããäžããããããšããããšæãããïŒå¢äºããïŒ ãä»ã¡ãã¬ãŒã¯ãšã³ãžãã¢ãšãã¶ã€ããŒããã£ã¬ã¯ã¿ãŒãå»åž«ã§ 30 人ãããã®éçºããŒã ã§ããã è·çš®éã®ééããªããããšã培åºããŠããŸã ãiOS ãšã³ãžãã¢ããµãŒããµã€ããããã³ããšã³ãããšæ
åœãåããããšã§æ
å ±æçµ¶ãèµ·ãããããã·ã§ã³ã«ãã£ãŠäººãã¢ãµã€ã³ããè·çš®ã暪æããŠåãçµããç°å¢ãäœã£ãŠããŸããïŒå¹³å±±ïŒ æåŸã«å¹³å±±ã¯ãX-Tech 㯠Web ãšã³ãžãã¢ã®ãã®ãšæãããã¡ã§ãããtoB åãã«åºãå±éããŠãããããã¯ããå€ããïŒãããµãã®åå è
ã«å€ããããªïŒSIer ç³»ã®ãšã³ãžãã¢ã®æ¹ã«ãè¿ããåããæããŠããããäžçã ãšæãããã²æ¬¡ã®ãã£ãªã¢ãšããŠãã€ã³ã¿ãŒãããã®äŒç€Ÿãéžæè¢ã«ãããã ãšããã®ãæã£ãŠããã ãããšå¬ããã§ãïŒããšå匷ãã³ã¡ã³ãããŠãã»ãã·ã§ã³ãç· ããŸããã 2 æã«ã¯ã æ¥çµ xTECH ããåµåããããªã©ããŸããŸã泚ç®ã® X-Tech åéã ã©ããªããšãã§ããæ¥çãªã®ããã¡ãã¬ãŒã¯ã©ããªããžã§ã³ã«åããŠåããŠããã®ããªã©ããã£ãšè©±ãèããŠã¿ãããšããæ¹ã¯ããã²ãé£çµ¡ãã ããïŒ www.wantedly.com
ããã«ã¡ã¯ãã¡ãã¬ãŒåºå ±ã®é¿éšã§ããå
æ¥éå¬ããã Developers SummitïŒãããµãïŒ2018 ã«ãã¡ãã¬ãŒã® CTO ã»å¹³å±±ãç»å£ããŸããã ãããµãã®ä»åã®ããŒãã¯ã å€ãããã® Ã å€ãããªããã® ãã ã¬ã¬ã·ãŒãªæ¥çãã€ã³ã¿ãŒãããã®åã§å€ããã€ã€ããããã®é¢çœãããšã³ãžãã¢ã«ç¥ã£ãŠãããããããã§ããããš CodeZine ïŒ EdTechZine ç·šéé·ã®ææšãããšçãäžãã£ãããšã§ãããŒã¯ã»ãã·ã§ã³ãå®çŸã ãå»ç ÃITããšããŠã¡ãã¬ãŒ CTO ã»å¹³å±±ãããéè ÃITããšããŠãããŒãã©ã¯ãŒã CTO ã»äžåºãããããé£²é£ ÃITããšããŠãã¬ã¿ CTO ã»å¢äºãã ãç»å£ããã¡ã·ãªããŒã¿ãŒã«  CodeZineïŒEdTechZine ç·šéé·ã®ææšããããè¿ãããŠã®å®æœãšãªããŸããã ã©ããªè©±ãé£ã³åºããã®ããäžéšã§ã¯ãããŸãã玹ä»ããŸãïŒ ãããã X-Tech ã£ãŠïŒ Â ææšããã¯åé ã§ãX-Tech ã«ã€ããŠã IT ã®å°å
¥ããé
ããŠããæ¥çã«ãããŠã ã¹ã¿ãŒãã¢ãããããæŽç·Žããã IT æè¡ã«ããæ°ããªäŸ¡å€ãä»çµã¿ãæäŸããåã ããšå®çŸ©ãå®éã«åäºæ¥ã§ã¯ã©ãããæããïŒãšè©±ãé²ã¿ãŸããã Fintech ã®å°æ¥åãšããŠã ãã£ãã·ã¥ã¬ã¹ç€ŸäŒãå®çŸããã ããåºã«ãšã£ãŠãçŸéã£ãŠæ¬åœã¯äžäŸ¿ãªãã®ã®ã¯ããæ¯æ¥ãé£ãéãæºåããªããšãããªãããããŸã倧éããåºã«çœ®ããŠãããªãããã宿çã«éè¡ã«å
¥éãã«è¡ã£ããããŠããã®ãçŸç¶ãããããç
©ãããããå°ããã€ç¡ãããŠããããã§ããããšããããŒãã©ã¯ãŒãã»äžåºããã ãéïŒçŸéãšãããããªâåœããåâãæ·±ãæ ¹ãããŠããã®ã¯ãå»çã®äžçãåæ§ã§ãã ãå»çã¯ãæªã ã«çŽã®ã«ã«ãã FAX æåãæ®ã£ãŠããããããããã€ã³ã¿ãŒããããæµžéããŠããªãããã¡ããå»çã·ã¹ãã ããããŸãããå»åž«ãå»çåŸäºè
ã®èšãããšããã®ãŸãŸèããŠäœã£ããšãããã®ãå€ããŠã å
šäœæé©ãåããŠããªã ãšãã課é¡ããããŸãããšåŒç€Ÿã»å¹³å±±ã話ããŸãã å€ãã®åºèã«å
±éãã課é¡ãæ¬è³ªçã«è§£æ±ºããŠããããšã倧å X-Tech ã§ã¯ãã€ã³ã¿ãŒããããµãŒãã¹ã«ãã倧ããªå€åããããåããããŸã§äœ¿ãæ
£ããŠããªããµãŒãã¹ã ãã«ãæ§ã
ãªæ¹åèŠæãå
¥ãããšãå°ãªããããŸããã ãå®éã«ãµãŒãã¹ã䜿ã£ãŠé ããŠãã飲é£åºããæ§ã
ãªèŠæãé ãã®ã§ãããåŒç€Ÿã¯äžåã«ã¹ã¿ãã€ãºãããªãããšããã¹ã¿ã³ã¹ããšã£ãŠããŸãã飲é£åºã®äŸ¡æ Œãã¿ã€ãã¯æ§ã
ã ãã©ãçªãè©°ãããšå®ã¯èª²é¡ã¯å
±éããŠãããããããã¢ãªã³ã°ããªããã æ¬è³ªçãªèª²é¡ãèŠã€ããŠã解決çãæäŸãã ããã«ããŠããŸãããšãäºçŽ/顧客管çãµãŒãã¹ã ãã¬ã¿ ããæäŸãããã¬ã¿ã»å¢äºããã ããã¯å»çã§ãåæ§ã§ãã¬ã¬ã·ãŒãªæ¥çã ãšãå»åž«ã®ããéãã«ãããã¯ããäœãããšã«åŸããªã©ã®é¢ä¿æ§ãçãŸãããããšããç¶æ³ã¯ãããŸããã§ãããã¯ã å°éåéãéã察çãªååšãšæããŠããã©ã€ããæã£ãŠè°è«ãã§ããããšã倧å ã§ãããããšå¹³å±±ãçããŸãã X-Tech ã§æŽ»èºã§ãããšã³ãžãã¢ã¯ïŒ CTO 察è«ãšããããšãããã話ã¯ãX-Tech ãæ¯ããçµç¹äœããã«ã äŒç€Ÿã§åããšã³ãžãã¢ã®ç¹åŸŽãæ±ãããããã®ãèããããšã ã飲é£çµéšè
ãå€ãããã§ã¯ãªãã®ã§ãããé£ã¹ãã®ã奜ããªäººã¯å€ãã瀟å¡å士ã§é£äºã«è¡ãããšãå€ããããŸã«ãšã³ã²ã«èšæ°å€§äžå€«ããªãšæããŸãïŒç¬ïŒãã¹ã¿ãŒãã¢ããã ãããããæ±ãããã圹å²ãåºå®ãããæ¥ã
å€ãã£ãŠããŸããææ©çã«å€ããããšã«æµææããªãããšã倧åã§ããããšãå¢äºããã äžåºãããããããã«ãäžã®äžã®èª²é¡è§£æ±ºãžã®ã¢ãããŒã·ã§ã³ã匷ããšæãããšããã«åæãããã«å¹³å±±ãã ãããã¯ãã«èªããæã£ãŠãã人ãå€ã ã§ãããããšç¶ããŸããã X-Tech ãªãã§ã¯ã®éçºããŒã ã£ãŠïŒ æåŸã«ãçµç¹ã¥ãããæ¡çšã§æ°ãã€ããŠããããšã«ã¯ãå瀟ãããªåçããããŸããã ããããŒãã©ã¯ãŒãã§ã¯ããããã¯ãããšã«ããŒã ãçµãã§ããŠã ã¹ã¢ãŒã«ããŒã ã§éå¶ããããšãå¿ãããŠããŸã ãæè¡éžå®ãå«ããŠããã®ããŒã ã䜿ãã¹ããšå€æããããããšãå
±æåã倧åã§ããããããè¶³ããã«ãªãããšããããç§ã CTO ã«ãªã£ãŠããããããããã®ã¯æäœéã«æŽçããŸãããã ïŒäžåºããïŒ ãæ¡çšã¯ãã£ãšé 匵ã£ãŠãããã©ããã£ãšè¶³ããŠããŸãããããšããšçµéšçã«ã·ãã¢ãããã«å±€ãæ¡çšããããšèããŠããŸããããçŸåšã¯ãžã¥ãã¢ãŸã§å¹
ãåºããŠããŸãããã ãã¹ã¿ãŒãã¢ããã§ã¯æ®å¿µãªãããŒãããããã°ã©ã ãæããäœè£ã¯ãªãããšãå€ããã ããããâ åããäœãäžããããã®ãâããããèããŠããŸã ãæè¡ãããžãã¹ãããŒã®ã€ããã¯ååã«æããããªãããã©ãæ¥çãæè¡ã®é¢çœãã¯ãã¬ã¿ã ããããäžããããããšããããšæãããïŒå¢äºããïŒ ãä»ã¡ãã¬ãŒã¯ãšã³ãžãã¢ãšãã¶ã€ããŒããã£ã¬ã¯ã¿ãŒãå»åž«ã§ 30 人ãããã®éçºããŒã ã§ããã è·çš®éã®ééããªããããšã培åºããŠããŸã ãiOS ãšã³ãžãã¢ããµãŒããµã€ããããã³ããšã³ãããšæ
åœãåããããšã§æ
å ±æçµ¶ãèµ·ãããããã·ã§ã³ã«ãã£ãŠäººãã¢ãµã€ã³ããè·çš®ã暪æããŠåãçµããç°å¢ãäœã£ãŠããŸããïŒå¹³å±±ïŒ æåŸã«å¹³å±±ã¯ãX-Tech 㯠Web ãšã³ãžãã¢ã®ãã®ãšæãããã¡ã§ãããtoB åãã«åºãå±éããŠãããããã¯ããå€ããïŒãããµãã®åå è
ã«å€ããããªïŒSIer ç³»ã®ãšã³ãžãã¢ã®æ¹ã«ãè¿ããåããæããŠããããäžçã ãšæãããã²æ¬¡ã®ãã£ãªã¢ãšããŠãã€ã³ã¿ãŒãããã®äŒç€Ÿãéžæè¢ã«ãããã ãšããã®ãæã£ãŠããã ãããšå¬ããã§ãïŒããšå匷ãã³ã¡ã³ãããŠãã»ãã·ã§ã³ãç· ããŸããã 2 æã«ã¯ã æ¥çµ xTECH ããåµåããããªã©ããŸããŸã泚ç®ã® X-Tech åéã ã©ããªããšãã§ããæ¥çãªã®ããã¡ãã¬ãŒã¯ã©ããªããžã§ã³ã«åããŠåããŠããã®ããªã©ããã£ãšè©±ãèããŠã¿ãããšããæ¹ã¯ããã²ãé£çµ¡ãã ããïŒ www.wantedly.com
ããã«ã¡ã¯ãã¡ãã¬ãŒåºå ±ã®é¿éšã§ããå
æ¥éå¬ããã Developers SummitïŒãããµãïŒ2018 ã«ãã¡ãã¬ãŒã® CTO ã»å¹³å±±ãç»å£ããŸããã ãããµãã®ä»åã®ããŒãã¯ã å€ãããã® Ã å€ãããªããã® ãã ã¬ã¬ã·ãŒãªæ¥çãã€ã³ã¿ãŒãããã®åã§å€ããã€ã€ããããã®é¢çœãããšã³ãžãã¢ã«ç¥ã£ãŠãããããããã§ããããš CodeZine ïŒ EdTechZine ç·šéé·ã®ææšãããšçãäžãã£ãããšã§ãããŒã¯ã»ãã·ã§ã³ãå®çŸã ãå»ç ÃITããšããŠã¡ãã¬ãŒ CTO ã»å¹³å±±ãããéè ÃITããšããŠãããŒãã©ã¯ãŒã CTO ã»äžåºãããããé£²é£ ÃITããšããŠãã¬ã¿ CTO ã»å¢äºãã ãç»å£ããã¡ã·ãªããŒã¿ãŒã«  CodeZineïŒEdTechZine ç·šéé·ã®ææšããããè¿ãããŠã®å®æœãšãªããŸããã ã©ããªè©±ãé£ã³åºããã®ããäžéšã§ã¯ãããŸãã玹ä»ããŸãïŒ ãããã X-Tech ã£ãŠïŒ Â ææšããã¯åé ã§ãX-Tech ã«ã€ããŠã IT ã®å°å
¥ããé
ããŠããæ¥çã«ãããŠã ã¹ã¿ãŒãã¢ãããããæŽç·Žããã IT æè¡ã«ããæ°ããªäŸ¡å€ãä»çµã¿ãæäŸããåã ããšå®çŸ©ãå®éã«åäºæ¥ã§ã¯ã©ãããæããïŒãšè©±ãé²ã¿ãŸããã Fintech ã®å°æ¥åãšããŠã ãã£ãã·ã¥ã¬ã¹ç€ŸäŒãå®çŸããã ããåºã«ãšã£ãŠãçŸéã£ãŠæ¬åœã¯äžäŸ¿ãªãã®ã®ã¯ããæ¯æ¥ãé£ãéãæºåããªããšãããªãããããŸã倧éããåºã«çœ®ããŠãããªãããã宿çã«éè¡ã«å
¥éãã«è¡ã£ããããŠããã®ãçŸç¶ãããããç
©ãããããå°ããã€ç¡ãããŠããããã§ããããšããããŒãã©ã¯ãŒãã»äžåºããã ãéïŒçŸéãšãããããªâåœããåâãæ·±ãæ ¹ãããŠããã®ã¯ãå»çã®äžçãåæ§ã§ãã ãå»çã¯ãæªã ã«çŽã®ã«ã«ãã FAX æåãæ®ã£ãŠããããããããã€ã³ã¿ãŒããããæµžéããŠããªãããã¡ããå»çã·ã¹ãã ããããŸãããå»åž«ãå»çåŸäºè
ã®èšãããšããã®ãŸãŸèããŠäœã£ããšãããã®ãå€ããŠã å
šäœæé©ãåããŠããªã ãšãã課é¡ããããŸãããšåŒç€Ÿã»å¹³å±±ã話ããŸãã å€ãã®åºèã«å
±éãã課é¡ãæ¬è³ªçã«è§£æ±ºããŠããããšã倧å X-Tech ã§ã¯ãã€ã³ã¿ãŒããããµãŒãã¹ã«ãã倧ããªå€åããããåããããŸã§äœ¿ãæ
£ããŠããªããµãŒãã¹ã ãã«ãæ§ã
ãªæ¹åèŠæãå
¥ãããšãå°ãªããããŸããã ãå®éã«ãµãŒãã¹ã䜿ã£ãŠé ããŠãã飲é£åºããæ§ã
ãªèŠæãé ãã®ã§ãããåŒç€Ÿã¯äžåã«ã¹ã¿ãã€ãºãããªãããšããã¹ã¿ã³ã¹ããšã£ãŠããŸãã飲é£åºã®äŸ¡æ Œãã¿ã€ãã¯æ§ã
ã ãã©ãçªãè©°ãããšå®ã¯èª²é¡ã¯å
±éããŠãããããããã¢ãªã³ã°ããªããã æ¬è³ªçãªèª²é¡ãèŠã€ããŠã解決çãæäŸãã ããã«ããŠããŸãããšãäºçŽ/顧客管çãµãŒãã¹ã ãã¬ã¿ ããæäŸãããã¬ã¿ã»å¢äºããã ããã¯å»çã§ãåæ§ã§ãã¬ã¬ã·ãŒãªæ¥çã ãšãå»åž«ã®ããéãã«ãããã¯ããäœãããšã«åŸããªã©ã®é¢ä¿æ§ãçãŸãããããšããç¶æ³ã¯ãããŸããã§ãããã¯ã å°éåéãéã察çãªååšãšæããŠããã©ã€ããæã£ãŠè°è«ãã§ããããšã倧å ã§ãããããšå¹³å±±ãçããŸãã X-Tech ã§æŽ»èºã§ãããšã³ãžãã¢ã¯ïŒ CTO 察è«ãšããããšãããã話ã¯ãX-Tech ãæ¯ããçµç¹äœããã«ã äŒç€Ÿã§åããšã³ãžãã¢ã®ç¹åŸŽãæ±ãããããã®ãèããããšã ã飲é£çµéšè
ãå€ãããã§ã¯ãªãã®ã§ãããé£ã¹ãã®ã奜ããªäººã¯å€ãã瀟å¡å士ã§é£äºã«è¡ãããšãå€ããããŸã«ãšã³ã²ã«èšæ°å€§äžå€«ããªãšæããŸãïŒç¬ïŒãã¹ã¿ãŒãã¢ããã ãããããæ±ãããã圹å²ãåºå®ãããæ¥ã
å€ãã£ãŠããŸããææ©çã«å€ããããšã«æµææããªãããšã倧åã§ããããšãå¢äºããã äžåºãããããããã«ãäžã®äžã®èª²é¡è§£æ±ºãžã®ã¢ãããŒã·ã§ã³ã匷ããšæãããšããã«åæãããã«å¹³å±±ãã ãããã¯ãã«èªããæã£ãŠãã人ãå€ã ã§ãããããšç¶ããŸããã X-Tech ãªãã§ã¯ã®éçºããŒã ã£ãŠïŒ æåŸã«ãçµç¹ã¥ãããæ¡çšã§æ°ãã€ããŠããããšã«ã¯ãå瀟ãããªåçããããŸããã ããããŒãã©ã¯ãŒãã§ã¯ããããã¯ãããšã«ããŒã ãçµãã§ããŠã ã¹ã¢ãŒã«ããŒã ã§éå¶ããããšãå¿ãããŠããŸã ãæè¡éžå®ãå«ããŠããã®ããŒã ã䜿ãã¹ããšå€æããããããšãå
±æåã倧åã§ããããããè¶³ããã«ãªãããšããããç§ã CTO ã«ãªã£ãŠããããããããã®ã¯æäœéã«æŽçããŸãããã ïŒäžåºããïŒ ãæ¡çšã¯ãã£ãšé 匵ã£ãŠãããã©ããã£ãšè¶³ããŠããŸãããããšããšçµéšçã«ã·ãã¢ãããã«å±€ãæ¡çšããããšèããŠããŸããããçŸåšã¯ãžã¥ãã¢ãŸã§å¹
ãåºããŠããŸãããã ãã¹ã¿ãŒãã¢ããã§ã¯æ®å¿µãªãããŒãããããã°ã©ã ãæããäœè£ã¯ãªãããšãå€ããã ããããâ åããäœãäžããããã®ãâããããèããŠããŸã ãæè¡ãããžãã¹ãããŒã®ã€ããã¯ååã«æããããªãããã©ãæ¥çãæè¡ã®é¢çœãã¯ãã¬ã¿ã ããããäžããããããšããããšæãããïŒå¢äºããïŒ ãä»ã¡ãã¬ãŒã¯ãšã³ãžãã¢ãšãã¶ã€ããŒããã£ã¬ã¯ã¿ãŒãå»åž«ã§ 30 人ãããã®éçºããŒã ã§ããã è·çš®éã®ééããªããããšã培åºããŠããŸã ãiOS ãšã³ãžãã¢ããµãŒããµã€ããããã³ããšã³ãããšæ
åœãåããããšã§æ
å ±æçµ¶ãèµ·ãããããã·ã§ã³ã«ãã£ãŠäººãã¢ãµã€ã³ããè·çš®ã暪æããŠåãçµããç°å¢ãäœã£ãŠããŸããïŒå¹³å±±ïŒ æåŸã«å¹³å±±ã¯ãX-Tech 㯠Web ãšã³ãžãã¢ã®ãã®ãšæãããã¡ã§ãããtoB åãã«åºãå±éããŠãããããã¯ããå€ããïŒãããµãã®åå è
ã«å€ããããªïŒSIer ç³»ã®ãšã³ãžãã¢ã®æ¹ã«ãè¿ããåããæããŠããããäžçã ãšæãããã²æ¬¡ã®ãã£ãªã¢ãšããŠãã€ã³ã¿ãŒãããã®äŒç€Ÿãéžæè¢ã«ãããã ãšããã®ãæã£ãŠããã ãããšå¬ããã§ãïŒããšå匷ãã³ã¡ã³ãããŠãã»ãã·ã§ã³ãç· ããŸããã 2 æã«ã¯ã æ¥çµ xTECH ããåµåããããªã©ããŸããŸã泚ç®ã® X-Tech åéã ã©ããªããšãã§ããæ¥çãªã®ããã¡ãã¬ãŒã¯ã©ããªããžã§ã³ã«åããŠåããŠããã®ããªã©ããã£ãšè©±ãèããŠã¿ãããšããæ¹ã¯ããã²ãé£çµ¡ãã ããïŒ www.wantedly.com
ããã«ã¡ã¯ãã¡ãã¬ãŒåºå ±ã®é¿éšã§ããå
æ¥éå¬ããã Developers SummitïŒãããµãïŒ2018 ã«ãã¡ãã¬ãŒã® CTO ã»å¹³å±±ãç»å£ããŸããã ãããµãã®ä»åã®ããŒãã¯ã å€ãããã® Ã å€ãããªããã® ãã ã¬ã¬ã·ãŒãªæ¥çãã€ã³ã¿ãŒãããã®åã§å€ããã€ã€ããããã®é¢çœãããšã³ãžãã¢ã«ç¥ã£ãŠãããããããã§ããããš CodeZine ïŒ EdTechZine ç·šéé·ã®ææšãããšçãäžãã£ãããšã§ãããŒã¯ã»ãã·ã§ã³ãå®çŸã ãå»ç ÃITããšããŠã¡ãã¬ãŒ CTO ã»å¹³å±±ãããéè ÃITããšããŠãããŒãã©ã¯ãŒã CTO ã»äžåºãããããé£²é£ ÃITããšããŠãã¬ã¿ CTO ã»å¢äºãã ãç»å£ããã¡ã·ãªããŒã¿ãŒã«  CodeZineïŒEdTechZine ç·šéé·ã®ææšããããè¿ãããŠã®å®æœãšãªããŸããã ã©ããªè©±ãé£ã³åºããã®ããäžéšã§ã¯ãããŸãã玹ä»ããŸãïŒ ãããã X-Tech ã£ãŠïŒ Â ææšããã¯åé ã§ãX-Tech ã«ã€ããŠã IT ã®å°å
¥ããé
ããŠããæ¥çã«ãããŠã ã¹ã¿ãŒãã¢ãããããæŽç·Žããã IT æè¡ã«ããæ°ããªäŸ¡å€ãä»çµã¿ãæäŸããåã ããšå®çŸ©ãå®éã«åäºæ¥ã§ã¯ã©ãããæããïŒãšè©±ãé²ã¿ãŸããã Fintech ã®å°æ¥åãšããŠã ãã£ãã·ã¥ã¬ã¹ç€ŸäŒãå®çŸããã ããåºã«ãšã£ãŠãçŸéã£ãŠæ¬åœã¯äžäŸ¿ãªãã®ã®ã¯ããæ¯æ¥ãé£ãéãæºåããªããšãããªãããããŸã倧éããåºã«çœ®ããŠãããªãããã宿çã«éè¡ã«å
¥éãã«è¡ã£ããããŠããã®ãçŸç¶ãããããç
©ãããããå°ããã€ç¡ãããŠããããã§ããããšããããŒãã©ã¯ãŒãã»äžåºããã ãéïŒçŸéãšãããããªâåœããåâãæ·±ãæ ¹ãããŠããã®ã¯ãå»çã®äžçãåæ§ã§ãã ãå»çã¯ãæªã ã«çŽã®ã«ã«ãã FAX æåãæ®ã£ãŠããããããããã€ã³ã¿ãŒããããæµžéããŠããªãããã¡ããå»çã·ã¹ãã ããããŸãããå»åž«ãå»çåŸäºè
ã®èšãããšããã®ãŸãŸèããŠäœã£ããšãããã®ãå€ããŠã å
šäœæé©ãåããŠããªã ãšãã課é¡ããããŸãããšåŒç€Ÿã»å¹³å±±ã話ããŸãã å€ãã®åºèã«å
±éãã課é¡ãæ¬è³ªçã«è§£æ±ºããŠããããšã倧å X-Tech ã§ã¯ãã€ã³ã¿ãŒããããµãŒãã¹ã«ãã倧ããªå€åããããåããããŸã§äœ¿ãæ
£ããŠããªããµãŒãã¹ã ãã«ãæ§ã
ãªæ¹åèŠæãå
¥ãããšãå°ãªããããŸããã ãå®éã«ãµãŒãã¹ã䜿ã£ãŠé ããŠãã飲é£åºããæ§ã
ãªèŠæãé ãã®ã§ãããåŒç€Ÿã¯äžåã«ã¹ã¿ãã€ãºãããªãããšããã¹ã¿ã³ã¹ããšã£ãŠããŸãã飲é£åºã®äŸ¡æ Œãã¿ã€ãã¯æ§ã
ã ãã©ãçªãè©°ãããšå®ã¯èª²é¡ã¯å
±éããŠãããããããã¢ãªã³ã°ããªããã æ¬è³ªçãªèª²é¡ãèŠã€ããŠã解決çãæäŸãã ããã«ããŠããŸãããšãäºçŽ/顧客管çãµãŒãã¹ã ãã¬ã¿ ããæäŸãããã¬ã¿ã»å¢äºããã ããã¯å»çã§ãåæ§ã§ãã¬ã¬ã·ãŒãªæ¥çã ãšãå»åž«ã®ããéãã«ãããã¯ããäœãããšã«åŸããªã©ã®é¢ä¿æ§ãçãŸãããããšããç¶æ³ã¯ãããŸããã§ãããã¯ã å°éåéãéã察çãªååšãšæããŠããã©ã€ããæã£ãŠè°è«ãã§ããããšã倧å ã§ãããããšå¹³å±±ãçããŸãã X-Tech ã§æŽ»èºã§ãããšã³ãžãã¢ã¯ïŒ CTO 察è«ãšããããšãããã話ã¯ãX-Tech ãæ¯ããçµç¹äœããã«ã äŒç€Ÿã§åããšã³ãžãã¢ã®ç¹åŸŽãæ±ãããããã®ãèããããšã ã飲é£çµéšè
ãå€ãããã§ã¯ãªãã®ã§ãããé£ã¹ãã®ã奜ããªäººã¯å€ãã瀟å¡å士ã§é£äºã«è¡ãããšãå€ããããŸã«ãšã³ã²ã«èšæ°å€§äžå€«ããªãšæããŸãïŒç¬ïŒãã¹ã¿ãŒãã¢ããã ãããããæ±ãããã圹å²ãåºå®ãããæ¥ã
å€ãã£ãŠããŸããææ©çã«å€ããããšã«æµææããªãããšã倧åã§ããããšãå¢äºããã äžåºãããããããã«ãäžã®äžã®èª²é¡è§£æ±ºãžã®ã¢ãããŒã·ã§ã³ã匷ããšæãããšããã«åæãããã«å¹³å±±ãã ãããã¯ãã«èªããæã£ãŠãã人ãå€ã ã§ãããããšç¶ããŸããã X-Tech ãªãã§ã¯ã®éçºããŒã ã£ãŠïŒ æåŸã«ãçµç¹ã¥ãããæ¡çšã§æ°ãã€ããŠããããšã«ã¯ãå瀟ãããªåçããããŸããã ããããŒãã©ã¯ãŒãã§ã¯ããããã¯ãããšã«ããŒã ãçµãã§ããŠã ã¹ã¢ãŒã«ããŒã ã§éå¶ããããšãå¿ãããŠããŸã ãæè¡éžå®ãå«ããŠããã®ããŒã ã䜿ãã¹ããšå€æããããããšãå
±æåã倧åã§ããããããè¶³ããã«ãªãããšããããç§ã CTO ã«ãªã£ãŠããããããããã®ã¯æäœéã«æŽçããŸãããã ïŒäžåºããïŒ ãæ¡çšã¯ãã£ãšé 匵ã£ãŠãããã©ããã£ãšè¶³ããŠããŸãããããšããšçµéšçã«ã·ãã¢ãããã«å±€ãæ¡çšããããšèããŠããŸããããçŸåšã¯ãžã¥ãã¢ãŸã§å¹
ãåºããŠããŸãããã ãã¹ã¿ãŒãã¢ããã§ã¯æ®å¿µãªãããŒãããããã°ã©ã ãæããäœè£ã¯ãªãããšãå€ããã ããããâ åããäœãäžããããã®ãâããããèããŠããŸã ãæè¡ãããžãã¹ãããŒã®ã€ããã¯ååã«æããããªãããã©ãæ¥çãæè¡ã®é¢çœãã¯ãã¬ã¿ã ããããäžããããããšããããšæãããïŒå¢äºããïŒ ãä»ã¡ãã¬ãŒã¯ãšã³ãžãã¢ãšãã¶ã€ããŒããã£ã¬ã¯ã¿ãŒãå»åž«ã§ 30 人ãããã®éçºããŒã ã§ããã è·çš®éã®ééããªããããšã培åºããŠããŸã ãiOS ãšã³ãžãã¢ããµãŒããµã€ããããã³ããšã³ãããšæ
åœãåããããšã§æ
å ±æçµ¶ãèµ·ãããããã·ã§ã³ã«ãã£ãŠäººãã¢ãµã€ã³ããè·çš®ã暪æããŠåãçµããç°å¢ãäœã£ãŠããŸããïŒå¹³å±±ïŒ æåŸã«å¹³å±±ã¯ãX-Tech 㯠Web ãšã³ãžãã¢ã®ãã®ãšæãããã¡ã§ãããtoB åãã«åºãå±éããŠãããããã¯ããå€ããïŒãããµãã®åå è
ã«å€ããããªïŒSIer ç³»ã®ãšã³ãžãã¢ã®æ¹ã«ãè¿ããåããæããŠããããäžçã ãšæãããã²æ¬¡ã®ãã£ãªã¢ãšããŠãã€ã³ã¿ãŒãããã®äŒç€Ÿãéžæè¢ã«ãããã ãšããã®ãæã£ãŠããã ãããšå¬ããã§ãïŒããšå匷ãã³ã¡ã³ãããŠãã»ãã·ã§ã³ãç· ããŸããã 2 æã«ã¯ã æ¥çµ xTECH ããåµåããããªã©ããŸããŸã泚ç®ã® X-Tech åéã ã©ããªããšãã§ããæ¥çãªã®ããã¡ãã¬ãŒã¯ã©ããªããžã§ã³ã«åããŠåããŠããã®ããªã©ããã£ãšè©±ãèããŠã¿ãããšããæ¹ã¯ããã²ãé£çµ¡ãã ããïŒ www.wantedly.com
ããã«ã¡ã¯ãã¡ãã¬ãŒåºå ±ã®é¿éšã§ããå
æ¥éå¬ããã Developers SummitïŒãããµãïŒ2018 ã«ãã¡ãã¬ãŒã® CTO ã»å¹³å±±ãç»å£ããŸããã ãããµãã®ä»åã®ããŒãã¯ã å€ãããã® Ã å€ãããªããã® ãã ã¬ã¬ã·ãŒãªæ¥çãã€ã³ã¿ãŒãããã®åã§å€ããã€ã€ããããã®é¢çœãããšã³ãžãã¢ã«ç¥ã£ãŠãããããããã§ããããš CodeZine ïŒ EdTechZine ç·šéé·ã®ææšãããšçãäžãã£ãããšã§ãããŒã¯ã»ãã·ã§ã³ãå®çŸã ãå»ç ÃITããšããŠã¡ãã¬ãŒ CTO ã»å¹³å±±ãããéè ÃITããšããŠãããŒãã©ã¯ãŒã CTO ã»äžåºãããããé£²é£ ÃITããšããŠãã¬ã¿ CTO ã»å¢äºãã ãç»å£ããã¡ã·ãªããŒã¿ãŒã«  CodeZineïŒEdTechZine ç·šéé·ã®ææšããããè¿ãããŠã®å®æœãšãªããŸããã ã©ããªè©±ãé£ã³åºããã®ããäžéšã§ã¯ãããŸãã玹ä»ããŸãïŒ ãããã X-Tech ã£ãŠïŒ Â ææšããã¯åé ã§ãX-Tech ã«ã€ããŠã IT ã®å°å
¥ããé
ããŠããæ¥çã«ãããŠã ã¹ã¿ãŒãã¢ãããããæŽç·Žããã IT æè¡ã«ããæ°ããªäŸ¡å€ãä»çµã¿ãæäŸããåã ããšå®çŸ©ãå®éã«åäºæ¥ã§ã¯ã©ãããæããïŒãšè©±ãé²ã¿ãŸããã Fintech ã®å°æ¥åãšããŠã ãã£ãã·ã¥ã¬ã¹ç€ŸäŒãå®çŸããã ããåºã«ãšã£ãŠãçŸéã£ãŠæ¬åœã¯äžäŸ¿ãªãã®ã®ã¯ããæ¯æ¥ãé£ãéãæºåããªããšãããªãããããŸã倧éããåºã«çœ®ããŠãããªãããã宿çã«éè¡ã«å
¥éãã«è¡ã£ããããŠããã®ãçŸç¶ãããããç
©ãããããå°ããã€ç¡ãããŠããããã§ããããšããããŒãã©ã¯ãŒãã»äžåºããã ãéïŒçŸéãšãããããªâåœããåâãæ·±ãæ ¹ãããŠããã®ã¯ãå»çã®äžçãåæ§ã§ãã ãå»çã¯ãæªã ã«çŽã®ã«ã«ãã FAX æåãæ®ã£ãŠããããããããã€ã³ã¿ãŒããããæµžéããŠããªãããã¡ããå»çã·ã¹ãã ããããŸãããå»åž«ãå»çåŸäºè
ã®èšãããšããã®ãŸãŸèããŠäœã£ããšãããã®ãå€ããŠã å
šäœæé©ãåããŠããªã ãšãã課é¡ããããŸãããšåŒç€Ÿã»å¹³å±±ã話ããŸãã å€ãã®åºèã«å
±éãã課é¡ãæ¬è³ªçã«è§£æ±ºããŠããããšã倧å X-Tech ã§ã¯ãã€ã³ã¿ãŒããããµãŒãã¹ã«ãã倧ããªå€åããããåããããŸã§äœ¿ãæ
£ããŠããªããµãŒãã¹ã ãã«ãæ§ã
ãªæ¹åèŠæãå
¥ãããšãå°ãªããããŸããã ãå®éã«ãµãŒãã¹ã䜿ã£ãŠé ããŠãã飲é£åºããæ§ã
ãªèŠæãé ãã®ã§ãããåŒç€Ÿã¯äžåã«ã¹ã¿ãã€ãºãããªãããšããã¹ã¿ã³ã¹ããšã£ãŠããŸãã飲é£åºã®äŸ¡æ Œãã¿ã€ãã¯æ§ã
ã ãã©ãçªãè©°ãããšå®ã¯èª²é¡ã¯å
±éããŠãããããããã¢ãªã³ã°ããªããã æ¬è³ªçãªèª²é¡ãèŠã€ããŠã解決çãæäŸãã ããã«ããŠããŸãããšãäºçŽ/顧客管çãµãŒãã¹ã ãã¬ã¿ ããæäŸãããã¬ã¿ã»å¢äºããã ããã¯å»çã§ãåæ§ã§ãã¬ã¬ã·ãŒãªæ¥çã ãšãå»åž«ã®ããéãã«ãããã¯ããäœãããšã«åŸããªã©ã®é¢ä¿æ§ãçãŸãããããšããç¶æ³ã¯ãããŸããã§ãããã¯ã å°éåéãéã察çãªååšãšæããŠããã©ã€ããæã£ãŠè°è«ãã§ããããšã倧å ã§ãããããšå¹³å±±ãçããŸãã X-Tech ã§æŽ»èºã§ãããšã³ãžãã¢ã¯ïŒ CTO 察è«ãšããããšãããã話ã¯ãX-Tech ãæ¯ããçµç¹äœããã«ã äŒç€Ÿã§åããšã³ãžãã¢ã®ç¹åŸŽãæ±ãããããã®ãèããããšã ã飲é£çµéšè
ãå€ãããã§ã¯ãªãã®ã§ãããé£ã¹ãã®ã奜ããªäººã¯å€ãã瀟å¡å士ã§é£äºã«è¡ãããšãå€ããããŸã«ãšã³ã²ã«èšæ°å€§äžå€«ããªãšæããŸãïŒç¬ïŒãã¹ã¿ãŒãã¢ããã ãããããæ±ãããã圹å²ãåºå®ãããæ¥ã
å€ãã£ãŠããŸããææ©çã«å€ããããšã«æµææããªãããšã倧åã§ããããšãå¢äºããã äžåºãããããããã«ãäžã®äžã®èª²é¡è§£æ±ºãžã®ã¢ãããŒã·ã§ã³ã匷ããšæãããšããã«åæãããã«å¹³å±±ãã ãããã¯ãã«èªããæã£ãŠãã人ãå€ã ã§ãããããšç¶ããŸããã X-Tech ãªãã§ã¯ã®éçºããŒã ã£ãŠïŒ æåŸã«ãçµç¹ã¥ãããæ¡çšã§æ°ãã€ããŠããããšã«ã¯ãå瀟ãããªåçããããŸããã ããããŒãã©ã¯ãŒãã§ã¯ããããã¯ãããšã«ããŒã ãçµãã§ããŠã ã¹ã¢ãŒã«ããŒã ã§éå¶ããããšãå¿ãããŠããŸã ãæè¡éžå®ãå«ããŠããã®ããŒã ã䜿ãã¹ããšå€æããããããšãå
±æåã倧åã§ããããããè¶³ããã«ãªãããšããããç§ã CTO ã«ãªã£ãŠããããããããã®ã¯æäœéã«æŽçããŸãããã ïŒäžåºããïŒ ãæ¡çšã¯ãã£ãšé 匵ã£ãŠãããã©ããã£ãšè¶³ããŠããŸãããããšããšçµéšçã«ã·ãã¢ãããã«å±€ãæ¡çšããããšèããŠããŸããããçŸåšã¯ãžã¥ãã¢ãŸã§å¹
ãåºããŠããŸãããã ãã¹ã¿ãŒãã¢ããã§ã¯æ®å¿µãªãããŒãããããã°ã©ã ãæããäœè£ã¯ãªãããšãå€ããã ããããâ åããäœãäžããããã®ãâããããèããŠããŸã ãæè¡ãããžãã¹ãããŒã®ã€ããã¯ååã«æããããªãããã©ãæ¥çãæè¡ã®é¢çœãã¯ãã¬ã¿ã ããããäžããããããšããããšæãããïŒå¢äºããïŒ ãä»ã¡ãã¬ãŒã¯ãšã³ãžãã¢ãšãã¶ã€ããŒããã£ã¬ã¯ã¿ãŒãå»åž«ã§ 30 人ãããã®éçºããŒã ã§ããã è·çš®éã®ééããªããããšã培åºããŠããŸã ãiOS ãšã³ãžãã¢ããµãŒããµã€ããããã³ããšã³ãããšæ
åœãåããããšã§æ
å ±æçµ¶ãèµ·ãããããã·ã§ã³ã«ãã£ãŠäººãã¢ãµã€ã³ããè·çš®ã暪æããŠåãçµããç°å¢ãäœã£ãŠããŸããïŒå¹³å±±ïŒ æåŸã«å¹³å±±ã¯ãX-Tech 㯠Web ãšã³ãžãã¢ã®ãã®ãšæãããã¡ã§ãããtoB åãã«åºãå±éããŠãããããã¯ããå€ããïŒãããµãã®åå è
ã«å€ããããªïŒSIer ç³»ã®ãšã³ãžãã¢ã®æ¹ã«ãè¿ããåããæããŠããããäžçã ãšæãããã²æ¬¡ã®ãã£ãªã¢ãšããŠãã€ã³ã¿ãŒãããã®äŒç€Ÿãéžæè¢ã«ãããã ãšããã®ãæã£ãŠããã ãããšå¬ããã§ãïŒããšå匷ãã³ã¡ã³ãããŠãã»ãã·ã§ã³ãç· ããŸããã 2 æã«ã¯ã æ¥çµ xTECH ããåµåããããªã©ããŸããŸã泚ç®ã® X-Tech åéã ã©ããªããšãã§ããæ¥çãªã®ããã¡ãã¬ãŒã¯ã©ããªããžã§ã³ã«åããŠåããŠããã®ããªã©ããã£ãšè©±ãèããŠã¿ãããšããæ¹ã¯ããã²ãé£çµ¡ãã ããïŒ www.wantedly.com