CINXE.COM

내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 - Speaker Deck

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 - Speaker Deck</title> <link rel="preconnect" href="https://fonts.googleapis.com/"> <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin> <link rel="stylesheet" media="screen" href="https://d1eu30co0ohy4w.cloudfront.net/assets/application-501db7e03e864713ac7fbdd4ae3c5591765f51b140a8de0e98adfd2d065b13aa.css" /> <script src="https://d1eu30co0ohy4w.cloudfront.net/assets/application-bb883a8c431d6aaaad55.js"></script> <link rel="icon" type="image/png" href="https://d1eu30co0ohy4w.cloudfront.net/assets/favicon-bdd5839d46040a50edf189174e6f7aacc8abb3aaecd56a4711cf00d820883f47.png" /> <link rel="apple-touch-icon" type="image/png" href="https://d1eu30co0ohy4w.cloudfront.net/assets/favicon-bdd5839d46040a50edf189174e6f7aacc8abb3aaecd56a4711cf00d820883f47.png" /> <link rel="manifest" href="/manifest.json"> <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="M//pnoRnJF1FJDLTRs3JsLqo48wNuuMxFnK35jzSN3hUwxNhPlOoMW5kwsEb2IFJPQCPsEBIK8rFDveesNm0WA==" /> <link rel="stylesheet" media="screen" href="https://d1eu30co0ohy4w.cloudfront.net/assets/player-0b8a94428c659e1ac7e00f01233899ccfb27ea3bd2b6b59de4e1bc856c362af7.css" /> <script src="https://d1eu30co0ohy4w.cloudfront.net/assets/player-5149bb60884c0e415330.js"></script> <link rel="alternate" type="application/json+oembed" href="https://speakerdeck.com/oembed.json?url=https%3A%2F%2Fspeakerdeck.com%2Fsaryong%2Fmvvm-iyagi-droidknight-2018" title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018"> <meta property="og:url" content="https://speakerdeck.com/saryong/mvvm-iyagi-droidknight-2018"> <meta property="og:site_name" content="Speaker Deck"> <meta property="og:title" content="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018"> <meta property="og:description" name="description" content=""> <meta property="og:type" content="website" /> <meta property="og:author" content="Sa-ryong Kang"> <meta property="og:image" content="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_0.jpg?12321537"> <meta name="robots" content="max-image-preview:large"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@speakerdeck"> <meta name="twitter:creator" content="@speakerdeck"> <meta name="twitter:title" content="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018"> <meta name="twitter:description" content=""> <meta name="twitter:image:src" content="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_0.jpg?12321537"> <link rel="canonical" href="https://speakerdeck.com/saryong/mvvm-iyagi-droidknight-2018" /> <meta name="twitter:label1" value="Deck by" /> <meta name="twitter:data1" value="Sa-ryong Kang"> <meta name="stats-owner_id" content="97301" /> <meta name="stats-talk_id" content="440098" /> <meta name="stats-view_type" content="talk" /> </head> <body class="sd-app"> <div id="promo" class="promo d-flex alert alert-warning"> <a class="d-block flex-grow-1 text-center text-dark h4 mb-0" href="/pro?utm_campaign=option2&amp;utm_medium=web&amp;utm_source=promo_banner"> Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥 </a> <script> document.addEventListener("DOMContentLoaded", (event) => { gtag('event', 'promo_view', { 'banner': 'option2' }); }); </script> <button type="button" id="promo-dismiss" class="btn-close align-self-center" aria-label="Close"></button> </div> <div class="sd-menu d-md-none"> <div class="container sd-menu-fixed-container"> <div class="sd-brand"> <a class="sd-brand-logo" href="/"> <img alt="Speaker Deck" width="32" height="20" src="https://d1eu30co0ohy4w.cloudfront.net/assets/mark-f4be6df1e05965cac9f98e664a6c35f5ffdd0207385d07464a9214d6cdf76082.svg" /> <span class="d-none d-md-inline">Speaker Deck</span> </a> </div> <nav class="sd-fixed-nav" aria-label="Primary"> <div class="sd-nav-main js-toggle-container"> <ul class="sd-nav-fixed-group nav toggle-flex-when-off"> <li class="sd-nav-item nav-item d-none d-md-block"> <a class="sd-nav-link nav-link" href="/features"> Features </a> </li> <li class="sd-nav-item nav-item d-none d-md-block"> <a class="sd-nav-link nav-link" href="/pro"> <span class="d-none d-md-inline">Speaker Deck</span> <div class="badge badge-pro-prominent">PRO</div> </a> </li> <li class="sd-nav-item nav-item"> <a class="sd-nav-link nav-link" href="/signin"> Sign in </a> </li> <li class="sd-nav-item nav-item"> <a class="btn btn-primary" href="/signup"> Sign up for free </a> </li> <li class="sd-nav-item d-block d-md-none"> <button class="btn btn-link me-2 js-toggle-trigger" aria-label="Toggle Search"> <svg class="icon icon-search "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-search"></use></svg> </button> </li> <li class="sd-nav-item nav-item d-none d-md-block"> <form action="https://www.google.com/cse" id="cse-search-box" class="row"> <input type="hidden" name="cx" value="010150859881542981030:hqhxyxpwtc4"> <input type="hidden" name="ie" value="UTF-8"> <label for="q" class="visually-hidden">Search</label> <div class="col"><input type="text" name="q" id="q" value="" placeholder="Search..." class="form-control search-input w-auto"></div> <div class="col"><input type="submit" name="sa" value="Search" class="btn btn-outline-primary d-inline-block d-md-none d-lg-inline-block"></div> </form> </li> </ul> <ul class="sd-nav-fixed-group nav toggle-flex-when-on"> <li class="sd-nav-item"> <form action="https://www.google.com/cse" id="cse-search-box" class="row"> <input type="hidden" name="cx" value="010150859881542981030:hqhxyxpwtc4"> <input type="hidden" name="ie" value="UTF-8"> <label for="q" class="visually-hidden">Search</label> <div class="col"><input type="text" name="q" id="q" value="" placeholder="Search..." class="form-control search-input w-auto"></div> <div class="col"><input type="submit" name="sa" value="Search" class="btn btn-outline-primary d-inline-block d-md-none d-lg-inline-block"></div> </form> </li> <li class="sd-nav-item pe-2"> <button class="btn btn-link js-toggle-trigger"> <svg class="icon icon-x "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-x"></use></svg> </button> </li> </ul> </div> </nav> </div> </div> <div class="sd-main"> <div class="deck deck-with-banner"> <div class="deck-background" style="background-image: url('https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/preview_slide_0.jpg?12321537')"></div> <div class="deck-header d-none d-md-block js-toggle-container"> <div class="container d-flex align-items-center w-100"> <div class="deck-header-logo py-3 me-5"> <a class="sd-brand-logo" href="/"> <img alt="Speaker Deck" width="32" height="21" src="https://d1eu30co0ohy4w.cloudfront.net/assets/mark-white-8d908558fe78e8efc8118c6fe9b9b1a9846b182c503bdc6902f97df4ddc9f3af.svg" /> </a> </div> <div class="p-3 text-center toggle-block-when-off flex-fill"> <h4 class="deck-header-title text-white text-truncate"> 내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM ... </h4> </div> <div class="d-flex justify-content-end align-items-center ms-auto"> <div class="deck-header-user-nav toggle-block-when-on"> <form action="https://www.google.com/cse" id="cse-search-box" class="row"> <input type="hidden" name="cx" value="010150859881542981030:hqhxyxpwtc4"> <input type="hidden" name="ie" value="UTF-8"> <label for="q" class="visually-hidden">Search</label> <div class="col"><input type="text" name="q" id="q" value="" placeholder="Search..." class="form-control search-input w-auto"></div> <div class="col"><input type="submit" name="sa" value="Search" class="btn btn-outline-primary d-inline-block d-md-none d-lg-inline-block"></div> </form> </div> <div class="deck-header-user-nav toggle-block-when-on"> <button class="btn btn-link me-2 js-toggle-trigger text-white"> <svg class="icon icon-x "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-x"></use></svg> </button> </div> <div class="deck-header-user-nav toggle-block-when-off"> <button class="btn btn-link me-2 js-toggle-trigger text-white" aria-label="Toggle Search"> <svg class="icon icon-search "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-search"></use></svg> </button> </div> <div class="deck-header-user-nav flex-grow-0 dropdown py-3"> </div> </div> </div> </div> <div class="deck-embed js-deck-embed" style="aspect-ratio:1024/724;" data-ratio="1.4143646408839778" data-state="processed"> <div class="speakerdeck-embed" data-title="false" data-skip-resize="true" data-id="a171429260e6490499d5a35f264c9d41" data-name="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018" data-ratio="1.4143646408839778" data-host="speakerdeck.com"></div> </div> <div class="deck-meta"> <div class="container"> <div class="row align-items-center justify-content-between"> <div class="col-md-auto col-12 py-3"> <div class="row align-items-center justify-content-md-start"> <a class="d-flex align-items-center font-weight-bold text-white col-auto" href="/saryong"> <span class="me-2"> <img width="47" height="47" class="avatar " loading="eager" alt="" src="https://secure.gravatar.com/avatar/1ff3242c5f6acd42dcccecdbef78961f?s=47" /> </span> <span> Sa-ryong Kang </span> </a> <div class="col-auto deck-date"> April 21, 2018 </div> <div class="col-auto d-none d-md-block"> </div> </div> </div> <div class="col-md-auto col-12 py-md-3 pb-3"> <div class="row justify-content-between justify-content-md-start gap-2 gap-md-0"> <div class="col-auto me-auto me-md-0 align-self-center"> <a class="text-white font-weight-bold" href="/c/programming"> <svg class="icon icon-folder "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-folder"></use></svg> Programming </a> </div> <div class="row col-auto text-white font-weight-bold"> <div class="col-auto pe-0 pe-lg-2 align-self-center"><div class="js-bookmark bookmark animated" data-talk-id="440098"> </div> </div> <div class="col-auto pe-0 pe-lg-2 align-self-center"><div class="js-stargazer stargazer animated" data-talk-id="440098"> <a class="font-weight-bold" title="Star 내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018" href="/signin?return_to=%2Fsaryong%2Fmvvm-iyagi-droidknight-2018"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 8 </a></div> </div> <div class="col-auto pe-0 pe-lg-2 align-self-center" title="4,274 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 4.3k</div> <div class="col-auto pe-0 pe-lg-2 align-self-center"><a title="Download PDF" class="text-white" href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/Droid_Knights_2018_-_%EB%82%B4%EA%B0%80_%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C_%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80_%EB%90%98%EC%97%88%EC%9D%84_%EB%95%8C_%EC%95%84%EB%AC%B4%EB%8F%84_%EC%95%8C%EB%A0%A4%EC%A3%BC%EC%A7%80_%EC%95%8A%EC%95%98%EB%8D%98_%EA%B2%83%EB%93%A4.pdf"><svg class="icon icon-download "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-download"></use></svg></a></div> </div> </div> </div> </div> </div> </div> </div> <div class="container py-md-5"> <h1 class="mb-4 text-break">내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018</h1> <div class="row align-items-center td-none"> <div class="col-md-auto col-12 me-md-auto mb-4 mb-md-0"> <div class="row align-items-center"> <div class="col-auto"> <img width="128" height="128" class="avatar avatar-lg" loading="eager" alt="" src="https://secure.gravatar.com/avatar/1ff3242c5f6acd42dcccecdbef78961f?s=128" /> </div> <div class="col-auto ps-0"> <h2 class="m-0 h4"> <a class="text-dark" href="/saryong">Sa-ryong Kang</a> </h2> <div class="text-muted"> April 21, 2018 </div> </div> </div> </div> <div class="col-md-auto col-12"> <div class="btn-group btn-group-flex d-flex" role="group"> <a href="https://twitter.com/intent/tweet?url=https://speakerdeck.com/saryong/mvvm-iyagi-droidknight-2018&text=%EB%82%B4%EA%B0%80+%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C+%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80+%EB%90%98%EC%97%88%EC%9D%84+%EB%95%8C+%EC%95%84%EB%AC%B4%EB%8F%84+%EC%95%8C%EB%A0%A4%EC%A3%BC%EC%A7%80+%EC%95%8A%EC%9D%80+%EA%B2%83%EB%93%A4%28%2BMVP+%2F+MVVM+%EC%9D%B4%EC%95%BC%EA%B8%B0%29+-+DroidKnight+2018" class="btn btn-outline-primary w-100"> <svg class="icon icon-twitter "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-twitter"></use></svg> Tweet </a> <button class="facebook-share btn btn-outline-primary w-100"> <svg class="icon icon-facebook "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-facebook"></use></svg> Share </button> </div> </div> </div> </div> <div class="bg-lightest border-top"> <div class="container py-md-4 py-3"> <div class="row mb-4 align-items-center"> <div class="col-12 col-lg-9 mb-3 mb-lg-0"> <h2 class="m-0">More Decks by Sa-ryong Kang</h2> </div> <div class="col-12 col-lg-3 text-lg-end"> <a class="btn btn-outline-primary btn-break" href="/saryong"> See All by Sa-ryong Kang <svg class="icon icon-chevron-right "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-chevron-right"></use></svg> </a> </div> </div> <div class="row"> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="2454493d7cd84e12801aa1165e89fc6a" data-slide-count="41" data-cover-image="https://files.speakerdeck.com/presentations/2454493d7cd84e12801aa1165e89fc6a/preview_slide_0.jpg?27280528"> <a class="deck-preview-link" href="/saryong/unofficial-guide-to-app-architecture-guide-vol-2-droidkaigi-2023" title="(Unofficial) Guide to App Architecture Guide Vol. 2 - DroidKaigi 2023"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/2454493d7cd84e12801aa1165e89fc6a/preview_slide_0.jpg?27280528');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/2454493d7cd84e12801aa1165e89fc6a/preview_slide_0.jpg?27280528');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> (Unofficial) Guide to App Architecture Guide Vol. 2 - DroidKaigi 2023 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/saryong" aria-label="Sa-ryong Kang profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/1ff3242c5f6acd42dcccecdbef78961f?s=24" /> saryong </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="156 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 160</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="581bebf3175f4d3b92cfeae7bd87c294" data-slide-count="45" data-cover-image="https://files.speakerdeck.com/presentations/581bebf3175f4d3b92cfeae7bd87c294/preview_slide_0.jpg?22918190"> <a class="deck-preview-link" href="/saryong/en-unofficial-guide-to-app-architecture-guide-droidkaigi-2022" title="[EN] (Unofficial) Guide to App Architecture Guide Vol 1 - DroidKaigi 2022"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/581bebf3175f4d3b92cfeae7bd87c294/preview_slide_0.jpg?22918190');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/581bebf3175f4d3b92cfeae7bd87c294/preview_slide_0.jpg?22918190');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> [EN] (Unofficial) Guide to App Architecture Guide Vol 1 - DroidKaigi 2022 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/saryong" aria-label="Sa-ryong Kang profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/1ff3242c5f6acd42dcccecdbef78961f?s=24" /> saryong </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="449 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 450</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="074563df832e48bf8eedcf889153473c" data-slide-count="46" data-cover-image="https://files.speakerdeck.com/presentations/074563df832e48bf8eedcf889153473c/preview_slide_0.jpg?22918144"> <a class="deck-preview-link" href="/saryong/ja-unofficial-guide-to-app-architecture-guide-vol-1" title="[JA] (Unofficial) Guide to App Architecture Guide (Vol 1) - DroidKaigi 2022"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/074563df832e48bf8eedcf889153473c/preview_slide_0.jpg?22918144');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/074563df832e48bf8eedcf889153473c/preview_slide_0.jpg?22918144');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> [JA] (Unofficial) Guide to App Architecture Guide (Vol 1) - DroidKaigi 2022 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/saryong" aria-label="Sa-ryong Kang profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/1ff3242c5f6acd42dcccecdbef78961f?s=24" /> saryong </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 2 </div> <div class="px-1 py-3"> <span title="1,062 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 1.1k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="92f2fdbc928c4e7bac763082ac7da59d" data-slide-count="40" data-cover-image="https://files.speakerdeck.com/presentations/92f2fdbc928c4e7bac763082ac7da59d/preview_slide_0.jpg?19120106"> <a class="deck-preview-link" href="/saryong/android-testing-best-practices-ko" title="Android Testing Best Practices [ko]"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/92f2fdbc928c4e7bac763082ac7da59d/preview_slide_0.jpg?19120106');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/92f2fdbc928c4e7bac763082ac7da59d/preview_slide_0.jpg?19120106');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Android Testing Best Practices [ko] </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/saryong" aria-label="Sa-ryong Kang profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/1ff3242c5f6acd42dcccecdbef78961f?s=24" /> saryong </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="181 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 180</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="ae46cd248f9e4eae9b43041da4015f68" data-slide-count="55" data-cover-image="https://files.speakerdeck.com/presentations/ae46cd248f9e4eae9b43041da4015f68/preview_slide_0.jpg?18464396"> <a class="deck-preview-link" href="/saryong/o-2021" title="Jetpack Compose: Beyond I/O 2021"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/ae46cd248f9e4eae9b43041da4015f68/preview_slide_0.jpg?18464396');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/ae46cd248f9e4eae9b43041da4015f68/preview_slide_0.jpg?18464396');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Jetpack Compose: Beyond I/O 2021 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/saryong" aria-label="Sa-ryong Kang profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/1ff3242c5f6acd42dcccecdbef78961f?s=24" /> saryong </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="132 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 130</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="e3e8b0da4cab46ffbb2beb5a686dc77a" data-slide-count="32" data-cover-image="https://files.speakerdeck.com/presentations/e3e8b0da4cab46ffbb2beb5a686dc77a/preview_slide_0.jpg?17209811"> <a class="deck-preview-link" href="/saryong/googleyi-gaebalmunhwawa-peuroseseu-2-feedback-and-code-review" title="Google의 개발문화와 프로세스(2) - Feedback &amp; Code Review"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/e3e8b0da4cab46ffbb2beb5a686dc77a/preview_slide_0.jpg?17209811');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/e3e8b0da4cab46ffbb2beb5a686dc77a/preview_slide_0.jpg?17209811');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Google의 개발문화와 프로세스(2) - Feedback &amp; Code Review </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/saryong" aria-label="Sa-ryong Kang profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/1ff3242c5f6acd42dcccecdbef78961f?s=24" /> saryong </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="505 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 510</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="d7a99f7266b0433eb05441a0028a0ce3" data-slide-count="54" data-cover-image="https://files.speakerdeck.com/presentations/d7a99f7266b0433eb05441a0028a0ce3/preview_slide_0.jpg?16744299"> <a class="deck-preview-link" href="/saryong/testing" title="Google의 개발문화와 프로세스(1): Scale &amp; Efficiency / Testing"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/d7a99f7266b0433eb05441a0028a0ce3/preview_slide_0.jpg?16744299');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/d7a99f7266b0433eb05441a0028a0ce3/preview_slide_0.jpg?16744299');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Google의 개발문화와 프로세스(1): Scale &amp; Efficiency / Testing </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/saryong" aria-label="Sa-ryong Kang profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/1ff3242c5f6acd42dcccecdbef78961f?s=24" /> saryong </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 2 </div> <div class="px-1 py-3"> <span title="418 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 420</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="c1118448b9864b448b37b47a86a1849f" data-slide-count="53" data-cover-image="https://files.speakerdeck.com/presentations/c1118448b9864b448b37b47a86a1849f/preview_slide_0.jpg?15471860"> <a class="deck-preview-link" href="/saryong/handdae-gaebaleul-jeobeossdeon-cangeobja-culsin-enjinieoreul-gugeulro-indohaejun-eoddeon-bangbeobron" title="한때 개발을 접었던 창업자 출신 엔지니어를 구글로 인도해준 어떤 방법론"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/c1118448b9864b448b37b47a86a1849f/preview_slide_0.jpg?15471860');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/c1118448b9864b448b37b47a86a1849f/preview_slide_0.jpg?15471860');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> 한때 개발을 접었던 창업자 출신 엔지니어를 구글로 인도해준 어떤 방법론 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/saryong" aria-label="Sa-ryong Kang profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/1ff3242c5f6acd42dcccecdbef78961f?s=24" /> saryong </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 1 </div> <div class="px-1 py-3"> <span title="390 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 390</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="4d4a62027b074e5aa672244afec7927c" data-slide-count="40" data-cover-image="https://files.speakerdeck.com/presentations/4d4a62027b074e5aa672244afec7927c/preview_slide_0.jpg?12877359"> <a class="deck-preview-link" href="/saryong/whats-new-in-android-architecture-components-korean" title="What&#39;s new in Android Architecture Components (Korean)"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/4d4a62027b074e5aa672244afec7927c/preview_slide_0.jpg?12877359');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/4d4a62027b074e5aa672244afec7927c/preview_slide_0.jpg?12877359');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> What&#39;s new in Android Architecture Components (Korean) </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/saryong" aria-label="Sa-ryong Kang profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/1ff3242c5f6acd42dcccecdbef78961f?s=24" /> saryong </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="99 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 99</span> </div> </div> </div> </div> </div> <div class="row mb-4 align-items-center"> <div class="col-12 col-lg-9 mb-3 mb-lg-0"> <h2 class="m-0">Other Decks in Programming</h2> </div> <div class="col-12 col-lg-3 text-lg-end"> <a class="btn btn-outline-primary" href="/c/programming"> See All in Programming <svg class="icon icon-chevron-right "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-chevron-right"></use></svg> </a> </div> </div> <div class="row"> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="329089dbdf094120a9a9d30cbde94cc4" data-slide-count="66" data-cover-image="https://files.speakerdeck.com/presentations/329089dbdf094120a9a9d30cbde94cc4/preview_slide_0.jpg?32795997"> <a class="deck-preview-link" href="/deeprain/wu-liu-sisutemuniokerurihuakutaringutoakitekutiyanozai-gou-zhu-yi-cun-guan-xi-tomoziyurufen-ge-nozhong-yao-xing" title="物流システムにおけるリファクタリングとアーキテクチャの再構築 〜依存関係とモジュール分割の重要性〜"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/329089dbdf094120a9a9d30cbde94cc4/preview_slide_0.jpg?32795997');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/329089dbdf094120a9a9d30cbde94cc4/preview_slide_0.jpg?32795997');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> 物流システムにおけるリファクタリングとアーキテクチャの再構築 〜依存関係とモジュール分割の重要性〜 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/deeprain" aria-label="deep-rain profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/df7ce794b9c2649dbe1bf22a06a4683c?s=24" /> deeprain </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 1 </div> <div class="px-1 py-3"> <span title="221 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 220</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="17a5915f403942b1a857e8bdea4ea4c2" data-slide-count="22" data-cover-image="https://files.speakerdeck.com/presentations/17a5915f403942b1a857e8bdea4ea4c2/preview_slide_0.jpg?32639100"> <a class="deck-preview-link" href="/marokanatani/as-xing-asasiyon-woshu-kuqian-nidekirukoto" title="as(型アサーション)を書く前にできること"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/17a5915f403942b1a857e8bdea4ea4c2/preview_slide_0.jpg?32639100');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/17a5915f403942b1a857e8bdea4ea4c2/preview_slide_0.jpg?32639100');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> as(型アサーション)を書く前にできること </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/marokanatani" aria-label="maroKanatani profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://speakerdeck.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBb2ZwIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--3b37f30a2cdde7da25084ce5663bfbf7aeb8312e/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lKYW5CbFp3WTZCa1ZVT2hOeVpYTnBlbVZmZEc5ZlptbHNiRnNIYVIxcEhRPT0iLCJleHAiOm51bGwsInB1ciI6InZhcmlhdGlvbiJ9fQ==--dc834093e63ea87641c8c425cda1102df6185639/b1553d67f9.jpeg" /> marokanatani </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 10 </div> <div class="px-1 py-3"> <span title="2,938 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 2.9k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="f31d70c0e7214515a0b852c55e4fb77c" data-slide-count="56" data-cover-image="https://files.speakerdeck.com/presentations/f31d70c0e7214515a0b852c55e4fb77c/preview_slide_0.jpg?32783098"> <a class="deck-preview-link" href="/ivargrimstad/jakarta-ee-meets-ai-984012df-8835-43ff-8082-3801cef3bb77" title="Jakarta EE meets AI"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/f31d70c0e7214515a0b852c55e4fb77c/preview_slide_0.jpg?32783098');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/f31d70c0e7214515a0b852c55e4fb77c/preview_slide_0.jpg?32783098');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Jakarta EE meets AI </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/ivargrimstad" aria-label="ivargrimstad profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/b489790e1a844284d7cd1fa2cd6e021f?s=24" /> ivargrimstad </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="252 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 250</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="a15099f5f92a40e4a66c8225d29dfc03" data-slide-count="10" data-cover-image="https://files.speakerdeck.com/presentations/a15099f5f92a40e4a66c8225d29dfc03/preview_slide_0.jpg?32831742"> <a class="deck-preview-link" href="/mitsuharu/2024-11-29-make-ios-app-without-mac" title="macOS なしで iOS アプリを開発する(※ただし xxx に限る)"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/a15099f5f92a40e4a66c8225d29dfc03/preview_slide_0.jpg?32831742');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/a15099f5f92a40e4a66c8225d29dfc03/preview_slide_0.jpg?32831742');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> macOS なしで iOS アプリを開発する(※ただし xxx に限る) </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/mitsuharu" aria-label="Mitsuharu Emoto profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/5d95a75ed92ce3e355be54b5bb2c2ca0?s=24" /> mitsuharu </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 1 </div> <div class="px-1 py-3"> <span title="137 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 140</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="d6e6ab3589ca457db93727ea8691d099" data-slide-count="82" data-cover-image="https://files.speakerdeck.com/presentations/d6e6ab3589ca457db93727ea8691d099/preview_slide_0.jpg?32623144"> <a class="deck-preview-link" href="/skydoves/kr-open-source-ecosystem" title="[KR] Open-Source Ecosystems"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/d6e6ab3589ca457db93727ea8691d099/preview_slide_0.jpg?32623144');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/d6e6ab3589ca457db93727ea8691d099/preview_slide_0.jpg?32623144');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> [KR] Open-Source Ecosystems </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/skydoves" aria-label="Jaewoong profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://speakerdeck.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBeDhLQWc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--9da1d5bf73705a8b66da91a35fdd5fa8fcba18dc/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RTNKbGMybDZaVjkwYjE5bWFXeHNXd2RwSFdrZCIsImV4cCI6bnVsbCwicHVyIjoidmFyaWF0aW9uIn19--4ad392f1bbc219b5ee43c69f392557817650c021/profile-circle.png" /> skydoves </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="105 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 110</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="4be15f86a6f34ef496d2271f8c705724" data-slide-count="20" data-cover-image="https://files.speakerdeck.com/presentations/4be15f86a6f34ef496d2271f8c705724/preview_slide_0.jpg?32736704"> <a class="deck-preview-link" href="/yosuke_furukawa/welcome-jsconf-dot-jp-2024" title="Welcome JSConf.jp 2024"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/4be15f86a6f34ef496d2271f8c705724/preview_slide_0.jpg?32736704');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/4be15f86a6f34ef496d2271f8c705724/preview_slide_0.jpg?32736704');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Welcome JSConf.jp 2024 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/yosuke_furukawa" aria-label="Yosuke Furukawa profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/d76231a2114896dfcc7b79ac69558b79?s=24" /> yosuke_furukawa </a> <span class="ms-1"> <div class="badge badge-pro "><a href="/pro">PRO</a></div> </span> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="2,741 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 2.7k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="fdbd1b9cfdce4055a0f92140ba5844c8" data-slide-count="41" data-cover-image="https://files.speakerdeck.com/presentations/fdbd1b9cfdce4055a0f92140ba5844c8/preview_slide_0.jpg?32690811"> <a class="deck-preview-link" href="/javiergs/csc509-lecture-13" title="CSC509 Lecture 13"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/fdbd1b9cfdce4055a0f92140ba5844c8/preview_slide_0.jpg?32690811');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/fdbd1b9cfdce4055a0f92140ba5844c8/preview_slide_0.jpg?32690811');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> CSC509 Lecture 13 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/javiergs" aria-label="Javier Gonzalez-Sanchez profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/b546a9b97d993392e4b22b74b99b91fe?s=24" /> javiergs </a> <span class="ms-1"> <div class="badge badge-pro "><a href="/pro">PRO</a></div> </span> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="121 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 120</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="982ef568e9134d82bad89ea6b5c4470b" data-slide-count="115" data-cover-image="https://files.speakerdeck.com/presentations/982ef568e9134d82bad89ea6b5c4470b/preview_slide_0.jpg?32809496"> <a class="deck-preview-link" href="/takehaya/ebpf-deep-dive-architecture-and-safety-mechanisms" title="eBPF Deep Dive: Architecture and Safety Mechanisms"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/982ef568e9134d82bad89ea6b5c4470b/preview_slide_0.jpg?32809496');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/982ef568e9134d82bad89ea6b5c4470b/preview_slide_0.jpg?32809496');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> eBPF Deep Dive: Architecture and Safety Mechanisms </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/takehaya" aria-label="Takeru Hayasaka profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/8e1e170fce92e2300b3bb1780326dc9a?s=24" /> takehaya </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 12 </div> <div class="px-1 py-3"> <span title="1,068 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 1.1k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="1b1726b29d924ad49910d38cc76591ae" data-slide-count="36" data-cover-image="https://files.speakerdeck.com/presentations/1b1726b29d924ad49910d38cc76591ae/preview_slide_0.jpg?32714522"> <a class="deck-preview-link" href="/hollycummins/leverage-llms-in-java-with-langchain4j-and-quarkus" title="Leverage LLMs in Java with LangChain4j and Quarkus"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/1b1726b29d924ad49910d38cc76591ae/preview_slide_0.jpg?32714522');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/1b1726b29d924ad49910d38cc76591ae/preview_slide_0.jpg?32714522');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Leverage LLMs in Java with LangChain4j and Quarkus </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/hollycummins" aria-label="Holly Cummins profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/4298a3f5e864fa84f25b90f48288c0d4?s=24" /> hollycummins </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="103 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 100</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="30db10e1521e4f418a1c7ae6e21d9cc5" data-slide-count="23" data-cover-image="https://files.speakerdeck.com/presentations/30db10e1521e4f418a1c7ae6e21d9cc5/preview_slide_0.jpg?32671424"> <a class="deck-preview-link" href="/0si43/zui-xin-tcakiyatutiatupu" title="最新TCAキャッチアップ"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/30db10e1521e4f418a1c7ae6e21d9cc5/preview_slide_0.jpg?32671424');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/30db10e1521e4f418a1c7ae6e21d9cc5/preview_slide_0.jpg?32671424');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> 最新TCAキャッチアップ </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/0si43" aria-label="Shetommy profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://speakerdeck.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaDluIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--fc83b85ebccbec0c142a40dc967c0518ddd16897/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lKYW5CbFp3WTZCa1ZVT2hOeVpYTnBlbVZmZEc5ZlptbHNiRnNIYVIxcEhRPT0iLCJleHAiOm51bGwsInB1ciI6InZhcmlhdGlvbiJ9fQ==--dc834093e63ea87641c8c425cda1102df6185639/coLAQngY_400x400.jpeg" /> 0si43 </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="245 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 250</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="dbdafe6a391446c98f3ff010a32bae55" data-slide-count="52" data-cover-image="https://files.speakerdeck.com/presentations/dbdafe6a391446c98f3ff010a32bae55/preview_slide_0.jpg?32582981"> <a class="deck-preview-link" href="/ivargrimstad/jakarta-ee-meets-ai-86fd2d84-9156-4165-acda-7a9554d59678" title="Jakarta EE meets AI"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/dbdafe6a391446c98f3ff010a32bae55/preview_slide_0.jpg?32582981');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/dbdafe6a391446c98f3ff010a32bae55/preview_slide_0.jpg?32582981');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Jakarta EE meets AI </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/ivargrimstad" aria-label="ivargrimstad profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/b489790e1a844284d7cd1fa2cd6e021f?s=24" /> ivargrimstad </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 0 </div> <div class="px-1 py-3"> <span title="1,209 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 1.2k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="f7cd8398c4e746709acdb702518cf375" data-slide-count="13" data-cover-image="https://files.speakerdeck.com/presentations/f7cd8398c4e746709acdb702518cf375/preview_slide_0.jpg?32790594"> <a class="deck-preview-link" href="/tmhirai/cognitogada-xing-atupudeto-managed-logintopasuwadoresuroguinwo-shi-ji-nishi-tutemita-at-simusokuradio-special-day1" title="Cognitoが大型アップデート! Managed Loginとパスワードレスログインを 実際に使ってみた@しむそくRadio Special Day1"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/f7cd8398c4e746709acdb702518cf375/preview_slide_0.jpg?32790594');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/f7cd8398c4e746709acdb702518cf375/preview_slide_0.jpg?32790594');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Cognitoが大型アップデート! Managed Loginとパスワードレスログインを 実際に使ってみた@しむそくRadio Special Day1 </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/tmhirai" aria-label="Tomoki Hirai profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/9ed047fefa062ddcfa8c5451239e6714?s=24" /> tmhirai </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 2 </div> <div class="px-1 py-3"> <span title="112 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 110</span> </div> </div> </div> </div> </div> <div class="row mb-4 align-items-center"> <div class="col-12 col-lg-9 mb-3 mb-lg-0"> <h2 class="m-0">Featured</h2> </div> <div class="col-12 col-lg-3 text-lg-end"> <a class="btn btn-outline-primary" href="/p/featured"> See All Featured <svg class="icon icon-chevron-right "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-chevron-right"></use></svg> </a> </div> </div> <div class="row"> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="d85e14f914754d4da76fb9682fe24bd4" data-slide-count="78" data-cover-image="https://files.speakerdeck.com/presentations/d85e14f914754d4da76fb9682fe24bd4/preview_slide_0.jpg?14177923"> <a class="deck-preview-link" href="/eitanlees/visualization" title="Visualization"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/d85e14f914754d4da76fb9682fe24bd4/preview_slide_0.jpg?14177923');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/d85e14f914754d4da76fb9682fe24bd4/preview_slide_0.jpg?14177923');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Visualization </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/eitanlees" aria-label="Eitan Lees profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/170b760e0147792d0140e59ec78e9893?s=24" /> eitanlees </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 145 </div> <div class="px-1 py-3"> <span title="15,009 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 15k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="64c73790385101315ae85eae0478e863" data-slide-count="159" data-cover-image="https://files.speakerdeck.com/presentations/64c73790385101315ae85eae0478e863/preview_slide_0.jpg?6544775"> <a class="deck-preview-link" href="/lara/designing-for-performance" title="Designing for Performance"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/64c73790385101315ae85eae0478e863/preview_slide_0.jpg?6544775');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/64c73790385101315ae85eae0478e863/preview_slide_0.jpg?6544775');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Designing for Performance </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/lara" aria-label="Lara Hogan profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/245cee81a9c424266e5e401d844ea881?s=24" /> lara </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 604 </div> <div class="px-1 py-3"> <span title="68,047 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 68k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="628fffa383884513b4ba01a61d82eee8" data-slide-count="395" data-cover-image="https://files.speakerdeck.com/presentations/628fffa383884513b4ba01a61d82eee8/preview_slide_0.jpg?7358869"> <a class="deck-preview-link" href="/smashingmag/responsive-adventures-dirty-tricks-from-the-dark-corners-of-front-end" title="Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/628fffa383884513b4ba01a61d82eee8/preview_slide_0.jpg?7358869');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/628fffa383884513b4ba01a61d82eee8/preview_slide_0.jpg?7358869');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/smashingmag" aria-label="Vitaly Friedman profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/b3d6434763caa0ef5dc4b792662c49f7?s=24" /> smashingmag </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 250 </div> <div class="px-1 py-3"> <span title="20,602 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 21k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="4f59246535ca6900210046a4" data-slide-count="529" data-cover-image="https://files.speakerdeck.com/presentations/4f59246535ca6900210046a4/preview_slide_0.jpg?72331"> <a class="deck-preview-link" href="/malarkey/fashionably-flexible-responsive-web-design-full-day-workshop-1" title="Fashionably flexible responsive web design (full day workshop)"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/4f59246535ca6900210046a4/preview_slide_0.jpg?72331');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/4f59246535ca6900210046a4/preview_slide_0.jpg?72331');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Fashionably flexible responsive web design (full day workshop) </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/malarkey" aria-label="Andy Clarke profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/433acaea1012b25d97ae66da9b998dad?s=24" /> malarkey </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 405 </div> <div class="px-1 py-3"> <span title="65,461 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 65k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="4fb3b252561c880022026800" data-slide-count="102" data-cover-image="https://files.speakerdeck.com/presentations/4fb3b252561c880022026800/preview_slide_0.jpg?379522"> <a class="deck-preview-link" href="/kneath/a-better-future-with-kss" title="A better future with KSS"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/4fb3b252561c880022026800/preview_slide_0.jpg?379522');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/4fb3b252561c880022026800/preview_slide_0.jpg?379522');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> A better future with KSS </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/kneath" aria-label="Kyle Neath profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/5f2da528927a2ec9ba4fec2069cbc958?s=24" /> kneath </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 238 </div> <div class="px-1 py-3"> <span title="16,871 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 17k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="88bcb172b3e14d68b535681cbdfdf650" data-slide-count="48" data-cover-image="https://files.speakerdeck.com/presentations/88bcb172b3e14d68b535681cbdfdf650/preview_slide_0.jpg?15885956"> <a class="deck-preview-link" href="/morganepeng/design-and-strategy-how-to-deal-with-people-who-dont-get-design" title="Design and Strategy: How to Deal with People Who Don’t &quot;Get&quot; Design"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/88bcb172b3e14d68b535681cbdfdf650/preview_slide_0.jpg?15885956');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/88bcb172b3e14d68b535681cbdfdf650/preview_slide_0.jpg?15885956');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Design and Strategy: How to Deal with People Who Don’t &quot;Get&quot; Design </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/morganepeng" aria-label="Morgane Peng profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/95d9f37115fbb0d13135d0f77132f856?s=24" /> morganepeng </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 126 </div> <div class="px-1 py-3"> <span title="18,356 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 18k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="2d68b6ea782046678c2127deb4f1ecd1" data-slide-count="98" data-cover-image="https://files.speakerdeck.com/presentations/2d68b6ea782046678c2127deb4f1ecd1/preview_slide_0.jpg?15493081"> <a class="deck-preview-link" href="/danielanewman/helping-users-find-their-own-way-creating-modern-search-experiences" title=" Helping Users Find Their Own Way: Creating Modern Search Experiences"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/2d68b6ea782046678c2127deb4f1ecd1/preview_slide_0.jpg?15493081');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/2d68b6ea782046678c2127deb4f1ecd1/preview_slide_0.jpg?15493081');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Helping Users Find Their Own Way: Creating Modern Search Experiences </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/danielanewman" aria-label="Dan Newman profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/3d4519fd34b76fb265fc0237f3792bd4?s=24" /> danielanewman </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 29 </div> <div class="px-1 py-3"> <span title="2,293 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 2.3k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="4e72275f20448a003c000b3b" data-slide-count="109" data-cover-image="https://files.speakerdeck.com/presentations/4e72275f20448a003c000b3b/preview_slide_0.jpg?532287"> <a class="deck-preview-link" href="/destraynor/the-language-of-interfaces" title="The Language of Interfaces"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/4e72275f20448a003c000b3b/preview_slide_0.jpg?532287');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/4e72275f20448a003c000b3b/preview_slide_0.jpg?532287');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> The Language of Interfaces </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/destraynor" aria-label="Des Traynor profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/fde6c3a50ca518a909ef35c22c0ee0e4?s=24" /> destraynor </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 154 </div> <div class="px-1 py-3"> <span title="23,795 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 24k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="704d7f2694fa43559e0afc488a0c810c" data-slide-count="78" data-cover-image="https://files.speakerdeck.com/presentations/704d7f2694fa43559e0afc488a0c810c/preview_slide_0.jpg?6831025"> <a class="deck-preview-link" href="/rocio/yessql-process-and-tooling-at-scale" title="YesSQL, Process and Tooling at Scale"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/704d7f2694fa43559e0afc488a0c810c/preview_slide_0.jpg?6831025');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/704d7f2694fa43559e0afc488a0c810c/preview_slide_0.jpg?6831025');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> YesSQL, Process and Tooling at Scale </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/rocio" aria-label="Rocio Delgado profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/d09fad3e36ae6841f54820be0e907f7a?s=24" /> rocio </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 169 </div> <div class="px-1 py-3"> <span title="13,958 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 14k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="b54a0d1746ae428fa734ab129df6ed6c" data-slide-count="62" data-cover-image="https://files.speakerdeck.com/presentations/b54a0d1746ae428fa734ab129df6ed6c/preview_slide_0.jpg?11783961"> <a class="deck-preview-link" href="/afnizarnur/easily-structure-and-communicate-ideas-using-wireframe" title="Easily Structure &amp; Communicate Ideas using Wireframe "> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/b54a0d1746ae428fa734ab129df6ed6c/preview_slide_0.jpg?11783961');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/b54a0d1746ae428fa734ab129df6ed6c/preview_slide_0.jpg?11783961');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Easily Structure &amp; Communicate Ideas using Wireframe </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/afnizarnur" aria-label="Afnizar Nur Ghifari profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/0c6fd6a08d0f898159cda7cafcacf07f?s=24" /> afnizarnur </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 191 </div> <div class="px-1 py-3"> <span title="15,926 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 16k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="4fd396d0d3d0d6002202b7c2" data-slide-count="85" data-cover-image="https://files.speakerdeck.com/presentations/4fd396d0d3d0d6002202b7c2/preview_slide_0.jpg?421638"> <a class="deck-preview-link" href="/kneath/building-an-army-of-robots" title="Building an army of robots"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/4fd396d0d3d0d6002202b7c2/preview_slide_0.jpg?421638');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/4fd396d0d3d0d6002202b7c2/preview_slide_0.jpg?421638');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> Building an army of robots </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/kneath" aria-label="Kyle Neath profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/5f2da528927a2ec9ba4fec2069cbc958?s=24" /> kneath </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 302 </div> <div class="px-1 py-3"> <span title="42,989 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 43k</span> </div> </div> </div> </div> <div class="col-12 col-md-6 col-lg-4 mb-5"> <div class="card deck-preview" data-id="c3b64cf9cd98458cb3139eb4b0e5af99" data-slide-count="131" data-cover-image="https://files.speakerdeck.com/presentations/c3b64cf9cd98458cb3139eb4b0e5af99/preview_slide_0.jpg?16093963"> <a class="deck-preview-link" href="/geoffreycrofte/the-power-of-css-pseudo-elements" title="The Power of CSS Pseudo Elements"> <div class="deck-preview-image"> <div class="content"></div> <div class="deck-preview-slide" style="background-image: url('https://files.speakerdeck.com/presentations/c3b64cf9cd98458cb3139eb4b0e5af99/preview_slide_0.jpg?16093963');"></div> <div class="deck-preview-background" style="background-image: url('https://files.speakerdeck.com/presentations/c3b64cf9cd98458cb3139eb4b0e5af99/preview_slide_0.jpg?16093963');"></div> <div class="deck-preview-slide deck-preview-scrub-slide"></div> <div class="deck-preview-background deck-preview-scrub-background"></div> <div class="deck-preview-scrubber"></div> </div> <div class="deck-title px-3 pt-3 text-truncate"> The Power of CSS Pseudo Elements </div> </a> <div class="deck-preview-meta d-flex px-2"> <div class="text-truncate py-3 pe-2 me-auto py-3"> <a href="/geoffreycrofte" aria-label="Geoffrey Crofte profile"> <img width="24" height="24" class="avatar avatar-sm" loading="lazy" alt="" src="https://secure.gravatar.com/avatar/5b6a2bd86ef643786a381a212e0ef2f1?s=24" /> geoffreycrofte </a> </div> <div class="px-1 py-3"> </div> <div class="px-2 py-3"> <svg class="icon icon-star "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-star"></use></svg> 73 </div> <div class="px-1 py-3"> <span title="5,339 views"><svg class="icon icon-eye "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-eye"></use></svg> 5.3k</span> </div> </div> </div> </div> </div> </div> </div> <div id="transcript" class="container py-4 transcript text-break"> <h2 class="mb-4">Transcript</h2> <ol> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ղо উ٘۽੉٘ ѐߊ੗о غ঻ਸ ٸ ইޖب ঌ۰઱૑ ঋ਷ Ѫٜ Speaker. ъࢎܕ " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ղо উ٘۽੉٘ ѐߊ੗о غ঻ਸ ٸ ইޖب ঌ۰઱૑ ঋ਷ Ѫٜ Speaker. ъࢎܕ " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_0.jpg">ղо উ٘۽੉٘ ѐߊ੗о غ঻ਸ ٸ ইޖب ঌ۰઱૑ ঋ਷ Ѫٜ Speaker.</a> </h3> ъࢎܕ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Who is this guy? • ҃۱ 18֙ର SW ূ૑פয (ݽ߄ੌ, ߔূ٘, ਢ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Who is this guy? • ҃۱ 18֙ର SW ূ૑פয (ݽ߄ੌ, ߔূ٘, ਢ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_1.jpg">Who is this guy? • ҃۱ 18֙ର SW ূ૑פয (ݽ߄ੌ,</a> </h3> ߔূ٘, ਢ ೐ۿ౟ূ٘ ׮ ೧ࠆ) • ತস ੹ޙо: ޷Ҵীࢲ ೠ ߣ, ೠҴীࢲ ف ߣ झఋ౟স ೮׮ ݈ইݡ਺ • ੌࠄ झఋ౟সীࢲ ݽ߄ੌ ׸׼ ইఃఫ౟۽ Ӕޖ ઺ • ӝ۞ӝ ইࡅ: ೠҴী ইղ৬ ف ইٜҗ ъই૑৬ Ҋন੉ܳ فҊ ੓਺ • ӓೠ ѐߊ: അ੤ 6ѐ Android / iOS জ੄ ܻ׏঴ਸ ׸׼઺ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="• ࢸ݀ೠ૑ 4.5֙ ػ झఋ౟স • ੌࠄ ୭؀੄ ਭই ੿ࠁ ࢲ࠺झ ࠁਬ • bu..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 • ࢸ݀ೠ૑ 4.5֙ ػ झఋ౟স • ੌࠄ ୭؀੄ ਭই ੿ࠁ ࢲ࠺झ ࠁਬ • bu..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_2.jpg">• ࢸ݀ೠ૑ 4.5֙ ػ झఋ౟স • ੌࠄ ୭؀੄ ਭই ੿ࠁ</a> </h3> ࢲ࠺झ ࠁਬ • but ت਷ ਬ஖ਗ Үࢎ ೻٘೴౴ ࢲ࠺झ۽.. • ৻ࠗ ై੗ ੹ഃ হ੉ ࣽ੉੊੄ ੤ై੗݅ਵ۽ Ҋࣘ ࢿ੢઺ • ী࠺झ(ੌࠄ੄ о۽ࣻӡ?)੄ Ӕࢎೠ 9க ࠽٬ਸ ా૩۽ ॹ • Business-aware Engineerٜী ੄೧ ਑૒੉ח ഥࢎ • ঠӔ Ә૑ / ോੌ Ӕޖ Ә૑ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="द੘ೞӝ ੹ী... • ݽٚ ղਊਸ ೠ ߣী ੉೧ೞ૑ ޅೞ࣊ب ҡଳणפ׮ • о߶਍..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 द੘ೞӝ ੹ী... • ݽٚ ղਊਸ ೠ ߣী ੉೧ೞ૑ ޅೞ࣊ب ҡଳणפ׮ • о߶਍..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_3.jpg">द੘ೞӝ ੹ী... • ݽٚ ղਊਸ ೠ ߣী ੉೧ೞ૑ ޅೞ࣊ب ҡଳणפ׮</a> </h3> • о߶਍ ӝ࠙ਵ۽ ٮۄয়दݶ ؾפ׮ • ೒ۖಬ ઺݀੸: ࢚׼ࣻ ղਊ਷ iOSীب Ӓ؀۽ ੸ਊ оמ೤פ׮ • ࠂण оמ: ठۄ੉٘ ੹୓ ղਊ਷ ইې ݂௼ীࢲ ׮਍ ߉ਵप ࣻ ੓णפ׮ • https://speakerdeck.com/saryong/mvvm-iyagi-droidknight-2018 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Buckle Up! " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Buckle Up! " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_4.jpg">Buckle Up!</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Chapter 1. ࢲۿ " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Chapter 1. ࢲۿ " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_5.jpg">Chapter 1. ࢲۿ</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ݽٚ ࠺ӓ੄ द੘ • যוզ ੉ࢎש੉ աܳ ઑਊ൤ ࣑ࠗܰ׮... " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ݽٚ ࠺ӓ੄ द੘ • যוզ ੉ࢎש੉ աܳ ઑਊ൤ ࣑ࠗܰ׮... " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_6.jpg">ݽٚ ࠺ӓ੄ द੘ • যוզ ੉ࢎש੉ աܳ ઑਊ൤ ࣑ࠗܰ׮...</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="੗֎... ੗߄ ೡ ઴ ঌ૑? Dilbert © 2018, Andrews McMeel..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ੗֎... ੗߄ ೡ ઴ ঌ૑? Dilbert © 2018, Andrews McMeel..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_7.jpg">੗֎... ੗߄ ೡ ઴ ঌ૑? Dilbert © 2018, Andrews McMeel</a> </h3> Syndication </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="উ٘۽੉٘ য೒ ખ ٜ݅য ࠊ. ֎?! औѱ ೡ ࣻ ੓ਗ਼ই. Dilbert © 201..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 উ٘۽੉٘ য೒ ખ ٜ݅য ࠊ. ֎?! औѱ ೡ ࣻ ੓ਗ਼ই. Dilbert © 201..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_8.jpg">উ٘۽੉٘ য೒ ખ ٜ݅য ࠊ. ֎?! औѱ ೡ ࣻ ੓ਗ਼ই.</a> </h3> Dilbert © 2018, Andrews McMeel Syndication </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ୡࠁ ݽ߄ੌ ѐߊ੗੄ Ҋҵ࠙ై • Device/version fragmentation..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ୡࠁ ݽ߄ੌ ѐߊ੗੄ Ҋҵ࠙ై • Device/version fragmentation..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_9.jpg">ୡࠁ ݽ߄ੌ ѐߊ੗੄ Ҋҵ࠙ై • Device/version fragmentation: пয়ח ೮঻૑݅, ޖ঺ਸ</a> </h3> ࢚࢚ೞٚ উ٘۽੉٘ח ৘ӝ஖ ޅೠ Ҕীࢲ ٍాࣻܳ ஘׮. • ੉ લੌ ֈ੄ ࠺زӝ: оՔঀ਷ ࢤп೮؍ Ѫҗ ੹ഃ ׮ܲ ߑೱਵ۽ ۽૒੉ प೯ػ׮. ӒѪب ೦࢚ ੤അغח Ѫب ইפ׮. • ঌ׮оب ݽܳ Life Cycle ޙઁ: যڃ ҃਋ח ౠ੿ Fragmentо द੘ೞח द੼ਸ ੟ইղӝ ࠛоמ೧ࠁ੉ח ҃਋о ੓׮. ೞ೙ ઁੌ ઺ਃೠ ചݶীࢲ.. • ҳӖ੉ ޥо ࢜۽਍ Ѧ ղ֬ਸ ٸ݃׮ ੉ઁח ૞ૐࠗఠ դ׮. ੓ח Ѫࠗఠ ઁ؀۽ ખ جইоѱ ٜ݅ۄҊ!!
 ଵҊ: Fxxx you Android Framework https://medium.com/@drinfo/fuck-you- android-framework-ddbb02c4ae48 </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ೞ૑݅.. উ જ਷ ੌ݅ ੓ח Ѥ ইפ঻׮. " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ೞ૑݅.. উ જ਷ ੌ݅ ੓ח Ѥ ইפ঻׮. " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_10.jpg">ೞ૑݅.. উ જ਷ ੌ݅ ੓ח Ѥ ইפ঻׮.</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="୷ೞ೤פ׮! ઺ә ѐߊ੗о غ࣑णפ׮. " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ୷ೞ೤פ׮! ઺ә ѐߊ੗о غ࣑णפ׮. " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_11.jpg">୷ೞ೤פ׮! ઺ә ѐߊ੗о غ࣑णפ׮.</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ૌѢ਍ ۨ߰স ࢤഝ • ৔য ੗ܐ۽ ׀ਸ جܻݶ ੄৻۽ ஘੺ೞҊ ੗ࣁೠ ੿ࠁٜ੉ ݆׮..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ૌѢ਍ ۨ߰স ࢤഝ • ৔য ੗ܐ۽ ׀ਸ جܻݶ ੄৻۽ ஘੺ೞҊ ੗ࣁೠ ੿ࠁٜ੉ ݆׮..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_12.jpg">ૌѢ਍ ۨ߰স ࢤഝ • ৔য ੗ܐ۽ ׀ਸ جܻݶ ੄৻۽ ஘੺ೞҊ</a> </h3> ੗ࣁೠ ੿ࠁٜ੉ ݆׮. झఖয়ߡ೒۽, ݆ࣻ਷ ౚషܻ঴ٜ.. • যଧযଧ ೞ׮ࠁפ ֢ೞ਋ب ࢤ҂׮ • উ٘۽੉٘ ߡ੹߹ ؀୊ߨ, ۄ੉೐ࢎ੉௿ ؀਽, ա݅੄ ٣ߡӒ ֢ೞ਋, ߑয੸ ௏٬, ... • Kotlin - ࠺Ү੸ ੸਷ ֢۱ਵ۽ ࢜۽਍ ঱যܳ ߓਕ ௏٬ೞח ੤޷ب ॕॕ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Ӓ۞ա... " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Ӓ۞ա... " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_13.jpg">Ӓ۞ա...</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ҍ ׮оয়ח ठۢ೐ • ੉੹җ э਷ ࣘب۽ח प۱੉ ט૑ ঋח׮ • ੋఠ֔ী ୡә ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ҍ ׮оয়ח ठۢ೐ • ੉੹җ э਷ ࣘب۽ח प۱੉ ט૑ ঋח׮ • ੋఠ֔ী ୡә ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_14.jpg">ҍ ׮оয়ח ठۢ೐ • ੉੹җ э਷ ࣘب۽ח प۱੉ ט૑ ঋח׮</a> </h3> • ੋఠ֔ী ୡә ੉࢚ ࣻળ੄ ੗ܐח Ѣ੄ হ׮ • ҡଳ਷ ੗ܐܳ ଺ও׮ रਵݶ ցޖ য۰ਕ Ѣ੄ ࢶޙ׹ ࣻળ.. ؀ױೠ Ѥ ঌѷח ؘ ؀୓ ޤۄח ૑ ݽܰѷ׮. • ޖ঺ࠁ׮ ઱߸ী ޛযࠅ ࢎۈ੉ হ׮. ղо ੜ ೞҊ ੓ח૑ ঌ ӡ੉ হ׮ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ղо উ٘۽੉٘ ѐߊ੗о غ঻ਸ ٸ 
 ইޖب ঌ۰઱૑ ঋও؍ Ѫٜ:
 ־ҵо ৖ীࢲ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ղо উ٘۽੉٘ ѐߊ੗о غ঻ਸ ٸ 
 ইޖب ঌ۰઱૑ ঋও؍ Ѫٜ:
 ־ҵо ৖ীࢲ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_15.jpg">ղо উ٘۽੉٘ ѐߊ੗о غ঻ਸ ٸ 
 ইޖب ঌ۰઱૑ ঋও؍ Ѫٜ:
</a> </h3> ־ҵо ৖ীࢲ ஘੺ೞѱ ঌ۰઱ݶ 
 ଵ જওਸ Ѫ э਷ ૕ޙٜ੉ ੓׮. </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Clean Architecture - 
 ѐߊ੗੄ ҳਗ੗ੋо, ࢤࢎۈ ੟ח ࢚ࣿੋо?..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Clean Architecture - 
 ѐߊ੗੄ ҳਗ੗ੋо, ࢤࢎۈ ੟ח ࢚ࣿੋо?..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_16.jpg">Clean Architecture - 
 ѐߊ੗੄ ҳਗ੗ੋо, ࢤࢎۈ ੟ח ࢚ࣿੋо? •</a> </h3> ইפ.. ೞۄח ѱ ৵ ੉ۧѱ ݆ই?! • ׮ٜ ઺ਃೞ׮Ҋٜ਷ ೞחؘ.. ઁ؀۽ ॳח ࢎۈ਷ ߹۽ উ ࠁੋ׮. • زӒۆ җ֘ Ӓܿ ݈Ҋ ೧઴ ফӝח হפ? </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="MVVM, ԙ ೧ࠁҊ रणפ׮! • Ӕؘ যଧ೧ঠೡ ઴ ݽܰѷ׮. • ॳݶ ଵ જ׮..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 MVVM, ԙ ೧ࠁҊ रणפ׮! • Ӕؘ যଧ೧ঠೡ ઴ ݽܰѷ׮. • ॳݶ ଵ જ׮..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_17.jpg">MVVM, ԙ ೧ࠁҊ रणפ׮! • Ӕؘ যଧ೧ঠೡ ઴ ݽܰѷ׮. •</a> </h3> ॳݶ ଵ જ׮חؘ.. ցޖ ࠂ੟ೞ׮. • ৘ઁٜ਷ ݆਷ؘ, ׮ٜ ઁпп੉׮. ޖट ইఃఫ୊о ੉ۧѱ ੿೧૓ ѱ হয? </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="MVP.. ઁ؀۽ ॄࠁҊ र׮. • ੌױ MVVMࠁ׮ח ए਍ Ѫ э׮. • ୊਺ীח..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 MVP.. ઁ؀۽ ॄࠁҊ र׮. • ੌױ MVVMࠁ׮ח ए਍ Ѫ э׮. • ୊਺ীח..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_18.jpg">MVP.. ઁ؀۽ ॄࠁҊ र׮. • ੌױ MVVMࠁ׮ח ए਍ Ѫ э׮.</a> </h3> • ୊਺ীח જ਷ Ѫ эওחؘ.. 
 ೐۽ં౟ܳ ૓೯ೞ׮ࠁפ ژ ׮ܲ ஶ౟܀۞ܳ ٜ݅Ҋ ੓ח Ѫ э਷ ӝ࠙਷ ৵ੌ ө.. </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="RxJava: somebody help! • য۵׮! ഁтܽ׮! ־ҵо ખ ب৬઻!!..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 RxJava: somebody help! • য۵׮! ഁтܽ׮! ־ҵо ખ ب৬઻!!..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_19.jpg">RxJava: somebody help! • য۵׮! ഁтܽ׮! ־ҵо ખ ب৬઻!! •</a> </h3> ੗ݒಿ LiveDataח ખ ए਍ Ѫ э਷ؘ ӒѪ݅ ыҊח গݒೠ ٠ب.. </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="How the fxxx can I inject dependency? • ੄ઓࢿ ઱ੑ...." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 How the fxxx can I inject dependency? • ੄ઓࢿ ઱ੑ...." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_20.jpg">How the fxxx can I inject dependency? • ੄ઓࢿ ઱ੑ..</a> </h3> ୊਺ূ ए਍ Ѫ эওחؘ.. • ՘হח decision making੄ োࣘ - оݶ т ࣻ۾ ౠ੿ ੋझఢझী ؀ೠ injectionਸ যڌѱ ೧ঠ ബҗ੸ੋ Ѥ૑ ցޖ ഁтܽ׮. </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Test-Driven Developement: 
 ೞݶ જ׮חؘ.. ଵ જ׮חؘ.. ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Test-Driven Developement: 
 ೞݶ જ׮חؘ.. ଵ જ׮חؘ.. ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_21.jpg">Test-Driven Developement: 
 ೞݶ જ׮חؘ.. ଵ જ׮חؘ.. • Ӓ ݆Ҋ</a> </h3> ݆਷ ਬ׫ పझ౟ ౚషܻ঴ٜ ઺ীࢲ पઁ ࢚ਊ ೐۽ં౟ ࣻળ੄ ਬ׫ పझ౟ܳ ݅٘ח ߨਸ ঌ۰઱ח Ѥ ೞաب হ׮. • જ׮ח Ѣ ׮ ࡤੋѢ ইջ? </div> </li> <li class="mb-2"> <div class="slide-transcript"> <a class="text-muted font-italic" href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_22.jpg">None</a> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="઱ചੑ݃ী ࡅ૓ दפয ѐߊ੗੄ ੹ഋ੸ ૐ࢚ • ࠺ҙ઱੄: ই, ӒѢ? ࢜۽਎ Ѫب ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ઱ചੑ݃ী ࡅ૓ दפয ѐߊ੗੄ ੹ഋ੸ ૐ࢚ • ࠺ҙ઱੄: ই, ӒѢ? ࢜۽਎ Ѫب ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_23.jpg">઱ചੑ݃ী ࡅ૓ दפয ѐߊ੗੄ ੹ഋ੸ ૐ࢚ • ࠺ҙ઱੄: ই, ӒѢ?</a> </h3> ࢜۽਎ Ѫب হח Ӓր ਬ೯੉ঠ.. Ӓ۠ Ѣ হযب ੉ઁө૑ ੜ ѐߊ೧৳׮Ҋ. • ౹یӈ ૐറҵ: ޤ ࢜۽਍ ѱ ա৳׮Ҋ? য়ט ׼੢ ੸ਊ೧ࠁ੗. • ో ݅מ઱੄: ॶ ઴ ইח ో, ঌҊ ੓ח ۄ੉࠳۞ܻ੄ ं੗о ҍ प۱੉׮? • Low-hanging fruit: ए਍ ޙઁী݅ ૘଱ೞӝ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Chapter 42. 
 উ٘۽੉٘ܳ ৈ೯ೞח
 ൤஖ೞ੉ழܳ ਤೠ উղࢲ " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Chapter 42. 
 উ٘۽੉٘ܳ ৈ೯ೞח
 ൤஖ೞ੉ழܳ ਤೠ উղࢲ " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_24.jpg">Chapter 42. 
 উ٘۽੉٘ܳ ৈ೯ೞח
 ൤஖ೞ੉ழܳ ਤೠ উղࢲ</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ѐߊ੗੄ ѐࢿী ٮۄ 
 ݆਷ झఆ ౟ܻо ੓૑݅.. Ӓېب ੉ ف о૑о ઺ਃೞ׮Ҋ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ѐߊ੗੄ ѐࢿী ٮۄ 
 ݆਷ झఆ ౟ܻо ੓૑݅.. Ӓېب ੉ ف о૑о ઺ਃೞ׮Ҋ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_25.jpg">ѐߊ੗੄ ѐࢿী ٮۄ 
 ݆਷ झఆ ౟ܻо ੓૑݅.. Ӓېب ੉</a> </h3> ف о૑о ઺ਃೞ׮Ҋ ࢤп೤פ׮. </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="1. Solution Provider • ঌҊ્ܻী ؀ೠ Ө਷ ੉೧: ׮ܲ ࢎۈ੉ۄݶ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 1. Solution Provider • ঌҊ્ܻী ؀ೠ Ө਷ ੉೧: ׮ܲ ࢎۈ੉ۄݶ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_26.jpg">1. Solution Provider • ঌҊ્ܻী ؀ೠ Ө਷ ੉೧: ׮ܲ ࢎۈ੉ۄݶ</a> </h3> ҳഅೞ૑ ޅೡ Ѫ э਷ Ѫਸ, ׮ܲ ࢎۈࠁ׮ ف ߓח ࡅܰѢա ੘਷ ࢎ੉ૉ۽ ز੘ೞѱ ٜ݅ ࣻ ੓ח ࢎۈ • Kotlin ژח Java ঱য੄ semantics੄ Ө਷ ਗܻ৬ ঱য ࢸ҅ ୍೟ী ؀ೠ ੉೧ • Dalvik੄ ز੘ ਗܻী ؀ೠ ੉೧ • Activity / Fragment੄ ઺ਃೠ ز੘ਸ ೒ۖಬ ௏٘ ۨ߰ীࢲ੄ ੉೧ • উ٘۽੉٘о ചݶਸ ۪؊݂ ೞח ݒழפ્੄ ੉೧ • … </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="2. Architect • ղ ೐۽ં౟ܳ, рױೠ README.md ౵ੌ ৻ী ইޖ ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 2. Architect • ղ ೐۽ં౟ܳ, рױೠ README.md ౵ੌ ৻ী ইޖ ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_27.jpg">2. Architect • ղ ೐۽ં౟ܳ, рױೠ README.md ౵ੌ ৻ী ইޖ</a> </h3> ࢸݺ হ੉ب ׮ܲ ѐߊ੗ ীѱ ੋࣻੋ҅ೡ ࣻ ੓׮ • ղ ௏٘ܳ 1֙ ٍী ׮द ࠌਸ ٸ ҍ߄۽ ੉೧ೡ ࣻ ੓׮ • ௾ ӏݽ੄ ҳઑ ࣻ੿ب 1~2ੌ ղী ೧յ ࣻ ੓ਸ ੿ب۽ ਬোೞѱ ҳઑܳ ݅ٚ׮ • Jr ূ૑פযীѱ റࣘ ௏٬ਸ উबೞҊ ކٶ ځֈѹب ؼ ࣻળਵ۽ ӝࠄ ҳઑо ѼҊೞѱ ੘ࢿೠ׮. ޖ঺ࠁ׮.. ੜޅػ ߑधਵ۽ ҳഅೞӝо ݒ਋ য۵ب۾ ҳઑ ܳ ٜ݅ ઴ উ׮ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="উ٘۽ݫ׮ܳ ೻ݒח ઺ә ѐߊ੗ٜਸ ਤೠ উղ " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 উ٘۽ݫ׮ܳ ೻ݒח ઺ә ѐߊ੗ٜਸ ਤೠ উղ " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_28.jpg">উ٘۽ݫ׮ܳ ೻ݒח ઺ә ѐߊ੗ٜਸ ਤೠ উղ</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="द੘੉ ߈ • ࠺ҙ઱੄ܳ ߡܻҊ ੌױ ࠗ٭ഃ ࠁࣁਃ! • ೧ࠁ૑ ঋਵݶ ੉೧ೞӝ য..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 द੘੉ ߈ • ࠺ҙ઱੄ܳ ߡܻҊ ੌױ ࠗ٭ഃ ࠁࣁਃ! • ೧ࠁ૑ ঋਵݶ ੉೧ೞӝ য..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_29.jpg">द੘੉ ߈ • ࠺ҙ઱੄ܳ ߡܻҊ ੌױ ࠗ٭ഃ ࠁࣁਃ! • ೧ࠁ૑</a> </h3> ঋਵݶ ੉೧ೞӝ য۰਍ ѐ֛੉ ݆਺ • द੘਷ ੄৻۽ ए਑: Ѣ੄ ݽٚ ࠙ঠীࢲ ੑޙਊ ౚషܻ঴ਸ औѱ ଺ਵप ࣻ ੓ ਺ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="–George Bernard Shaw “ف ࢎۈ੉ п੗ ыҊ ੓ח ࢎҗ ೞաܳ Үജೠ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 –George Bernard Shaw “ف ࢎۈ੉ п੗ ыҊ ੓ח ࢎҗ ೞաܳ Үജೠ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_30.jpg">–George Bernard Shaw “ف ࢎۈ੉ п੗ ыҊ ੓ח ࢎҗ ೞաܳ</a> </h3> Үജೠ׮ݶ 
 ৈ੹൤ ೞաঀ੄ ࢎҗ݅ ыҊ ੓ਸ Ѫ੉׮. ೞ૑݅ ই੉٣যܳ Үജೞݶ п੗ ف ѐঀਸ ыѱ ػ׮.” </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ҕਬ੄ ൨ • ֢ೞ਋ٚ Ҋ޹੉ٚ ݈ೡ Ѣܻо ࢤ҂׮ݶ, ׼न੄ ૑धਸ Բળ൤ ҕਬೞࣁ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ҕਬ੄ ൨ • ֢ೞ਋ٚ Ҋ޹੉ٚ ݈ೡ Ѣܻо ࢤ҂׮ݶ, ׼न੄ ૑धਸ Բળ൤ ҕਬೞࣁ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_31.jpg">ҕਬ੄ ൨ • ֢ೞ਋ٚ Ҋ޹੉ٚ ݈ೡ Ѣܻо ࢤ҂׮ݶ, ׼न੄ ૑धਸ</a> </h3> Բળ൤ ҕਬೞࣁਃ. • ࠺तೠ ҙबࢎ੄ ূ૑פযٜਸ Բળ൤ ݅աࠁࣁਃ. • ࠶۽Ӓח যڄөਃ? • ઱੄: झ௼ܽࢫਵ۽ بߓೞח tutorial, ױࣽ ࢸ஖ߨب જ૑݅.. ӝ৴੉ݶ ੗न੄ ࢤп੉ ٜযр Ӗ੉ झझ۽ীѱب ة੗ীѱب ؊ ب਑੉ ؾפ׮. </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ੌࠄ੄ ҃਋ • ࠶۽Ӓܳ ాೠ ҕਬо ੌ࢚ച: Qiita, Hatena Blog •..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ੌࠄ੄ ҃਋ • ࠶۽Ӓܳ ాೠ ҕਬо ੌ࢚ച: Qiita, Hatena Blog •..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_32.jpg">ੌࠄ੄ ҃਋ • ࠶۽Ӓܳ ాೠ ҕਬо ੌ࢚ച: Qiita, Hatena Blog</a> </h3> • ҕࠗഥ: ઱۽ ૑৉ ױਤ੄ ࣁ޷ա. eg. Sibuya.apk, Akiba.swift, ... • Moku-moku meeting: Ӓր п੗ ௏٬ ݽ੐
 1.5 ~ 2दр ѐ߹ ੘স റ যڃ ੘সਸ ೮ח ૑ ੗ی/Ҋ޹/ઑ঱ ա׃ • Network Party
 ੗ӝо ҳഅೠ ইఃఫ୊, పझ౟ ١ ҳ୓੸ੋ ࠗ࠙ী ؀೧ࢲ ૑धਸ Үജೞח ݽ੐ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <a class="text-muted font-italic" href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_33.jpg">None</a> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ୡәࠗఠ Ҋәө૑ ׮নೠ ߊ಴: 10~15࠙ঀ ՘աݶ 1.5दр زউ ֎౟ਕ௼ ౵౭ " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ୡәࠗఠ Ҋәө૑ ׮নೠ ߊ಴: 10~15࠙ঀ ՘աݶ 1.5दр زউ ֎౟ਕ௼ ౵౭ " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_34.jpg">ୡәࠗఠ Ҋәө૑ ׮নೠ ߊ಴: 10~15࠙ঀ ՘աݶ 1.5दр زউ ֎౟ਕ௼ ౵౭</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="ழ߁२ • ޷٣ষ ࠶۽Ӓ
 https://medium.com/@justfaceit ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ழ߁२ • ޷٣ষ ࠶۽Ӓ
 https://medium.com/@justfaceit ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_35.jpg">ழ߁२ • ޷٣ষ ࠶۽Ӓ
 https://medium.com/@justfaceit • 5ਘ 5ੌ ҕѐؾפ׮. •</a> </h3> ݽ߄ੌীࢲ੄ TDD, MVVM, DDD, DI ١ী ؀೧ࢲ प૕੸ੋ ղਊਸ ҕਬೞҊ ੗ ೤פ׮. </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Chapter 3. 
 MVP &amp; MVVM " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Chapter 3. 
 MVP &amp;amp; MVVM " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_36.jpg">Chapter 3. 
 MVP &amp; MVVM</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="MVC is not evil • Modelҗ Viewח ੌઙ੄ ۨҊ ࠶۟: Model..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 MVC is not evil • Modelҗ Viewח ੌઙ੄ ۨҊ ࠶۟: Model..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_37.jpg">MVC is not evil • Modelҗ Viewח ੌઙ੄ ۨҊ ࠶۟:</a> </h3> Model(+ Domain) ҅கীࢲח ࠺ૉפझ ۽૒ਸ, View ח UI۽૒ਸ ઁҕ. • Controllerח ۨҊ ࠶۟੄ ઑ݀ਸ ׸׼. • Cח যڃ Viewܳ ࠁৈ઴ Ѫੋоܳ Ѿ੿೧ࢲ Modelীࢲ ߉਷ ؘ੉ఠܳ View۽ ֈѹષ. • ӒܻҊ ী۞ܳ যڌѱ ࠁৈ઴૑ܳ Ѿ੿೧ࢲ View۽ ֈѹષ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="৵ Android MVCח աࢂо? • ݽ߄ੌ ജ҃੄ ޙઁ: ࠂ੟ೠ ࠺زӝ ୊ܻ, ۄ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ৵ Android MVCח աࢂо? • ݽ߄ੌ ജ҃੄ ޙઁ: ࠂ੟ೠ ࠺زӝ ୊ܻ, ۄ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_38.jpg">৵ Android MVCח աࢂо? • ݽ߄ੌ ജ҃੄ ޙઁ: ࠂ੟ೠ ࠺زӝ</a> </h3> ୊ܻ, ۄ੉೐ ࢎ੉௿ ୊ܻ • উ٘۽੉٘੄ ޙઁ: View - Controller ܻ࠙о গݒೞ׮. • Fat Activity: Activity-Fragmentী ցޖ ݆਷ ۽૒੉ ٜযр׮. • Unit Testܳ ٜ݅ӝо ݒ਋ ө׮܂׮. • Ӓ Ѿҗ == ୨୓੸ դҴ • ୭ঈ੄ оةࢿ: ੌ੿੉ ә߅೧ઉب ׮ܲ ূ૑פযীѱ ب਑ਸ ਃ୒ೞӝ য۵׮. 
 ࢸݺೞח ѱ ؊ झ౟ۨझۄ.. ׼୭ ղо ࠊب ഁтܻחؘ যڌѱ ࢸݺਸ.. • ೞաೞա੄ ௿ېझٜ੉ ցޖ ݆਷ ৉ೡਸ ׸׼ -&gt; ਬ૑ࠁࣻ ਊ੉ࢿ, ࣻ੿ಞ੄ࢿ, оةࢿ ١ ݆਷ ࠗ࠙ীࢲ ஂডೠ ௏٘о غߡܿ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Model-View-Presenter? • 90֙؀ ઁউ, 2006֙ Martin F..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Model-View-Presenter? • 90֙؀ ઁউ, 2006֙ Martin F..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_39.jpg">Model-View-Presenter? • 90֙؀ ઁউ, 2006֙ Martin Fowler੄ ࣗѐ۽ օܻ ঌ۰૗
</a> </h3> ଵઑ: GUI Architectures
 https://martinfowler.com/eaaDev/uiArchs.html • ࢎप উ٘۽੉٘ ୡӝࠗఠ ҳ੹ਵ۽ ੹೧ઉ ৳؍ ইఃఫ୊ • Viewח ࠺ૉפझ ۽૒ী ҙ۲ػ ࠗ࠙ਸ ҙৈೞ૑ ޅೞب۾ ܻ࠙, Presenter ۽ ֈӣ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Presenter View Model ࢎਊ੗ ੑ۱ਸ ాࠁ ؘ੉ఠ јन ਃ୒ ؘ੉ఠ ߸..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Presenter View Model ࢎਊ੗ ੑ۱ਸ ాࠁ ؘ੉ఠ јन ਃ୒ ؘ੉ఠ ߸..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_40.jpg">Presenter View Model ࢎਊ੗ ੑ۱ਸ ాࠁ ؘ੉ఠ јन ਃ୒ ؘ੉ఠ</a> </h3> ߸҃ ాࠁ ࠭ ߸҃ ਃ୒ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="MVP੄ ੢੼ • Fat activity/fragment ߑ૑ • ੸੺ೠ ৉ೡ(re..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 MVP੄ ੢੼ • Fat activity/fragment ߑ૑ • ੸੺ೠ ৉ೡ(re..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_41.jpg">MVP੄ ੢੼ • Fat activity/fragment ߑ૑ • ੸੺ೠ ৉ೡ(responsibility)੄ ܻ࠙۽</a> </h3> ੋ೧ ࣗझ оةࢿ + ಿ૕੉ ز߈ ࢚थ • ೒ۖಬ ੄ઓ੸ੋ UI ୊ܻח View ଃਵ۽ ܻ࠙೮ӝ ٸޙী Presenterח औѱ పझ౟ ੘ࢿ੉ оמ • Clean Architecture৬ 1:1 mapping оמ. CAܳ Ӓ؀۽ ଻ਊೞݶ ࢸ҅ ҙ۲ ֢۱ب ୭ࣗച </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="What is not MVVM? • MVVM੄ ౠ૚਷ Life Cycle੉׮? • ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 What is not MVVM? • MVVM੄ ౠ૚਷ Life Cycle੉׮? • ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_42.jpg">What is not MVVM? • MVVM੄ ౠ૚਷ Life Cycle੉׮? •</a> </h3> Android Architecture Component੄ ౠ૚ੌ ࡺ • Data Binding? - ೙ࣻח ইפա ࢎਊೞݶ ࢤ࢑ࢿী ഛपೠ ب਑੉ ؽ • RxMVVM? - ৉द ೙ࣻח ইפ૑݅.. Rx হ੉ח ݒ਋ ࠛಞೣ • ਊযীࢲ য়ח ഒۆ: ViewModel਷ গୡী ੜޅػ ѐ֛੉׮? • Modelҗ э੉ ੘਷ ױਤ۽ ଂѐઉ੓૑ ঋ਷ؘ׮, ాनী׮ ߹ ѱ ׮ ٜযо੓ח ഋకۄ য়೧ೡ ࣻ ੓਺ • Viewܳ ਤೠ Model(Entity)੉ۄח ѐ֛, ױߑೱ presenterۄח ف ѐ੄ ѐ֛ਸ, ViewModel੉ۄח ೞա੄ ੉ܴਵ۽ ыҊ ੓਺ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="M-V-ViewModel? • ৉द ݃౯ ౵਎۞੄ Presentation Domain..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 M-V-ViewModel? • ৉द ݃౯ ౵਎۞੄ Presentation Domain..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_43.jpg">M-V-ViewModel? • ৉द ݃౯ ౵਎۞੄ Presentation Domain Separation (PDS)о दୡ</a> </h3> • 2004֙ ࣗѐػ Presentation Model੉ ਗഋ • ଵઑ: https://martinfowler.com/eaaDev/PresentationModel.htmlɹ • Microsoftীࢲ ୊਺ ҳഅೣ • ViewModel: Uni-directional Mediator • Presenter৬ ݒ਋ ਬࢎೞա, ViewModel਷ Viewܳ ઁযೞ૑ ঋ਺ • Viewח ViewModelਸ ഐ୹ೞغ, Ѿҗח Callback / Observable ഋక۽ ߉਺ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="http://kyubid.com/blog/understanding-mvvm-on-an..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 http://kyubid.com/blog/understanding-mvvm-on-an..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_44.jpg">http://kyubid.com/blog/understanding-mvvm-on-android-tutorial-05-introduction-to-reactive-programming-with-rxjava/</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="MVVM vs MVP: ষ݃о જই, ইࡅо જই? • ل ׮ ഴܯೠ ҳઑ. ঑ب੸ੋ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 MVVM vs MVP: ষ݃о જই, ইࡅо જই? • ل ׮ ഴܯೠ ҳઑ. ঑ب੸ੋ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_45.jpg">MVVM vs MVP: ষ݃о જই, ইࡅо જই? • ل ׮</a> </h3> ഴܯೠ ҳઑ. ঑ب੸ੋ ਋ਤח হ਺ • ٮۄࢲ ੉റ੄ ࢸݺب ݒ਋ ࢚؀੸੉ݴ, ೐۽ં౟ ࢿѺী ٮۄ ׮ܰѱ ߉ইٜৈ ૕ ࣻ ੓਺ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="MVP੄ ࠺Ү਋ਤ • द੘ೞӝо औ׮. ੌױ ӝઓ ஶ౟܀۞੄ ۽૒ٜਸ ో੄ refac..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 MVP੄ ࠺Ү਋ਤ • द੘ೞӝо औ׮. ੌױ ӝઓ ஶ౟܀۞੄ ۽૒ٜਸ ో੄ refac..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_46.jpg">MVP੄ ࠺Ү਋ਤ • द੘ೞӝо औ׮. ੌױ ӝઓ ஶ౟܀۞੄ ۽૒ٜਸ ో੄</a> </h3> refactor ӝמਵ۽ ୶ ୹(extract method)೧ࢲ Presenter۽ ৤ӝח Ѫࠗఠ द੘ೞݶ ؽ • ӝઓ ೐۽ં౟ܳ Ҋ୛ঠ ೞח ҃਋:
 Legacy code੄ ࠙۝੉ ݆Ѣա, ҳઑ ѐࢶী ઱য૓ दр੉ ݒ਋ ૣ਷ ҃਋ MVPо ؊ ਬܻ • Rxҕನૐ੉ ੓ח ҃਋:
 RxJavaܳ উ ॄب ഴܯೠ ҳઑܳ ٜ݅ ࣻ ੓׮. (ޛۿ RxJavaܳ ॳݶ ؊ જ ਷ ௏٘ܳ ૢ ࣻ ੓਺) </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="MVVMח? • ୡӝ ૓ੑ੢߷਷ ࠙ݺ൤ ੓਺
 ӝઓ੄ ѐߊ ѐ֛ী ࠺೧ ಁ۞׮੐ ੹ജ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 MVVMח? • ୡӝ ૓ੑ੢߷਷ ࠙ݺ൤ ੓਺
 ӝઓ੄ ѐߊ ѐ֛ী ࠺೧ ಁ۞׮੐ ੹ജ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_47.jpg">MVVMח? • ୡӝ ૓ੑ੢߷਷ ࠙ݺ൤ ੓਺
 ӝઓ੄ ѐߊ ѐ֛ী ࠺೧</a> </h3> ಁ۞׮੐ ੹ജ੉ ೙ਃ. 
 بੑ ୡӝূ যו ੿ب੄ ૓ా਷ хࣻ೧ঠೣ. • View੄ ࢚క ҙܻо ࠂ੟ೠ ҃਋ (== ؀ࠗ࠙੄ ࠂ੟ೠ জ)
 ViewModelীࢲ੄ ୊ܻо ؊ ੗োझۣ׮.
 ௾ ഥࢎীࢲ MVVMਸ ݆੉ٜ ଻ਊೞח ੉ਬ • Android Architecture Component റҟ ബҗ
 LifeCycle - ViewModel - LiveData - Room ઑ೤਷ ৘ઁب ݆׮ • Cross Platform ҳഅী ખ ؊ ਬܻ
 Data Binding, LiveData, Roomਸ ನӝೡ ҃਋, 
 Kotlinਸ Swift۽ ৤ӝח Ѫ݅ਵ۽ب View ੉৻੄ ࣗझ੄ 70% ੉࢚ਸ ੤ࢎਊ оמ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="MVVM - MVP ҕా੄ ੢੼ • ѐߊ ࣘبо ݻ ߓח ࡈۄ૓׮
 (઱੄: ѐੋର ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 MVVM - MVP ҕా੄ ੢੼ • ѐߊ ࣘبо ݻ ߓח ࡈۄ૓׮
 (઱੄: ѐੋର ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_48.jpg">MVVM - MVP ҕా੄ ੢੼ • ѐߊ ࣘبо ݻ ߓח</a> </h3> ࡈۄ૓׮
 (઱੄: ѐੋର ੓਺. ୡӝ 2~3઱р ѐߊ ࣘبח ݻ ߓח ו۰૕ ࣻ ੓਺) • ௏٘ ߸҃ী ؀ೠ ف۰਑੉ (Ѣ੄) হয૓׮. • ٸ۰઱Ҋ र਷ ӝദ੗о әѺೠ ࢎন ߸҃ਸ ਃ୒೧ب ਓਵݶࢲ ؀୊ೡ ࣻ ੓׮ • 1֙ ٍী ׮द ௏٘ܳ ࠊب ૊द য٣ܳ Ҋ୛ঠೞח૑ ঌইରܾ ࣻ ੓׮ • ׮ܲ ূ૑פযীѱ ௏٘ܳ ࠁৈ઻ب ଃ౹ܻ૑ ঋח׮ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <a class="text-muted font-italic" href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_49.jpg">None</a> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="਋৴ƀ ੿݈ જ਷ؘ? ਋ܻب ੉ઁ ҍ गಌ ѐߊ੗ غחѹ? " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ਋৴ƀ ੿݈ જ਷ؘ? ਋ܻب ੉ઁ ҍ गಌ ѐߊ੗ غחѹ? " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_50.jpg">਋৴ƀ ੿݈ જ਷ؘ? ਋ܻب ੉ઁ ҍ गಌ ѐߊ੗ غחѹ?</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Ӓۧѱ ࢤп೮ਵա.. Ӓ۽ࠗఠ ݻ ѐਘ റ.. " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Ӓۧѱ ࢤп೮ਵա.. Ӓ۽ࠗఠ ݻ ѐਘ റ.. " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_51.jpg">Ӓۧѱ ࢤп೮ਵա.. Ӓ۽ࠗఠ ݻ ѐਘ റ..</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <a class="text-muted font-italic" href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_52.jpg">None</a> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="೐۽ં౟ ࢎ੉ૉо ੼੼ ழ૑ݶࢲ.. ௏٘о ӝ؀৬ח ׳ܻ ૑੷࠙೧૑Ҋ ੓׮. ରۄܻ ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ೐۽ં౟ ࢎ੉ૉо ੼੼ ழ૑ݶࢲ.. ௏٘о ӝ؀৬ח ׳ܻ ૑੷࠙೧૑Ҋ ੓׮. ରۄܻ ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_53.jpg">೐۽ં౟ ࢎ੉ૉо ੼੼ ழ૑ݶࢲ.. ௏٘о ӝ؀৬ח ׳ܻ ૑੷࠙೧૑Ҋ ੓׮. ରۄܻ</a> </h3> ށۋਵݶ જওਸ Ѧ.. Ҋ޹݅ ט঻׮. </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Ӓېࢲ ળ࠺೧ࠌणפ׮. " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Ӓېࢲ ળ࠺೧ࠌणפ׮. " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_54.jpg">Ӓېࢲ ળ࠺೧ࠌणפ׮.</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Chapter 4. 
 MVP / MVVM at Scale " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Chapter 4. 
 MVP / MVVM at Scale " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_55.jpg">Chapter 4. 
 MVP / MVVM at Scale</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="1. Fat Presenter • ੉ઁח Presenterо ցޖ ݆ਸ ੌਸ ೠ׮! ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 1. Fat Presenter • ੉ઁח Presenterо ցޖ ݆ਸ ੌਸ ೠ׮! ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_56.jpg">1. Fat Presenter • ੉ઁח Presenterо ցޖ ݆ਸ ੌਸ ೠ׮!</a> </h3> • పझ౟ ா੉झܳ ٜ݅ӝо য۰ਕ઎׮ • ੹ࠁ׮ח Ӓېب ի૑݅.. ৈ੹൤ ௏٘о ૑੷࠙ೞ׮. • ݃஖ Activity Manager э਷ ѱ ೞա טযաӝ݅ ೠ ו՝? • ઱ػ ਗੋ઺ ೞաח Presenterܳ View৬ ݺഛ൤ ܻ࠙ೞ૑ ঋ਷ Ѫ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="೧Ѿ଼ • ௼ѱ Ҋ޹ೞ૑ ঋইب View৬ Presenterܳ ੜޅ ҳഅೞӝ য۵ب۾..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ೧Ѿ଼ • ௼ѱ Ҋ޹ೞ૑ ঋইب View৬ Presenterܳ ੜޅ ҳഅೞӝ য۵ب۾..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_57.jpg">೧Ѿ଼ • ௼ѱ Ҋ޹ೞ૑ ঋইب View৬ Presenterܳ ੜޅ ҳഅೞӝ য۵ب۾</a> </h3> ೞח ੢஖ о ೙ਃ • Viewח ੉߮౟ܳ ߊࢤदఃҊ, UIܳ Ӓ۰઱ח ৉ೡ݅ਸ ׸׼, ࠺ૉפझ ۽૒੉ ա ݽ؛੉ ՙযٜ ࣻ ੓ח ৈ૑ܳ ରױ • Presenterо View੄ ࣁࠗ ࢎ೦ਸ ঌ ࣻ হب۾, Pח Viewܳ ୶࢚ച दఅ ഋక ۽݅ ଵઑೞب۾ ݅ٝ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="• View Interfaceܳ ాೠ ܻ࠙ • Mock Objectܳ ాೠ Unit..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 • View Interfaceܳ ాೠ ܻ࠙ • Mock Objectܳ ాೠ Unit..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_58.jpg">• View Interfaceܳ ాೠ ܻ࠙ • Mock Objectܳ ాೠ Unit</a> </h3> Testо ݒ਋ एਕ૗ • Presenterח ࠺ૉפझ ۽૒ ୊ܻ݅ ׸׼ • Viewח Ӓܻӝ݅ ׸׼ • ؘ੉ఠ੄ ܻ࠙ب ೣԋ ੉ܞ૗: Viewח Modelী ؀೧ ঌ ೙ਃب, ঌ ࣻب হѱ ؽ • ೙ਃೠ ҃਋, Presenterө૑ Interfaceച दఇ MVP: Contractor Pattern </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="• ژ ৉द Martin Fowlerо ੹౵ೠ ѐ֛ • ଵઑ: https://mar..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 • ژ ৉द Martin Fowlerо ੹౵ೠ ѐ֛ • ଵઑ: https://mar..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_59.jpg">• ژ ৉द Martin Fowlerо ੹౵ೠ ѐ֛ • ଵઑ: https://martinfowler.com/eaaDev/PassiveScreen.html</a> </h3> • Fluxীࢲח Dumb Client, Clean Architectureীࢶ Humble ObjectۄҊ ܴࠗ • Viewח (೒ۖಬ ੄ઓ੸ੋ) Ӓܻӝ ੉৻ীח ইޖѪب ঌ ࣻ হب۾ ೣ • ۽Ӓੋ ചݶ੉ۄݶ, അ੤ ࢲߡ ੽ࣘ ઺ੋ૑ ৈࠗ, ۽Ӓੋ ࢿҕ ৈࠗ ١ઑରب View о ݽܰب۾.. -&gt; isLoadingী true ੉߮౟о য়ݶ ಴द, ী۞ ৔৉ী ࡸ۰઴ ޙ ੗о য়ݶ ಴दೡ ࡺ 2. MVVM Best Practice: Passive View </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="• ޥо ੉࢚ೠؘ? • Lighter View, Fatter ViewModel 
 ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 • ޥо ੉࢚ೠؘ? • Lighter View, Fatter ViewModel 
 ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_60.jpg">• ޥо ੉࢚ೠؘ? • Lighter View, Fatter ViewModel 
 -&gt;</a> </h3> Ӓ۞ݶ ViewModel੉ ؊ Ѣ؀೧૑ח ؘ ҡଳ਷о?? • ੄بػ Ѿҗ - MVVM਷ ؊ ա਷ ҳઑ۽ оӝ ਤೠ ઺ਃೠ оҮ
 যۄ? </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="– Nataliya Patsovska “MVVM is not an architectu..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 – Nataliya Patsovska “MVVM is not an architectu..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_61.jpg">– Nataliya Patsovska “MVVM is not an architecture.”</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="3. ࠺ૉפझ ۽૒੄ ࠺؀ച • Presenterա ViewModel੄ بݫੋ ۽૒੉..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 3. ࠺ૉפझ ۽૒੄ ࠺؀ച • Presenterա ViewModel੄ بݫੋ ۽૒੉..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_62.jpg">3. ࠺ૉפझ ۽૒੄ ࠺؀ച • Presenterա ViewModel੄ بݫੋ ۽૒੉, х׼ೡ</a> </h3> ࣻ হח ௼ӝо غח ࢚ട ੉ ৡ׮. • о੢ જ਷ ೧Ѿ଼਷ Single Responsibility Principle੄ ੸ਊ • ݽߧ ׹উ਷ ੉޷ ੓਺: ߄۽ Clean Architecture! • Presenterীࢲ بݫੋ ۽૒ਸ ܻ࠙ оמ • Data ҅க੄ ࣁ࠙ചܳ ా೧ ؊਌ ୶࢚ചػ ഋక੄ ҳઑ оמ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="https://qiita.com/koutalou/items/07a4f9cf51a2d1..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 https://qiita.com/koutalou/items/07a4f9cf51a2d1..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_63.jpg">https://qiita.com/koutalou/items/07a4f9cf51a2d13e4cdc</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="[৘ઁ ௏٘] " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 [৘ઁ ௏٘] " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_64.jpg">[৘ઁ ௏٘]</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <a class="text-muted font-italic" href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_65.jpg">None</a> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="• Clean Architecutre੄ ੢੼: Single Responsibility..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 • Clean Architecutre੄ ੢੼: Single Responsibility..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_66.jpg">• Clean Architecutre੄ ੢੼: Single Responsibility Principle੄ ୽पೠ ׳ࢿ •</a> </h3> Presenter / Domain / Data ҅க੄ ܻ࠙۽ ੋ೧ ੹୓ ۽૒੄ ൒ܴ੉ ੌݾਃো ೧૗ -&gt; оةࢿ ә࢚थ • ౠ੿ ௿ېझо ࠺؀೧૑ח Ѫਸ ߑ૑ • п layerр ҳ࠙੉ ݺഛೞ޲۽, п ৔ೱ ߧਤب ݺഛ • ױ, ௿ېझ ۝੉ әѺ൤ ૐо -&gt; ೠ ߣী ҳഅೞ۰ ೞݶ ѐߊࣘب੄ ੷ೞ৬ ߡӒ ন࢑ਸ ঠӝೡ ࣻب ੓਺ ଵ औભ? </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="• 6ѐ੄ ௿ېझ, 2ѐ੄ ੋఠಕ੉झ.. (3ѐ ࢤۚ) • Incremental I..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 • 6ѐ੄ ௿ېझ, 2ѐ੄ ੋఠಕ੉झ.. (3ѐ ࢤۚ) • Incremental I..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_67.jpg">• 6ѐ੄ ௿ېझ, 2ѐ੄ ੋఠಕ੉झ.. (3ѐ ࢤۚ) • Incremental Improvement</a> </h3> • Clean Architectureী ੊ࣼೞ૑ ঋѢա ࠂ੟ೠ दझమ੄ ࢸ҅ ҃೷੉ হח ҃ ਋, ݽٚ Ѧ ٮۄೡ ೙ਃח হ਺ • ੌױ ೐ܻઃప੉࣌ ۽૒੄ ೤ܻചࠗఠ द੘ • View - ViewModel/Presenter - Repository - Model(Entity) • بݫੋ / ؘ੉ఠ ۽૒਷ ೙ਃ੄ ੄೧ ੼૓੸ਵ۽ ೞח Ѫ੉ ೤ܻ੸ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Google Guide to App Architecture " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Google Guide to App Architecture " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_68.jpg">Google Guide to App Architecture</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Ӓېب.. જӟ ೠؘ.. • ௿ېझо ցޖ ݆׮! • ੹୓੸ੋ ҳઑܳ ы୶ח ؘী ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Ӓېب.. જӟ ೠؘ.. • ௿ېझо ցޖ ݆׮! • ੹୓੸ੋ ҳઑܳ ы୶ח ؘী ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_69.jpg">Ӓېب.. જӟ ೠؘ.. • ௿ېझо ցޖ ݆׮! • ੹୓੸ੋ ҳઑܳ</a> </h3> ы୶ח ؘী ੸૑ ঋ਷ दр੉ ٜযр׮ • Ӓ۞ա જ਷ ߑߨ੉..! • ੉ ݽٚ Ѧ ੗زਵ۽ ٜ݅য ઱ח ೒۞Ӓੋ੉ ੓׮!
 https://github.com/kiuchikeisuke/Android-Studio-CleanArchitecture- template-forKotlin • RxJava, Dagger, Retrofit, AAC, Presenter/ViewModel ௏٘ө૑ ކٶ ݅ ٜয ષ • Swagger ૑ਗਵ۽ REST API call ੋఠಕ੉झب ੗زਵ۽ ٜ݅য ષ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="3. ݻ о૑ դઁٜ.. • ҳઑ੄ ୍೟੸ ޙઁ: Presenter੄ ࠺ૉפझ ۽૒җ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 3. ݻ о૑ դઁٜ.. • ҳઑ੄ ୍೟੸ ޙઁ: Presenter੄ ࠺ૉפझ ۽૒җ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_70.jpg">3. ݻ о૑ դઁٜ.. • ҳઑ੄ ୍೟੸ ޙઁ: Presenter੄ ࠺ૉפझ</a> </h3> ۽૒җ, Use Case੄ ࠺ૉפझ ۽ ૒਷ ؀୓ ޤо ౣܽо? • بݫੋ ۽૒੉ Use Caseী ٜযр׮ • ࢎস ࠗࢲ ࢎۈٜب ঌҊ ੓যঠ ೞח ۽૒੉ۄݶ, بݫੋ ۽૒ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="https://qiita.com/koutalou/items/07a4f9cf51a2d1..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 https://qiita.com/koutalou/items/07a4f9cf51a2d1..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_71.jpg">https://qiita.com/koutalou/items/07a4f9cf51a2d13e4cdc ࠂण</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="RecyclerView in MVP • Presenter۽ ReclyerView - ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 RecyclerView in MVP • Presenter۽ ReclyerView - ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_72.jpg">RecyclerView in MVP • Presenter۽ ReclyerView - Adapterܳ যڌѱ ؀೧ঠೞחоח</a> </h3> ݒ਋ ө׮۽ ਍ ޙઁ.. ੿׹਷ হणפ׮ 1. Activity/Fragmentо (Presenter੄ ݺ۸ਸ ߉ই) Adapterܳ ઁয - ױࣽ ೠ ಁఢ੄ ܻझ౟ীח ബҗ੸. Groupie э਷ ۄ੉࠳۞ܻܳ ࢎਊೞݶ ؊਌ ബҗ੸ 2. Adapter৬ ݒೝغח Presenterܳ ҳഅ 3. ѐ߹ itemҗ пп 1:1 ݒೝغח ੘਷ Presenterܳ ҳഅ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="RecyclerView in MVVM • Presenterী ࠺೧ࢶ ױࣽೠ ޙઁ. D..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 RecyclerView in MVVM • Presenterী ࠺೧ࢶ ױࣽೠ ޙઁ. D..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_73.jpg">RecyclerView in MVVM • Presenterী ࠺೧ࢶ ױࣽೠ ޙઁ. Data bindingਵ۽</a> </h3> Ӓ؀۽ ViewModel োѾ оמ • ࠂ੟ೠ ҃਋о ইפۄݶ Adapterী ViewModel োѾ • ࠂ੟ೞ׮ݶ п Itemҗ ݒೝغח ੘਷ ViewModelਸ ҳഅ • ੉ ҃਋੄ ViewModel਷ Viewܳ ਤ೧ оҕػ Model੉ӝ ٸޙী যڃ ੄޷ী ࢲ ૓੿ೠ ViewModel.. • ઱੄ࢎ೦: AACܳ ੉ਊ೧ small ViewModelਸ ࢤࢿೡ ҃਋, providerী ౵ۄ ޷ఠܳ ߹ب ૑੿೧ঠ ೣ. ରۄܻ ࢚ਤ ViewModel੉ ࢤࢿೞח ѱ ؊ જਸ ࣻ ب ੓਺ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="୭Ӕ ҃೷ • ઑѤ: 6ѐ੄ ݽ߄ੌ ࢲ࠺झ(ب೤ 12ѐ੄ জ)о 100% ৻઱ ѐߊ۽..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 ୭Ӕ ҃೷ • ઑѤ: 6ѐ੄ ݽ߄ੌ ࢲ࠺झ(ب೤ 12ѐ੄ জ)о 100% ৻઱ ѐߊ۽..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_74.jpg">୭Ӕ ҃೷ • ઑѤ: 6ѐ੄ ݽ߄ੌ ࢲ࠺झ(ب೤ 12ѐ੄ জ)о 100%</a> </h3> ৻઱ ѐߊ۽ ҳഅػ জਵ ۽ ࢲ࠺झ غҊ ੓ח ࢚ട • җઁ: 3ѐ ࢲ࠺झ(6ѐ জ)ٜਸ 7ѐਘ ղ۽ ܻ׏঴ • য۰਍ ੼: ࠺ૉפझ ҙ੼ীࢶ জ ҳઑ ѐࢶ਷ ௾ о஖о হ਺. ঱ઁա Ӓۧ٠ ޙઁח ࢜۽਍ ӝמٜਸ ঴݃ա ࡅܲ ࣘب۽ ֍וջ.. • নզ੄ Ѩ: ߬౟թ ѐߊ ઑ૒ - ࣚ਷ ࡅؘܲ.. ଵ ࡅؘܲ.. • নզ੄ Ѩ 2: ঠӔ Ә૑ -&gt; Ҋب۽ ബਯ੸ੋ ੘স ೙ਃ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="әೠ ੌ әೞ૑ ঋ਷ ੌ ઺ਃೠ ੌ ׼ো൤.. न ӝמ ҳഅ ߡӒ ࣻ੿ + জ উ੿..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 әೠ ੌ әೞ૑ ঋ਷ ੌ ઺ਃೠ ੌ ׼ো൤.. न ӝמ ҳഅ ߡӒ ࣻ੿ + জ উ੿..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_75.jpg">әೠ ੌ әೞ૑ ঋ਷ ੌ ઺ਃೠ ੌ ׼ো൤.. न ӝמ</a> </h3> ҳഅ ߡӒ ࣻ੿ + জ উ੿ച Java -&gt; Kotlin ߸ജ ViewModel or Presenter ੹ജ য়ېػ ۄ੉࠳۞ܻ тইఋӝ ઺ਃೞ ૑ ঋ਷ ੌ пઙ ഥ੄ ଵࢳ ੉࢚ೠ ߸ࣻݺ, ݫࣗ٘ݺ ߸҃ ٜৈॳӝ ߸҃ ӝఋ झఋੌ ࣻ੿ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Ѿҗ • 1ߣ૩ ࢲ࠺झ: ߬੉࠺ दఠ জ • ੹ݶ੸ੋ ҳઑ ѐࢶ਷ ӭՔೞѱ ನӝ. ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Ѿҗ • 1ߣ૩ ࢲ࠺झ: ߬੉࠺ दఠ জ • ੹ݶ੸ੋ ҳઑ ѐࢶ਷ ӭՔೞѱ ನӝ. ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_76.jpg">Ѿҗ • 1ߣ૩ ࢲ࠺झ: ߬੉࠺ दఠ জ • ੹ݶ੸ੋ ҳઑ</a> </h3> ѐࢶ਷ ӭՔೞѱ ನӝ. ब૑য iOSח ӝઓ ҳઑܳ ৮੹൤ ਬ૑ೠ ଻۽ नӝ מ݅ ୶о೮਺. Rx ࢎਊب ನӝ. ؀न API Callback ୊ܻܳ ӭՔೞѱ ೡ ࣻ ੓ח ҕా ௿ ېझ ҳഅ೧ࢲ উ੿ࢿ/ࢤ࢑ࢿਸ ੤Ҋ • উ٘۽੉٘ח о੢ ઺ਃೠ ࣁ ѐ੄ Fragment݅ MVP۽ ࣻ੿. աݠ૑ח नӏ ചݶ݅ MVP۽ ҳഅ • ݽٚ ࣗझܳ Kotlinਵ۽ ੗ز߸ജਸ ੉ਊ೧ࢲ ߸ജೞغ, ੌࠗ ޙઁ ࣗ૑੓ח ௏٘(Non- null ୊ܻ)ܳ ઁ৻ೞҌ ۨѢद ௏٘ܳ ޖܻೞѱ Kotlinझ۞਍ ௏٘۽ Ҋ஖۰Ҋ ೞ૑ח ঋ਺ • AAC੄ Life Cycle ӝמਸ ੉ਊೞӝ ਤ೧ ViewModelਸ ࢚ࣘ ߉ই Presenter ҳഅ • 7 to 9 principle ࣁ਑. য়റ 7~9दী݅ restructuring / refactoring ੘স </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Ѿҗ • 1ߣ૩ ࢲ࠺झ: ߬੉࠺ दఠ জ (҅ࣘ) • ӝઓ੄ Challengingೠ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Ѿҗ • 1ߣ૩ ࢲ࠺झ: ߬੉࠺ दఠ জ (҅ࣘ) • ӝઓ੄ Challengingೠ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_77.jpg">Ѿҗ • 1ߣ૩ ࢲ࠺झ: ߬੉࠺ दఠ জ (҅ࣘ) • ӝઓ੄</a> </h3> Challengingೠ ੌ੿ਸ, ޖ۰ 3઱ੌ ױ୷೧ࢲ োղ ܾܻૉ ࢿҕ • ѱ׮о ୹दܳ ੉ౣ খفҊ CPO۽ࠗఠ ц੘झۣѱ ޷оੑ ࢎਊ੗ܳ ਤೠ ѱझ ౟ ݽ٘ܳ ٜ݅য ׳ۄח ਃ୒ਸ ߉਺
 -&gt; ਗې ഥਗ ੹ਊਵ۽݅ ٣੗ੋ غ঻؍ জ੉ۄ ࢚׼ೠ ؀ҕࢎ৓ਵա.. 1ੌ݅ী ؀ ਽ ৮ܐ (ҳഅ 3दр, ٣ߡӦ/৘৻ࢎ೦ ୊ܻ 5दр) </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="Ѿҗ • 2ߣ૩ ࢲ࠺झ: ׏झ জ • উ٘۽੉٘, iOS ݽف MVVM ੸ਊ • ..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 Ѿҗ • 2ߣ૩ ࢲ࠺झ: ׏झ জ • উ٘۽੉٘, iOS ݽف MVVM ੸ਊ • ..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_78.jpg">Ѿҗ • 2ߣ૩ ࢲ࠺झ: ׏झ জ • উ٘۽੉٘, iOS ݽف</a> </h3> MVVM ੸ਊ • ೒ۖಬ ઺݀ࢿਸ ਤ೧ RxJava/RxSwift - Realm ࢎਊ, Data Binding਷ ࢎਊೞ ૑ ঋ਺ • ଵҊ: 4 Reasons I’m not Using Android Data Binding
 https://medium.com/@Miqubel/4-reasons-im-not-using-android-data- binding-e62127c2650c (੷ח ݽف ز੄ೞ૑ח ঋणפ׮݅..) • 3ߣ૩ ࢲ࠺झ: ҳੋ/ҳ૒ জ • ੉ઃ ҕ੢ ݽ٘: 2ߣ૩ীࢲ ݅ٚ ҳઑܳ Ӓ؀۽ ੤ഝਊ೧ࢲ ନযղҊ ੓਺ </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="хࢎ೤פ׮! " title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 хࢎ೤פ׮! " href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_79.jpg">хࢎ೤פ׮!</a> </h3> </div> </li> <li class="mb-2"> <div class="slide-transcript"> <h3 class="fs-6 fw-normal"> <a alt="• ੹ਗ झணۄ ӝ߈ ಽ झఖ ূ૑פয • ઑѤ • ҃۱, ೟۱ ޖҙ • ߔূ٘..." title="내가 안드로이드 개발자가 되었을 때 아무도 알려주지 않은 것들(+MVP / MVVM 이야기) - DroidKnight 2018 • ੹ਗ झணۄ ӝ߈ ಽ झఖ ূ૑פয • ઑѤ • ҃۱, ೟۱ ޖҙ • ߔূ٘..." href="https://files.speakerdeck.com/presentations/a171429260e6490499d5a35f264c9d41/slide_80.jpg">• ੹ਗ झணۄ ӝ߈ ಽ झఖ ূ૑פয • ઑѤ •</a> </h3> ҃۱, ೟۱ ޖҙ • ߔূ٘/ݽ߄ੌ/೐ۿ౟ূ٘ ١ ࠙ঠ ޖҙ • ୡ١೟Ү 3೟֙ ࣻળ੄ ੌࠄয • ࠙ঠ, ѐߊ঱যח оܻ૑ ঋ਺: 
 о੢ ੗न ੓ח ঱য੄ ௏٬ प۱݅ ࠆ
 (য়೑࠘ ௏٬ పझ౟ ੓਺) • ઁѱ ੉ݫੌ۽ CV ઱दݶ ࢚׸೧٘݀פ׮. Nextbeatח ҳੋ઺! • ठۄ੉٘ ݂௼:
 https://speakerdeck.com/saryong/ mvvm-iyagi-droidknight-2018 • ࠶۽Ӓ ݂௼ (5/5):
 https://medium.com/@justfaceit • Email:
 <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5c36292f283a3d3f3935281c3b313d3530723f3331">[email&#160;protected]</a> </div> </li> </ol> </div> </div> <footer class="d-block bg-black sd-footer"> <img alt="" class="footer-logo-bg" loading="lazy" src="https://d1eu30co0ohy4w.cloudfront.net/assets/mark-f4be6df1e05965cac9f98e664a6c35f5ffdd0207385d07464a9214d6cdf76082.svg" /> <div class="container position-relative"> <div class="row py-3 py-md-5 justify-content-lg-between"> <div class="col-12 col-md-4 col-lg-3 text-center mb-2"> <a href="/"> <img alt="Speaker Deck" class="footer-logo mb-2" loading="lazy" src="https://d1eu30co0ohy4w.cloudfront.net/assets/mark-f4be6df1e05965cac9f98e664a6c35f5ffdd0207385d07464a9214d6cdf76082.svg" width="70" height="44" /> <p class="speaker-deck">SpeakerDeck</p> </a> <a class="footer-icon mx-1" title="SpeakerDeck on Facebook" href="https://www.facebook.com/speakerdeck"><svg class="icon icon-facebook "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-facebook"></use></svg></a> <a class="footer-icon mx-1" title="SpeakerDeck on Twitter" href="https://twitter.com/speakerdeck"><svg class="icon icon-twitter "><use xlink:href="/icons/icons.svg?v=2024-03-03#icon-twitter"></use></svg></a> </div> <div class="col-12 col-md-4 col-lg-auto py-2"> <nav aria-label="Top Categories"> <h2>Top Categories</h2> <ul class="nav-footer"> <li><a href="/c/programming">Programming</a></li> <li><a href="/c/technology">Technology</a></li> <li class="mb-3"><a href="/c/storyboards">Storyboards</a></li> <li><a href="/p/featured">Featured decks</a></li> <li><a href="/s/featured">Featured speakers</a></li> </ul> </nav> </div> <div class="col-12 col-md-4 col-lg-auto py-2"> <nav aria-label="Legal"> <h2>Use Cases</h2> <ul class="nav-footer"> <li><a href="/pro/storyboard-artists">Storyboard Artists</a></li> <li><a href="/educators">Educators</a></li> <li><a href="/student-pricing">Students</a></li> </ul> </nav> </div> <div class="col-12 col-md-4 col-lg-auto offset-md-4 offset-lg-0 py-2"> <nav aria-label="Resources"> <h2>Resources</h2> <ul class="nav-footer"> <li><a href="https://help.speakerdeck.com/">Help Center</a></li> <li><a href="https://blog.speakerdeck.com/">Blog</a></li> <li><a href="/slideshare-alternative">Compare Speaker Deck</a></li> <li><a href="/advertising">Advertising</a></li> </ul> </nav> </div> <div class="col-12 col-md-4 col-lg-auto py-2"> <nav aria-label="Features"> <h2>Features</h2> <ul class="nav-footer"> <li><a href="/features/privacy-controls">Private URLs</a></li> <li><a href="/features/password-protection">Password Protection</a></li> <li><a href="/features/custom-urls">Custom URLS</a></li> <li><a href="/features/scheduled-publishing">Scheduled publishing</a></li> <li><a href="/features/remove-branding">Remove Branding</a></li> <li><a href="/features/restrict-embedding">Restrict embedding</a></li> <li><a href="/features/slide-notes">Notes</a></li> </ul> </nav> </div> </div> <div class="row text-center border-top"> <div class="col-12 py-3"> <p class="copyright-text mb-1">Copyright &copy; 2024 Speaker Deck, LLC.</p> <p class="mb-1">All slide content and descriptions are owned by their creators.</p> <ul class="list-inline"> <li class="list-inline-item"><a href="/about">About</a></li> <li class="list-inline-item"><a href="/tos">Terms</a></li> <li class="list-inline-item"><a href="/privacy">Privacy</a></li> <li class="list-inline-item"><a href="/dmca">DMCA</a></li> <li class="list-inline-item"><a href="/accessibility">Accessibility Statement</a></li> </ul> </div> </div> </div> </footer> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://d1eu30co0ohy4w.cloudfront.net/assets/stats-985244a1810e3ad665b3.js"></script> <script data-turbolinks-eval="false"> Stats.host = 'speakerdeck.com'; </script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-8WD0LC0MP9"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-8WD0LC0MP9'); </script> <script> !function(f,b,e,v,n,t,s) { if(f.fbq) return; n=f.fbq=function() { n.callMethod? n.callMethod.apply(n,arguments) : n.queue.push(arguments) }; if(!f._fbq) f._fbq=n; n.push=n; n.loaded=!0; n.version='2.0'; n.queue=[]; t=b.createElement(e); t.async=!0; t.src=v; s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s) }(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '2893765844191276'); fbq('track', 'PageView'); </script> <noscript> <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=2893765844191276&ev=PageView&noscript=1" /> </noscript> <script async type="text/javascript" src="https://platform.twitter.com/widgets.js"></script> <script> Array.from(document.querySelectorAll('.facebook-share')).forEach((element) => { element.addEventListener('click', function(e){ e.preventDefault() let title = encodeURIComponent(document.title) let url = encodeURIComponent(document.location.href) window.open('https://www.facebook.com/dialog/share?app_id=1428152667543587&display=popup&href=' + url + '&title=' + title, "_blank", "toolbar=no,menubar=no,location=yes,resizable=yes,scrollbars=yes,status=yes,width=600,height=400,modal=yes,alwaysRaised=yes"); }, false) }) </script> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8ebc96a61c7e5f8a',t:'MTczMzE1NTg0MS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10