Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Initiatives to Improve Code Integrity to Contin...

Initiatives to Improve Code Integrity to Continue Providing New Value -Yahoo! JAPAN Weather App

OHMAE Ryosuke (Yahoo! JAPAN / Development Division 1, Media Services Group, Media Group / Android App Engineer)

https://tech-verse.me/ja/sessions/142
https://tech-verse.me/en/sessions/142
https://tech-verse.me/ko/sessions/142

Tech-Verse2022

November 18, 2022
Tweet

More Decks by Tech-Verse2022

Other Decks in Technology

Transcript

  1. OHMAE Ryosuke Development Division 1, Media Services Group, Media Group,

    Yahoo! JAPAN Initiatives to Improve Code Integrity to Continue Providing New Value - Yahoo! JAPAN Weather App -
  2. Material Design Jetpack AppCompat Button Toolbar Elevation Dialog Typography Shadow

    Layout ProgressBar TextView ColorSystem Shape Theme Style Mode Icon ConstraintLayo CoordinatorLayout
  3. Healthy specifications and design lAssertively introducing design guidelines and libraries

    and learning how to use them appropriately lAchieving a high level of completeness with straightforward implementation and strong OS compatibility lWe share specification and design intent, and our engineers propose specifications with strong OS compatibility
  4. Technical debt has an overall effect l Wrong abstruction /

    commonization l BaseActivity l BaseFragment Proper scoping is essential Implementing everything in a single package 写真:アフロ
  5. Lifecycle and threads Understand the lifecycle and treat it appropriately

    Rotating the screen regenerates the instance Status handover Callback reconnection Handle threads properly Only the main thread can control the UI No network access allowed on the main thread onCreate() onStart() onResume() onPause() onStop() onDestroy() Activity launched Activity running Activity shutdown
  6. Wide range of support Android 13 API 33 Android 12L

    API 32 Android 12 API 31 Android 11 API 30 Android 10 API 29 Android 9 API 28 Android 8.1 API 27 Android 8 API 26 Android 7.1 API 25 Android 7 API 24
  7. Use what is available Actively introduce existing systems such as

    OSS and maintain a modern development environment RxJava Kotlin RxKotlin Retrofit OkHttp Room ViewModel LiveData Jetpack Material components Lottie Firebase
  8. Kotlin lGoogle I/O 2017 Official support lGoogle I/O 2019 Kotlin-first

    lSecure code lDistinguishes Nullable/NonNull lExpressive and concise description lExtensive standard library
  9. Architecture l Strategies for how to organize modules l We

    don't have to think about them each time l Can be made by imitation lLimits the scope naturally l Does not fall into local optimums
  10. Use what is available + Fit into the mold lAvoid

    to do difficult things lTotal optimum instead of local optimum lSparing no effort to make things easy lAdding up lots of "betters" instead of a one-time "best"
  11. App specifications placed outside the app continue to affect the

    app even if the process disappears from the app
  12. Users who do not update lOutdated information remains in the

    market lSupport cannot be easily cut off The problem becomes more complex
  13. Sorting out puzzling specifications lIs it being used? lEstablishment of

    overall consistency lAwareness of the end Past
  14. Gradually suppressing the impact lSupport for both & penetration of

    migration processing lAllowing for temporary waste lEnd of support lSupport limit: 2 years Current
  15. Do not bring external specification s inside lExternal specifications are

    absorbed in the outer-most portion of the application lSeparate from internal specifications lArchitecture Current
  16. Specifications that do not result in future technical debt l

    Preparing for migration l What we are making now will definitely become obsolete someday l Proposing specifications that do not leave debts to the future l Will anyone in the future be able to maintain it? Future
  17. To maintain code health l Identifying unnecessary specification l Tenacious

    migration over a long span of time l Looking to the future and considering specifications that will not cause technical debt
  18. Summary Specifications and design Proposing healthy specifications to maintain healthy

    code Framework and code design Sparing no effort to make things easy App lifespan Clean the slate and create specifications that do not cause future debt