ãã¹ãŠã®éçºè ã¯ãŠããããã¹ããäœã§ããããç¥ã£ãŠããŸããããããã䜿çšããŠããã°ã©ã ã®éçºæéãççž®ããããã«ãããã䜿çšã§ãã人ã¯ã»ãšãã©ããŸããã 圌ãã®ç®ã§ã¯ããã¹ãã®å©ããåããŠããéããããè¯ãä»äºãããããšãã§ãã人ã¯ãç®ãéããŠæã«ãã£ãããæã€ãã·ã³ã¬ã³ããŒã®äŒç€Ÿãç²ç ã§ãããžã§ãã€ã®ããã«èŠããŸãã
ãžã§ãã€ã®éã«ããªãã眮ããç®ãéããŠåäœãã¹ãããã®ä»ã®æè¡ã®å©ããåããŠãã°ã®å±±ãç²ç ããããã«æããŸãã
ã¢ãã«ãã¥ãŒãã¬ãŒã³ã¿ãŒïŒMVPïŒãšã¯
é ããããMVPãšã¯äœãããªãMVPãå¿ èŠãªã®ããMVPã®çšéã¯äœãã説æããŸãã
ã©ã®ãããžã§ã¯ãã§ããéçºè ããŠããããã¹ããè¿œå ããŠãäžéããŒãžã§ã³ããªãªãŒã¹ãããåã«è¡ããããã¹ãŠã®ããšãææ°ã®å€æŽãå£ããªãããšã確èªãããå ŽåããããŸãã
ãã¹ãã®å®è¡å 容ã¯æãããªããã§ãããŠãŒã¶ãŒããã©ãŒã ã確èªãããã£ãŒã«ãã«æ£ããããŒã¿ãå ¥åãããã®ãã¿ã³ã®ãã³ãã©ãŒã§[ä¿å]ãã¯ãªãã¯ããåŸããã©ãŒã ã®ããŒã¿ããã§ãã¯ãããŠããŒã¿ããŒã¹ã«å ¥ãããããããŠãŒã¶ãŒããšã©ãŒã¡ãã»ãŒãžãåãåãããšã確èªããå¿ èŠããããŸãã
ããŸããŸãªèšèªã®ããã¥ã¡ã³ãã«ãããã¹ãŠã®äŸã¯ããã®åçŽãªååã«åºã¥ããŠããŸãã ãããã£ãŠãããã¯éåžžã«äžè¬çãªèšèšäžã®æ±ºå®ã§ãã
ãããããã£ãŒã«ãã®æ£ç¢ºæ§ããã§ãã¯ããŠããŒã¿ããŒã¹ã«ä¿åããããžãã¯ã¯ãä¿åããã¿ã³ã®ãã³ãã©ãŒã«ãããããæåã®åé¡ãçºçããŸãã ãã¹ãã§ãã©ãŒã ã®ãä¿åããã¿ã³ã®ã¯ãªãã¯ããã¹ãããã«ã¯ã©ãããã°ããã§ããïŒ å®éããã¹ãã§ã¯ãã¯ã©ã¹ããã©ãŒã ãã®ã€ã³ã¹ã¿ã³ã¹ãäœæããããšã¯ã§ããŸãããã»ãšãã©ã®å Žåããã®ã¯ã©ã¹ã«ã¯ãããªãã¯ã³ã³ã¹ãã©ã¯ã¿ãŒããªãããã§ããèšãæãããšããã©ãŒã ã¯ãã¹ãã«ãªãç¹å¥ãªã¯ã©ã¹ã«ãã£ãŠäœæãããŸãã
MVPã䜿çšãããšãåè¿°ã®åé¡ãçŸãã解決ã§ããŸãã äžçªäžã®è¡ã¯ããã¿ã³ãã³ãã©ãŒãããã¹ãŠã®ã³ãŒãã転éããŠãç°¡åã«äœæã§ããå¥ã®ã¯ã©ã¹ã«ä¿åããå¿ èŠããããšããããšã§ãã ãã®ã¯ã©ã¹ã¯ãã¬ãŒã³ã¿ãŒãšåŒã°ããŸãã ãããŠãçŸåšãã¥ãŒãŸãã¯ãã¥ãŒãšåŒã°ããŠãããã©ãŒã ã§ã¯ãä¿åãã¿ã³ã®ãã³ãã©ãŒã«1è¡ã ããæ®ãããã¬ãŒã³ã¿ãŒã§åãååã®ã¡ãœãããåŒã³åºãããŸãã
éåžžããã¬ãŒã³ã¿ãŒã¯ãã¥ãŒã³ã³ã¹ãã©ã¯ã¿ãŒã§äœæããããã¥ãŒãžã®åç §ããã¬ãŒã³ã¿ãŒã«æž¡ãããŸãã
ããã«ãã¹ãã§ã¯ããã¬ãŒã³ã¿ãŒã®ã€ã³ã¹ã¿ã³ã¹ãäœæãããã¬ãŒã³ã¿ãŒã®ãä¿åãã¡ãœããã®åŒã³åºããã·ãã¥ã¬ãŒãããŸãã ããã«ããã¬ãŒã³ã¿ãŒã¯ãã¥ãŒãããã©ãŒã ãã£ãŒã«ãã®å€ãååŸãããããããã§ãã¯ããŠããŒã¿ããŒã¹ã«æž¡ãããšãæåŸ ããŠããŸãã ãã¹ãã®ãã¬ãŒã³ã¿ãŒã«ã¯ãŸã ãã©ãŒã ãå¿ èŠã§ãããããŒã¿ããŒã¹ãæäœããããã«äœããã®ã¯ã©ã¹ã®ãã©ãŒã ã®ããŒã¿ããŒã¹ããå¿ èŠã§ããããšãããããŸããã
ãã¹ãã§ããŒã¿ããŒã¹ãæäœããããã®ãã©ãŒã ãšã¯ã©ã¹ãäœæããããšã¯ã§ããŸããããè³ã§æ¬¡ã®ãã§ã€ã³ããå®è¡ã§ããŸãïŒäœæããããã¬ãŒã³ã¿ãŒã«ããã¥ãŒãšããŒã¿ããŒã¹ãæäœããããã®ã¯ã©ã¹ã§ã¯ãªãããããã®ã€ã³ã¿ãŒãã§ã€ã¹ãžã®åç §ãåä¿¡ãããŸã ã€ãŸãããã¬ãŒã³ããŒã·ã§ã³çšãšããŒã¿ããŒã¹çšã®ã€ã³ã¿ãŒãã§ã€ã¹ãäœæããå¿ èŠããããŸãã ãããã®ã€ã³ã¿ãŒãã§ã€ã¹ã§ã®éåžžã®äœæ¥äžãå®éã®ãã¬ãŒã³ããŒã·ã§ã³ãšããŒã¿ããŒã¹ã¯é衚瀺ã«ãªãããã¹ãã§ã¯ãããã®ã€ã³ã¿ãŒãã§ã€ã¹ããµããŒãããã¹ã¿ãã¯ã©ã¹ãäœæããŸãã ãã¹ãã§ã¯ããã©ãŒã ãã£ãŒã«ãã®åºå®å€ãè¿ããã¥ãŒã®ã¹ã¿ããäœæããŸãã ããŒã¿ããŒã¹ã®ã¹ã¿ãã¯ãããã«æ¥ãå€ãä¿åããã ããªã®ã§ãåŸã§ãããã®å€ã確èªã§ããŸãã
ãããŠä»ããã¹ãäžïŒ
1.ã¯ã©ã¹ãè¡šçŸçšã®ã¹ã¿ãã«äœæãããããè¿ããã£ãŒã«ãå€ãèŠå®ããŸãã
2. SaveToDBã¡ãœãããåŒã³åºããšãã«ãæž¡ãããå€ãåã«ä¿åããããŒã¿ããŒã¹ã®ã¹ã¿ãã¯ã©ã¹ãäœæããŸãã
3.ãã¬ãŒã³ã¿ãŒãäœæããäœæããã¹ã¿ãããã¬ãŒã³ã¿ãŒã«æž¡ããŸãã
4.ãã¬ãŒã³ã¿ãŒã¡ãœããããä¿åãããŸã
5.å¿ èŠãªå€ãDBã¹ã¿ãã«è¡šç€ºãããŠããããšã確èªããŸããããã§ãªãå Žåããã¬ãŒã³ã¿ãŒã«ãšã©ãŒããããŸãã
ããã§ã¯ããªãMVPãå¿ èŠãªã®ãããããŠããã¯äœã«äœ¿çšãããã®ã§ããããã
MVPã¯ããã©ãŒã ã«ããŒã¿ã衚瀺ããã³ãŒãããããŒã¿ãåŠçããããã®ããžãã¹ããžãã¯ã§ã³ãŒããåé¢ã§ããèšèšãã¿ãŒã³ã§ãã
ãã¬ãŒã³ã¿ãŒã®ããžãã¹ããžãã¯ã¯ãæ°ããããŒãžã§ã³ããªãªãŒã¹ããããã³ã«ãã¹ããããŸãã ããã«ãããããã°ã©ã ã«è€éãªãšã©ãŒã¯ãªããšèšãããšãã§ããŸãã
ãã¥ãŒå ã®ã³ãŒãã¯ãã¹ããããŠããŸãããããããã®ãšã©ãŒã¯ãä¿åããã¿ã³ãäœãããªãããšãéçºè ãç°¡åã«çºèŠãããã¿ã³ãã³ãã©ãŒã§ãã¬ãŒã³ã¿ãŒã¡ãœãããåŒã³åºãã®ãå¿ããããšãããã«ããããããç°¡åã«ä¿®æ£ã§ããŸãã
ãã®å Žæã®ç±å¿ãªèªè ã¯ããã¯ããããªãã¯ãã¡ããã¡ãã§ãïŒããšå«ã¶ã§ãããã 以åã¯ã1ã€ã®ãã¡ã€ã«ã«åãŸãã¯ã©ã¹ã1ã€ããããã®äžã®ãã¹ãŠããããã°ããã®ã䟿å©ã§ããããä»ã¯ãã¬ãŒã³ã¿ãŒã¯ã©ã¹ãã€ã³ã¿ãŒãã§ã€ã¹ã2ã€ã®ã¹ã¿ããããã³ãã¹ãèªäœãè¿œå ããå¿ èŠããããŸãïŒ ããã«ã¯2åã®æéãããããŸãã ãã¹ã泚æããå Žåãã³ãŒããæžããåŸãããã€ãã®ãã¹ããè¡ããŸãããç· ãåãã«ã€ããŠã¯è²¬ä»»ãè² ããŸããâ
ãèœã¡çããŠãè¥ãããã¯ã³ã
ã¯ããã©ã®ãã¿ãŒã³ã§ãè¿œå ã®ã³ãŒãè¡ãæžãå¿ èŠããããŸããããããå©çšããæ¹æ³ãç解ããã ãã§ãã
ã»ãšãã©ã®å Žåãéçºè ã¯åäœãã¹ãã䜿çšããŸãããããã¯ãããã¯ãã¹ããèšè¿°ããããã®è¿œå æéã®ç¡é§ã§ããããã¹ãã®æ©æµãåããªããã¹ã¿ãŒã¯ãã®æ©æµãåããããã§ãã ãã®ããããããžã§ã¯ãã§ã®æéã®ç¯çŽã¯ããã¹ã¿ãŒã®äœæ¥ãå°ãªãããã¹ãã®äœæã«è²»ãããæéãè¶ ããããšã¯ã§ããªããšããäºå®ã«ãã£ãŠã®ã¿éæã§ããŸãã
ãã®ããããã®æ¹æ³ã§ã¯åäœãã¹ãã䜿çšã§ããŸããã éçºè ã®æéãç¯çŽããããã«äœ¿çšããå¿ èŠããããŸãã
次ã«ããã¹ãã䜿çšããŠéçºããã»ã¹ãæŽçããæ¹æ³ã説æããŸããããã«ãããéçºè ã«ãšã£ãŠã¡ãªããããããŸãã
äŸãšããŠãããŒã¿ãå ¥åãããä¿åããã¿ã³ãã¯ãªãã¯ãããšã©ãŒãããå Žåã¯ããŒã¿ã確èªããããã§ãªãå Žåã¯ãŠãŒã¶ãŒã«è¡šç€ºããããã§ãªãå Žåã¯ããŒã¿ããŒã¹ã«éä¿¡ããå¿ èŠãããåããã©ãŒã ã䜿çšããŸãã
ãã¬ãŒã³ã¿ãŒçšã®ãã¥ãŒãšããªã»ããã®äœæ
ãŸãããã©ãŒã ïŒãã¥ãŒïŒãäœæããå¿ èŠããããŸããAndroidã®å Žåãããã¯Activityã¯ã©ã¹ã®çžç¶äººã§ãã å€ãå ¥åãããšã©ãŒã¡ãã»ãŒãžã衚瀺ãããã³ãã©ãŒã§[ä¿å]ãã¿ã³ã衚瀺ããã«ã¯ãã³ã³ãããŒã«ãé 眮ããå¿ èŠããããŸãã
次ã«ããã¬ãŒã³ããŒã·ã§ã³ã®ã€ã³ã¿ãŒãã§ã€ã¹ãäœæããå¿ èŠããããŸãã ãã¬ãŒã³ã¿ãŒããã©ãŒã ã«ããŒã¿ãåºåãããã©ãŒã ããããŒã¿ãååŸã§ããããã«ããã«ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ãå¿ èŠã§ãããã®ãããã€ã³ã¿ãŒãã§ã€ã¹ã«ã¯setNameïŒæåååïŒãæåågetNameïŒïŒãªã©ã®ã¡ãœãããå¿ èŠã§ãã åœç¶ããã¥ãŒã¯ãã®ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããå¿ èŠããããã¡ãœããã§ã¯ãå€ãåŒæ°ãã䜿çšæžã¿ã³ã³ãããŒã«ã®Textããããã£ã«ããŸãã¯getNameã¡ãœããã®å Žåã¯ãã®éã«åçŽã«ã·ããããå¿ èŠããããŸãã
次ã«ãã€ã³ã¿ãŒãã§ã€ã¹ã€ã³ã¹ã¿ã³ã¹ãžã®ãªã³ã¯ãå ¥åãšããŠåãåããã¬ãŒã³ã¿ãŒãäœæããå¿ èŠããããŸãã ä»ã®ãšããããã¬ãŒã³ã¿ãŒã³ã³ã¹ãã©ã¯ã¿ãŒã§ã¯ããã©ãŒã ã«ä»»æã®å€ãå ¥åããã ãã§ããã¬ãŒã³ã¿ãŒããã©ãŒã ã«ãã«ã¢ã¯ã»ã¹ã§ããããšã確èªããŸãã
ãŸãããä¿åãã¡ãœãããäœæããŸãããã®ã¡ãœããã§ã¯ãããŒã«ã«å€æ°ã®ãã¥ãŒãã£ãŒã«ãããçŸåšã®å€ãååŸãããã¬ãŒã¯ãã€ã³ããèšå®ããŠããã®ã¡ãœããããã¥ãŒããåŒã³åºãããããã«ããŸãã
ãã¥ãŒã³ã³ã¹ãã©ã¯ã¿ãŒã§ããã¬ãŒã³ã¿ãŒã®ã€ã³ã¹ã¿ã³ã¹ãäœæãããã®ãã¥ãŒãžã®ãªã³ã¯ãäžããŸãã ã¡ãœããã®ãã¥ãŒã§ããä¿åããã¿ã³ã®ãã³ãã©ãŒã¯ããã¬ãŒã³ã¿ãŒå ã®å¯Ÿå¿ããã¡ãœãããåŒã³åºãã ãã§ãã
ããããã¥ãŒã®äŸã§ã
public class View extends Activity implements IView { Presenter presenter; public View(Bundle savedInstanceState) { presenter = new Presenter(this); } public void setName(String name) { tvName.setText(name); } public void getName() { return tvName.getText(); } public void onSave(View v) { presenter.onSave(); } }
çºè¡šè ã®äžäŸã§ã
public class presenter { IView view; public presenter(IView view) { this.view = view; view.setName("example name"); } public onSave() { string name = view.getName(); } }
æåã®æ®µéã®ã³ãŒãã®æºåãã§ããŸããã
ãããã¬ã§ããã°ã©ã ãå®è¡ãããã©ãŒã ãéãããšãã«æ£ããååã衚瀺ãããŠããããšã確èªããå¿ èŠããããŸããæ°ããååãå ¥åããŠ[ä¿å]ãã¯ãªãã¯ãããšããã¬ãŒã³ã¿ãŒã¯æ£ããå€ãååŸããŸãã
æåã®æ®µéã§ã¯ãåäœãã¹ãã¯ãªããç¹ã«æéã®ç¯çŽã¯ãããŸããããã³ã¹ãã¯å€§ãããããŸããã
ãç®ãéããŠãè¥ãããã¯ã³ããã
ä»ãã楜ãã¿ãå§ãŸããŸãã å®éãã³ãŒããããã«èšè¿°ããããšã§ããã©ãŒã ãã©ã®ããã«æ©èœããããèŠãããã«ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããå¿ èŠã¯ãããŸããã ãã¹ãã§ãã¹ãŠã®ã³ãŒããéçºããã³ãããã°ããŸãã å®éã®ãžã§ãã€ã®ããã«ããç®ãéããŠããããã®ããã«ã³ãŒããèšè¿°ããŸãã
ç§å¯ã¯ããã¬ãŒã³ã¿ãŒãå°ããªããŒã¹ã«è¿œå ãããã®ããŒã¹ããã¹ãããŠãçå°ãè¿œå ããããšã§ãã
ãã¬ãŒã³ã¿ãŒæ©èœãåããŸãã äœææã«ãããŒã¿ããŒã¹ããååãèªã¿åãããã¥ãŒã«æž¡ãå¿ èŠããããŸãã ä¿åãããšãã¯ããã¬ãŒã³ããŒã·ã§ã³ããååãååŸããããŒã¿ããŒã¹ã«ä¿åããŸãã
public class presenter { IView view; IDataBase dataBase; int Id; public presenter(IView view, IDataBase dataBase) { this.view = view; this.dataBase = dataDase; id = view.getId(); string name = dataBase.loadFromDB(id); view.setName(name); } public onSave() { string name = view.getName(); dataBase.saveToDB(id, name); } }
IDãååŸããããã«ã€ã³ã¿ãŒãã§ãŒã¹ãšãã¥ãŒã«æ°ããã¡ãœãããè¿œå ããå¿ èŠãããããšã¯æããã§ãããä»ã®ãšããã¯ãç®ãéããããã€ãŸããã¬ãŒã³ããŒã·ã§ã³ã確èªããããã«ã¢ããªã±ãŒã·ã§ã³ãèµ·åããããšããããŸããã ããã¯åŸã§è¡ããŸããããšã©ãŒãçºçããå Žåã¯ãããã«ä¿®æ£ããŸãã
ããã§ããã¬ãŒã³ããŒã·ã§ã³ã®äžéšãäœæãããã¹ãã®äžéšãäœæããŸããã
æåã®éšåã§æžããã¹ã¿ãã¯ãã€ã³ã¿ãŒãã§ãŒã¹ããµããŒãããã¯ã©ã¹ã®åœ¢åŒã§äœæããå¿ èŠã¯ãããŸããã ããŸããŸãªMockãã¬ãŒã ã¯ãŒã¯ã®å Žåãæå®ããã€ã³ã¿ãŒãã§ã€ã¹ããµããŒãããã¡ãœãããåŒã³åºããšãã«å¿ èŠãªå€ãè¿ãã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã3è¡ã§äœæã§ããŸãã ãããã®ã¹ã¿ãã¯ãåãªãã¹ã¿ããããã¯ããã«æŽç·ŽãããŠãããããæš¡å£ïŒã¢ãã¯ãšããèšèã®ç¿»èš³ïŒãšåŒã°ããŸãã
è©Šéšæ¹æ³ã®äŸ
public void testOpenAndSave() { IView view = createMock(IView.class); // IDataBase dataBase = CreateMock(IDataBase.class);// expect(view.getId()).andReturn(1); // presenter id 1 expect(dataBase.LoadFromDB(1)).andReturn("source name"); // presenter , "source name" expect(view.setName("source name")); // expect(view.getName()).andReturn("destination name"); // presenter , , "destination name". expect(dataBase.SaveToDB(1, "destination name")); //, . Presenter presenter = new Presenter(view, dataBase); // presenter presenter.Save();// ""; //, verify(view); verify(dataBase); }
ãã¹ãã®ã³ãŒãããã¬ãŒã³ã¿ãŒã®ã³ãŒããšåãã§ãããšãããããããªãã§ãã ããã ããã¯äŸ¡å€ããããŸãã
ãã¹ããå®è¡ããŠããã¹ãŠãæ£åžžã§ããããšã確èªãããããã¹ãŠãæ£åžžã«ãªãããã«ããŸãã
ãã®éçºããã»ã¹ã§ã¯ããã¹ãã¯ã³ãŒãã«ãšã£ãŠç°è³ªãªãã®ã§ã¯ãããŸããã ãã¹ãã¯ãéçºè ãã¿ã¹ã¯ãå®è£ ãããšãã«çºè¡ããå¿ èŠãããã³ãŒãã§ãã èšè¿°ãããã³ãŒããæ£ããæ©èœããããšã確èªããããã®ãã¹ããå¿ èŠã§ãã
ãã¬ãŒã³ã¿ãŒã®ã³ãŒããçèãããã¹ãã®ã³ãŒããããã«èããŠãã ãã;ãããã¯å®æããã¿ã¹ã¯ã®é°ãšéœã§ãããåéšåã¯äºãã«åé¢äžå¯èœã§ãã
ãããŠããã«å©çããã
ãããŠä»ãç§ã¯å©çãéçºæéãççž®ããå質ãæ¹åãããšãã圢ã§ã©ãã«ãããã瀺ããŸãã
å©çã¯çºè¡šè ã®ãããªãçºå±ã«çŸããŸãã
次ã«ããã©ãŒã ããsaveã¡ãœããã«ããŒã¿æ€èšŒãè¿œå ããŸãã ãŸãããã¹ãã§ã¯ãæ£ããå€ãããŒã¿ããŒã¹ã«ä¿åãããŠããããšã確èªããå¿ èŠãããã誀ã£ãå€ã«ã€ããŠã¯ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããŸãã
ãããè¡ãã«ã¯ãååãæ£ããããšã確èªããããã«å¿ èŠãªã³ãŒãããã¬ãŒã³ã¿ãŒã«è¿œå ããååãééã£ãŠããå Žåã¯ãsetErrorTextïŒïŒã¡ãœãããåŒã³åºããŸããããŒã¿ããŒã¹ãžã®ä¿åã¯åŒã³åºããªãã§ãã ããã
次ã«ããã¹ããã³ããŒããŠããã¬ãŒã³ããŒã·ã§ã³çšã«ã·ãã¥ã¬ãŒã·ã§ã³ãç·šéããŸãã getNameïŒïŒãåŒã³åºããšãã«ééã£ãååãè¿ããæ£ããåŒæ°ã§setErrorTextïŒïŒã¡ãœãããåŒã³åºãããã®ãåŸ ã£ãŠããšã©ãŒã¡ãã»ãŒãžãæ£ããããšã確èªããå¿ èŠããããŸãã ãŸããããŒã¿ããŒã¹ã®ã·ãã¥ã¬ãŒã·ã§ã³ã§ã¯ãSaveToDBã¡ãœãããåŒã³åºãããããšããªããã€ãŸã0ååŒã³åºãããããšã確èªããå¿ èŠããããŸãã
確èªãããã¹ãŠã®ãã¹ããå®è¡ããŸãããæ°ãããã¹ãã¯æ£åžžã«æ©èœããŠããŸãã ããããéå»ã¯éãå»ããŸããã ç§ãã¡ã¯æããªééãã®ããã«é¡ãå©ããããã«ä¿®æ£ããŸããã
ãããŠä»ãäž¡æ¹ã®ãã¹ããæ©èœããŸãã
æåã®ãã¹ãã§ã¯ãªãã£ãå Žåããã¹ã¿ãŒã¯æ£ããè¡ã§ãšã©ãŒãèŠã€ããŠããããããŠããããã¹ãã䜿çšãããããä¿®æ£ã«æéãããããŸãã ã³ãŒãå ã®é©åãªå Žæãå床éããã¢ã«ãŽãªãºã ãã©ã®ããã«æ©èœããããèŠããŠä¿®æ£ããå¿ èŠããããŸãã ãããŠããã¹ãããªãã®ã§ãä»ã®ãã¹ãŠã®ãã¹ãã±ãŒã¹ãèªåã§ãã§ãã¯ããŠããã®ãšã©ãŒãä¿®æ£ããŠãå¥ã®ãã¹ãã±ãŒã¹ã«ã€ãªãããªãããšã確èªããŠãã ããã
ã¢ã«ãŽãªãºã ãè€éã§ãå€æ°ã®ãã¹ãã±ãŒã¹ããã§ãã¯ããå¿ èŠãããå Žåãæéã®ç¯çŽãããé¡èã«ãªããŸãã ãã¹ãããªããã°ãã¢ããªã±ãŒã·ã§ã³å šäœã®èµ·åã«æéãè²»ãããŠãããããã€ãã®ãŠã£ã³ããŠãéããŠç¬èªã®ãŠã£ã³ããŠã«ç§»åãããã¹ãã±ãŒã¹ãåçããå¿ èŠããããŸããããã«ã¯å€ãã®åŽåãããããŸãã
ãããããã¹ãããããŸãã ãããã£ãŠãéå»ã®ãã¹ãŠã®ãã¹ãã±ãŒã¹ããã§ãã¯ããããããããŸããŸãªãã¹ãã±ãŒã¹ãç°¡åã«ã·ãã¥ã¬ãŒããããããã§ãã°ãä¿®æ£ã§ããŸãã
ãã®çµæãé«å質ã®ã³ãŒããåŸããããã¹ã¿ãŒãèŠã€ãããšã©ãŒãã泚æããããå¿ èŠããªãããæéãç¯çŽã§ããŸããããŸãããšã©ãŒãä¿®æ£ããåŸãä»ã®ãã¹ãŠã®ãã¹ãã±ãŒã¹ãå£ããªãã£ãæé·æéããã§ãã¯ããŸããã
ãããŠãæ°æ¥åŸããã¬ãŒã³ã¿ãŒå šäœããã¹ãŠã®ã±ãŒã¹ã«å¯ŸããŠæºåãå®äºãããã¹ãããããšãã¢ããªã±ãŒã·ã§ã³ãèµ·åãããã¹ãŠã®ãã¹ãã±ãŒã¹ã«é©åã«æ©èœããããšãããããŸãã ãããŠãç§ãã¡ã¯æ¬ç©ã®ãžã§ãã€ã®ããã«æããŸãã
ãžã§ãã€ã¯ç°¡åã«ãªããŸããã
ã¯ã çã®ãžã§ãã€ã¯ããã¹ããµããŒãããèŠä»¶ãå€æŽãããšãã«ãæåã®éçºãããããããããã¹ãŠã®å©ç¹ãæãªãããšããªãããã«ããã¹ããèšè¿°ããããã®å€ãã®ããªãã¯ãç¥ã£ãŠããå¿ èŠããããŸãã
å®éããã¹ãã®ã³ããŒã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãã®ã³ããŒãšåããããæªãã§ãã ãã¹ãã±ãŒã¹ãèšè¿°ããããŒã¿æ§é ã§åäœãããã¹ããè¡ãå¿ èŠããããŸãã ãã®ããŒã¿æ§é ã«ã¯ãå ¥åããã³äºæ³ãããåºåãŸãã¯äºæ³ããããšã©ãŒãå«ãŸããŸãã
ãã®å Žåãæ°ãããã¹ãã¯ãç°ãªãããŒã¿æ§é ã䜿çšããåãã¡ãœããã®åŒã³åºãã§ãã ãããŠããã¹ãŠã®æ§é ãåŠçã§ããããã«ãã¹ããéçºããå¿ èŠããããŸãã
ã€ã³ã¿ãŒãããäžã§ãããªããæ¬åœã®ãžã§ãã€ãã¹ã¿ãŒã«ãªãããã®å€ãã®ããªãã¯ãèŠã€ããããšãã§ãããšä¿¡ããŠããŸãã
äž»ãªããšã¯ãããªãããã§ã«ãžã§ãã€ã®éã«ä¹ãåºããããã«åŸãæ¹æ³ãç¥ã£ãŠããããšã§ã:)
ä»ã®èšäºãèªã
- ã¯ããã«
-MVPããã³åäœãã¹ãã ãžã§ãã€ã»ãŠã§ã€
- ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ããã¹ããAndroidMock
- ããŒã¿ã®ä¿åã ãã¡ã€ã³ã¢ãã«ããªããžããªãã·ã³ã°ã«ãã³ããã³BDD
-ãµãŒããŒåŽã®å®è£ ãRoboGuiceããã¹ã
-å°ããªã¿ã¹ã¯ãèšå®ããã®ã³ã°ãProGuard