äžçŽãã©ãã¿ãŒéçºè
ã«ã¢ããã°ã¬ãŒããããã§ããïŒ
ä¿¡ããŠã¿ãã³ãŒããã¡ã¯ããªãŒã®å®åäžå¿è¬çŸ©ð¥
Kyoboæåº«2023äžåæã®ãã¹ãã»ã©ãŒèè
ãçŽæ¥æããè¬çŸ©
ã³ã³ãã¥ãŒã¿/ITéšé23äœ TOP30以å
å¯äžã®ã¢ããªéçºæžç±\
ãã©ãã¿ãŒã ãã§2022幎ã¹ãŒããŒã«ãŒããŒéæïŒ
å€§äŒæ¥ã§ãæ¢ãè¬çŸ©ïŒ ã¬ãã¥ãŒã蚌æããæé«ã®è¬çŸ©ãä¿èšŒããŸãïŒ
ðââïžåè¬åã®æ³šæäºé
- ãã®ã¬ãã¹ã³ã¯åã«ãé
ä¿¡ã¢ããªããäœãããã«äœãããã¬ãã¹ã³ã§ã¯ãããŸããã
- ã³ãŒããã¡ã¯ããªãŒ FlutteråçŽè¬çŸ©ã«æ¯ã¹ãŠé£æåºŠãéåžžã«é«ãã§ãïŒ
- ä»åã®ãããžã§ã¯ãã§ã¯ãå®éã®ãµãŒããŒé£åã®å®æãè²ãŠãããã«ãç§ãçŽæ¥è£œäœããNestJSããŒã¹ã®REST APIãµãŒããŒãæäŸããŸãã
åŠç¿å
容ð
1) Authentication(èªèšŒããžãã¯)
çŸä»£ã§æããã䜿ãããToken Authenticationã®äžã§ããRefresh TokenãšAccess Tokenã䜿ã£ãŠèªèšŒãé²ããã·ã¹ãã ãå匷ããŸãã
2) Pagination
Page ããŒã¹ã® Pagination ãš Cursor ããŒã¹ã® Pagination çè«ãåŠãã åŸãCursor Pagination ã OOP ã§å¹ççã«è§£ãæ¹æ³ãæ·±ãåŠã³ãŸãã
3) JsonSerializable
JsonSerializableã¯ãã¢ãã«ãäœæãããšãã«JSONããªããžã§ã¯ããšããŠã·ãªã¢ã«åããã³ãŒããæžãå¿
èŠããªãããã«ããŸãã
4) Retrofit
Retrofitã¯Flutterã®Code Generationã®äžã§æã䟿å©ãªããŒã«ã§ãREST APIãããã³ã°ãèªåçã«è¡ããJsonSerializableãšåŒåžãéåžžã«è¯ãããã±ãŒãžã§ãã
5) RiverpodãšCacheã®ç®¡ç
Riverpodã«ååšãããã¹ãŠã®Providerã®äœ¿ãæ¹ãåŠã³ãå®è·µã«é©çšããããšãã§ããŸãã
6) GoRouter
ã¢ããª/ãŠã§ãã§äœ¿çšãããã«ãŒãã£ã³ã°ã©ã€ãã©ãªã§ããGoRouterã¯ãDynamic LinkãDeep LinkãRedirectãRefreshã«ãŒã«ãªã©ã®äŸ¿å©ãªæ©èœãåºã«æäŸããŠããŸãã
7) Debounce and Throttle
DebounceãšThrottleã¯ããµãŒããŒã®éè² è·ãšã¢ããªã®æé©åãŸã§èããããšãã§ããéèŠãªæè¡ã§ãã
8) Swagger
ãµãŒããŒéçºè
ãããã³ããšã³ãéçºè
ãšã³ãã¥ãã±ãŒã·ã§ã³ããããã«æããã䜿çšãããããã¥ã¡ã³ããŒã·ã§ã³ããŒã«ã§ããSwaggerã䜿çšããŠãAPI仿§ãçè§£ããããã³ããšã³ãã³ãŒãã§æ¶åããæ¹æ³ãåŠã³ãŸãã
9) Optimistic Response
Optimistic Responseã¯ãè¯å®çãªå¿çãäºæž¬ããŠãã£ãã·ã¥ãæŽæ°ããæè¡ã§ãã
玹ä»ããŸãã
ãããžã§ã¯ãã¹ã¯ãªãŒã³ïŒ
#1 ã¹ãã©ãã·ã¥ã¹ã¯ãªãŒã³
æåã®ã¢ããªãå®è¡ãããšãã«å¿
èŠãªèªèšŒ/æ€èšŒããžãã¯ãšã«ãŒãã£ã³ã°ããžãã¯ãèšå®ããŸãã
#2 ãã°ã€ã³ããŒãž
ãã°ã€ã³ç»é¢ã§ãã
#3 ã¬ã¹ãã©ã³äžèЧããŒãž
ã¬ã¹ãã©ã³æ
å ±ãPaginationããããŒã ã¹ã¯ãªãŒã³ã§ãã
PaginationãšThrottleã«ã€ããŠåŠã³ãçŽæ¥å®è·µã«é©çšããŸãã
#4 ã¬ã¹ãã©ã³è©³çްããŒãž
ã¬ã¹ãã©ã³ã®è©³çްããŒãžã§æ³šæããé£ã¹ç©ãéžæã§ããäžã«ã¹ã¯ããŒã«ãããšã¬ã¹ãã©ã³ã®ã¬ãã¥ãŒã
é²èЧå¯èœã§ããã«ã¹ã¿ã ã¹ã¯ããŒã«ãã¥ãŒã䜿çšããŠãè€æ°ã®ã¹ã©ã€ããŒãªã¹ããæ¬çªã«é©çšããŸãã
#5ã«ãŒãããŒãž
éžæããé£ã¹ç©ã確èªã§ããã·ã§ããã³ã°ã«ãŒãã®ç»é¢ã§ãã
Optimistic ResponseãšDebounceã®æ©èœãåŠã³ãé©çšããŸãã
#6 ããŒããªã¹ãã¿ã
é£ã¹ç©ããªã¹ãã§é²èЧã§ããããŒãžã§ãã
Paginationäžè¬åãšé«åºŠãªãã£ãã·ã¥ç®¡çæ©èœãåŠã³ãŸãã
#7 ãªãŒããŒãªã¹ãã©ãã
泚æãç
§äŒã§ããã¿ãã§ãPaginationã®äžè¬åã詊ããŠãã ããã
#8 ãããã£ãŒã«ã¿ã
ãã°ã¢ãŠãæ©èœãæã€[ãããã¡ã€ã«]ã¿ãã
è¬çŸ©ã®äžèš ð
FlutterããªãªãŒã¹ãããåŸãæ°å€ãã®å€§èŠæš¡ã§å°ããªãããžã§ã¯ããçµéšããããšããããŸãããšã³ãžãã¢ãªã³ã°ã®çè§£ãšãããžã§ã¯ããåããç¡é§ãªã³ãŒããæžããŠããããšãããã«å£ããéèŠã§ãã
ä»åã®è¬çŸ©ã¯ãå®åçµéšãäžè¶³ããŠããFlutteréçºè
ãã³ãŒããæžãéã«åæ»ãªã³ã©ãã¬ãŒã·ã§ã³ãšã¡ã³ããã³ã¹ã®èгç¹ããã©ã®ãããªæ©ã¿ããã¹ãããåŠç¿ããããšãã§ããŸããå
æããŠãããããè¯ãã³ãŒããæžãããšãã§ãããå¿ã«çŽæ¥æããã®ã«éäžãããŸãããäžåºŠã«å®éã®ãããžã§ã¯ãã«é©çšããŠå匷ããŸãã
ãããªæ¹ã«ããããã§ããð
ä»Flutteråå¿è
ã®ããã¶ããåãé€ããç¶æ
ã§
äžæ®µéã®ç¥èã¬ãã«ã¢ããããããæ¹
ããçšåºŠFlutterããã°ã©ãã³ã°ã«ã€ããŠç¥ã£ãŠããŸããã
ãããããžã§ã¯ããå§ããã
åè¬åŸæãéããŸããð
æé«ã®ã³ãã¥ãã±ãŒã·ã§ã³ð§ðŒâð«
æ¯é±YouTubeã©ã€ããéããŠè³ªçå¿çãåããåŠçãšã³ãã¥ãã±ãŒã·ã§ã³ããŸãïŒ
YouTubeã®ã©ã€ãããã·ã¥éç¥ãåãããå Žåã¯ã以äžã®ã³ãŒããã¡ã¯ããªãŒYouTubeãã£ã³ãã«ã賌èªããŠãã ããïŒ
>ã³ãŒããã¡ã¯ããªãŒYouTubeãã£ã³ãã«ã·ã§ãŒãã«ãã
ã³ãŒããã¡ã¯ããªãŒå·çæ¬
Must Haveã³ãŒããã¡ã¯ããªãŒã®ãã©ãã¿ãŒããã°ã©ãã³ã°ããã¯ã¯ãç§ãé·ãéæè³ããŠçŽæ¥å·çããæ¬ã§ãïŒ
åçŽè¬çŸ©ãšããªããå
容ããããåçŽè¬çŸ©ã«ã¯ãªãFirebaseãåºåãªã©ã«ã€ããŠã®è¬çŸ©ããããŸãïŒ
EBookãå®ç©æžã奜ããªæ¹ã«ããããã§ãïŒ
æžç±ã¯æå ±æåº«ãYes24ãã¢ã©ãžã³ãªã©ã¡ãžã£ãŒæžåºã§ãäŒãã§ããŸãïŒ
äžã®ç»åãã¯ãªãã¯ããŠç§»åããŠãã ããïŒ
Q&A ð¬
Q.ã³ãŒããã¡ã¯ããªãŒ Flutter åå¿è
è¬çŸ©ãå¿
ãåè¬ããå¿
èŠããããŸããïŒ
ã³ãŒããã¡ã¯ããªãŒFlutteråçŽè¬çŸ©ã«æºããç¥èãããã°ã远å ã§åè¬ããå¿
èŠã¯ãããŸããããã³ãŒããã¡ã¯ããªãŒFlutteråçŽè¬çŸ©ãåè¬ãããšããä»®å®ã®ããšã§è£œäœãããè¬çŸ©ã§ãã®ã§ããã§ã«èª¬æããæŠå¿µã¯ç¹°ãè¿ã説æããŸããã
Q.é
ä¿¡ã¢ããªãå¶äœããè¬çŸ©ã§ããïŒ
é²è¡äžã®ãããžã§ã¯ãã®ã³ã³ã»ããã¯é
ä¿¡ã¢ããªãæ£ããã§ãããé
ä¿¡ã¢ããªã®UI/UXãæ©èœã®æµããšã¯å
šãé¢ä¿ã®ãªãè¬çŸ©ã§ããããªãã§ãã ããïŒ
Q.ãã®è¬çŸ©ãåè¬ããã°ã©ã®çšåºŠã¬ãã«ã®éçºè
ã«ãªãããšãã§ããŸããïŒ
äžèšã§èšãã°ãããã«å®åæå
¥ãå¯èœãªã¬ãã«ã«ãªããšæããŸãã
ãã£ãšã³ãŒããã¡ã¯ããªãŒã®è¬çŸ©ã¯ïŒ
ãã®ä»ã®äºé
âïž
ïŒ1ïŒå©ããŠåŠã¶ããšãã§ããä»ã®ãã£ã³ãã«ïŒ
ðã³ãŒããã¡ã¯ããªãŒYouTube
ð¥ã³ãŒããã¡ã¯ããªãŒDiscord
ð¬ã³ãŒããã¡ã¯ããªãŒã«ã«ãªãªãŒãã³ããŒã¯
(2) è¬çŸ©çšã«å
±æãããç»å
è¬çŸ©ã§ç§ãæäŸããŠããã€ã¡ãŒãžã¯ææã§çŽæ¥è³Œå
¥ããã€ã¡ãŒãžã§ããç§ã¯åµäœç©ãäœã£ãŠé
åžããæš©å©ã賌å
¥ããŸããããçããã¯æ±ºããŠä»äººãã€ã³ã¿ãŒãããã«ã€ã¡ãŒãžãé
åžããŠã¯ãããŸããïŒèäœæš©éåã§æ³çåé¡ãçºçããå¯èœæ§ããããããå匷ããçšé以å€ã«ç»åã䜿çšããªãã§ãã ããã
(3) 質åããæ¹æ³
ããã°ã©ãã³ã°ãåŠã³ãªããæ¬åœã«çŽ æ©ãå®åãå¢ããããšãã§ããã®ã¯ãæ£ããæ£ç¢ºãªè³ªåãããæ¹æ³ãèŠéãããããšã§ããããã°ã©ãã³ã°ã®æ§è³ªäžãã³ãŒãå
šäœãèŠãã®ã¯é£ããã§ããã ããåé¡ã«ãªããŠã£ãžã§ããã®ã³ãŒããäžžããšäžããåŸãããã¯ãã¡ã§ãïŒããããšãç§ã¯çããããã®ãé£ããã§ãã
質åããããšãã¯ãäžã®3段éã§ãããŸãšããŠãå±ãããã ããšãã¯ããã«æ©ãã³ãã¥ãã±ãŒã·ã§ã³ããŠåçã§ããŸãïŒ
1ïžâ£ç§ãèãããšãã«ã©ã®ããã«åäœããã¹ãã
2ïžâ£çŸåšã©ã®ããã«æ©èœããã
3ïžâ£æ£ç¢ºãªã³ãŒãã®äœçœ®ãšã©ããªåé¡ãçããã®ãïŒäŸãŸã§ããã°ðïŒ