본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] 최고의 안드로이드 개발 원칙

by 돼지왕 왕돼지 2018. 3. 7.
반응형

[android] 최고의 안드로이드 개발 원칙


https://medium.freecodecamp.com/android-development-best-practices-83c94b027fd3#.fkhdpa3m0

activity lifecycle, android architecture, android dependency, android instrumentation, android networking library, apk size, best android development practice, bitmap, build time, Bundle, code quality, Deep, drawable folder, FB, file operation, fragment, functional ui test, google, Hierarchy, intent, Interaction, Java, jvm, launcher icon, layout, layout attribute, layout hierarchy, layout 분리, Memory, mip-map, mipmap, mockito, OOM, os version, Parcelable, Performance, proguard, Reflection, release version, Retrofit, roboletric, selector, Serializable, Shape, stetho, string.xml, style, test, UI Thread, uiautomator, unit test, volley, [android] 최고의 안드로이드 개발 원칙, 검증된 libary, 더 좋은 성능의 코드, 디버깅 툴, 성능, 속도, 안드로이드 개발 원칙, 재사용 ui element, 코드 퀄리티

cf) 현재 제가 잘 못 하고 있는 것을 빨간 색 마킹 했습니다. ( 결론은 test 군요.. )


-

Google 이 추천하는 Android architecture 를 사용하라.



-

코드 퀄리티를 항상 좋게 유지하라.



-

Unit test 를 항상 포함하라.

    JVM 에서 돌 수 있는 Java 코드들은 단말 위에서 테스트하는 것보다 훨씬 빠르다.

    Android dependency 가 있는 코드들은 Robolectric 을 사용하는 것을 추천한다. Mockito 도 좋다.



-

Functional UI test 를 항상 포함하라.

    다른 앱과의 Interaction 이 없다면 Android Instrumentation 이 좋고,

    다른 앱과의 Interaction 이 있으면 UIAutomator 가 좋다.



-

더 좋은 성능의 코드를 만들도록 항상 노력해라.



-

release version 에는 Proguard 를 이용하라.



-

디버깅 툴을 이용하라.

    FB 에서 만든 Stetho 를 이용하면 편하다.



-

string.xml 을 이용하라.



-

재사용되는 UI element 들은 layout 을 분리하라.



-

Launcher icon 은 mip-map folder 에 위치시켜라.

    drawble folder 에 있는 이미지들은 build time 에 약간 변형된다.

    그래서 launcher icon 이 약간 뿌옇게 보일 수 있는데, mipmap folder 에 있는 것들은 변형이 일어나지 않는다.



-

shape 와 selector 를 이미지 대신 가급적 많이 이용하라.

    APK size 를 줄일 수 있다.



-

Layout 의 hierarchy 를 deep 하지 않게 유지하라.



-

Volley, Retrofit 등의 빠른 android networking library 를 사용하라.



-

Intent 와 Bundle 등에 data 를 전달할 때 Serializable 대신 Parcelable 을 사용하라.

    Parcelable 이 훨씬 빠르다. Serializable 이 느린 이유는 reflection 을 사용하기 때문.

    그리고 Parcelable 은 원하는 것만 parceling 할 수 있다.



-

File operation 은 UI Thread 가 아닌 곳에서 수행하라.



-

Bitmap 을 이해하라.

    Bitmap 은 많은 memory 를 사용하며, OOM 을 쉽게 발생시킨다는 것을 잘 이해하고 써야 한다.

    


-

중복되는 layout attribute 설정을 방지하기 위해 style 을 사용하라.



-

필요하다면 Fragment 를 사용하라.



-

Activity lifecycle 을 잘 이해하라.



-

너의 solution 보다는 검증된 library 를 가져다 사용하라.



-

다양한 OS version 에 대해 지속적으로 test 하라.




반응형

댓글