버그 잡이

[udacity android with kotlin] 1.build your first app #namesapce #gradle #android compatibility 본문

모던 안드로이드/Udacity Android with kotlin

[udacity android with kotlin] 1.build your first app #namesapce #gradle #android compatibility

버그잡이 2020. 4. 8. 21:23

udacity android with kotlin 강의 수강을 시작했다.

강의의 소개 문구를 보면 다음과 같다.

 

The course gives you hands on experience as you build real Android apps using industry best practices, with modern app architecture. 

 

"실제 산업에서 사용되는 방식과 모던 아키텍처를 활용하여 앱을 개발하는 방법을 알려준다."

 

 

지금까지는 자바로 앱을 개발했고, 코드도 블로거들의 코드, 설계는 없다시피 했다.

진짜 사용할 수 있는 코드, 모던한 설계의 앱을 만들 수 있도록 강의를 열심히 수강해야겠다.

 

 

그 첫번째로 "1. Build your first app" 이다.

 

말 그대로 andrroid studio 설치부터 간단한 앱을 처음으로 빌드해보는 것까지의 개괄적인 과정이다.

이 부분은 다 보지는 않고 내가 부족하다고 생각되는 개념 위주로 살펴봤다.

잘 모르고 넘어갔던 키워드 중심으로 정리하겠다.

 

 

 

 

1. NameSpace

- 위와 같이 android, app, tools로 정의된 것이 namespace이다.

  • android : 기본적인 안드로이드 속성을 지정할때
  • app : 라이브러리나 커스텀 위젯들의 속성을 지정할때
  • tools : android studio에만 적용됨(실제 앱에는 반영되지 않음)

 

 "tools 네임스페이스는 왜 사용할까?"

 

-android: text 속성과 tools: text 속성이 있다고 가정하자.

-전자는 앱 구동시 화면에 반영되지만 후자는 반영되지 않는다.

-그런데 앱 구동시 동적으로 text 값을 바꿔야 하는 경우가 있다. 이때는 text에 특정 값이 미리 들어가 있다면 바뀌기 전까지 앱에 노출되어 부적절한 정보를 표시하게 되는 것이다.(레트로핏으로 값을 받아 출력하는 경우 값을 받기 전까지 dummy 데이터가 들어가 있는 상황이다.)

-이런 경우 tools:text를 활용하면 미리보기에만 텍스트가 뜨도록 설정할 수 있다.

 

https://dreamaz.tistory.com/229

 

 

 

 

 

2. Gradle

 

- build tool(배포 도구)이다.

 

- android studio는 코드 편집만 담당할 뿐, 빌드는 gradle을 통해서 모두 수행한다.

   *빌드를 한다? -> Apk 파일을 추출한다. -> Apk 파일을 추출해서 사용자가 device에서 사용할 수 있는 형태로 만들어준다.

 

-

위와 같은 기능을 수행한다.

 

- 위와 같이 다양한 역할을 수행하지만 두 가지만 기억한다면

 

  1) 라이브러리 관리

      - 기존 jar 파일을 추가하는 것보다 훨씬 편리하다.

 

 

  2) 배포 관련 정보

     applicationId : 앱의 식별자로 이와 동일한 시별자가 앱 스토어에 있을 경우 오류가 날 수 있다. 중복을 피하자

     minSdkVersion : Api의 최소 버전이다. 이 버전에 부합하지 않으면 해당 기기에서는 앱이 제대로 작동하지 않는다.

     versionCode : 앱 업데이트시 버전을 여기서 최신화 해준다.

 

 

 

 

3. Android Compatibility

 

- 기기의 API 레벨에 따라 앱의 기능 동작이 안 될수도 있다.

- 이러한 호환성을 신경 쓰는 것도 안드로이드 개발자의 과업 중 하나이다.

- 물론 코드를 짤 때 레벨별로 예외처리를 해주면 문제는 없지만 쉽지 않다.

-> 적정한 수준의 api레벨을 선택하고 필요시 예외처리를 해주는 전략을 가지자.

 

 

 

 

 

 

반응형
Comments