지구는 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

 

찾아보고 참조하거나 제가 이해하는데로 짧게 정리했습니다

명확한 이해를 위해 추가로 더 찾아보세요

틀린 부분이 있으면 바로 잡아주셔도 좋아요

 


 

라이브러리

 : 자주 사용하고 공통되게 사용할 수 있는 기능들을 묶은 것

 

API(Application Programming Interface)

 : 프로그램을 작성하기 위한 일련의 부 프로그램, 프로토콜 등을 정의하여 상호 작용을 하기 위한 인터페이스 사양

ex) JAVA API, 구글 지도API, 날씨 정보 API, 거래소 API

 

프레임워크

 : 프로그래밍에 집중하도록 기본적인 기능을 제공하는 환경

ex) Spring, Django, Bootstrap, .Net Framework

 

모듈

 :  한 프로그램의 일부분

 

패키지

 : 폴더

ex) ui.main 패키지 안에 메인 화면에 관련된 프로그래밍 파일들이 존재한다

 

아키텍쳐

 : 프로그램에 대한 설계

고객의 현재의 요구사항과 미래의 요구사항을 모두 충족시킬수 있도록 고려하여 설계해야 함

 

플랫폼

 : 프로그램이 실행되는 환경

ex) Windows, Linux, macOS, 앱스토어, 구글플레이

 

컴포넌트

 : 교체되어도 원활하게 동작할 수 있도록 설계한 소프트웨어 부품

ex) 안드로이드 4대 컴포넌트(Service, Intent, Broadcast Receiver, Content Provider)

는 교체되어도 되나? 그냥 객체화가 잘되어 있는 클래스를 뜻하는 건가?

 

IDE(Integrated Development Environment)

ex) AndroidStudio, Eclipse, Xcode

 

SDK(Software Development Kit)

 : 개발 도구의 집합

 

ANR(Application Not Responding)

 : Android의 main thread를 너무 오래 사용해 UI에 대한 처리를 못하는 경우 발생

 

디자인 패턴

 : 설계를 할 때 자주 발생하는 문제를 피하기 위한 패턴

ex) MVC, MVP, MVVM, Repository, DI, Observer

 

애자일

 : 아무런 계획이 없는 개발 방법과 지나치케 계획이 많은 개발 방법들 사이에서 타협접을 찾고자 하는 개발 방법론

 

TDD(Test Driven Development)

 : 요구사항을 검증하는 자동화된 테스트 케이스를 작성하고 이를 통과하기 위한 최소한의 코드를 생성

작성한 코드를 표준에 맞게 리팩토링한다.

 

CI(Continuos Integration)

 : 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리파지토리에 병합하여 안정적인 개발을 돕는 자동화 프로세스

 

CD(Continuos Delivery)

 : 애플리케이션을 실시간 프로덕션 환경에 적용할 수 있도록 하는 자동화 프로세스

 

DI(Dependency Injection)

 : 외부에서 의존 객체를 생성하여 넘겨주는 것

 

보일러 플레이트 코드

 : 꼭 필요한 기능이지만 코드가 쓸데없이 길고 자주 쓰이는 코드

ex) setter, getter

 

레거시(Legacy)
 : 현재까지 남아 사용되고 있거나 현제의 체계에 영향을 미치는 과거의 체계

 

DTO(Data Transtfer Object)

 : 데이터 전송 객체

 

DAO(Data Access Object)

 : 데이터베이스에 접근하기 위한 클래스

 

쇼트서킷

 : 

 

 

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

permission  (0) 2020.02.26
DP(Device Independence Pixel)?  (0) 2019.06.09
xml로 도형 그리기  (0) 2019.05.26
2019 드로이드 나이츠  (0) 2019.04.26
드로이드나이츠(Droid Knights) 2018  (0) 2018.06.10

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

 


 

https://developer.android.com/guide/topics/resources/drawable-resource?hl=ko#Shape

 

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape=["rectangle" | "oval" | "line" | "ring"] >
    <corners
        android:radius="integer"
        android:topLeftRadius="integer"
        android:topRightRadius="integer"
        android:bottomLeftRadius="integer"
        android:bottomRightRadius="integer" />
    <gradient
        android:angle="integer"
        android:centerX="float"
        android:centerY="float"
        android:centerColor="integer"
        android:endColor="color"
        android:gradientRadius="integer"
        android:startColor="color"
        android:type=["linear" | "radial" | "sweep"]
        android:useLevel=["true" | "false"] />
    <padding
        android:left="integer"
        android:top="integer"
        android:right="integer"
        android:bottom="integer" />
    <size
        android:width="integer"
        android:height="integer" />
    <solid
        android:color="color" />
    <stroke
        android:width="integer"
        android:color="color"
        android:dashWidth="integer"
        android:dashGap="integer" />
</shape>

 

shape : 모양, default=rectangle

corners : 모서리의 둥근 정도

gradient : 그라데이션이 들어간 배경

padding : 패딩

size : 사이즈

solid : 배경색

stroke : 외곽선

 


 

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <size android:width="100dp"
        android:height="100dp" />

    <solid android:color="@color/colorPrimary" />

    <stroke android:color="@color/colorAccent"
        android:width="10dp"/>

    <corners android:radius="0dp" />

</shape>

 


 

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <size android:width="100dp"
        android:height="100dp" />

    <solid android:color="@color/colorPrimary" />

    <stroke android:color="@color/colorAccent"
        android:width="10dp"/>

    <corners android:radius="10dp" />

</shape>

 


 

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <size android:width="100dp"
        android:height="100dp" />

    <gradient
        android:angle="90"
        android:startColor="@color/colorPrimary"
        android:endColor="@android:color/black" />

    <stroke android:color="@color/colorAccent"
        android:width="10dp"/>

    <corners android:radius="10dp" />

</shape>

 


 

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <size android:width="100dp"
        android:height="100dp" />

    <gradient
        android:angle="90"
        android:startColor="@color/colorPrimary"
        android:endColor="@android:color/black" />

    <stroke android:color="@color/colorAccent"
        android:width="10dp"
        android:dashWidth="10dp"
        android:dashGap="1dp"/>

</shape>

 


 

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring"
    android:innerRadius="25dp"
    android:thickness="25dp"
    android:useLevel="false">

    <size android:width="100dp"
        android:height="100dp" />

    <solid android:color="@color/colorPrimary" />

</shape>

 

 


 

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring"
    android:innerRadius="40dp"
    android:thickness="10dp"
    android:useLevel="false">

    <size android:width="100dp"
        android:height="100dp" />

    <solid android:color="@color/colorPrimary" />

</shape>

 

 

Tistory 코드 블록을 썼는데 글쓸때는 제대로 표시하고 완료된 글은 깨지는건 무엇?

 

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

DP(Device Independence Pixel)?  (0) 2019.06.09
프로그래밍 용어 정리  (0) 2019.05.27
2019 드로이드 나이츠  (0) 2019.04.26
드로이드나이츠(Droid Knights) 2018  (0) 2018.06.10
Googl I/O 2017 Extended in Seoul  (0) 2017.11.10

몬감 ㅠㅠ

 

수요일날 100명 남았길래

 

금요일날 신청할랬드만

 

자리있을때 바로 하세요 ㅠㅠ

 

코틀린 나이츠도 못가고...

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

프로그래밍 용어 정리  (0) 2019.05.27
xml로 도형 그리기  (0) 2019.05.26
드로이드나이츠(Droid Knights) 2018  (0) 2018.06.10
Googl I/O 2017 Extended in Seoul  (0) 2017.11.10
드로이드나이츠(Droid Knights) 내용  (0) 2017.11.09




두번째 드로이드나이츠입니다



드로이드나이츠 2018

https://droidknights.github.io/2018/


드로이드나이츠 YouTube

2018년 발표 동영상이 업로드 되어 있습니다.

https://www.youtube.com/channel/UCjeUnwS8mHhsl600-nFJKmw





스케줄











설문조사


항상 설문조사가 있어요


012345







현장사진









굿즈


좋아요






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

xml로 도형 그리기  (0) 2019.05.26
2019 드로이드 나이츠  (0) 2019.04.26
Googl I/O 2017 Extended in Seoul  (0) 2017.11.10
드로이드나이츠(Droid Knights) 내용  (0) 2017.11.09
드로이드나이츠(Droid Knights)  (0) 2017.11.09




ANDROID 9.0(API 28)


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





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

Android 11 beta  (0) 2020.06.22
Q -> Android 10  (0) 2019.06.01
Oreo_오레오  (0) 2018.06.06
Nougat_누가  (0) 2018.06.06
Marshmallow_마시멜로  (0) 2018.06.06



ANDROID 8.0 (API 26)

ANDROID 8.1 (API 27)


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

Q -> Android 10  (0) 2019.06.01
Pie_파이  (0) 2018.06.07
Nougat_누가  (0) 2018.06.06
Marshmallow_마시멜로  (0) 2018.06.06
Lollipop_롤리팝  (0) 2018.06.06


ANDROID 7.0 (API 24)









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

Pie_파이  (0) 2018.06.07
Oreo_오레오  (0) 2018.06.06
Marshmallow_마시멜로  (0) 2018.06.06
Lollipop_롤리팝  (0) 2018.06.06
KitKat_킷캣  (0) 2018.06.06

+ Recent posts