ããã«ã¡ã¯ãKomercoäºæ¥é¨ãã¶ã¤ãã¼ã®è¤äº(@kenshir0f)ã§ãã
主ã«Komercoã®ãµã¼ãã¹ãã¶ã¤ã³å
¨è¬ã¨Viewå¨ãã®éçºãæ
å½ãã¦ããã¾ãã
ä»åã¯Komercoã®éçºãã¼ã ã§å®è·µãã¦ããããã¶ã¤ã³ã¨ã¨ã³ã¸ãã¢ãªã³ã°ãã¤ãªããåãçµã¿ãã«ã¤ãã¦ã話ãã¾ãã
ãªããã¶ã¤ãã¼ãå®è£ ã«å ¥ãã®ã
Komercoã§ã¯ã¦ã¼ã¶ã¼ããã¸ã¹ãã¼ãã£ã¼ã«ä¾¡å¤ãå±ããããã®åãçµã¿ãç©æ¥µçã«æ¡ç¨ãã¦ãã¾ãã
ç´ æ©ããªãªã¼ã¹ãããã¨ã«ãã£ã¦ãæ©ã段éã§ãã£ã¼ãããã¯ãããããã¨ãã§ããã»ãã
ææ»ããªã©ã®å¤±æãªã¹ã¯ãæå°éã«æãããã¨ãã§ãã¾ãã
ãã¶ã¤ãã¼ããã¶ã¤ã³ãã¦ãã¨ã³ã¸ãã¢ãå®è£
ãããã¨ããæµãã®ä¸ã§ã
å®æ©ã§ã®ãã¶ã¤ã³ç¢ºèªãç´°ãã調æ´ãªã©ã§æ³å®ä»¥ä¸ã«å·¥æ°ãããããã¨ãããããã
è¦ãç®ã«é¢ããé¨åã¯ãã¶ã¤ãã¼ãå®è£
ã«å
¥ããã¨ã§ããã¶ã¤ã³ç¢ºèªã調æ´ã®æéãå·»ãåã¨ã£ã¦ãã¾ãã
å®è·µãã¦ããåãçµã¿
ã§ã¯å®éã«è¡ã£ã¦ãããã¶ã¤ã³ã¨ã¨ã³ã¸ãã¢ãªã³ã°ãã¤ãªããåãçµã¿ãããã¤ããç´¹ä»ãã¾ãã
KomercoFont
Komercoå
ã§ä½¿ããã¦ããã¢ã¤ã³ã³ãã©ã³ãã§ãã
iOSãªãªã¼ã¹æã¯ã¢ã¤ã³ã³ç»åãpngãã¡ã¤ã«ã§ (@1x), @2x, @3x
ãç¨æãã¦ãã¾ããã
æ°ããã¢ã¤ã³ã³ãåºæ¥ä¸ãã£ããPull Requestã§ç»åã追å ããããã¼ã§ããããã¢ã¤ã³ã³ç»åã®ç®¡çã³ã¹ããé«ããã¨ããç»å容éã大ãããªã£ã¦ãããããã¼ã¸ã§ã³ç®¡çã«ãããã©ã³ãå½¢å¼ã«ç§»è¡ãã¾ããã
ãªãã¢ã¤ã³ã³ã¯GithubPagesã«éçãã¼ã¸ãç¨æãããã¨ã§ãç¾å¨ã©ã®ã¢ã¤ã³ã³ãå©ç¨å¯è½ãè¦ããããã«ãã¦ãã¾ãã
ã¢ã¤ã³ã³ãã©ã³ããç¨æããã®ã§æ¬¡ã¯å®éã«ä½¿ããããæºåãã¾ãã
Komercoã§ã¯ç®¡çç»é¢ãReactã§éçºãã¦ãããããIconã®ReactComponentãç¨æãããã¨ã§ã¨ã³ã¸ãã¢ããµã¯ãã¨ä½¿ããããã«ãã¦ãã¾ãã
// ã¨ãã®ã¢ã¤ã³ã³ <Icon name={ 'shrimp' } />
åæ§ã«iOSã§ã¯ãã®ãããªæãã«ä½¿ãã¾ãã
ããã¯ãã¼ã ã®ã¨ã³ã¸ãã¢ãKomercoFontå°å
¥ã®è©±ãããæã«ã·ã¥ãã¨ä½ã£ã¦ããã¾ããããããã
// UILabel label.kf.icon = .crab // UIButton button.kf.setIcon(.heart)
ããã§ã¢ã¤ã³ã³ãã©ã³ã(ttf)ãæ´æ°ããã ãã§åã¢ã¤ã³ã³ãç°¡åã«ä½¿ããããã«ãªãã¾ãã
Komercomponents
Reactã®Componentéã§ããååã¯ä»®ãªã®ã§ãã£ããããã¤ã«å·®ãæ¿ãããã§ãããã
ä¸ã§è¿°ã¹ãã¨ãã管çç»é¢ã®Viewã¯Reactã§éçºãã¦ãããããäºåã«ãã¶ã¤ã³ãå½ãã£ã¦ããã³ã³ãã¼ãã³ããç¨æãã¦ãããã¨ã§ã¨ã³ã¸ãã¢ã®è¦ãç®ã®èª¿æ´ã«é¢ããè² æ
ãæ¸ãããè£å´ã®ãã¸ãã¯ã«æéããããããã«ãã¦ãã¾ãã
import { Icon, Button } from './../Komercomponents' // ã¦ã¼ã¶ã¼ã¢ã¤ã³ã³(20px) <Icon name={ 'user' } size={ 20 } /> // ãã©ã¤ããªã¼ã®ãã¿ã³ <Button color={ 'primary' } disabled={ this.state.isLoading } onClick={ this.deleteElement() }>åé¤</Button>
æå³ããªãæåãé²ããããpropsã¯ãã¯ã¤ããªã¹ãæ¹å¼ã§åãåããããã«ãã¾ããã
ãã¡ãããããã ã§ä½ã£ã¦ãããå¿
è¦ãªã¹ãã¼ã¿ã¹ãåã渡ããããªã£ããå¾ã
ã«æ¡å¼µãã¦è¡ãäºå®ã§ãã
TypeScriptã§éçºãã¦ããããäºåã«åãåããpropsãæ示ãããã許å¯ããªãåãè¦åãã¦ãããããå®å¿ãã¦ReactComponentãéçºãããã¨ãã§ãã¾ããå便å©ã§ããã
ã¾ãCSSã¯CSS Module
ã使ããã¨ã§è¡¨ç¤ºã®ãã¸ãã¯ã¨è¦ãç®ã®è²¬ä»»ãåãåããã ãã§ãªããæ°ãã«å
¥ããã¶ã¤ãã¼ã§ãç°¡åã«ç·¨éã§ããããã«ãã¦ãã¾ãã
import * as style from './style.css' <Icon className={ style.primaryColor } name={ 'komerco' }>
Komercomponentsã¯å½ånpmã§ç®¡çãããã¨èãã¦ãã¾ãããã
éçºä¸ã«Componentåãããã¨ãå¤ãããGit Submoduleã§ã¤ã³ãã¼ãããããã«ãã¾ããã
ãã®Komercomponentsã¯ç¾å¨éå
¬éã§ãããå
¬éããªãçç±ãç¹ã«ç¡ãããå
å®ãã¦ãããOSSã«ãããã¨ããæµãã§éçºãé²ãã¦ãã¾ãã
Komercomponents API document
ä¸è¨Komercomponentsã®APIä»æ§ãã¼ã¸ã§ãã
Doczãç¨ããFirebaseã®Hostingã«éçãã¼ã¸ãç½®ããã¨ã§webããComponentsã®ä»æ§ãææ¡ã§ããããã«ãã¦ãã¾ãã
åãã¯Storybookãæ¤è¨ãã¾ããããä½æã»ç®¡çããã³ã¹ããDoczã®æ¹ãä½ãã¨æãããããã¡ããæ¡ç¨ãã¾ããã
propsã«ä»æ§ã®ã³ã¡ã³ããæ®ãã¨èªåã§èªã¿è¾¼ããããä»æ§æ¸ã®ä½æã³ã¹ããä½ããã°ããéçºãé²ãããã¨ãã§ãã¾ãã
Lottieã«ããã¢ãã¡ã¼ã·ã§ã³ã®å°å ¥
ã¢ãã¡ã¼ã·ã§ã³ã«ã¯OSSã©ã¤ãã©ãªã®Lottieãæ¡ç¨ãã¦ãã¾ãã
ãã¶ã¤ãã¼ãAfterEffectsããjsonãã¡ã¤ã«ãæ¸ãåºãã¦ãã®ã¾ã¾å®è£
ã¾ã§è¡ããã»ãã軽éãã¤webã§ãåãã¢ãã¡ã¼ã·ã§ã³ã使ããã¨ãã§ãã¾ãã
ç¾å¨ã¯ä¸»ã«ãã¹ããã®ã¤ã³ã¿ã©ã¯ã·ã§ã³ã§ä½¿ç¨ãã¦ãã¾ããããªãããªä½é¨ãæä¾ããããã«ä»å¾ã¢ãã¡ã¼ã·ã§ã³ã使ãã·ã¼ã³ãå¤ããªããã¨ãè¦è¶ãã¦ããã¶ã¤ãã¼ãã¢ãã¡ã¼ã·ã§ã³ãä½æãã¦ãã®ã¾ã¾æ¬çªã«è¼ããä»çµã¿ããç¨æãã¾ããã
Komercoã§ã¯RxSwiftã§æ¸ãããå¦çãå¤ãã®ã§ãã®é¨åã«é¢ãã¦ã¯ã¨ã³ã¸ãã¢ã«ç¸è«ãã¤ã¤ããã¶ã¤ãã¼ãå®è£
ãã¦PRã§ã¬ãã¥ã¼ãããããã¨ã§ã¨ã³ã¸ãã¢ã®è² æ
ãæ¸ãããªãããã¶ã¤ã³è¦ç´ ãåãå
¥ãããã¨ãã§ãã¾ãã
AutoLayoutã使ã£ããã¶ã¤ã³èª¿æ´
å人çã«ããã¶ã¤ãã¼ããã£ãã»ããããã¨æãããã¶ã¤ã³èª¿æ´ã©ã³ãã³ã°1ä½ãã¯iOSã®AutoLayoutã§ããã
主ãªçç±ã¨ãã¦ã
- ãã©ã³ãå¨ãã«ããã¦ããã¶ã¤ã³ãã¼ã¿ã®ãã¼ã¸ã³ã¨Xcodeã§å ¥åããå¤ã¯åãã§ãè¦ãç®ã¯å¾®å¦ã«ç°ãªã
- ãæ°pxèª¿æ´ -> ãã«ã -> ç¢ºèª -> èª¿æ´ ...ãã§ãã«ãã«ããå¾ ã¡æéã¨ç¢ºèªã®ã³ãã¥ãã±ã¼ã·ã§ã³åæ°ãå¤ã
ãªã©ãããã¾ãã調æ´ã®ãã³ã«æ¯åãã«ãããã®ã¯å¤§å¤ã§ããããã AutoLayoutã¯æåã¨ã£ã¤ãã«ããã¨æãã¾ããããã¨ã³ã¸ãã¢ã¨ãã¢ãããã¤ã¤
- leading, trailingãªã©ã®ç¨èªã¨ãããã®ä½ç½®é¢ä¿ã®ææ¡
- Constraintsã«ããè¦ç´ éã®ã¤ãªãæ¹
ãªã©ãç解ããããã§ãç°¡åãªPRãåºãã¨ããããå°ããã¤æ
£ãã¦ããã¾ããã
ãã以éã¯è»½å¾®ãªãã¶ã¤ã³ä¿®æ£ã¯ãã¶ã¤ãã¼ãAssignããã¦èª¿æ´ããããã«ãã¦ãã¾ãã
ãããã«
Komercoã«ããããã¶ã¤ã³ã¨ã¨ã³ã¸ãã¢ãªã³ã°ãã¤ãªããåãçµã¿ã«ã¤ãã¦ãç´¹ä»ãã¾ãããä»ããæè¡ã使ã£ã¦å°ãªãã³ã¹ãã§éçºå¹çãä¸ããä»çµã¿ãç©æ¥µçã«åãå
¥ãã¦ãã¾ãã
ä½é¨è¨è¨ãUIãã¶ã¤ã³ã ãã§ãªãã©ããããã¦ã¼ã¶ã¼ããã«ãã°ãã価å¤ãå±ãããããããã®ä»çµã¿ããã¶ã¤ã³ããã®ããã¶ã¤ãã¼ã®è
ã®è¦ãã©ãããªã®ã§å¼ãç¶ãéçºã«ãåãçµãã§ããããã¨æãã¾ãã
ã§ã¯ã§ã¯ð