How to get Screen Size int screenSizeW = (int)[[UIScreen mainScreen] bounds].size.width; int screenSizeH = (int)[[UIScreen mainScreen] bounds].size.height; NSLog(@"screen size : %d %d", screenSizeW, screenSizeH); ----이렇게 하면 그냥 픽셀단위만 나옴 레티나등 해상도 대응하려면 여기서 스케일을 곱해줘야함 int screenSizeW = (int)[[UIScreen mainScreen] bounds].size.width * [[UIScreen mainScreen] scale]; int screenSizeH = (int)[[UIScreen ..
앱을 만들때, 화면마다 슈퍼뷰(해상도)가 다 다른데, 이미지를 특정 화면 포인트에 고정시키고 나머지는 비율대로 늘리고 싶을때가 있다. 안드로이드의 경우 Constraint Layout 의 layout_constraintDimensionRatio 속성을 이용하면 되지만, iOS 의 경우는 어떻게 대응할까? 우선 문제부터 보자 우리는 아래와 같은 뷰를 원한다. 첫번째 사진을 보면 view 안에 imageview 가 들어가있다. 우리는 이 ImageView를 화면의 세로크기로 꽉 채우길 원한다. 세로로 한번 늘려보자.. 이것은 우리가 원하는 결과가 아니다. 화면을 세로로 꽉 채우면서 가로 오른쪽은 이미지의 원래 비율대로 늘어나길 바란다. 그렇다면 어떻게 해야할까? Aspect Ratio xcode storyb..
아래와 같이 Gradle Dependencies Library 를 사용하는 경우가 있다. compile 'com.test.test-library:test-library:3+' In Android Studio.. 우선. 안스에서 위와같이 동적 버전 사인을 이용할 경우 warning message 를 띄워준다. Avoid using + in version numbers; can lead to unpredictable and unrepeatable builds .... 버전 넘버에 + 사인을 넣는 것을 피하라.. 예측할 수 없는 결과가 발생할 수 있다. 추가 설명은 아래 링크에 잘 나와있다. https://blog.danlew.net/2015/09/09/dont-use-dynamic-versions-for-y..
VersionCodenameAPIDistribution2.3.3 - 2.3.7Gingerbread100.2%4.0.3 - 4.0.4Ice Cream Sandwich150.3%4.1.xJelly Bean161.2%4.2.x171.9%4.3180.5%4.4KitKat199.1%5.0Lollipop214.2%5.12216.2%6.0Marshmallow2323.5%7.0Nougat2421.2%7.1259.6%8.0Oreo2610.1%8.1272.0%2018년 7월 23일까지 7일 동안 수집된 데이터 배포율이 0.1% 이하인 버전은 표시되지 않습니다.
눈에 띄는 변화들 1. Background Service 의 GPS 수신 빈도가 눈에 띄게 적어졌다.- 한 시간안에 몇번 하지 못한다. Foreground 의 GPS 는 문제없다. 2. 네트워크 Exception 추가- connect(...) 가 실패할 경우, send(..) 메서드가 SocketException 을 발생한다. 3. AbstractCollection 의 Null Pointer Exception Return - 기존의 AbstractCollection.removeAll(null) 과 .retain(null) 은 null Exception 이 없었지만, 이제는 발생한다. 4. Shortcut 추가- INSTALL_SHORTCUT 의 암시적 브로드캐스트가ShortCutManager Class ..
리팩토링 이란? 나쁜 디자인의 코드를 좋은 디자인 코드로 변경하는 과정 리팩토링 상황 예시 1. 아래와 같은 getUserInfoFromServerA() 라는 함수를 작성 1234567891011121314151617public void getUserInfoFromServerA(String userID) { new CustomAsyncTask().execute(userID, new CallBackListenerA() { @Override public void onSuccess(Result rst) { // Success Code } @Override public void onFailed(String failedMsg) { // Failed Code } });} class CustomAsyncTask ex..
Data Binding 이란? 사전적 의미는 아래와 같다. Data : 데이터 Binding : 묶음 즉, 데이터를 묶는다는 것 데이터를 뭘 묶는다는건가?xml 의 컴포넌트 요소들과 java를 묶어주는 것. Without Data Binding ...... 기존에 데이터 바인딩없이는 아래와 같이 썼을 것이다. xml javamBtn1 = (Button) findViewById(R.id.btn_1); mBtn2 = (Button) findViewById(R.id.btn_2); mBtn3 = (Button) findViewById(R.id.btn_3); // ... endless findViewById... xml 에서 선언하고.. java 에서 findviewbyid 로 찾고...선언하고..찾고..매칭시켜..
일반적인 변수 선언 private var mMainPresenter : MainContract.Presenter = MainPresenter(this) 우리는 일반적으로 위와 같이 선언하게 된다. 선언시 초기화를 하지 않는다면 이 선언의 문제점은 선언시 반드시 초기화해야 한다는 것에 있다. 초기화 문을 제거한다면 아래와같은 에러를 볼수있을것이다. 해결책은? private lateinit var mMainPresenter : MainContract.Presenter위와 같이 lateinit 키워드를 붙이면,선언시 반드시 초기화 하지 않아도 된다.
- Total
- Today
- Yesterday
- C언어
- Kotlin
- 배열
- Phaser
- Node
- 스위프트
- mysql
- Asterisk
- IOS
- nodejs
- 손석희
- 노드
- linux
- 뉴스룸
- Swift
- git hub
- php
- 리눅스
- 앵커브리핑
- node.js
- xcode
- Android
- 깃헙
- 안드로이드
- 서버
- C
- BBC 가쉽
- GIT
- 점유율
- CentOS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |