지구는 23시간 56분 4.091초 주기로 자전
지구는 태양을 365.2564 태양일 주기로 공전
 
UTC(협정 세계시; 프랑스어: Temps Universel Coordonné, 영어: Coordinated Universal Time)
 : 국제원자시와 윤초 보정을 기반으로 표준화된 국제 표준시

GMT(그리니치 평균시; Greenwich Mean Time)
 : 런던을 기점, 웰링턴을 종점으로 하는 협정 세계시의 빠른 시간

 

UTC는 세슘 원자의 진동 수를 기반으로 계산한다.

GMT는 지구 자전을 이용해 측정하고 지구의 자전이 늦어져 덜 정확하다.

 

TimeZone(시간대)

 :  영국의 그리니치 천문대를 기준으로 지역에 따른 시간의 차이, 다시 말해 지구의 자전에 따른 지역 사이에 생기는 낮과 밤의 차이를 인위적으로 조정하기 위해 고안된 시간의 구분선을 일컫는다.

 

 

DST(Daylight saving time; 서머타임 summer time)

 : 하절기에 표준시를 원래 시간보다 한 시간 앞 당긴 시간을 쓰는 것

실제 낮 시간과 사람들이 활동하는 낮 시간 사이의 격차를 줄이기 위해 사용한다.

ex) 09:00~18:00(DST 적용 시간) -> 08:00~17:00(실제 시간)

 

 

 

 


KOTLIN 코드, JAVA 라이브러리

 

val FORMAT_DATE = "yyyy-MM-dd HH:mm:ss"
val FORMAT_UTC = "yyyy-MM-dd'T'HH:mm:ssXXX"

private fun getLocalTime(
    locale: Locale = Locale.getDefault(),
    timeZone: TimeZone = TimeZone.getDefault()
): String {
    val date = Date()
    val simpleDateFormat = SimpleDateFormat(FORMAT_DATE, locale).apply {
        this.timeZone = timeZone
    }

    return simpleDateFormat.format(date)
}

private fun getUTCTime(
    locale: Locale = Locale.getDefault(),
    timeZone: TimeZone = TimeZone.getTimeZone("UTC")
): String {
    val date = Date()
    val simpleDateFormat = SimpleDateFormat(FORMAT_UTC, locale).apply {
        this.timeZone = timeZone
    }

    return simpleDateFormat.format(date)
}
    println(getLocalTime())
    println(getUTCTime())
    println(getLocalTime(timeZone = TimeZone.getTimeZone("America/New_York")))
    println(getUTCTime(timeZone = TimeZone.getTimeZone("America/New_York")))

 

결과 :

2020-01-05 16:08:58
2020-01-05T07:08:58Z
2020-01-05 02:08:58
2020-01-05T02:08:58-05:00

 

DST가 자동 적용되는지 확인 필요

 

 

 

 

'Common' 카테고리의 다른 글

PorterDuff  (0) 2020.08.18
암호화와 해시  (0) 2020.06.19
Git 기본 명령어  (0) 2019.08.19
Android Studio/IntelliJ 단축키 (Window)  (0) 2019.08.17

개발 포스팅은 언제나 유통기한에 주의하세요

 

 

DPI(Dot Per Inch)

 : 1인치당 점(pixel)의 개수

 

ldpi : 120dpi
mdpi : 160dpi
hdpi : 240dpi
xhdpi : 320dpi
xxhdpi : 480dpi
xxxhdpi : 640dpi

 

아래로 갈수록 인치에 들어가는 픽셀의 수가 높다.

즉 고화질을 의미한다.

 

 

여기서 생기는 문제점이 이미지를 px 단위로 가운데 놓았을 때

스마트폰이 점점 발전하여 dpi가 올라간다면

 

 

 

와 같이 동일한 크기를 표현하지 못하게 된다.

 

 

 

 

이를 해결하기 위해서 DP 개념이 존재한다.

 

 

 

 

DP(Device Independence Pixel)

 : 디바이스 독립 픽셀

다양한 DPI에 맞게 변환될 추상 픽셀이라고 하는 거 같습니다.

 

mdpi를 기준으로

DPI가 커질수록 픽셀 값을 비례로 늘려 언제나 같은 크기를 보여주게 됩니다.

 

ldpi : 120dpi   1dp = 0.75px
mdpi : 160dpi(default)   1dp = 1px
hdpi : 240dpi   1dp = 1.5px
xhdpi : 320dpi   1dp = 2px
xxhdpi : 480dpi   1dp = 3px
xxxhdpi : 640dpi   1dp = 4px

 

 

 

 

 

그렇다면 이제 DP를 사용하면 끝인가?

모든 스마트폰에 같은 레이아웃을 사용하면 될까?

 

아니다. 스마트폰마다 다른 DP를 가지고 있기 때문에

태블릿이 아닌 스마트폰만을 위해 개발하더라도 DP에 따른 레이아웃을 만들어야 한다. 

 

 

 

 

 

스마트폰 별 DP

 

레이아웃을 만들 때

세로의 경우 내용이 많은 경우 스크롤이 가능하게 만들기 때문에

가로에 대해서 집중하게 되는 것 같다.

 

세로의 경우에도 고정 DP와 가변적인 부분을 가지게 만든다면 아무런 문제가 없다.

 

하지만 모든 레이아웃에 디자이너 혹은 개발자가 가변적인 부분을 고려하는 것은

쉽지만은 않은 작업이라고 생각한다.

 

그렇기 때문에 다수의 폰이 가지고 있는 넓이인 360dp로 작업을 하고 예외적인 폰에 대응하는 것이 좋아 보인다.

 

 

 

예시로

 

갤럭시 S3(xhdpi) 9:16

720 x 1280

360dp x 640dp

 

갤럭시 S5(xxhdpi) 9:16

1080 × 1920

360dp x 640dp

 

갤럭시 S6(xxxhdpi) 9:16

1440 x 2560

360 x 640dp

 

갤럭시 S1(hdpi) 3:5

480 × 800

320dp x 533dp

 

넥서스4(xhdpi) 3:5

768 x 1280

364dp x 640dp

 

와 같은 스펙들을 가지고 있다

 

옛날 폰들이지만 갤S1과 넥서스4의 경우

360dp에 맞게 고정DP로만 레이아웃을 작성한다면

의도하지 않은 화면을 보여주게 될 것이다.

 

 

 

 

이 곳에 가면 스마트폰 별 해상도를 확인할 수 있다.

https://zetawiki.com/wiki/%EC%8A%A4%EB%A7%88%ED%8A%B8%ED%8F%B0_%ED%95%B4%EC%83%81%EB%8F%84,_%ED%99%94%EB%A9%B4%EB%B9%84%EC%9C%A8

 

스마트폰 해상도, 화면비율 - 제타위키

9:16 ★★★ 1440 × 2560(갤6, 갤7, 갤노4, 갤노5, G3, G4, G5, 픽셀XL)1080 × 1920(갤4, 갤5, 갤노3, 옵G프로, G2, 넥5, 아이폰6, 픽셀)

zetawiki.com

 

물론 저 또한 예외적인 레이아웃에 대해 처리해본 적이 없지만

아래 링크에 포스팅에 이와 관련한 내용을 가지고 있으니 참고하시면 좋을 것 같네요.

https://re-build.tistory.com/34

 

[Android] 해상도별 레이아웃 대응에 대한 고찰

이번에는 여러가지 해상도를 가진 기기에 어떻게 하면 손쉽고 편하게 대응이 가능할 지에 대한 개인적인 고찰을 해보려 합니다. 혹시 더 좋은 방법을 아시는 분이나 아이디어가 있으신 분은 댓글로 알려주신다면..

re-build.tistory.com

 

'창고' 카테고리의 다른 글

internal_storage  (0) 2020.02.26
permission  (0) 2020.02.26
프로그래밍 용어 정리  (0) 2019.05.27
xml로 도형 그리기  (0) 2019.05.26
2019 드로이드 나이츠  (0) 2019.04.26

Android 10

https://developer.android.com/about/versions/10

 

Android 개발자  |  Android Developers

Android 10용으로 앱을 준비하세요!

developer.android.com

 

 


개인정보 보호

https://developer.android.com/about/versions/10/privacy

 

Android 개발자  |  Android Developers

개인정보 및 민감한 정보에 신중하게 액세스하고 사용자가 앱에 저장된 데이터를 직접 관리하고 투명하게 확인할 수 있도록 하여 사용자를 안전하게 보호합니다.

developer.android.com

 

 

 

 


동작 변경사항

https://developer.android.com/about/versions/10/behavior-changes-all

 

동작 변경사항: 모든 앱  |  Android 개발자  |  Android Developers

Android 10에는 앱에 영향을 줄 수 있는 동작 변경사항이 포함되어 있습니다. 이 문서에 나열된 변경사항은 앱의 targetSdkVersion에 관계없이 Android 10에서 실행될 때 앱에 적용됩니다. 이러한 변경사항을 적절히 지원하려면 앱을 테스트하고 필요에 따라 수정해야 합니다. 앱의 targetSdkVersion이 29 이상인 경우 추가 변경사항을 지원해야 합니다. 자세한 내용은 29를 타겟팅하는 앱의 동작 변경사항을 참조하세요. 참고: 이

developer.android.com

 

 

 

 


새로운 기능 및 API

https://developer.android.com/about/versions/10/highlights

 

개발자용 Android 10  |  Android 개발자  |  Android Developers

Android 10은 세 가지 중요한 테마를 중심으로 구축되었습니다. 첫째, Android 10은 고급 머신러닝과 폴더블 및 5G 스마트폰 등 새로운 기기 지원으로 모바일 혁신의 첨단을 구축하고 있습니다. 둘째, Android 10은 사용자에게 더욱 강화된 보호, 투명성 및 제어를 가능하게 하는 50가지에 달하는 기능으로 개인정보 보호 및 보안에 집중합니다. 마지막으로, Android 10은 개인과 가족이 기술과 더 나은 균형을 찾을 수 있도록 사용자의

developer.android.com

 

 

 

 

'Android > Version' 카테고리의 다른 글

Android 11 beta  (0) 2020.06.22
Pie_파이  (0) 2018.06.07
Oreo_오레오  (0) 2018.06.06
Nougat_누가  (0) 2018.06.06
Marshmallow_마시멜로  (0) 2018.06.06

+ Recent posts